public class org.eclipse.jgit.transport.TransportGitSsh extends org.eclipse.jgit.transport.SshTransport implements org.eclipse.jgit.transport.PackTransport
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jgit.transport.TransportGitSsh
  super_class: org.eclipse.jgit.transport.SshTransport
{
  private static final java.lang.String EXT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "ext"

  static final org.eclipse.jgit.transport.TransportProtocol PROTO_SSH;
    descriptor: Lorg/eclipse/jgit/transport/TransportProtocol;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 55
            new org.eclipse.jgit.transport.TransportGitSsh$1
            dup
            invokespecial org.eclipse.jgit.transport.TransportGitSsh$1.<init>:()V
            putstatic org.eclipse.jgit.transport.TransportGitSsh.PROTO_SSH:Lorg/eclipse/jgit/transport/TransportProtocol;
         1: .line 111
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(org.eclipse.jgit.lib.Repository, org.eclipse.jgit.transport.URIish);
    descriptor: (Lorg/eclipse/jgit/lib/Repository;Lorg/eclipse/jgit/transport/URIish;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.eclipse.jgit.transport.TransportGitSsh this
        start local 1 // org.eclipse.jgit.lib.Repository local
        start local 2 // org.eclipse.jgit.transport.URIish uri
         0: .line 114
            aload 0 /* this */
            aload 1 /* local */
            aload 2 /* uri */
            invokespecial org.eclipse.jgit.transport.SshTransport.<init>:(Lorg/eclipse/jgit/lib/Repository;Lorg/eclipse/jgit/transport/URIish;)V
         1: .line 115
            aload 0 /* this */
            invokevirtual org.eclipse.jgit.transport.TransportGitSsh.initSshSessionFactory:()V
         2: .line 116
            return
        end local 2 // org.eclipse.jgit.transport.URIish uri
        end local 1 // org.eclipse.jgit.lib.Repository local
        end local 0 // org.eclipse.jgit.transport.TransportGitSsh this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/eclipse/jgit/transport/TransportGitSsh;
            0    3     1  local  Lorg/eclipse/jgit/lib/Repository;
            0    3     2    uri  Lorg/eclipse/jgit/transport/URIish;
    MethodParameters:
       Name  Flags
      local  
      uri    

  void <init>(org.eclipse.jgit.transport.URIish);
    descriptor: (Lorg/eclipse/jgit/transport/URIish;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jgit.transport.TransportGitSsh this
        start local 1 // org.eclipse.jgit.transport.URIish uri
         0: .line 119
            aload 0 /* this */
            aload 1 /* uri */
            invokespecial org.eclipse.jgit.transport.SshTransport.<init>:(Lorg/eclipse/jgit/transport/URIish;)V
         1: .line 120
            aload 0 /* this */
            invokevirtual org.eclipse.jgit.transport.TransportGitSsh.initSshSessionFactory:()V
         2: .line 121
            return
        end local 1 // org.eclipse.jgit.transport.URIish uri
        end local 0 // org.eclipse.jgit.transport.TransportGitSsh this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/eclipse/jgit/transport/TransportGitSsh;
            0    3     1   uri  Lorg/eclipse/jgit/transport/URIish;
    MethodParameters:
      Name  Flags
      uri   

  private void initSshSessionFactory();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.transport.TransportGitSsh this
         0: .line 124
            invokestatic org.eclipse.jgit.transport.TransportGitSsh.useExtSession:()Z
            ifeq 2
         1: .line 125
            aload 0 /* this */
            new org.eclipse.jgit.transport.TransportGitSsh$2
            dup
            aload 0 /* this */
            invokespecial org.eclipse.jgit.transport.TransportGitSsh$2.<init>:(Lorg/eclipse/jgit/transport/TransportGitSsh;)V
            invokevirtual org.eclipse.jgit.transport.TransportGitSsh.setSshSessionFactory:(Lorg/eclipse/jgit/transport/SshSessionFactory;)V
         2: .line 139
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.eclipse.jgit.transport.TransportGitSsh this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/eclipse/jgit/transport/TransportGitSsh;

  public org.eclipse.jgit.transport.FetchConnection openFetch();
    descriptor: ()Lorg/eclipse/jgit/transport/FetchConnection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.transport.TransportGitSsh this
         0: .line 144
            new org.eclipse.jgit.transport.TransportGitSsh$SshFetchConnection
            dup
            aload 0 /* this */
            invokespecial org.eclipse.jgit.transport.TransportGitSsh$SshFetchConnection.<init>:(Lorg/eclipse/jgit/transport/TransportGitSsh;)V
            areturn
        end local 0 // org.eclipse.jgit.transport.TransportGitSsh this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jgit/transport/TransportGitSsh;
    Exceptions:
      throws org.eclipse.jgit.errors.TransportException

  public org.eclipse.jgit.transport.PushConnection openPush();
    descriptor: ()Lorg/eclipse/jgit/transport/PushConnection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.eclipse.jgit.transport.TransportGitSsh this
         0: .line 150
            new org.eclipse.jgit.transport.TransportGitSsh$SshPushConnection
            dup
            aload 0 /* this */
            invokespecial org.eclipse.jgit.transport.TransportGitSsh$SshPushConnection.<init>:(Lorg/eclipse/jgit/transport/TransportGitSsh;)V
            areturn
        end local 0 // org.eclipse.jgit.transport.TransportGitSsh this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jgit/transport/TransportGitSsh;
    Exceptions:
      throws org.eclipse.jgit.errors.TransportException

  java.lang.String commandFor(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.eclipse.jgit.transport.TransportGitSsh this
        start local 1 // java.lang.String exe
         0: .line 154
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.TransportGitSsh.uri:Lorg/eclipse/jgit/transport/URIish;
            invokevirtual org.eclipse.jgit.transport.URIish.getPath:()Ljava/lang/String;
            astore 2 /* path */
        start local 2 // java.lang.String path
         1: .line 155
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.TransportGitSsh.uri:Lorg/eclipse/jgit/transport/URIish;
            invokevirtual org.eclipse.jgit.transport.URIish.getScheme:()Ljava/lang/String;
            ifnull 3
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.TransportGitSsh.uri:Lorg/eclipse/jgit/transport/URIish;
            invokevirtual org.eclipse.jgit.transport.URIish.getPath:()Ljava/lang/String;
            ldc "/~"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 156
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.TransportGitSsh.uri:Lorg/eclipse/jgit/transport/URIish;
            invokevirtual org.eclipse.jgit.transport.URIish.getPath:()Ljava/lang/String;
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 2 /* path */
         3: .line 158
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* cmd */
        start local 3 // java.lang.StringBuilder cmd
         4: .line 159
            aload 3 /* cmd */
            aload 1 /* exe */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 160
            aload 3 /* cmd */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         6: .line 161
            aload 3 /* cmd */
            getstatic org.eclipse.jgit.util.QuotedString.BOURNE:Lorg/eclipse/jgit/util/QuotedString$BourneStyle;
            aload 2 /* path */
            invokevirtual org.eclipse.jgit.util.QuotedString$BourneStyle.quote:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 162
            aload 3 /* cmd */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.StringBuilder cmd
        end local 2 // java.lang.String path
        end local 1 // java.lang.String exe
        end local 0 // org.eclipse.jgit.transport.TransportGitSsh this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/eclipse/jgit/transport/TransportGitSsh;
            0    8     1   exe  Ljava/lang/String;
            1    8     2  path  Ljava/lang/String;
            4    8     3   cmd  Ljava/lang/StringBuilder;
    MethodParameters:
      Name  Flags
      exe   

  void checkExecFailure(int, java.lang.String, java.lang.String);
    descriptor: (ILjava/lang/String;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=9, locals=5, args_size=4
        start local 0 // org.eclipse.jgit.transport.TransportGitSsh this
        start local 1 // int status
        start local 2 // java.lang.String exe
        start local 3 // java.lang.String why
         0: .line 167
            iload 1 /* status */
            bipush 127
            if_icmpne 9
         1: .line 168
            aconst_null
            astore 4 /* cause */
        start local 4 // java.io.IOException cause
         2: .line 169
            aload 3 /* why */
            ifnull 4
            aload 3 /* why */
            invokevirtual java.lang.String.length:()I
            ifle 4
         3: .line 170
            new java.io.IOException
            dup
            aload 3 /* why */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            astore 4 /* cause */
         4: .line 171
      StackMap locals: java.io.IOException
      StackMap stack:
            new org.eclipse.jgit.errors.TransportException
            dup
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.TransportGitSsh.uri:Lorg/eclipse/jgit/transport/URIish;
         5: .line 172
            invokestatic org.eclipse.jgit.internal.JGitText.get:()Lorg/eclipse/jgit/internal/JGitText;
            getfield org.eclipse.jgit.internal.JGitText.cannotExecute:Ljava/lang/String;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            aload 2 /* exe */
            invokevirtual org.eclipse.jgit.transport.TransportGitSsh.commandFor:(Ljava/lang/String;)Ljava/lang/String;
            aastore
         6: .line 171
            invokestatic java.text.MessageFormat.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         7: .line 172
            aload 4 /* cause */
         8: .line 171
            invokespecial org.eclipse.jgit.errors.TransportException.<init>:(Lorg/eclipse/jgit/transport/URIish;Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.io.IOException cause
         9: .line 174
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String why
        end local 2 // java.lang.String exe
        end local 1 // int status
        end local 0 // org.eclipse.jgit.transport.TransportGitSsh this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lorg/eclipse/jgit/transport/TransportGitSsh;
            0   10     1  status  I
            0   10     2     exe  Ljava/lang/String;
            0   10     3     why  Ljava/lang/String;
            2    9     4   cause  Ljava/io/IOException;
    Exceptions:
      throws org.eclipse.jgit.errors.TransportException
    MethodParameters:
        Name  Flags
      status  
      exe     
      why     

  org.eclipse.jgit.errors.NoRemoteRepositoryException cleanNotFound(org.eclipse.jgit.errors.NoRemoteRepositoryException, java.lang.String);
    descriptor: (Lorg/eclipse/jgit/errors/NoRemoteRepositoryException;Ljava/lang/String;)Lorg/eclipse/jgit/errors/NoRemoteRepositoryException;
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.eclipse.jgit.transport.TransportGitSsh this
        start local 1 // org.eclipse.jgit.errors.NoRemoteRepositoryException nf
        start local 2 // java.lang.String why
         0: .line 178
            aload 2 /* why */
            ifnull 1
            aload 2 /* why */
            invokevirtual java.lang.String.length:()I
            ifne 2
         1: .line 179
      StackMap locals:
      StackMap stack:
            aload 1 /* nf */
            areturn
         2: .line 181
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.TransportGitSsh.uri:Lorg/eclipse/jgit/transport/URIish;
            invokevirtual org.eclipse.jgit.transport.URIish.getPath:()Ljava/lang/String;
            astore 3 /* path */
        start local 3 // java.lang.String path
         3: .line 182
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.TransportGitSsh.uri:Lorg/eclipse/jgit/transport/URIish;
            invokevirtual org.eclipse.jgit.transport.URIish.getScheme:()Ljava/lang/String;
            ifnull 5
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.TransportGitSsh.uri:Lorg/eclipse/jgit/transport/URIish;
            invokevirtual org.eclipse.jgit.transport.URIish.getPath:()Ljava/lang/String;
            ldc "/~"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 183
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.TransportGitSsh.uri:Lorg/eclipse/jgit/transport/URIish;
            invokevirtual org.eclipse.jgit.transport.URIish.getPath:()Ljava/lang/String;
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* path */
         5: .line 185
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 4 /* pfx */
        start local 4 // java.lang.StringBuilder pfx
         6: .line 186
            aload 4 /* pfx */
            ldc "fatal: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 187
            aload 4 /* pfx */
            getstatic org.eclipse.jgit.util.QuotedString.BOURNE:Lorg/eclipse/jgit/util/QuotedString$BourneStyle;
            aload 3 /* path */
            invokevirtual org.eclipse.jgit.util.QuotedString$BourneStyle.quote:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 188
            aload 4 /* pfx */
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 189
            aload 2 /* why */
            aload 4 /* pfx */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 11
        10: .line 190
            aload 2 /* why */
            aload 4 /* pfx */
            invokevirtual java.lang.StringBuilder.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 2 /* why */
        11: .line 192
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            new org.eclipse.jgit.errors.NoRemoteRepositoryException
            dup
            aload 0 /* this */
            getfield org.eclipse.jgit.transport.TransportGitSsh.uri:Lorg/eclipse/jgit/transport/URIish;
            aload 2 /* why */
            invokespecial org.eclipse.jgit.errors.NoRemoteRepositoryException.<init>:(Lorg/eclipse/jgit/transport/URIish;Ljava/lang/String;)V
            areturn
        end local 4 // java.lang.StringBuilder pfx
        end local 3 // java.lang.String path
        end local 2 // java.lang.String why
        end local 1 // org.eclipse.jgit.errors.NoRemoteRepositoryException nf
        end local 0 // org.eclipse.jgit.transport.TransportGitSsh this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/eclipse/jgit/transport/TransportGitSsh;
            0   12     1    nf  Lorg/eclipse/jgit/errors/NoRemoteRepositoryException;
            0   12     2   why  Ljava/lang/String;
            3   12     3  path  Ljava/lang/String;
            6   12     4   pfx  Ljava/lang/StringBuilder;
    MethodParameters:
      Name  Flags
      nf    
      why   

  private static boolean useExtSession();
    descriptor: ()Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 196
            invokestatic org.eclipse.jgit.util.SystemReader.getInstance:()Lorg/eclipse/jgit/util/SystemReader;
            ldc "GIT_SSH"
            invokevirtual org.eclipse.jgit.util.SystemReader.getenv:(Ljava/lang/String;)Ljava/lang/String;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "TransportGitSsh.java"
NestMembers:
  org.eclipse.jgit.transport.TransportGitSsh$1  org.eclipse.jgit.transport.TransportGitSsh$2  org.eclipse.jgit.transport.TransportGitSsh$ExtSession  org.eclipse.jgit.transport.TransportGitSsh$SshFetchConnection  org.eclipse.jgit.transport.TransportGitSsh$SshPushConnection
InnerClasses:
  org.eclipse.jgit.transport.TransportGitSsh$1
  org.eclipse.jgit.transport.TransportGitSsh$2
  private ExtSession = org.eclipse.jgit.transport.TransportGitSsh$ExtSession of org.eclipse.jgit.transport.TransportGitSsh
  SshFetchConnection = org.eclipse.jgit.transport.TransportGitSsh$SshFetchConnection of org.eclipse.jgit.transport.TransportGitSsh
  SshPushConnection = org.eclipse.jgit.transport.TransportGitSsh$SshPushConnection of org.eclipse.jgit.transport.TransportGitSsh
  public BourneStyle = org.eclipse.jgit.util.QuotedString$BourneStyle of org.eclipse.jgit.util.QuotedString