public class org.h2.tools.Server extends org.h2.util.Tool implements java.lang.Runnable, org.h2.server.ShutdownHandler
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.tools.Server
  super_class: org.h2.util.Tool
{
  private final org.h2.server.Service service;
    descriptor: Lorg/h2/server/Service;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.h2.tools.Server web;
    descriptor: Lorg/h2/tools/Server;
    flags: (0x0002) ACC_PRIVATE

  private org.h2.tools.Server tcp;
    descriptor: Lorg/h2/tools/Server;
    flags: (0x0002) ACC_PRIVATE

  private org.h2.tools.Server pg;
    descriptor: Lorg/h2/tools/Server;
    flags: (0x0002) ACC_PRIVATE

  private org.h2.server.ShutdownHandler shutdownHandler;
    descriptor: Lorg/h2/server/ShutdownHandler;
    flags: (0x0002) ACC_PRIVATE

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

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.tools.Server this
         0: .line 35
            aload 0 /* this */
            invokespecial org.h2.util.Tool.<init>:()V
         1: .line 37
            aload 0 /* this */
            aconst_null
            putfield org.h2.tools.Server.service:Lorg/h2/server/Service;
         2: .line 38
            return
        end local 0 // org.h2.tools.Server this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/h2/tools/Server;

  public void <init>(org.h2.server.Service, java.lang.String[]);
    descriptor: (Lorg/h2/server/Service;[Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.h2.tools.Server this
        start local 1 // org.h2.server.Service service
        start local 2 // java.lang.String[] args
         0: .line 46
            aload 0 /* this */
            invokespecial org.h2.util.Tool.<init>:()V
         1: .line 47
            aload 0 /* this */
            aload 2 /* args */
            invokevirtual org.h2.tools.Server.verifyArgs:([Ljava/lang/String;)V
         2: .line 48
            aload 0 /* this */
            aload 1 /* service */
            putfield org.h2.tools.Server.service:Lorg/h2/server/Service;
         3: .line 50
            aload 1 /* service */
            aload 2 /* args */
            invokeinterface org.h2.server.Service.init:([Ljava/lang/String;)V
         4: .line 51
            goto 7
      StackMap locals: org.h2.tools.Server org.h2.server.Service java.lang.String[]
      StackMap stack: java.lang.Exception
         5: astore 3 /* e */
        start local 3 // java.lang.Exception e
         6: .line 52
            aload 3 /* e */
            invokestatic org.h2.message.DbException.toSQLException:(Ljava/lang/Throwable;)Ljava/sql/SQLException;
            athrow
        end local 3 // java.lang.Exception e
         7: .line 54
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String[] args
        end local 1 // org.h2.server.Service service
        end local 0 // org.h2.tools.Server this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/h2/tools/Server;
            0    8     1  service  Lorg/h2/server/Service;
            0    8     2     args  [Ljava/lang/String;
            6    7     3        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.Exception
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
         Name  Flags
      service  
      args     

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 122
            new org.h2.tools.Server
            dup
            invokespecial org.h2.tools.Server.<init>:()V
            aload 0 /* args */
            invokevirtual org.h2.tools.Server.runTool:([Ljava/lang/String;)V
         1: .line 123
            return
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  args  [Ljava/lang/String;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      args  

  private void verifyArgs(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.h2.tools.Server this
        start local 1 // java.lang.String[] args
         0: .line 126
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 79
         2: .line 127
      StackMap locals: int
      StackMap stack:
            aload 1 /* args */
            iload 2 /* i */
            aaload
            astore 3 /* arg */
        start local 3 // java.lang.String arg
         3: .line 128
            aload 3 /* arg */
            ifnull 78
         4: .line 129
            ldc "-?"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 78
            ldc "-help"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 78
         5: .line 131
            aload 3 /* arg */
            ldc "-web"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 18
         6: .line 132
            ldc "-web"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 78
         7: .line 134
            ldc "-webAllowOthers"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 78
         8: .line 136
            ldc "-webDaemon"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 78
         9: .line 138
            ldc "-webSSL"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 78
        10: .line 140
            ldc "-webPort"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        11: .line 141
            iinc 2 /* i */ 1
        12: .line 142
            goto 78
      StackMap locals: java.lang.String
      StackMap stack:
        13: ldc "-webAdminPassword"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        14: .line 143
            iinc 2 /* i */ 2
        15: .line 144
            goto 78
        16: .line 145
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* arg */
            invokevirtual org.h2.tools.Server.throwUnsupportedOption:(Ljava/lang/String;)Ljava/sql/SQLException;
            pop
        17: .line 147
            goto 78
      StackMap locals:
      StackMap stack:
        18: ldc "-browser"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 78
        19: .line 149
            aload 3 /* arg */
            ldc "-tcp"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 36
        20: .line 150
            ldc "-tcp"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 78
        21: .line 152
            ldc "-tcpAllowOthers"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 78
        22: .line 154
            ldc "-tcpDaemon"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 78
        23: .line 156
            ldc "-tcpSSL"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 78
        24: .line 158
            ldc "-tcpPort"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 27
        25: .line 159
            iinc 2 /* i */ 1
        26: .line 160
            goto 78
      StackMap locals:
      StackMap stack:
        27: ldc "-tcpPassword"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 30
        28: .line 161
            iinc 2 /* i */ 1
        29: .line 162
            goto 78
      StackMap locals:
      StackMap stack:
        30: ldc "-tcpShutdown"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 33
        31: .line 163
            iinc 2 /* i */ 1
        32: .line 164
            goto 78
      StackMap locals:
      StackMap stack:
        33: ldc "-tcpShutdownForce"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 78
        34: .line 167
            aload 0 /* this */
            aload 3 /* arg */
            invokevirtual org.h2.tools.Server.throwUnsupportedOption:(Ljava/lang/String;)Ljava/sql/SQLException;
            pop
        35: .line 169
            goto 78
      StackMap locals:
      StackMap stack:
        36: aload 3 /* arg */
            ldc "-pg"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 45
        37: .line 170
            ldc "-pg"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 78
        38: .line 172
            ldc "-pgAllowOthers"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 78
        39: .line 174
            ldc "-pgDaemon"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 78
        40: .line 176
            ldc "-pgPort"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 43
        41: .line 177
            iinc 2 /* i */ 1
        42: .line 178
            goto 78
        43: .line 179
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* arg */
            invokevirtual org.h2.tools.Server.throwUnsupportedOption:(Ljava/lang/String;)Ljava/sql/SQLException;
            pop
        44: .line 181
            goto 78
      StackMap locals:
      StackMap stack:
        45: aload 3 /* arg */
            ldc "-ftp"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 64
        46: .line 182
            ldc "-ftpPort"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 49
        47: .line 183
            iinc 2 /* i */ 1
        48: .line 184
            goto 78
      StackMap locals:
      StackMap stack:
        49: ldc "-ftpDir"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 52
        50: .line 185
            iinc 2 /* i */ 1
        51: .line 186
            goto 78
      StackMap locals:
      StackMap stack:
        52: ldc "-ftpRead"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 55
        53: .line 187
            iinc 2 /* i */ 1
        54: .line 188
            goto 78
      StackMap locals:
      StackMap stack:
        55: ldc "-ftpWrite"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 58
        56: .line 189
            iinc 2 /* i */ 1
        57: .line 190
            goto 78
      StackMap locals:
      StackMap stack:
        58: ldc "-ftpWritePassword"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 61
        59: .line 191
            iinc 2 /* i */ 1
        60: .line 192
            goto 78
      StackMap locals:
      StackMap stack:
        61: ldc "-ftpTask"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 78
        62: .line 195
            aload 0 /* this */
            aload 3 /* arg */
            invokevirtual org.h2.tools.Server.throwUnsupportedOption:(Ljava/lang/String;)Ljava/sql/SQLException;
            pop
        63: .line 197
            goto 78
      StackMap locals:
      StackMap stack:
        64: ldc "-properties"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 67
        65: .line 198
            iinc 2 /* i */ 1
        66: .line 199
            goto 78
      StackMap locals:
      StackMap stack:
        67: ldc "-trace"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 78
        68: .line 201
            ldc "-ifExists"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 78
        69: .line 203
            ldc "-ifNotExists"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 78
        70: .line 205
            ldc "-baseDir"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 73
        71: .line 206
            iinc 2 /* i */ 1
        72: .line 207
            goto 78
      StackMap locals:
      StackMap stack:
        73: ldc "-key"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 76
        74: .line 208
            iinc 2 /* i */ 2
        75: .line 209
            goto 78
      StackMap locals:
      StackMap stack:
        76: ldc "-tool"
            aload 3 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 78
        77: .line 212
            aload 0 /* this */
            aload 3 /* arg */
            invokevirtual org.h2.tools.Server.throwUnsupportedOption:(Ljava/lang/String;)Ljava/sql/SQLException;
            pop
        end local 3 // java.lang.String arg
        78: .line 126
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        79: aload 1 /* args */
            ifnull 80
            iload 2 /* i */
            aload 1 /* args */
            arraylength
            if_icmplt 2
        end local 2 // int i
        80: .line 215
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String[] args
        end local 0 // org.h2.tools.Server this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   81     0  this  Lorg/h2/tools/Server;
            0   81     1  args  [Ljava/lang/String;
            1   80     2     i  I
            3   78     3   arg  Ljava/lang/String;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      args  

  public void runTool(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=13, args_size=2
        start local 0 // org.h2.tools.Server this
        start local 1 // java.lang.String[] args
         0: .line 219
            iconst_0
            istore 2 /* tcpStart */
        start local 2 // boolean tcpStart
         1: iconst_0
            istore 3 /* pgStart */
        start local 3 // boolean pgStart
         2: iconst_0
            istore 4 /* webStart */
        start local 4 // boolean webStart
         3: .line 220
            iconst_0
            istore 5 /* browserStart */
        start local 5 // boolean browserStart
         4: .line 221
            iconst_0
            istore 6 /* tcpShutdown */
        start local 6 // boolean tcpShutdown
         5: iconst_0
            istore 7 /* tcpShutdownForce */
        start local 7 // boolean tcpShutdownForce
         6: .line 222
            ldc ""
            astore 8 /* tcpPassword */
        start local 8 // java.lang.String tcpPassword
         7: .line 223
            ldc ""
            astore 9 /* tcpShutdownServer */
        start local 9 // java.lang.String tcpShutdownServer
         8: .line 224
            iconst_1
            istore 10 /* startDefaultServers */
        start local 10 // boolean startDefaultServers
         9: .line 225
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        10: goto 86
        11: .line 226
      StackMap locals: org.h2.tools.Server java.lang.String[] int int int int int int java.lang.String java.lang.String int int
      StackMap stack:
            aload 1 /* args */
            iload 11 /* i */
            aaload
            astore 12 /* arg */
        start local 12 // java.lang.String arg
        12: .line 227
            aload 12 /* arg */
            ifnull 85
        13: .line 228
            ldc "-?"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 14
            ldc "-help"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 16
        14: .line 229
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.tools.Server.showUsage:()V
        15: .line 230
            return
        16: .line 231
      StackMap locals:
      StackMap stack:
            aload 12 /* arg */
            ldc "-web"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 32
        17: .line 232
            ldc "-web"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
        18: .line 233
            iconst_0
            istore 10 /* startDefaultServers */
        19: .line 234
            iconst_1
            istore 4 /* webStart */
        20: .line 235
            goto 85
      StackMap locals:
      StackMap stack:
        21: ldc "-webAllowOthers"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 85
        22: .line 237
            ldc "-webDaemon"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 85
        23: .line 239
            ldc "-webSSL"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 85
        24: .line 241
            ldc "-webPort"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 27
        25: .line 242
            iinc 11 /* i */ 1
        26: .line 243
            goto 85
      StackMap locals:
      StackMap stack:
        27: ldc "-webAdminPassword"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 30
        28: .line 244
            iinc 11 /* i */ 2
        29: .line 245
            goto 85
        30: .line 246
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 12 /* arg */
            invokevirtual org.h2.tools.Server.showUsageAndThrowUnsupportedOption:(Ljava/lang/String;)Ljava/sql/SQLException;
            pop
        31: .line 248
            goto 85
      StackMap locals:
      StackMap stack:
        32: ldc "-browser"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 36
        33: .line 249
            iconst_0
            istore 10 /* startDefaultServers */
        34: .line 250
            iconst_1
            istore 5 /* browserStart */
        35: .line 251
            goto 85
      StackMap locals:
      StackMap stack:
        36: aload 12 /* arg */
            ldc "-tcp"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 60
        37: .line 252
            ldc "-tcp"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 41
        38: .line 253
            iconst_0
            istore 10 /* startDefaultServers */
        39: .line 254
            iconst_1
            istore 2 /* tcpStart */
        40: .line 255
            goto 85
      StackMap locals:
      StackMap stack:
        41: ldc "-tcpAllowOthers"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 85
        42: .line 257
            ldc "-tcpDaemon"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 85
        43: .line 259
            ldc "-tcpSSL"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 85
        44: .line 261
            ldc "-tcpPort"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 47
        45: .line 262
            iinc 11 /* i */ 1
        46: .line 263
            goto 85
      StackMap locals:
      StackMap stack:
        47: ldc "-tcpPassword"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 50
        48: .line 264
            aload 1 /* args */
            iinc 11 /* i */ 1
            iload 11 /* i */
            aaload
            astore 8 /* tcpPassword */
        49: .line 265
            goto 85
      StackMap locals:
      StackMap stack:
        50: ldc "-tcpShutdown"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 55
        51: .line 266
            iconst_0
            istore 10 /* startDefaultServers */
        52: .line 267
            iconst_1
            istore 6 /* tcpShutdown */
        53: .line 268
            aload 1 /* args */
            iinc 11 /* i */ 1
            iload 11 /* i */
            aaload
            astore 9 /* tcpShutdownServer */
        54: .line 269
            goto 85
      StackMap locals:
      StackMap stack:
        55: ldc "-tcpShutdownForce"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 58
        56: .line 270
            iconst_1
            istore 7 /* tcpShutdownForce */
        57: .line 271
            goto 85
        58: .line 272
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 12 /* arg */
            invokevirtual org.h2.tools.Server.showUsageAndThrowUnsupportedOption:(Ljava/lang/String;)Ljava/sql/SQLException;
            pop
        59: .line 274
            goto 85
      StackMap locals:
      StackMap stack:
        60: aload 12 /* arg */
            ldc "-pg"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 72
        61: .line 275
            ldc "-pg"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 65
        62: .line 276
            iconst_0
            istore 10 /* startDefaultServers */
        63: .line 277
            iconst_1
            istore 3 /* pgStart */
        64: .line 278
            goto 85
      StackMap locals:
      StackMap stack:
        65: ldc "-pgAllowOthers"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 85
        66: .line 280
            ldc "-pgDaemon"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 85
        67: .line 282
            ldc "-pgPort"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 70
        68: .line 283
            iinc 11 /* i */ 1
        69: .line 284
            goto 85
        70: .line 285
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 12 /* arg */
            invokevirtual org.h2.tools.Server.showUsageAndThrowUnsupportedOption:(Ljava/lang/String;)Ljava/sql/SQLException;
            pop
        71: .line 287
            goto 85
      StackMap locals:
      StackMap stack:
        72: ldc "-properties"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 75
        73: .line 288
            iinc 11 /* i */ 1
        74: .line 289
            goto 85
      StackMap locals:
      StackMap stack:
        75: ldc "-trace"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 85
        76: .line 291
            ldc "-ifExists"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 85
        77: .line 293
            ldc "-ifNotExists"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 85
        78: .line 295
            ldc "-baseDir"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 81
        79: .line 296
            iinc 11 /* i */ 1
        80: .line 297
            goto 85
      StackMap locals:
      StackMap stack:
        81: ldc "-key"
            aload 12 /* arg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 84
        82: .line 298
            iinc 11 /* i */ 2
        83: .line 299
            goto 85
        84: .line 300
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 12 /* arg */
            invokevirtual org.h2.tools.Server.showUsageAndThrowUnsupportedOption:(Ljava/lang/String;)Ljava/sql/SQLException;
            pop
        end local 12 // java.lang.String arg
        85: .line 225
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        86: aload 1 /* args */
            ifnull 87
            iload 11 /* i */
            aload 1 /* args */
            arraylength
            if_icmplt 11
        end local 11 // int i
        87: .line 303
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* args */
            invokevirtual org.h2.tools.Server.verifyArgs:([Ljava/lang/String;)V
        88: .line 304
            iload 10 /* startDefaultServers */
            ifeq 93
        89: .line 305
            iconst_1
            istore 2 /* tcpStart */
        90: .line 306
            iconst_1
            istore 3 /* pgStart */
        91: .line 307
            iconst_1
            istore 4 /* webStart */
        92: .line 308
            iconst_1
            istore 5 /* browserStart */
        93: .line 311
      StackMap locals:
      StackMap stack:
            iload 6 /* tcpShutdown */
            ifeq 98
        94: .line 312
            aload 0 /* this */
            getfield org.h2.tools.Server.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Shutting down TCP Server at "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* tcpShutdownServer */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        95: .line 313
            aload 9 /* tcpShutdownServer */
            aload 8 /* tcpPassword */
        96: .line 314
            iload 7 /* tcpShutdownForce */
            iconst_0
        97: .line 313
            invokestatic org.h2.tools.Server.shutdownTcpServer:(Ljava/lang/String;Ljava/lang/String;ZZ)V
        98: .line 317
      StackMap locals:
      StackMap stack:
            iload 2 /* tcpStart */
            ifeq 103
        99: .line 318
            aload 0 /* this */
            aload 1 /* args */
            invokestatic org.h2.tools.Server.createTcpServer:([Ljava/lang/String;)Lorg/h2/tools/Server;
            putfield org.h2.tools.Server.tcp:Lorg/h2/tools/Server;
       100: .line 319
            aload 0 /* this */
            getfield org.h2.tools.Server.tcp:Lorg/h2/tools/Server;
            invokevirtual org.h2.tools.Server.start:()Lorg/h2/tools/Server;
            pop
       101: .line 320
            aload 0 /* this */
            getfield org.h2.tools.Server.out:Ljava/io/PrintStream;
            aload 0 /* this */
            getfield org.h2.tools.Server.tcp:Lorg/h2/tools/Server;
            invokevirtual org.h2.tools.Server.getStatus:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       102: .line 321
            aload 0 /* this */
            getfield org.h2.tools.Server.tcp:Lorg/h2/tools/Server;
            aload 0 /* this */
            invokevirtual org.h2.tools.Server.setShutdownHandler:(Lorg/h2/server/ShutdownHandler;)V
       103: .line 323
      StackMap locals:
      StackMap stack:
            iload 3 /* pgStart */
            ifeq 107
       104: .line 324
            aload 0 /* this */
            aload 1 /* args */
            invokestatic org.h2.tools.Server.createPgServer:([Ljava/lang/String;)Lorg/h2/tools/Server;
            putfield org.h2.tools.Server.pg:Lorg/h2/tools/Server;
       105: .line 325
            aload 0 /* this */
            getfield org.h2.tools.Server.pg:Lorg/h2/tools/Server;
            invokevirtual org.h2.tools.Server.start:()Lorg/h2/tools/Server;
            pop
       106: .line 326
            aload 0 /* this */
            getfield org.h2.tools.Server.out:Ljava/io/PrintStream;
            aload 0 /* this */
            getfield org.h2.tools.Server.pg:Lorg/h2/tools/Server;
            invokevirtual org.h2.tools.Server.getStatus:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       107: .line 328
      StackMap locals:
      StackMap stack:
            iload 4 /* webStart */
            ifeq 123
       108: .line 329
            aload 0 /* this */
            aload 1 /* args */
            invokestatic org.h2.tools.Server.createWebServer:([Ljava/lang/String;)Lorg/h2/tools/Server;
            putfield org.h2.tools.Server.web:Lorg/h2/tools/Server;
       109: .line 330
            aload 0 /* this */
            getfield org.h2.tools.Server.web:Lorg/h2/tools/Server;
            aload 0 /* this */
            invokevirtual org.h2.tools.Server.setShutdownHandler:(Lorg/h2/server/ShutdownHandler;)V
       110: .line 331
            aconst_null
            astore 11 /* result */
        start local 11 // java.sql.SQLException result
       111: .line 333
            aload 0 /* this */
            getfield org.h2.tools.Server.web:Lorg/h2/tools/Server;
            invokevirtual org.h2.tools.Server.start:()Lorg/h2/tools/Server;
            pop
       112: .line 334
            goto 115
      StackMap locals: org.h2.tools.Server java.lang.String[] int int int int int int java.lang.String java.lang.String int java.sql.SQLException
      StackMap stack: java.lang.Exception
       113: astore 12 /* e */
        start local 12 // java.lang.Exception e
       114: .line 335
            aload 12 /* e */
            invokestatic org.h2.message.DbException.toSQLException:(Ljava/lang/Throwable;)Ljava/sql/SQLException;
            astore 11 /* result */
        end local 12 // java.lang.Exception e
       115: .line 337
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.tools.Server.out:Ljava/io/PrintStream;
            aload 0 /* this */
            getfield org.h2.tools.Server.web:Lorg/h2/tools/Server;
            invokevirtual org.h2.tools.Server.getStatus:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       116: .line 341
            iload 5 /* browserStart */
            ifeq 121
       117: .line 343
            aload 0 /* this */
            getfield org.h2.tools.Server.web:Lorg/h2/tools/Server;
            invokevirtual org.h2.tools.Server.getURL:()Ljava/lang/String;
            invokestatic org.h2.tools.Server.openBrowser:(Ljava/lang/String;)V
       118: .line 344
            goto 121
      StackMap locals:
      StackMap stack: java.lang.Exception
       119: astore 12 /* e */
        start local 12 // java.lang.Exception e
       120: .line 345
            aload 0 /* this */
            getfield org.h2.tools.Server.out:Ljava/io/PrintStream;
            aload 12 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 12 // java.lang.Exception e
       121: .line 348
      StackMap locals:
      StackMap stack:
            aload 11 /* result */
            ifnull 129
       122: .line 349
            aload 11 /* result */
            athrow
        end local 11 // java.sql.SQLException result
       123: .line 351
      StackMap locals:
      StackMap stack:
            iload 5 /* browserStart */
            ifeq 129
       124: .line 352
            aload 0 /* this */
            getfield org.h2.tools.Server.out:Ljava/io/PrintStream;
            ldc "The browser can only start if a web server is started (-web)"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       125: .line 354
            goto 129
      StackMap locals:
      StackMap stack: java.sql.SQLException
       126: astore 11 /* e */
        start local 11 // java.sql.SQLException e
       127: .line 355
            aload 0 /* this */
            invokevirtual org.h2.tools.Server.stopAll:()V
       128: .line 356
            aload 11 /* e */
            athrow
        end local 11 // java.sql.SQLException e
       129: .line 358
      StackMap locals:
      StackMap stack:
            return
        end local 10 // boolean startDefaultServers
        end local 9 // java.lang.String tcpShutdownServer
        end local 8 // java.lang.String tcpPassword
        end local 7 // boolean tcpShutdownForce
        end local 6 // boolean tcpShutdown
        end local 5 // boolean browserStart
        end local 4 // boolean webStart
        end local 3 // boolean pgStart
        end local 2 // boolean tcpStart
        end local 1 // java.lang.String[] args
        end local 0 // org.h2.tools.Server this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0  130     0                 this  Lorg/h2/tools/Server;
            0  130     1                 args  [Ljava/lang/String;
            1  130     2             tcpStart  Z
            2  130     3              pgStart  Z
            3  130     4             webStart  Z
            4  130     5         browserStart  Z
            5  130     6          tcpShutdown  Z
            6  130     7     tcpShutdownForce  Z
            7  130     8          tcpPassword  Ljava/lang/String;
            8  130     9    tcpShutdownServer  Ljava/lang/String;
            9  130    10  startDefaultServers  Z
           10   87    11                    i  I
           12   85    12                  arg  Ljava/lang/String;
          111  123    11               result  Ljava/sql/SQLException;
          114  115    12                    e  Ljava/lang/Exception;
          120  121    12                    e  Ljava/lang/Exception;
          127  129    11                    e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
         111   112     113  Class java.lang.Exception
         117   118     119  Class java.lang.Exception
          98   125     126  Class java.sql.SQLException
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      args  

  public static void shutdownTcpServer(java.lang.String, java.lang.String, boolean, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;ZZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.lang.String url
        start local 1 // java.lang.String password
        start local 2 // boolean force
        start local 3 // boolean all
         0: .line 381
            aload 0 /* url */
            aload 1 /* password */
            iload 2 /* force */
            iload 3 /* all */
            invokestatic org.h2.server.TcpServer.shutdown:(Ljava/lang/String;Ljava/lang/String;ZZ)V
         1: .line 382
            return
        end local 3 // boolean all
        end local 2 // boolean force
        end local 1 // java.lang.String password
        end local 0 // java.lang.String url
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0       url  Ljava/lang/String;
            0    2     1  password  Ljava/lang/String;
            0    2     2     force  Z
            0    2     3       all  Z
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
          Name  Flags
      url       
      password  
      force     
      all       

  public java.lang.String getStatus();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.h2.tools.Server this
         0: .line 390
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* buff */
        start local 1 // java.lang.StringBuilder buff
         1: .line 391
            aload 0 /* this */
            getfield org.h2.tools.Server.started:Z
            ifne 4
         2: .line 392
            aload 1 /* buff */
            ldc "Not started"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 393
            goto 19
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
         4: aload 0 /* this */
            iconst_0
            invokevirtual org.h2.tools.Server.isRunning:(Z)Z
            ifeq 15
         5: .line 394
            aload 1 /* buff */
            aload 0 /* this */
            getfield org.h2.tools.Server.service:Lorg/h2/server/Service;
            invokeinterface org.h2.server.Service.getType:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 395
            ldc " server running at "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 396
            aload 0 /* this */
            getfield org.h2.tools.Server.service:Lorg/h2/server/Service;
            invokeinterface org.h2.server.Service.getURL:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 397
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 398
            aload 0 /* this */
            getfield org.h2.tools.Server.service:Lorg/h2/server/Service;
            invokeinterface org.h2.server.Service.getAllowOthers:()Z
            ifeq 12
        10: .line 399
            aload 1 /* buff */
            ldc "others can connect"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 400
            goto 13
        12: .line 401
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            ldc "only local connections"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 403
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        14: .line 404
            goto 19
        15: .line 405
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            ldc "The "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        16: .line 406
            aload 0 /* this */
            getfield org.h2.tools.Server.service:Lorg/h2/server/Service;
            invokeinterface org.h2.server.Service.getType:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        17: .line 407
            ldc " server could not be started. Possible cause: another server is already running at "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        18: .line 409
            aload 0 /* this */
            getfield org.h2.tools.Server.service:Lorg/h2/server/Service;
            invokeinterface org.h2.server.Service.getURL:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        19: .line 411
      StackMap locals:
      StackMap stack:
            aload 1 /* buff */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder buff
        end local 0 // org.h2.tools.Server this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0  this  Lorg/h2/tools/Server;
            1   20     1  buff  Ljava/lang/StringBuilder;

  public static org.h2.tools.Server createWebServer(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Lorg/h2/tools/Server;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 429
            aload 0 /* args */
            aconst_null
            iconst_0
            invokestatic org.h2.tools.Server.createWebServer:([Ljava/lang/String;Ljava/lang/String;Z)Lorg/h2/tools/Server;
            areturn
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  args  [Ljava/lang/String;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      args  

  static org.h2.tools.Server createWebServer(java.lang.String[], java.lang.String, boolean);
    descriptor: ([Ljava/lang/String;Ljava/lang/String;Z)Lorg/h2/tools/Server;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // java.lang.String[] args
        start local 1 // java.lang.String key
        start local 2 // boolean allowSecureCreation
         0: .line 444
            new org.h2.server.web.WebServer
            dup
            invokespecial org.h2.server.web.WebServer.<init>:()V
            astore 3 /* service */
        start local 3 // org.h2.server.web.WebServer service
         1: .line 445
            aload 3 /* service */
            aload 1 /* key */
            invokevirtual org.h2.server.web.WebServer.setKey:(Ljava/lang/String;)V
         2: .line 446
            aload 3 /* service */
            iload 2 /* allowSecureCreation */
            invokevirtual org.h2.server.web.WebServer.setAllowSecureCreation:(Z)V
         3: .line 447
            new org.h2.tools.Server
            dup
            aload 3 /* service */
            aload 0 /* args */
            invokespecial org.h2.tools.Server.<init>:(Lorg/h2/server/Service;[Ljava/lang/String;)V
            astore 4 /* server */
        start local 4 // org.h2.tools.Server server
         4: .line 448
            aload 3 /* service */
            aload 4 /* server */
            invokevirtual org.h2.server.web.WebServer.setShutdownHandler:(Lorg/h2/server/ShutdownHandler;)V
         5: .line 449
            aload 4 /* server */
            areturn
        end local 4 // org.h2.tools.Server server
        end local 3 // org.h2.server.web.WebServer service
        end local 2 // boolean allowSecureCreation
        end local 1 // java.lang.String key
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    6     0                 args  [Ljava/lang/String;
            0    6     1                  key  Ljava/lang/String;
            0    6     2  allowSecureCreation  Z
            1    6     3              service  Lorg/h2/server/web/WebServer;
            4    6     4               server  Lorg/h2/tools/Server;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
                     Name  Flags
      args                 
      key                  
      allowSecureCreation  

  public static org.h2.tools.Server createTcpServer(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Lorg/h2/tools/Server;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 473
            new org.h2.server.TcpServer
            dup
            invokespecial org.h2.server.TcpServer.<init>:()V
            astore 1 /* service */
        start local 1 // org.h2.server.TcpServer service
         1: .line 474
            new org.h2.tools.Server
            dup
            aload 1 /* service */
            aload 0 /* args */
            invokespecial org.h2.tools.Server.<init>:(Lorg/h2/server/Service;[Ljava/lang/String;)V
            astore 2 /* server */
        start local 2 // org.h2.tools.Server server
         2: .line 475
            aload 1 /* service */
            aload 2 /* server */
            invokevirtual org.h2.server.TcpServer.setShutdownHandler:(Lorg/h2/server/ShutdownHandler;)V
         3: .line 476
            aload 2 /* server */
            areturn
        end local 2 // org.h2.tools.Server server
        end local 1 // org.h2.server.TcpServer service
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     args  [Ljava/lang/String;
            1    4     1  service  Lorg/h2/server/TcpServer;
            2    4     2   server  Lorg/h2/tools/Server;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      args  

  public static org.h2.tools.Server createPgServer(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Lorg/h2/tools/Server;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 500
            new org.h2.tools.Server
            dup
            new org.h2.server.pg.PgServer
            dup
            invokespecial org.h2.server.pg.PgServer.<init>:()V
            aload 0 /* args */
            invokespecial org.h2.tools.Server.<init>:(Lorg/h2/server/Service;[Ljava/lang/String;)V
            areturn
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  args  [Ljava/lang/String;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      args  

  public org.h2.tools.Server start();
    descriptor: ()Lorg/h2/tools/Server;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // org.h2.tools.Server this
         0: .line 510
            aload 0 /* this */
            iconst_1
            putfield org.h2.tools.Server.started:Z
         1: .line 511
            aload 0 /* this */
            getfield org.h2.tools.Server.service:Lorg/h2/server/Service;
            invokeinterface org.h2.server.Service.start:()V
         2: .line 512
            aload 0 /* this */
            getfield org.h2.tools.Server.service:Lorg/h2/server/Service;
            invokeinterface org.h2.server.Service.getURL:()Ljava/lang/String;
            astore 1 /* url */
        start local 1 // java.lang.String url
         3: .line 513
            aload 1 /* url */
            bipush 63
            invokevirtual java.lang.String.indexOf:(I)I
            istore 2 /* idx */
        start local 2 // int idx
         4: .line 514
            iload 2 /* idx */
            iflt 6
         5: .line 515
            aload 1 /* url */
            iconst_0
            iload 2 /* idx */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* url */
         6: .line 517
      StackMap locals: java.lang.String int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.h2.tools.Server.service:Lorg/h2/server/Service;
            invokeinterface org.h2.server.Service.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 /* url */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* name */
        start local 3 // java.lang.String name
         7: .line 518
            new java.lang.Thread
            dup
            aload 0 /* this */
            aload 3 /* name */
            invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;Ljava/lang/String;)V
            astore 4 /* t */
        start local 4 // java.lang.Thread t
         8: .line 519
            aload 4 /* t */
            aload 0 /* this */
            getfield org.h2.tools.Server.service:Lorg/h2/server/Service;
            invokeinterface org.h2.server.Service.isDaemon:()Z
            invokevirtual java.lang.Thread.setDaemon:(Z)V
         9: .line 520
            aload 4 /* t */
            invokevirtual java.lang.Thread.start:()V
        10: .line 521
            iconst_1
            istore 5 /* i */
        start local 5 // int i
        11: goto 17
        12: .line 522
      StackMap locals: java.lang.String java.lang.Thread int
      StackMap stack:
            iload 5 /* i */
            invokestatic org.h2.tools.Server.wait:(I)V
        13: .line 523
            aload 0 /* this */
            iconst_0
            invokevirtual org.h2.tools.Server.isRunning:(Z)Z
            ifeq 16
        14: .line 524
            aload 0 /* this */
        15: areturn
        16: .line 521
      StackMap locals:
      StackMap stack:
            iload 5 /* i */
            iload 5 /* i */
            iadd
            istore 5 /* i */
      StackMap locals:
      StackMap stack:
        17: iload 5 /* i */
            bipush 64
            if_icmplt 12
        end local 5 // int i
        18: .line 527
            aload 0 /* this */
            iconst_1
            invokevirtual org.h2.tools.Server.isRunning:(Z)Z
            ifeq 21
        19: .line 528
            aload 0 /* this */
        20: areturn
        21: .line 530
      StackMap locals:
      StackMap stack:
            ldc 90061
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
        22: .line 531
            aload 3 /* name */
            aastore
            dup
            iconst_1
            ldc "timeout; please check your network configuration, specially the file /etc/hosts"
            aastore
        23: .line 530
            invokestatic org.h2.message.DbException.get:(I[Ljava/lang/String;)Lorg/h2/message/DbException;
            athrow
        end local 4 // java.lang.Thread t
        end local 3 // java.lang.String name
        end local 2 // int idx
        end local 1 // java.lang.String url
        24: .line 533
      StackMap locals: org.h2.tools.Server
      StackMap stack: org.h2.message.DbException
            astore 1 /* e */
        start local 1 // org.h2.message.DbException e
        25: .line 534
            aload 1 /* e */
            invokestatic org.h2.message.DbException.toSQLException:(Ljava/lang/Throwable;)Ljava/sql/SQLException;
            athrow
        end local 1 // org.h2.message.DbException e
        end local 0 // org.h2.tools.Server this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   26     0  this  Lorg/h2/tools/Server;
            3   24     1   url  Ljava/lang/String;
            4   24     2   idx  I
            7   24     3  name  Ljava/lang/String;
            8   24     4     t  Ljava/lang/Thread;
           11   18     5     i  I
           25   26     1     e  Lorg/h2/message/DbException;
      Exception table:
        from    to  target  type
           0    15      24  Class org.h2.message.DbException
          16    20      24  Class org.h2.message.DbException
          21    24      24  Class org.h2.message.DbException
    Exceptions:
      throws java.sql.SQLException

  private static void wait(int);
    descriptor: (I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // int i
         0: .line 541
            iload 0 /* i */
            i2l
            iload 0 /* i */
            i2l
            lmul
            lstore 1 /* sleep */
        start local 1 // long sleep
         1: .line 542
            lload 1 /* sleep */
            invokestatic java.lang.Thread.sleep:(J)V
        end local 1 // long sleep
         2: .line 543
            goto 4
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
         3: pop
         4: .line 546
      StackMap locals:
      StackMap stack:
            return
        end local 0 // int i
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0      i  I
            1    2     1  sleep  J
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.InterruptedException
    MethodParameters:
      Name  Flags
      i     

  private void stopAll();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.h2.tools.Server this
         0: .line 549
            aload 0 /* this */
            getfield org.h2.tools.Server.web:Lorg/h2/tools/Server;
            astore 1 /* s */
        start local 1 // org.h2.tools.Server s
         1: .line 550
            aload 1 /* s */
            ifnull 4
            aload 1 /* s */
            iconst_0
            invokevirtual org.h2.tools.Server.isRunning:(Z)Z
            ifeq 4
         2: .line 551
            aload 1 /* s */
            invokevirtual org.h2.tools.Server.stop:()V
         3: .line 552
            aload 0 /* this */
            aconst_null
            putfield org.h2.tools.Server.web:Lorg/h2/tools/Server;
         4: .line 554
      StackMap locals: org.h2.tools.Server
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.tools.Server.tcp:Lorg/h2/tools/Server;
            astore 1 /* s */
         5: .line 555
            aload 1 /* s */
            ifnull 8
            aload 1 /* s */
            iconst_0
            invokevirtual org.h2.tools.Server.isRunning:(Z)Z
            ifeq 8
         6: .line 556
            aload 1 /* s */
            invokevirtual org.h2.tools.Server.stop:()V
         7: .line 557
            aload 0 /* this */
            aconst_null
            putfield org.h2.tools.Server.tcp:Lorg/h2/tools/Server;
         8: .line 559
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.tools.Server.pg:Lorg/h2/tools/Server;
            astore 1 /* s */
         9: .line 560
            aload 1 /* s */
            ifnull 12
            aload 1 /* s */
            iconst_0
            invokevirtual org.h2.tools.Server.isRunning:(Z)Z
            ifeq 12
        10: .line 561
            aload 1 /* s */
            invokevirtual org.h2.tools.Server.stop:()V
        11: .line 562
            aload 0 /* this */
            aconst_null
            putfield org.h2.tools.Server.pg:Lorg/h2/tools/Server;
        12: .line 564
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.h2.tools.Server s
        end local 0 // org.h2.tools.Server this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lorg/h2/tools/Server;
            1   13     1     s  Lorg/h2/tools/Server;

  public boolean isRunning(boolean);
    descriptor: (Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.tools.Server this
        start local 1 // boolean traceError
         0: .line 573
            aload 0 /* this */
            getfield org.h2.tools.Server.service:Lorg/h2/server/Service;
            iload 1 /* traceError */
            invokeinterface org.h2.server.Service.isRunning:(Z)Z
            ireturn
        end local 1 // boolean traceError
        end local 0 // org.h2.tools.Server this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/h2/tools/Server;
            0    1     1  traceError  Z
    MethodParameters:
            Name  Flags
      traceError  

  public void stop();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.h2.tools.Server this
         0: .line 580
            aload 0 /* this */
            iconst_0
            putfield org.h2.tools.Server.started:Z
         1: .line 581
            aload 0 /* this */
            getfield org.h2.tools.Server.service:Lorg/h2/server/Service;
            ifnull 3
         2: .line 582
            aload 0 /* this */
            getfield org.h2.tools.Server.service:Lorg/h2/server/Service;
            invokeinterface org.h2.server.Service.stop:()V
         3: .line 584
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.tools.Server this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/h2/tools/Server;

  public java.lang.String getURL();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.tools.Server this
         0: .line 592
            aload 0 /* this */
            getfield org.h2.tools.Server.service:Lorg/h2/server/Service;
            invokeinterface org.h2.server.Service.getURL:()Ljava/lang/String;
            areturn
        end local 0 // org.h2.tools.Server this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/tools/Server;

  public int getPort();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.tools.Server this
         0: .line 601
            aload 0 /* this */
            getfield org.h2.tools.Server.service:Lorg/h2/server/Service;
            invokeinterface org.h2.server.Service.getPort:()I
            ireturn
        end local 0 // org.h2.tools.Server this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/tools/Server;

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.h2.tools.Server this
         0: .line 610
            aload 0 /* this */
            getfield org.h2.tools.Server.service:Lorg/h2/server/Service;
            invokeinterface org.h2.server.Service.listen:()V
         1: .line 611
            goto 4
      StackMap locals:
      StackMap stack: java.lang.Exception
         2: astore 1 /* e */
        start local 1 // java.lang.Exception e
         3: .line 612
            aload 1 /* e */
            invokestatic org.h2.message.DbException.traceThrowable:(Ljava/lang/Throwable;)V
        end local 1 // java.lang.Exception e
         4: .line 614
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.tools.Server this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/h2/tools/Server;
            3    4     1     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception

  public void setShutdownHandler(org.h2.server.ShutdownHandler);
    descriptor: (Lorg/h2/server/ShutdownHandler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.tools.Server this
        start local 1 // org.h2.server.ShutdownHandler shutdownHandler
         0: .line 620
            aload 0 /* this */
            aload 1 /* shutdownHandler */
            putfield org.h2.tools.Server.shutdownHandler:Lorg/h2/server/ShutdownHandler;
         1: .line 621
            return
        end local 1 // org.h2.server.ShutdownHandler shutdownHandler
        end local 0 // org.h2.tools.Server this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/h2/tools/Server;
            0    2     1  shutdownHandler  Lorg/h2/server/ShutdownHandler;
    MethodParameters:
                 Name  Flags
      shutdownHandler  

  public void shutdown();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.tools.Server this
         0: .line 628
            aload 0 /* this */
            getfield org.h2.tools.Server.shutdownHandler:Lorg/h2/server/ShutdownHandler;
            ifnull 3
         1: .line 629
            aload 0 /* this */
            getfield org.h2.tools.Server.shutdownHandler:Lorg/h2/server/ShutdownHandler;
            invokeinterface org.h2.server.ShutdownHandler.shutdown:()V
         2: .line 630
            goto 4
         3: .line 631
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.h2.tools.Server.stopAll:()V
         4: .line 633
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.h2.tools.Server this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/h2/tools/Server;

  public org.h2.server.Service getService();
    descriptor: ()Lorg/h2/server/Service;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.tools.Server this
         0: .line 641
            aload 0 /* this */
            getfield org.h2.tools.Server.service:Lorg/h2/server/Service;
            areturn
        end local 0 // org.h2.tools.Server this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/tools/Server;

  public static void openBrowser(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=10, args_size=1
        start local 0 // java.lang.String url
         0: .line 652
            ldc "os.name"
            ldc "linux"
            invokestatic org.h2.util.Utils.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
         1: .line 651
            invokestatic org.h2.util.StringUtils.toLowerEnglish:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* osName */
        start local 1 // java.lang.String osName
         2: .line 653
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            astore 2 /* rt */
        start local 2 // java.lang.Runtime rt
         3: .line 654
            ldc "h2.browser"
            aconst_null
            invokestatic org.h2.util.Utils.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* browser */
        start local 3 // java.lang.String browser
         4: .line 655
            aload 3 /* browser */
            ifnonnull 8
         5: .line 658
            ldc "BROWSER"
            invokestatic java.lang.System.getenv:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* browser */
         6: .line 659
            goto 8
      StackMap locals: java.lang.String java.lang.String java.lang.Runtime java.lang.String
      StackMap stack: java.lang.SecurityException
         7: pop
         8: .line 663
      StackMap locals:
      StackMap stack:
            aload 3 /* browser */
            ifnull 27
         9: .line 664
            aload 3 /* browser */
            ldc "call:"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 13
        10: .line 665
            aload 3 /* browser */
            ldc "call:"
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* browser */
        11: .line 666
            aload 3 /* browser */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* url */
            aastore
            invokestatic org.h2.util.Utils.callStaticMethod:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 667
            goto 26
      StackMap locals:
      StackMap stack:
        13: aload 3 /* browser */
            ldc "%url"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 22
        14: .line 668
            aload 3 /* browser */
            bipush 44
            iconst_0
            invokestatic org.h2.util.StringUtils.arraySplit:(Ljava/lang/String;CZ)[Ljava/lang/String;
            astore 4 /* args */
        start local 4 // java.lang.String[] args
        15: .line 669
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        16: goto 19
        17: .line 670
      StackMap locals: java.lang.String[] int
      StackMap stack:
            aload 4 /* args */
            iload 5 /* i */
            aload 4 /* args */
            iload 5 /* i */
            aaload
            ldc "%url"
            aload 0 /* url */
            invokestatic org.h2.util.StringUtils.replaceAll:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            aastore
        18: .line 669
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 5 /* i */
            aload 4 /* args */
            arraylength
            if_icmplt 17
        end local 5 // int i
        20: .line 672
            aload 2 /* rt */
            aload 4 /* args */
            invokevirtual java.lang.Runtime.exec:([Ljava/lang/String;)Ljava/lang/Process;
            pop
        end local 4 // java.lang.String[] args
        21: .line 673
            goto 26
      StackMap locals:
      StackMap stack:
        22: aload 1 /* osName */
            ldc "windows"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 25
        23: .line 674
            aload 2 /* rt */
            iconst_4
            anewarray java.lang.String
            dup
            iconst_0
            ldc "cmd.exe"
            aastore
            dup
            iconst_1
            ldc "/C"
            aastore
            dup
            iconst_2
            aload 3 /* browser */
            aastore
            dup
            iconst_3
            aload 0 /* url */
            aastore
            invokevirtual java.lang.Runtime.exec:([Ljava/lang/String;)Ljava/lang/Process;
            pop
        24: .line 675
            goto 26
        25: .line 676
      StackMap locals:
      StackMap stack:
            aload 2 /* rt */
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            aload 3 /* browser */
            aastore
            dup
            iconst_1
            aload 0 /* url */
            aastore
            invokevirtual java.lang.Runtime.exec:([Ljava/lang/String;)Ljava/lang/Process;
            pop
        26: .line 678
      StackMap locals:
      StackMap stack:
            return
        27: .line 681
      StackMap locals:
      StackMap stack:
            ldc "java.awt.Desktop"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* desktopClass */
        start local 4 // java.lang.Class desktopClass
        28: .line 683
            aload 4 /* desktopClass */
        29: .line 684
            ldc "isDesktopSupported"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
        30: .line 685
            aconst_null
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
        31: .line 683
            checkcast java.lang.Boolean
            astore 5 /* supported */
        start local 5 // java.lang.Boolean supported
        32: .line 686
            new java.net.URI
            dup
            aload 0 /* url */
            invokespecial java.net.URI.<init>:(Ljava/lang/String;)V
            astore 6 /* uri */
        start local 6 // java.net.URI uri
        33: .line 687
            aload 5 /* supported */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 41
        34: .line 689
            aload 4 /* desktopClass */
            ldc "getDesktop"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
        35: .line 690
            aconst_null
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
        36: .line 689
            astore 7 /* desktop */
        start local 7 // java.lang.Object desktop
        37: .line 692
            aload 4 /* desktopClass */
            ldc "browse"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/net/URI;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
        38: .line 693
            aload 7 /* desktop */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 6 /* uri */
            aastore
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        39: .line 694
            return
        end local 7 // java.lang.Object desktop
        end local 6 // java.net.URI uri
        end local 5 // java.lang.Boolean supported
        end local 4 // java.lang.Class desktopClass
        40: .line 696
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
        41: .line 699
      StackMap locals:
      StackMap stack:
            aload 1 /* osName */
            ldc "windows"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 44
        42: .line 700
            aload 2 /* rt */
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
            ldc "rundll32"
            aastore
            dup
            iconst_1
            ldc "url.dll,FileProtocolHandler"
            aastore
            dup
            iconst_2
            aload 0 /* url */
            aastore
            invokevirtual java.lang.Runtime.exec:([Ljava/lang/String;)Ljava/lang/Process;
            pop
        43: .line 701
            goto 70
      StackMap locals:
      StackMap stack:
        44: aload 1 /* osName */
            ldc "mac"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifne 45
            aload 1 /* osName */
            ldc "darwin"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 47
        45: .line 703
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "open"
            aastore
            dup
            iconst_1
            aload 0 /* url */
            aastore
            invokevirtual java.lang.Runtime.exec:([Ljava/lang/String;)Ljava/lang/Process;
            pop
        46: .line 704
            goto 70
        47: .line 705
      StackMap locals:
      StackMap stack:
            bipush 10
            anewarray java.lang.String
            dup
            iconst_0
            ldc "xdg-open"
            aastore
            dup
            iconst_1
            ldc "chromium"
            aastore
            dup
            iconst_2
            ldc "google-chrome"
            aastore
            dup
            iconst_3
        48: .line 706
            ldc "firefox"
            aastore
            dup
            iconst_4
            ldc "mozilla-firefox"
            aastore
            dup
            iconst_5
            ldc "mozilla"
            aastore
            dup
            bipush 6
            ldc "konqueror"
            aastore
            dup
            bipush 7
        49: .line 707
            ldc "netscape"
            aastore
            dup
            bipush 8
            ldc "opera"
            aastore
            dup
            bipush 9
            ldc "midori"
            aastore
        50: .line 705
            astore 4 /* browsers */
        start local 4 // java.lang.String[] browsers
        51: .line 708
            iconst_0
            istore 5 /* ok */
        start local 5 // boolean ok
        52: .line 709
            aload 4 /* browsers */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 59
      StackMap locals: java.lang.String java.lang.String java.lang.Runtime java.lang.String java.lang.String[] int top int int java.lang.String[]
      StackMap stack:
        53: aload 9
            iload 7
            aaload
            astore 6 /* b */
        start local 6 // java.lang.String b
        54: .line 711
            aload 2 /* rt */
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            aload 6 /* b */
            aastore
            dup
            iconst_1
            aload 0 /* url */
            aastore
            invokevirtual java.lang.Runtime.exec:([Ljava/lang/String;)Ljava/lang/Process;
            pop
        55: .line 712
            iconst_1
            istore 5 /* ok */
        56: .line 713
            goto 60
        57: .line 714
      StackMap locals: java.lang.String java.lang.String java.lang.Runtime java.lang.String java.lang.String[] int java.lang.String int int java.lang.String[]
      StackMap stack: java.lang.Exception
            pop
        end local 6 // java.lang.String b
        58: .line 709
            iinc 7 1
      StackMap locals: java.lang.String java.lang.String java.lang.Runtime java.lang.String java.lang.String[] int top int int java.lang.String[]
      StackMap stack:
        59: iload 7
            iload 8
            if_icmplt 53
        60: .line 718
      StackMap locals: java.lang.String java.lang.String java.lang.Runtime java.lang.String java.lang.String[] int
      StackMap stack:
            iload 5 /* ok */
            ifne 70
        61: .line 720
            new java.lang.Exception
            dup
        62: .line 721
            ldc "Browser detection failed, and java property 'h2.browser' and environment variable BROWSER are not set to a browser executable."
        63: .line 720
            invokespecial java.lang.Exception.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // boolean ok
        end local 4 // java.lang.String[] browsers
        end local 3 // java.lang.String browser
        end local 2 // java.lang.Runtime rt
        end local 1 // java.lang.String osName
        64: .line 725
      StackMap locals: java.lang.String
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
        65: .line 726
            new java.lang.Exception
            dup
        66: .line 727
            new java.lang.StringBuilder
            dup
            ldc "Failed to start a browser to open the URL "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        67: .line 728
            aload 0 /* url */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        68: .line 727
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        69: .line 726
            invokespecial java.lang.Exception.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.Exception e
        70: .line 730
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.String url
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   71     0           url  Ljava/lang/String;
            2   64     1        osName  Ljava/lang/String;
            3   64     2            rt  Ljava/lang/Runtime;
            4   64     3       browser  Ljava/lang/String;
           15   21     4          args  [Ljava/lang/String;
           16   20     5             i  I
           28   40     4  desktopClass  Ljava/lang/Class<*>;
           32   40     5     supported  Ljava/lang/Boolean;
           33   40     6           uri  Ljava/net/URI;
           37   40     7       desktop  Ljava/lang/Object;
           51   64     4      browsers  [Ljava/lang/String;
           52   64     5            ok  Z
           54   58     6             b  Ljava/lang/String;
           65   70     1             e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.SecurityException
          27    39      40  Class java.lang.Exception
          54    56      57  Class java.lang.Exception
           0    26      64  Class java.lang.Exception
          27    39      64  Class java.lang.Exception
          40    64      64  Class java.lang.Exception
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      url   

  public static void startWebServer(java.sql.Connection);
    descriptor: (Ljava/sql/Connection;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.sql.Connection conn
         0: .line 741
            aload 0 /* conn */
            iconst_0
            invokestatic org.h2.tools.Server.startWebServer:(Ljava/sql/Connection;Z)V
         1: .line 742
            return
        end local 0 // java.sql.Connection conn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  conn  Ljava/sql/Connection;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
      Name  Flags
      conn  

  public static void startWebServer(java.sql.Connection, boolean);
    descriptor: (Ljava/sql/Connection;Z)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // java.sql.Connection conn
        start local 1 // boolean ignoreProperties
         0: .line 755
            new org.h2.server.web.WebServer
            dup
            invokespecial org.h2.server.web.WebServer.<init>:()V
            astore 2 /* webServer */
        start local 2 // org.h2.server.web.WebServer webServer
         1: .line 757
            iload 1 /* ignoreProperties */
            ifeq 4
         2: .line 758
            iconst_4
            anewarray java.lang.String
            dup
            iconst_0
            ldc "-webPort"
            aastore
            dup
            iconst_1
            ldc "0"
            aastore
            dup
            iconst_2
            ldc "-properties"
            aastore
            dup
            iconst_3
            ldc "null"
            aastore
            astore 3 /* args */
        start local 3 // java.lang.String[] args
         3: .line 759
            goto 5
        end local 3 // java.lang.String[] args
         4: .line 760
      StackMap locals: org.h2.server.web.WebServer
      StackMap stack:
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "-webPort"
            aastore
            dup
            iconst_1
            ldc "0"
            aastore
            astore 3 /* args */
        start local 3 // java.lang.String[] args
         5: .line 762
      StackMap locals: java.lang.String[]
      StackMap stack:
            new org.h2.tools.Server
            dup
            aload 2 /* webServer */
            aload 3 /* args */
            invokespecial org.h2.tools.Server.<init>:(Lorg/h2/server/Service;[Ljava/lang/String;)V
            astore 4 /* web */
        start local 4 // org.h2.tools.Server web
         6: .line 763
            aload 4 /* web */
            invokevirtual org.h2.tools.Server.start:()Lorg/h2/tools/Server;
            pop
         7: .line 764
            new org.h2.tools.Server
            dup
            invokespecial org.h2.tools.Server.<init>:()V
            astore 5 /* server */
        start local 5 // org.h2.tools.Server server
         8: .line 765
            aload 5 /* server */
            aload 4 /* web */
            putfield org.h2.tools.Server.web:Lorg/h2/tools/Server;
         9: .line 766
            aload 2 /* webServer */
            aload 5 /* server */
            invokevirtual org.h2.server.web.WebServer.setShutdownHandler:(Lorg/h2/server/ShutdownHandler;)V
        10: .line 767
            aload 2 /* webServer */
            aload 0 /* conn */
            invokevirtual org.h2.server.web.WebServer.addSession:(Ljava/sql/Connection;)Ljava/lang/String;
            astore 6 /* url */
        start local 6 // java.lang.String url
        11: .line 769
            aload 6 /* url */
            invokestatic org.h2.tools.Server.openBrowser:(Ljava/lang/String;)V
        12: .line 770
            goto 14
        13: .line 771
      StackMap locals: org.h2.tools.Server org.h2.tools.Server java.lang.String
      StackMap stack:
            ldc 1000
            invokestatic java.lang.Thread.sleep:(J)V
        14: .line 770
      StackMap locals:
      StackMap stack:
            aload 2 /* webServer */
            invokevirtual org.h2.server.web.WebServer.isStopped:()Z
            ifeq 13
        15: .line 773
            goto 17
      StackMap locals:
      StackMap stack: java.lang.Exception
        16: pop
        17: .line 776
      StackMap locals:
      StackMap stack:
            return
        end local 6 // java.lang.String url
        end local 5 // org.h2.tools.Server server
        end local 4 // org.h2.tools.Server web
        end local 3 // java.lang.String[] args
        end local 2 // org.h2.server.web.WebServer webServer
        end local 1 // boolean ignoreProperties
        end local 0 // java.sql.Connection conn
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   18     0              conn  Ljava/sql/Connection;
            0   18     1  ignoreProperties  Z
            1   18     2         webServer  Lorg/h2/server/web/WebServer;
            3    4     3              args  [Ljava/lang/String;
            5   18     3              args  [Ljava/lang/String;
            6   18     4               web  Lorg/h2/tools/Server;
            8   18     5            server  Lorg/h2/tools/Server;
           11   18     6               url  Ljava/lang/String;
      Exception table:
        from    to  target  type
          11    15      16  Class java.lang.Exception
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
                  Name  Flags
      conn              
      ignoreProperties  
}
SourceFile: "Server.java"