public class org.postgresql.Driver implements java.sql.Driver
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.postgresql.Driver
  super_class: java.lang.Object
{
  private static org.postgresql.Driver registeredDriver;
    descriptor: Lorg/postgresql/Driver;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

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

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

  private static org.postgresql.util.SharedTimer sharedTimer;
    descriptor: Lorg/postgresql/util/SharedTimer;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final java.lang.String DEFAULT_PORT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "5432"

  private java.util.Properties defaultProperties;
    descriptor: Ljava/util/Properties;
    flags: (0x0002) ACC_PRIVATE

  private static java.lang.String loggerHandlerFile;
    descriptor: Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 60
            ldc "org.postgresql"
            invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
            putstatic org.postgresql.Driver.PARENT_LOGGER:Ljava/util/logging/Logger;
         1: .line 61
            ldc "org.postgresql.Driver"
            invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
            putstatic org.postgresql.Driver.LOGGER:Ljava/util/logging/Logger;
         2: .line 62
            new org.postgresql.util.SharedTimer
            dup
            invokespecial org.postgresql.util.SharedTimer.<init>:()V
            putstatic org.postgresql.Driver.sharedTimer:Lorg/postgresql/util/SharedTimer;
         3: .line 72
            invokestatic org.postgresql.Driver.register:()V
         4: .line 73
            goto 7
      StackMap locals:
      StackMap stack: java.sql.SQLException
         5: astore 0 /* e */
        start local 0 // java.sql.SQLException e
         6: .line 74
            new java.lang.ExceptionInInitializerError
            dup
            aload 0 /* e */
            invokespecial java.lang.ExceptionInInitializerError.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 0 // java.sql.SQLException e
         7: .line 288
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            6    7     0     e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           3     4       5  Class java.sql.SQLException

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.postgresql.Driver this
         0: .line 57
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.postgresql.Driver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/postgresql/Driver;

  private synchronized java.util.Properties getDefaultProperties();
    descriptor: ()Ljava/util/Properties;
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.postgresql.Driver this
         0: .line 83
            aload 0 /* this */
            getfield org.postgresql.Driver.defaultProperties:Ljava/util/Properties;
            ifnull 2
         1: .line 84
            aload 0 /* this */
            getfield org.postgresql.Driver.defaultProperties:Ljava/util/Properties;
            areturn
         2: .line 89
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
         3: .line 90
            new org.postgresql.Driver$1
            dup
            aload 0 /* this */
            invokespecial org.postgresql.Driver$1.<init>:(Lorg/postgresql/Driver;)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast java.util.Properties
         4: .line 89
            putfield org.postgresql.Driver.defaultProperties:Ljava/util/Properties;
         5: .line 95
            goto 8
      StackMap locals:
      StackMap stack: java.security.PrivilegedActionException
         6: astore 1 /* e */
        start local 1 // java.security.PrivilegedActionException e
         7: .line 96
            aload 1 /* e */
            invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
            checkcast java.io.IOException
            athrow
        end local 1 // java.security.PrivilegedActionException e
         8: .line 99
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.postgresql.Driver.defaultProperties:Ljava/util/Properties;
            areturn
        end local 0 // org.postgresql.Driver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/postgresql/Driver;
            7    8     1     e  Ljava/security/PrivilegedActionException;
      Exception table:
        from    to  target  type
           2     5       6  Class java.security.PrivilegedActionException
    Exceptions:
      throws java.io.IOException

  private java.util.Properties loadDefaultProperties();
    descriptor: ()Ljava/util/Properties;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=1
        start local 0 // org.postgresql.Driver this
         0: .line 103
            new java.util.Properties
            dup
            invokespecial java.util.Properties.<init>:()V
            astore 1 /* merged */
        start local 1 // java.util.Properties merged
         1: .line 106
            getstatic org.postgresql.PGProperty.USER:Lorg/postgresql/PGProperty;
            aload 1 /* merged */
            ldc "user.name"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.postgresql.PGProperty.set:(Ljava/util/Properties;Ljava/lang/String;)V
         2: .line 107
            goto 4
      StackMap locals: org.postgresql.Driver java.util.Properties
      StackMap stack: java.lang.SecurityException
         3: pop
         4: .line 120
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 2 /* cl */
        start local 2 // java.lang.ClassLoader cl
         5: .line 121
            aload 2 /* cl */
            ifnonnull 8
         6: .line 122
            getstatic org.postgresql.Driver.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            ldc "Can't find our classloader for the Driver; attempt to use the system class loader"
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
         7: .line 124
            invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
            astore 2 /* cl */
         8: .line 127
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            aload 2 /* cl */
            ifnonnull 11
         9: .line 128
            getstatic org.postgresql.Driver.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
            ldc "Can't find a classloader for the Driver; not loading driver configuration from org/postgresql/driverconfig.properties"
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
        10: .line 130
            aload 1 /* merged */
            areturn
        11: .line 133
      StackMap locals:
      StackMap stack:
            getstatic org.postgresql.Driver.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            ldc "Loading driver configuration via classloader {0}"
            aload 2 /* cl */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
        12: .line 139
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* urls */
        start local 3 // java.util.ArrayList urls
        13: .line 140
            aload 2 /* cl */
            ldc "org/postgresql/driverconfig.properties"
            invokevirtual java.lang.ClassLoader.getResources:(Ljava/lang/String;)Ljava/util/Enumeration;
            astore 4 /* urlEnum */
        start local 4 // java.util.Enumeration urlEnum
        14: .line 141
            goto 16
        15: .line 142
      StackMap locals: java.util.ArrayList java.util.Enumeration
      StackMap stack:
            aload 3 /* urls */
            aload 4 /* urlEnum */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.net.URL
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        16: .line 141
      StackMap locals:
      StackMap stack:
            aload 4 /* urlEnum */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 15
        17: .line 145
            aload 3 /* urls */
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            istore 5 /* i */
        start local 5 // int i
        18: goto 25
        19: .line 146
      StackMap locals: int
      StackMap stack:
            aload 3 /* urls */
            iload 5 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.net.URL
            astore 6 /* url */
        start local 6 // java.net.URL url
        20: .line 147
            getstatic org.postgresql.Driver.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            ldc "Loading driver configuration from: {0}"
            aload 6 /* url */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
        21: .line 148
            aload 6 /* url */
            invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
            astore 7 /* is */
        start local 7 // java.io.InputStream is
        22: .line 149
            aload 1 /* merged */
            aload 7 /* is */
            invokevirtual java.util.Properties.load:(Ljava/io/InputStream;)V
        23: .line 150
            aload 7 /* is */
            invokevirtual java.io.InputStream.close:()V
        end local 7 // java.io.InputStream is
        end local 6 // java.net.URL url
        24: .line 145
            iinc 5 /* i */ -1
      StackMap locals:
      StackMap stack:
        25: iload 5 /* i */
            ifge 19
        end local 5 // int i
        26: .line 153
            aload 1 /* merged */
            areturn
        end local 4 // java.util.Enumeration urlEnum
        end local 3 // java.util.ArrayList urls
        end local 2 // java.lang.ClassLoader cl
        end local 1 // java.util.Properties merged
        end local 0 // org.postgresql.Driver this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   27     0     this  Lorg/postgresql/Driver;
            1   27     1   merged  Ljava/util/Properties;
            5   27     2       cl  Ljava/lang/ClassLoader;
           13   27     3     urls  Ljava/util/ArrayList<Ljava/net/URL;>;
           14   27     4  urlEnum  Ljava/util/Enumeration<Ljava/net/URL;>;
           18   26     5        i  I
           20   24     6      url  Ljava/net/URL;
           22   24     7       is  Ljava/io/InputStream;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.SecurityException
    Exceptions:
      throws java.io.IOException

  public java.sql.Connection connect(java.lang.String, java.util.Properties);
    descriptor: (Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // org.postgresql.Driver this
        start local 1 // java.lang.String url
        start local 2 // java.util.Properties info
         0: .line 209
            aload 1 /* url */
            ifnonnull 2
         1: .line 210
            new java.sql.SQLException
            dup
            ldc "url is null"
            invokespecial java.sql.SQLException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 215
      StackMap locals:
      StackMap stack:
            aload 1 /* url */
            ldc "jdbc:postgresql:"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 4
         3: .line 216
            aconst_null
            areturn
         4: .line 219
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.postgresql.Driver.getDefaultProperties:()Ljava/util/Properties;
            astore 3 /* defaults */
        start local 3 // java.util.Properties defaults
         5: .line 220
            goto 10
        end local 3 // java.util.Properties defaults
      StackMap locals:
      StackMap stack: java.io.IOException
         6: astore 4 /* ioe */
        start local 4 // java.io.IOException ioe
         7: .line 221
            new org.postgresql.util.PSQLException
            dup
            ldc "Error loading default settings from driverconfig.properties"
            iconst_0
            anewarray java.lang.Object
            invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         8: .line 222
            getstatic org.postgresql.util.PSQLState.UNEXPECTED_ERROR:Lorg/postgresql/util/PSQLState;
            aload 4 /* ioe */
         9: .line 221
            invokespecial org.postgresql.util.PSQLException.<init>:(Ljava/lang/String;Lorg/postgresql/util/PSQLState;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.io.IOException ioe
        start local 3 // java.util.Properties defaults
        10: .line 226
      StackMap locals: java.util.Properties
      StackMap stack:
            new java.util.Properties
            dup
            aload 3 /* defaults */
            invokespecial java.util.Properties.<init>:(Ljava/util/Properties;)V
            astore 4 /* props */
        start local 4 // java.util.Properties props
        11: .line 227
            aload 2 /* info */
            ifnull 25
        12: .line 228
            aload 2 /* info */
            invokevirtual java.util.Properties.stringPropertyNames:()Ljava/util/Set;
            astore 5 /* e */
        start local 5 // java.util.Set e
        13: .line 229
            aload 5 /* e */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 24
      StackMap locals: org.postgresql.Driver java.lang.String java.util.Properties java.util.Properties java.util.Properties java.util.Set top java.util.Iterator
      StackMap stack:
        14: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* propName */
        start local 6 // java.lang.String propName
        15: .line 230
            aload 2 /* info */
            aload 6 /* propName */
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* propValue */
        start local 8 // java.lang.String propValue
        16: .line 231
            aload 8 /* propValue */
            ifnonnull 23
        17: .line 232
            new org.postgresql.util.PSQLException
            dup
        18: .line 233
            new java.lang.StringBuilder
            dup
            ldc "Properties for the driver contains a non-string value for the key "
            iconst_0
            anewarray java.lang.Object
            invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        19: .line 234
            aload 6 /* propName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        20: .line 233
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        21: .line 235
            getstatic org.postgresql.util.PSQLState.UNEXPECTED_ERROR:Lorg/postgresql/util/PSQLState;
        22: .line 232
            invokespecial org.postgresql.util.PSQLException.<init>:(Ljava/lang/String;Lorg/postgresql/util/PSQLState;)V
            athrow
        23: .line 237
      StackMap locals: org.postgresql.Driver java.lang.String java.util.Properties java.util.Properties java.util.Properties java.util.Set java.lang.String java.util.Iterator java.lang.String
      StackMap stack:
            aload 4 /* props */
            aload 6 /* propName */
            aload 8 /* propValue */
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
        end local 8 // java.lang.String propValue
        end local 6 // java.lang.String propName
        24: .line 229
      StackMap locals: org.postgresql.Driver java.lang.String java.util.Properties java.util.Properties java.util.Properties java.util.Set top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        end local 5 // java.util.Set e
        25: .line 241
      StackMap locals: org.postgresql.Driver java.lang.String java.util.Properties java.util.Properties java.util.Properties
      StackMap stack:
            aload 1 /* url */
            aload 4 /* props */
            invokestatic org.postgresql.Driver.parseURL:(Ljava/lang/String;Ljava/util/Properties;)Ljava/util/Properties;
            dup
            astore 4 /* props */
            ifnonnull 27
        26: .line 242
            aconst_null
            areturn
        27: .line 246
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* props */
            invokevirtual org.postgresql.Driver.setupLoggerFromProperties:(Ljava/util/Properties;)V
        28: .line 248
            getstatic org.postgresql.Driver.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            ldc "Connecting with URL: {0}"
            aload 1 /* url */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
        29: .line 258
            aload 4 /* props */
            invokestatic org.postgresql.Driver.timeout:(Ljava/util/Properties;)J
            lstore 5 /* timeout */
        start local 5 // long timeout
        30: .line 259
            lload 5 /* timeout */
            lconst_0
            lcmp
            ifgt 33
        31: .line 260
            aload 1 /* url */
            aload 4 /* props */
            invokestatic org.postgresql.Driver.makeConnection:(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;
        32: areturn
        33: .line 263
      StackMap locals: long
      StackMap stack:
            new org.postgresql.Driver$ConnectThread
            dup
            aload 1 /* url */
            aload 4 /* props */
            invokespecial org.postgresql.Driver$ConnectThread.<init>:(Ljava/lang/String;Ljava/util/Properties;)V
            astore 7 /* ct */
        start local 7 // org.postgresql.Driver$ConnectThread ct
        34: .line 264
            new java.lang.Thread
            dup
            aload 7 /* ct */
            ldc "PostgreSQL JDBC driver connection thread"
            invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;Ljava/lang/String;)V
            astore 8 /* thread */
        start local 8 // java.lang.Thread thread
        35: .line 265
            aload 8 /* thread */
            iconst_1
            invokevirtual java.lang.Thread.setDaemon:(Z)V
        36: .line 266
            aload 8 /* thread */
            invokevirtual java.lang.Thread.start:()V
        37: .line 267
            aload 7 /* ct */
            lload 5 /* timeout */
            invokevirtual org.postgresql.Driver$ConnectThread.getResult:(J)Ljava/sql/Connection;
        38: areturn
        end local 8 // java.lang.Thread thread
        end local 7 // org.postgresql.Driver$ConnectThread ct
        end local 5 // long timeout
        39: .line 268
      StackMap locals: org.postgresql.Driver java.lang.String java.util.Properties java.util.Properties java.util.Properties
      StackMap stack: org.postgresql.util.PSQLException
            astore 5 /* ex1 */
        start local 5 // org.postgresql.util.PSQLException ex1
        40: .line 269
            getstatic org.postgresql.Driver.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            ldc "Connection error: "
            aload 5 /* ex1 */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        41: .line 272
            aload 5 /* ex1 */
            athrow
        end local 5 // org.postgresql.util.PSQLException ex1
        42: .line 273
      StackMap locals:
      StackMap stack: java.security.AccessControlException
            astore 5 /* ace */
        start local 5 // java.security.AccessControlException ace
        43: .line 274
            new org.postgresql.util.PSQLException
            dup
        44: .line 276
            ldc "Your security policy has prevented the connection from being attempted.  You probably need to grant the connect java.net.SocketPermission to the database server host and port that you wish to connect to."
            iconst_0
            anewarray java.lang.Object
        45: .line 275
            invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        46: .line 277
            getstatic org.postgresql.util.PSQLState.UNEXPECTED_ERROR:Lorg/postgresql/util/PSQLState;
            aload 5 /* ace */
        47: .line 274
            invokespecial org.postgresql.util.PSQLException.<init>:(Ljava/lang/String;Lorg/postgresql/util/PSQLState;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.security.AccessControlException ace
        48: .line 278
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 5 /* ex2 */
        start local 5 // java.lang.Exception ex2
        49: .line 279
            getstatic org.postgresql.Driver.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            ldc "Unexpected connection error: "
            aload 5 /* ex2 */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        50: .line 280
            new org.postgresql.util.PSQLException
            dup
        51: .line 282
            ldc "Something unusual has occurred to cause the driver to fail. Please report this exception."
            iconst_0
            anewarray java.lang.Object
        52: .line 281
            invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        53: .line 283
            getstatic org.postgresql.util.PSQLState.UNEXPECTED_ERROR:Lorg/postgresql/util/PSQLState;
            aload 5 /* ex2 */
        54: .line 280
            invokespecial org.postgresql.util.PSQLException.<init>:(Ljava/lang/String;Lorg/postgresql/util/PSQLState;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.Exception ex2
        end local 4 // java.util.Properties props
        end local 3 // java.util.Properties defaults
        end local 2 // java.util.Properties info
        end local 1 // java.lang.String url
        end local 0 // org.postgresql.Driver this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   55     0       this  Lorg/postgresql/Driver;
            0   55     1        url  Ljava/lang/String;
            0   55     2       info  Ljava/util/Properties;
            5    6     3   defaults  Ljava/util/Properties;
           10   55     3   defaults  Ljava/util/Properties;
            7   10     4        ioe  Ljava/io/IOException;
           11   55     4      props  Ljava/util/Properties;
           13   25     5          e  Ljava/util/Set<Ljava/lang/String;>;
           15   24     6   propName  Ljava/lang/String;
           16   24     8  propValue  Ljava/lang/String;
           30   39     5    timeout  J
           34   39     7         ct  Lorg/postgresql/Driver$ConnectThread;
           35   39     8     thread  Ljava/lang/Thread;
           40   42     5        ex1  Lorg/postgresql/util/PSQLException;
           43   48     5        ace  Ljava/security/AccessControlException;
           49   55     5        ex2  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           4     5       6  Class java.io.IOException
          27    32      39  Class org.postgresql.util.PSQLException
          33    38      39  Class org.postgresql.util.PSQLException
          27    32      42  Class java.security.AccessControlException
          33    38      42  Class java.security.AccessControlException
          27    32      48  Class java.lang.Exception
          33    38      48  Class java.lang.Exception
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      url   
      info  

  private void setupLoggerFromProperties(java.util.Properties);
    descriptor: (Ljava/util/Properties;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // org.postgresql.Driver this
        start local 1 // java.util.Properties props
         0: .line 298
            getstatic org.postgresql.PGProperty.LOGGER_LEVEL:Lorg/postgresql/PGProperty;
            aload 1 /* props */
            invokevirtual org.postgresql.PGProperty.get:(Ljava/util/Properties;)Ljava/lang/String;
            astore 2 /* driverLogLevel */
        start local 2 // java.lang.String driverLogLevel
         1: .line 299
            aload 2 /* driverLogLevel */
            ifnonnull 3
         2: .line 300
            return
         3: .line 302
      StackMap locals: java.lang.String
      StackMap stack:
            ldc "OFF"
            aload 2 /* driverLogLevel */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 6
         4: .line 303
            getstatic org.postgresql.Driver.PARENT_LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.OFF:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.setLevel:(Ljava/util/logging/Level;)V
         5: .line 304
            return
         6: .line 305
      StackMap locals:
      StackMap stack:
            ldc "DEBUG"
            aload 2 /* driverLogLevel */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 9
         7: .line 306
            getstatic org.postgresql.Driver.PARENT_LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.setLevel:(Ljava/util/logging/Level;)V
         8: .line 307
            goto 11
      StackMap locals:
      StackMap stack:
         9: ldc "TRACE"
            aload 2 /* driverLogLevel */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 11
        10: .line 308
            getstatic org.postgresql.Driver.PARENT_LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.setLevel:(Ljava/util/logging/Level;)V
        11: .line 311
      StackMap locals:
      StackMap stack:
            new org.postgresql.util.ExpressionProperties
            dup
            iconst_2
            anewarray java.util.Properties
            dup
            iconst_0
            aload 1 /* props */
            aastore
            dup
            iconst_1
            invokestatic java.lang.System.getProperties:()Ljava/util/Properties;
            aastore
            invokespecial org.postgresql.util.ExpressionProperties.<init>:([Ljava/util/Properties;)V
            astore 3 /* exprProps */
        start local 3 // org.postgresql.util.ExpressionProperties exprProps
        12: .line 312
            getstatic org.postgresql.PGProperty.LOGGER_FILE:Lorg/postgresql/PGProperty;
            aload 3 /* exprProps */
            invokevirtual org.postgresql.PGProperty.get:(Ljava/util/Properties;)Ljava/lang/String;
            astore 4 /* driverLogFile */
        start local 4 // java.lang.String driverLogFile
        13: .line 313
            aload 4 /* driverLogFile */
            ifnull 15
            aload 4 /* driverLogFile */
            getstatic org.postgresql.Driver.loggerHandlerFile:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        14: .line 314
            return
        15: .line 317
      StackMap locals: org.postgresql.util.ExpressionProperties java.lang.String
      StackMap stack:
            getstatic org.postgresql.Driver.PARENT_LOGGER:Ljava/util/logging/Logger;
            invokevirtual java.util.logging.Logger.getHandlers:()[Ljava/util/logging/Handler;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 21
      StackMap locals: org.postgresql.Driver java.util.Properties java.lang.String org.postgresql.util.ExpressionProperties java.lang.String top int int java.util.logging.Handler[]
      StackMap stack:
        16: aload 8
            iload 6
            aaload
            astore 5 /* handlers */
        start local 5 // java.util.logging.Handler handlers
        17: .line 319
            aload 5 /* handlers */
            invokevirtual java.util.logging.Handler.close:()V
        18: .line 320
            getstatic org.postgresql.Driver.PARENT_LOGGER:Ljava/util/logging/Logger;
            aload 5 /* handlers */
            invokevirtual java.util.logging.Logger.removeHandler:(Ljava/util/logging/Handler;)V
        19: .line 321
            aconst_null
            putstatic org.postgresql.Driver.loggerHandlerFile:Ljava/lang/String;
        end local 5 // java.util.logging.Handler handlers
        20: .line 317
            iinc 6 1
      StackMap locals:
      StackMap stack:
        21: iload 6
            iload 7
            if_icmplt 16
        22: .line 324
            aconst_null
            astore 5 /* handler */
        start local 5 // java.util.logging.Handler handler
        23: .line 325
            aload 4 /* driverLogFile */
            ifnull 29
        24: .line 327
            new java.util.logging.FileHandler
            dup
            aload 4 /* driverLogFile */
            invokespecial java.util.logging.FileHandler.<init>:(Ljava/lang/String;)V
            astore 5 /* handler */
        25: .line 328
            aload 4 /* driverLogFile */
            putstatic org.postgresql.Driver.loggerHandlerFile:Ljava/lang/String;
        26: .line 329
            goto 29
      StackMap locals: org.postgresql.Driver java.util.Properties java.lang.String org.postgresql.util.ExpressionProperties java.lang.String java.util.logging.Handler
      StackMap stack: java.lang.Exception
        27: pop
        28: .line 330
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "Cannot enable FileHandler, fallback to ConsoleHandler."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        29: .line 334
      StackMap locals:
      StackMap stack:
            new java.util.logging.SimpleFormatter
            dup
            invokespecial java.util.logging.SimpleFormatter.<init>:()V
            astore 6 /* formatter */
        start local 6 // java.util.logging.Formatter formatter
        30: .line 336
            aload 5 /* handler */
            ifnonnull 39
        31: .line 337
            invokestatic java.sql.DriverManager.getLogWriter:()Ljava/io/PrintWriter;
            ifnull 34
        32: .line 338
            new org.postgresql.util.WriterHandler
            dup
            invokestatic java.sql.DriverManager.getLogWriter:()Ljava/io/PrintWriter;
            invokespecial org.postgresql.util.WriterHandler.<init>:(Ljava/io/Writer;)V
            astore 5 /* handler */
        33: .line 339
            goto 40
      StackMap locals: java.util.logging.Formatter
      StackMap stack:
        34: invokestatic java.sql.DriverManager.getLogStream:()Ljava/io/PrintStream;
            ifnull 37
        35: .line 340
            new java.util.logging.StreamHandler
            dup
            invokestatic java.sql.DriverManager.getLogStream:()Ljava/io/PrintStream;
            aload 6 /* formatter */
            invokespecial java.util.logging.StreamHandler.<init>:(Ljava/io/OutputStream;Ljava/util/logging/Formatter;)V
            astore 5 /* handler */
        36: .line 341
            goto 40
        37: .line 342
      StackMap locals:
      StackMap stack:
            new java.util.logging.StreamHandler
            dup
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            aload 6 /* formatter */
            invokespecial java.util.logging.StreamHandler.<init>:(Ljava/io/OutputStream;Ljava/util/logging/Formatter;)V
            astore 5 /* handler */
        38: .line 344
            goto 40
        39: .line 345
      StackMap locals:
      StackMap stack:
            aload 5 /* handler */
            aload 6 /* formatter */
            invokevirtual java.util.logging.Handler.setFormatter:(Ljava/util/logging/Formatter;)V
        40: .line 348
      StackMap locals:
      StackMap stack:
            aload 5 /* handler */
            getstatic org.postgresql.Driver.PARENT_LOGGER:Ljava/util/logging/Logger;
            invokevirtual java.util.logging.Logger.getLevel:()Ljava/util/logging/Level;
            invokevirtual java.util.logging.Handler.setLevel:(Ljava/util/logging/Level;)V
        41: .line 349
            getstatic org.postgresql.Driver.PARENT_LOGGER:Ljava/util/logging/Logger;
            iconst_0
            invokevirtual java.util.logging.Logger.setUseParentHandlers:(Z)V
        42: .line 350
            getstatic org.postgresql.Driver.PARENT_LOGGER:Ljava/util/logging/Logger;
            aload 5 /* handler */
            invokevirtual java.util.logging.Logger.addHandler:(Ljava/util/logging/Handler;)V
        43: .line 351
            return
        end local 6 // java.util.logging.Formatter formatter
        end local 5 // java.util.logging.Handler handler
        end local 4 // java.lang.String driverLogFile
        end local 3 // org.postgresql.util.ExpressionProperties exprProps
        end local 2 // java.lang.String driverLogLevel
        end local 1 // java.util.Properties props
        end local 0 // org.postgresql.Driver this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   44     0            this  Lorg/postgresql/Driver;
            0   44     1           props  Ljava/util/Properties;
            1   44     2  driverLogLevel  Ljava/lang/String;
           12   44     3       exprProps  Lorg/postgresql/util/ExpressionProperties;
           13   44     4   driverLogFile  Ljava/lang/String;
           17   20     5        handlers  Ljava/util/logging/Handler;
           23   44     5         handler  Ljava/util/logging/Handler;
           30   44     6       formatter  Ljava/util/logging/Formatter;
      Exception table:
        from    to  target  type
          24    26      27  Class java.lang.Exception
    MethodParameters:
       Name  Flags
      props  final

  private static java.sql.Connection makeConnection(java.lang.String, java.util.Properties);
    descriptor: (Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // java.lang.String url
        start local 1 // java.util.Properties props
         0: .line 458
            new org.postgresql.jdbc.PgConnection
            dup
            aload 1 /* props */
            invokestatic org.postgresql.Driver.hostSpecs:(Ljava/util/Properties;)[Lorg/postgresql/util/HostSpec;
            aload 1 /* props */
            invokestatic org.postgresql.Driver.user:(Ljava/util/Properties;)Ljava/lang/String;
            aload 1 /* props */
            invokestatic org.postgresql.Driver.database:(Ljava/util/Properties;)Ljava/lang/String;
            aload 1 /* props */
            aload 0 /* url */
            invokespecial org.postgresql.jdbc.PgConnection.<init>:([Lorg/postgresql/util/HostSpec;Ljava/lang/String;Ljava/lang/String;Ljava/util/Properties;Ljava/lang/String;)V
            areturn
        end local 1 // java.util.Properties props
        end local 0 // java.lang.String url
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0    url  Ljava/lang/String;
            0    1     1  props  Ljava/util/Properties;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
       Name  Flags
      url    
      props  

  public boolean acceptsURL(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.postgresql.Driver this
        start local 1 // java.lang.String url
         0: .line 472
            aload 1 /* url */
            aconst_null
            invokestatic org.postgresql.Driver.parseURL:(Ljava/lang/String;Ljava/util/Properties;)Ljava/util/Properties;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.String url
        end local 0 // org.postgresql.Driver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/postgresql/Driver;
            0    2     1   url  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      url   

  public java.sql.DriverPropertyInfo[] getPropertyInfo(java.lang.String, java.util.Properties);
    descriptor: (Ljava/lang/String;Ljava/util/Properties;)[Ljava/sql/DriverPropertyInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // org.postgresql.Driver this
        start local 1 // java.lang.String url
        start local 2 // java.util.Properties info
         0: .line 490
            new java.util.Properties
            dup
            aload 2 /* info */
            invokespecial java.util.Properties.<init>:(Ljava/util/Properties;)V
            astore 3 /* copy */
        start local 3 // java.util.Properties copy
         1: .line 491
            aload 1 /* url */
            aload 3 /* copy */
            invokestatic org.postgresql.Driver.parseURL:(Ljava/lang/String;Ljava/util/Properties;)Ljava/util/Properties;
            astore 4 /* parse */
        start local 4 // java.util.Properties parse
         2: .line 492
            aload 4 /* parse */
            ifnull 4
         3: .line 493
            aload 4 /* parse */
            astore 3 /* copy */
         4: .line 496
      StackMap locals: java.util.Properties java.util.Properties
      StackMap stack:
            invokestatic org.postgresql.PGProperty.values:()[Lorg/postgresql/PGProperty;
            astore 5 /* knownProperties */
        start local 5 // org.postgresql.PGProperty[] knownProperties
         5: .line 497
            aload 5 /* knownProperties */
            arraylength
            anewarray java.sql.DriverPropertyInfo
            astore 6 /* props */
        start local 6 // java.sql.DriverPropertyInfo[] props
         6: .line 498
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         7: goto 10
         8: .line 499
      StackMap locals: org.postgresql.PGProperty[] java.sql.DriverPropertyInfo[] int
      StackMap stack:
            aload 6 /* props */
            iload 7 /* i */
            aload 5 /* knownProperties */
            iload 7 /* i */
            aaload
            aload 3 /* copy */
            invokevirtual org.postgresql.PGProperty.toDriverPropertyInfo:(Ljava/util/Properties;)Ljava/sql/DriverPropertyInfo;
            aastore
         9: .line 498
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 7 /* i */
            aload 6 /* props */
            arraylength
            if_icmplt 8
        end local 7 // int i
        11: .line 502
            aload 6 /* props */
            areturn
        end local 6 // java.sql.DriverPropertyInfo[] props
        end local 5 // org.postgresql.PGProperty[] knownProperties
        end local 4 // java.util.Properties parse
        end local 3 // java.util.Properties copy
        end local 2 // java.util.Properties info
        end local 1 // java.lang.String url
        end local 0 // org.postgresql.Driver this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   12     0             this  Lorg/postgresql/Driver;
            0   12     1              url  Ljava/lang/String;
            0   12     2             info  Ljava/util/Properties;
            1   12     3             copy  Ljava/util/Properties;
            2   12     4            parse  Ljava/util/Properties;
            5   12     5  knownProperties  [Lorg/postgresql/PGProperty;
            6   12     6            props  [Ljava/sql/DriverPropertyInfo;
            7   11     7                i  I
    MethodParameters:
      Name  Flags
      url   
      info  

  public int getMajorVersion();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.postgresql.Driver this
         0: .line 507
            bipush 42
            ireturn
        end local 0 // org.postgresql.Driver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/postgresql/Driver;

  public int getMinorVersion();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.postgresql.Driver this
         0: .line 512
            iconst_2
            ireturn
        end local 0 // org.postgresql.Driver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/postgresql/Driver;

  public static java.lang.String getVersion();
    descriptor: ()Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 523
            ldc "PostgreSQL JDBC Driver 42.2.6"
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

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

  public static java.util.Properties parseURL(java.lang.String, java.util.Properties);
    descriptor: (Ljava/lang/String;Ljava/util/Properties;)Ljava/util/Properties;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=17, args_size=2
        start local 0 // java.lang.String url
        start local 1 // java.util.Properties defaults
         0: .line 546
            new java.util.Properties
            dup
            aload 1 /* defaults */
            invokespecial java.util.Properties.<init>:(Ljava/util/Properties;)V
            astore 2 /* urlProps */
        start local 2 // java.util.Properties urlProps
         1: .line 548
            aload 0 /* url */
            astore 3 /* urlServer */
        start local 3 // java.lang.String urlServer
         2: .line 549
            ldc ""
            astore 4 /* urlArgs */
        start local 4 // java.lang.String urlArgs
         3: .line 551
            aload 0 /* url */
            bipush 63
            invokevirtual java.lang.String.indexOf:(I)I
            istore 5 /* qPos */
        start local 5 // int qPos
         4: .line 552
            iload 5 /* qPos */
            iconst_m1
            if_icmpeq 7
         5: .line 553
            aload 0 /* url */
            iconst_0
            iload 5 /* qPos */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 3 /* urlServer */
         6: .line 554
            aload 0 /* url */
            iload 5 /* qPos */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* urlArgs */
         7: .line 557
      StackMap locals: java.lang.String java.util.Properties java.util.Properties java.lang.String java.lang.String int
      StackMap stack:
            aload 3 /* urlServer */
            ldc "jdbc:postgresql:"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 10
         8: .line 558
            getstatic org.postgresql.Driver.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            ldc "JDBC URL must start with \"jdbc:postgresql:\" but was: {0}"
            aload 0 /* url */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
         9: .line 559
            aconst_null
            areturn
        10: .line 561
      StackMap locals:
      StackMap stack:
            aload 3 /* urlServer */
            ldc "jdbc:postgresql:"
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* urlServer */
        11: .line 563
            aload 3 /* urlServer */
            ldc "//"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 47
        12: .line 564
            aload 3 /* urlServer */
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* urlServer */
        13: .line 565
            aload 3 /* urlServer */
            bipush 47
            invokevirtual java.lang.String.indexOf:(I)I
            istore 6 /* slash */
        start local 6 // int slash
        14: .line 566
            iload 6 /* slash */
            iconst_m1
            if_icmpne 17
        15: .line 567
            getstatic org.postgresql.Driver.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
            ldc "JDBC URL must contain a / at the end of the host or port: {0}"
            aload 0 /* url */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
        16: .line 568
            aconst_null
            areturn
        17: .line 570
      StackMap locals: int
      StackMap stack:
            aload 2 /* urlProps */
            ldc "PGDBNAME"
            aload 3 /* urlServer */
            iload 6 /* slash */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokestatic org.postgresql.util.URLCoder.decode:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
        18: .line 572
            aload 3 /* urlServer */
            iconst_0
            iload 6 /* slash */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 7 /* addresses */
        start local 7 // java.lang.String[] addresses
        19: .line 573
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 8 /* hosts */
        start local 8 // java.lang.StringBuilder hosts
        20: .line 574
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 9 /* ports */
        start local 9 // java.lang.StringBuilder ports
        21: .line 575
            aload 7 /* addresses */
            dup
            astore 13
            arraylength
            istore 12
            iconst_0
            istore 11
            goto 41
      StackMap locals: java.lang.String java.util.Properties java.util.Properties java.lang.String java.lang.String int int java.lang.String[] java.lang.StringBuilder java.lang.StringBuilder top int int java.lang.String[]
      StackMap stack:
        22: aload 13
            iload 11
            aaload
            astore 10 /* address */
        start local 10 // java.lang.String address
        23: .line 576
            aload 10 /* address */
            bipush 58
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 14 /* portIdx */
        start local 14 // int portIdx
        24: .line 577
            iload 14 /* portIdx */
            iconst_m1
            if_icmpeq 36
            aload 10 /* address */
            bipush 93
            invokevirtual java.lang.String.lastIndexOf:(I)I
            iload 14 /* portIdx */
            if_icmpge 36
        25: .line 578
            aload 10 /* address */
            iload 14 /* portIdx */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 15 /* portStr */
        start local 15 // java.lang.String portStr
        26: .line 580
            aload 15 /* portStr */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 16 /* port */
        start local 16 // int port
        27: .line 581
            iload 16 /* port */
            iconst_1
            if_icmplt 28
            iload 16 /* port */
            ldc 65535
            if_icmple 33
        28: .line 582
      StackMap locals: java.lang.String java.util.Properties java.util.Properties java.lang.String java.lang.String int int java.lang.String[] java.lang.StringBuilder java.lang.StringBuilder java.lang.String int int java.lang.String[] int java.lang.String int
      StackMap stack:
            getstatic org.postgresql.Driver.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
            ldc "JDBC URL port: {0} not valid (1:65535) "
            aload 15 /* portStr */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
        29: .line 583
            aconst_null
            areturn
        end local 16 // int port
        30: .line 585
      StackMap locals: java.lang.String java.util.Properties java.util.Properties java.lang.String java.lang.String int int java.lang.String[] java.lang.StringBuilder java.lang.StringBuilder java.lang.String int int java.lang.String[] int java.lang.String
      StackMap stack: java.lang.NumberFormatException
            pop
        31: .line 586
            getstatic org.postgresql.Driver.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
            ldc "JDBC URL invalid port number: {0}"
            aload 15 /* portStr */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
        32: .line 587
            aconst_null
            areturn
        33: .line 589
      StackMap locals:
      StackMap stack:
            aload 9 /* ports */
            aload 15 /* portStr */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        34: .line 590
            aload 8 /* hosts */
            aload 10 /* address */
            iconst_0
            iload 14 /* portIdx */
            invokevirtual java.lang.String.subSequence:(II)Ljava/lang/CharSequence;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
            pop
        end local 15 // java.lang.String portStr
        35: .line 591
            goto 38
        36: .line 592
      StackMap locals:
      StackMap stack:
            aload 9 /* ports */
            ldc "5432"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        37: .line 593
            aload 8 /* hosts */
            aload 10 /* address */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        38: .line 595
      StackMap locals:
      StackMap stack:
            aload 9 /* ports */
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        39: .line 596
            aload 8 /* hosts */
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 14 // int portIdx
        end local 10 // java.lang.String address
        40: .line 575
            iinc 11 1
      StackMap locals: java.lang.String java.util.Properties java.util.Properties java.lang.String java.lang.String int int java.lang.String[] java.lang.StringBuilder java.lang.StringBuilder top int int java.lang.String[]
      StackMap stack:
        41: iload 11
            iload 12
            if_icmplt 22
        42: .line 598
            aload 9 /* ports */
            aload 9 /* ports */
            invokevirtual java.lang.StringBuilder.length:()I
            iconst_1
            isub
            invokevirtual java.lang.StringBuilder.setLength:(I)V
        43: .line 599
            aload 8 /* hosts */
            aload 8 /* hosts */
            invokevirtual java.lang.StringBuilder.length:()I
            iconst_1
            isub
            invokevirtual java.lang.StringBuilder.setLength:(I)V
        44: .line 600
            aload 2 /* urlProps */
            ldc "PGPORT"
            aload 9 /* ports */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
        45: .line 601
            aload 2 /* urlProps */
            ldc "PGHOST"
            aload 8 /* hosts */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
        end local 9 // java.lang.StringBuilder ports
        end local 8 // java.lang.StringBuilder hosts
        end local 7 // java.lang.String[] addresses
        end local 6 // int slash
        46: .line 602
            goto 53
        47: .line 607
      StackMap locals: java.lang.String java.util.Properties java.util.Properties java.lang.String java.lang.String int
      StackMap stack:
            aload 1 /* defaults */
            ifnull 48
            aload 1 /* defaults */
            ldc "PGPORT"
            invokevirtual java.util.Properties.containsKey:(Ljava/lang/Object;)Z
            ifne 49
        48: .line 608
      StackMap locals:
      StackMap stack:
            aload 2 /* urlProps */
            ldc "PGPORT"
            ldc "5432"
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
        49: .line 610
      StackMap locals:
      StackMap stack:
            aload 1 /* defaults */
            ifnull 50
            aload 1 /* defaults */
            ldc "PGHOST"
            invokevirtual java.util.Properties.containsKey:(Ljava/lang/Object;)Z
            ifne 51
        50: .line 611
      StackMap locals:
      StackMap stack:
            aload 2 /* urlProps */
            ldc "PGHOST"
            ldc "localhost"
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
        51: .line 613
      StackMap locals:
      StackMap stack:
            aload 1 /* defaults */
            ifnull 52
            aload 1 /* defaults */
            ldc "PGDBNAME"
            invokevirtual java.util.Properties.containsKey:(Ljava/lang/Object;)Z
            ifne 53
        52: .line 614
      StackMap locals:
      StackMap stack:
            aload 2 /* urlProps */
            ldc "PGDBNAME"
            aload 3 /* urlServer */
            invokestatic org.postgresql.util.URLCoder.decode:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
        53: .line 619
      StackMap locals:
      StackMap stack:
            aload 4 /* urlArgs */
            ldc "&"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 6 /* args */
        start local 6 // java.lang.String[] args
        54: .line 620
            aload 6 /* args */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 64
      StackMap locals: java.lang.String java.util.Properties java.util.Properties java.lang.String java.lang.String int java.lang.String[] top int int java.lang.String[]
      StackMap stack:
        55: aload 10
            iload 8
            aaload
            astore 7 /* token */
        start local 7 // java.lang.String token
        56: .line 621
            aload 7 /* token */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 58
        57: .line 622
            goto 63
        58: .line 624
      StackMap locals: java.lang.String java.util.Properties java.util.Properties java.lang.String java.lang.String int java.lang.String[] java.lang.String int int java.lang.String[]
      StackMap stack:
            aload 7 /* token */
            bipush 61
            invokevirtual java.lang.String.indexOf:(I)I
            istore 11 /* pos */
        start local 11 // int pos
        59: .line 625
            iload 11 /* pos */
            iconst_m1
            if_icmpne 62
        60: .line 626
            aload 2 /* urlProps */
            aload 7 /* token */
            ldc ""
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
        61: .line 627
            goto 63
        62: .line 628
      StackMap locals: int
      StackMap stack:
            aload 2 /* urlProps */
            aload 7 /* token */
            iconst_0
            iload 11 /* pos */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            aload 7 /* token */
            iload 11 /* pos */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokestatic org.postgresql.util.URLCoder.decode:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
        end local 11 // int pos
        end local 7 // java.lang.String token
        63: .line 620
      StackMap locals: java.lang.String java.util.Properties java.util.Properties java.lang.String java.lang.String int java.lang.String[] top int int java.lang.String[]
      StackMap stack:
            iinc 8 1
      StackMap locals:
      StackMap stack:
        64: iload 8
            iload 9
            if_icmplt 55
        65: .line 632
            aload 2 /* urlProps */
            areturn
        end local 6 // java.lang.String[] args
        end local 5 // int qPos
        end local 4 // java.lang.String urlArgs
        end local 3 // java.lang.String urlServer
        end local 2 // java.util.Properties urlProps
        end local 1 // java.util.Properties defaults
        end local 0 // java.lang.String url
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   66     0        url  Ljava/lang/String;
            0   66     1   defaults  Ljava/util/Properties;
            1   66     2   urlProps  Ljava/util/Properties;
            2   66     3  urlServer  Ljava/lang/String;
            3   66     4    urlArgs  Ljava/lang/String;
            4   66     5       qPos  I
           14   46     6      slash  I
           19   46     7  addresses  [Ljava/lang/String;
           20   46     8      hosts  Ljava/lang/StringBuilder;
           21   46     9      ports  Ljava/lang/StringBuilder;
           23   40    10    address  Ljava/lang/String;
           24   40    14    portIdx  I
           26   35    15    portStr  Ljava/lang/String;
           27   30    16       port  I
           54   66     6       args  [Ljava/lang/String;
           56   63     7      token  Ljava/lang/String;
           59   63    11        pos  I
      Exception table:
        from    to  target  type
          26    29      30  Class java.lang.NumberFormatException
    MethodParameters:
          Name  Flags
      url       
      defaults  

  private static org.postgresql.util.HostSpec[] hostSpecs(java.util.Properties);
    descriptor: (Ljava/util/Properties;)[Lorg/postgresql/util/HostSpec;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=1
        start local 0 // java.util.Properties props
         0: .line 639
            aload 0 /* props */
            ldc "PGHOST"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 1 /* hosts */
        start local 1 // java.lang.String[] hosts
         1: .line 640
            aload 0 /* props */
            ldc "PGPORT"
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 2 /* ports */
        start local 2 // java.lang.String[] ports
         2: .line 641
            aload 1 /* hosts */
            arraylength
            anewarray org.postgresql.util.HostSpec
            astore 3 /* hostSpecs */
        start local 3 // org.postgresql.util.HostSpec[] hostSpecs
         3: .line 642
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 7
         5: .line 643
      StackMap locals: java.util.Properties java.lang.String[] java.lang.String[] org.postgresql.util.HostSpec[] int
      StackMap stack:
            aload 3 /* hostSpecs */
            iload 4 /* i */
            new org.postgresql.util.HostSpec
            dup
            aload 1 /* hosts */
            iload 4 /* i */
            aaload
            aload 2 /* ports */
            iload 4 /* i */
            aaload
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            invokespecial org.postgresql.util.HostSpec.<init>:(Ljava/lang/String;I)V
            aastore
         6: .line 642
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            aload 3 /* hostSpecs */
            arraylength
            if_icmplt 5
        end local 4 // int i
         8: .line 645
            aload 3 /* hostSpecs */
            areturn
        end local 3 // org.postgresql.util.HostSpec[] hostSpecs
        end local 2 // java.lang.String[] ports
        end local 1 // java.lang.String[] hosts
        end local 0 // java.util.Properties props
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0      props  Ljava/util/Properties;
            1    9     1      hosts  [Ljava/lang/String;
            2    9     2      ports  [Ljava/lang/String;
            3    9     3  hostSpecs  [Lorg/postgresql/util/HostSpec;
            4    8     4          i  I
    MethodParameters:
       Name  Flags
      props  

  private static java.lang.String user(java.util.Properties);
    descriptor: (Ljava/util/Properties;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.Properties props
         0: .line 652
            aload 0 /* props */
            ldc "user"
            ldc ""
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // java.util.Properties props
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  props  Ljava/util/Properties;
    MethodParameters:
       Name  Flags
      props  

  private static java.lang.String database(java.util.Properties);
    descriptor: (Ljava/util/Properties;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.Properties props
         0: .line 659
            aload 0 /* props */
            ldc "PGDBNAME"
            ldc ""
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // java.util.Properties props
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  props  Ljava/util/Properties;
    MethodParameters:
       Name  Flags
      props  

  private static long timeout(java.util.Properties);
    descriptor: (Ljava/util/Properties;)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.util.Properties props
         0: .line 666
            getstatic org.postgresql.PGProperty.LOGIN_TIMEOUT:Lorg/postgresql/PGProperty;
            aload 0 /* props */
            invokevirtual org.postgresql.PGProperty.get:(Ljava/util/Properties;)Ljava/lang/String;
            astore 1 /* timeout */
        start local 1 // java.lang.String timeout
         1: .line 667
            aload 1 /* timeout */
            ifnull 6
         2: .line 669
            aload 1 /* timeout */
            invokestatic java.lang.Float.parseFloat:(Ljava/lang/String;)F
            ldc 1000.0
            fmul
            f2l
         3: lreturn
         4: .line 670
      StackMap locals: java.util.Properties java.lang.String
      StackMap stack: java.lang.NumberFormatException
            pop
         5: .line 671
            getstatic org.postgresql.Driver.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
            ldc "Couldn't parse loginTimeout value: {0}"
            aload 1 /* timeout */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 674
      StackMap locals:
      StackMap stack:
            invokestatic java.sql.DriverManager.getLoginTimeout:()I
            i2l
            ldc 1000
            lmul
            lreturn
        end local 1 // java.lang.String timeout
        end local 0 // java.util.Properties props
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0    props  Ljava/util/Properties;
            1    7     1  timeout  Ljava/lang/String;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NumberFormatException
    MethodParameters:
       Name  Flags
      props  

  public static java.sql.SQLFeatureNotSupportedException notImplemented(java.lang.Class<?>, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;)Ljava/sql/SQLFeatureNotSupportedException;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=2, args_size=2
        start local 0 // java.lang.Class callClass
        start local 1 // java.lang.String functionName
         0: .line 690
            new java.sql.SQLFeatureNotSupportedException
            dup
         1: .line 691
            ldc "Method {0} is not yet implemented."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            new java.lang.StringBuilder
            dup
            aload 0 /* callClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* functionName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
            invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         2: .line 692
            getstatic org.postgresql.util.PSQLState.NOT_IMPLEMENTED:Lorg/postgresql/util/PSQLState;
            invokevirtual org.postgresql.util.PSQLState.getState:()Ljava/lang/String;
         3: .line 690
            invokespecial java.sql.SQLFeatureNotSupportedException.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            areturn
        end local 1 // java.lang.String functionName
        end local 0 // java.lang.Class callClass
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0     callClass  Ljava/lang/Class<*>;
            0    4     1  functionName  Ljava/lang/String;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;)Ljava/sql/SQLFeatureNotSupportedException;
    MethodParameters:
              Name  Flags
      callClass     
      functionName  

  public java.util.logging.Logger getParentLogger();
    descriptor: ()Ljava/util/logging/Logger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.postgresql.Driver this
         0: .line 698
            getstatic org.postgresql.Driver.PARENT_LOGGER:Ljava/util/logging/Logger;
            areturn
        end local 0 // org.postgresql.Driver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/postgresql/Driver;

  public static org.postgresql.util.SharedTimer getSharedTimer();
    descriptor: ()Lorg/postgresql/util/SharedTimer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 703
            getstatic org.postgresql.Driver.sharedTimer:Lorg/postgresql/util/SharedTimer;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void register();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 715
            invokestatic org.postgresql.Driver.isRegistered:()Z
            ifeq 4
         1: .line 716
            new java.lang.IllegalStateException
            dup
         2: .line 717
            ldc "Driver is already registered. It can only be registered once."
         3: .line 716
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 719
      StackMap locals:
      StackMap stack:
            new org.postgresql.Driver
            dup
            invokespecial org.postgresql.Driver.<init>:()V
            astore 0 /* registeredDriver */
        start local 0 // org.postgresql.Driver registeredDriver
         5: .line 720
            aload 0 /* registeredDriver */
            invokestatic java.sql.DriverManager.registerDriver:(Ljava/sql/Driver;)V
         6: .line 721
            aload 0 /* registeredDriver */
            putstatic org.postgresql.Driver.registeredDriver:Lorg/postgresql/Driver;
         7: .line 722
            return
        end local 0 // org.postgresql.Driver registeredDriver
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            5    8     0  registeredDriver  Lorg/postgresql/Driver;
    Exceptions:
      throws java.sql.SQLException

  public static void deregister();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 733
            invokestatic org.postgresql.Driver.isRegistered:()Z
            ifne 4
         1: .line 734
            new java.lang.IllegalStateException
            dup
         2: .line 735
            ldc "Driver is not registered (or it has not been registered using Driver.register() method)"
         3: .line 734
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 737
      StackMap locals:
      StackMap stack:
            getstatic org.postgresql.Driver.registeredDriver:Lorg/postgresql/Driver;
            invokestatic java.sql.DriverManager.deregisterDriver:(Ljava/sql/Driver;)V
         5: .line 738
            aconst_null
            putstatic org.postgresql.Driver.registeredDriver:Lorg/postgresql/Driver;
         6: .line 739
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.sql.SQLException

  public static boolean isRegistered();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 745
            getstatic org.postgresql.Driver.registeredDriver:Lorg/postgresql/Driver;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "Driver.java"
NestMembers:
  org.postgresql.Driver$1  org.postgresql.Driver$ConnectThread
InnerClasses:
  org.postgresql.Driver$1
  private ConnectThread = org.postgresql.Driver$ConnectThread of org.postgresql.Driver