public final class com.sun.jndi.ldap.LdapCtx extends com.sun.jndi.toolkit.ctx.ComponentDirContext implements javax.naming.event.EventDirContext, javax.naming.ldap.LdapContext
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.sun.jndi.ldap.LdapCtx
  super_class: com.sun.jndi.toolkit.ctx.ComponentDirContext
{
  private static final boolean debug;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final boolean HARD_CLOSE;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final boolean SOFT_CLOSE;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int DEFAULT_PORT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 389

  public static final int DEFAULT_SSL_PORT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 636

  public static final java.lang.String DEFAULT_HOST;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "localhost"

  private static final boolean DEFAULT_DELETE_RDN;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final boolean DEFAULT_TYPES_ONLY;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int DEFAULT_DEREF_ALIASES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final int DEFAULT_LDAP_VERSION;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  private static final int DEFAULT_BATCH_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int DEFAULT_REFERRAL_MODE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final char DEFAULT_REF_SEPARATOR;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 35

  static final java.lang.String DEFAULT_SSL_FACTORY;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "javax.net.ssl.SSLSocketFactory"

  private static final int DEFAULT_REFERRAL_LIMIT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 10

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

  private static final java.lang.String[] SCHEMA_ATTRIBUTES;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String VERSION;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.version"

  private static final java.lang.String BINARY_ATTRIBUTES;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.attributes.binary"

  private static final java.lang.String DELETE_RDN;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.deleteRDN"

  private static final java.lang.String DEREF_ALIASES;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.derefAliases"

  private static final java.lang.String TYPES_ONLY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.typesOnly"

  private static final java.lang.String REF_SEPARATOR;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.ref.separator"

  private static final java.lang.String SOCKET_FACTORY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.factory.socket"

  static final java.lang.String BIND_CONTROLS;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.control.connect"

  private static final java.lang.String REFERRAL_LIMIT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java.naming.ldap.referral.limit"

  private static final java.lang.String TRACE_BER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.jndi.ldap.trace.ber"

  private static final java.lang.String NETSCAPE_SCHEMA_BUG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.jndi.ldap.netscape.schemaBugs"

  private static final java.lang.String OLD_NETSCAPE_SCHEMA_BUG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.naming.netscape.schemaBugs"

  private static final java.lang.String CONNECT_TIMEOUT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.jndi.ldap.connect.timeout"

  private static final java.lang.String READ_TIMEOUT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.jndi.ldap.read.timeout"

  private static final java.lang.String ENABLE_POOL;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.jndi.ldap.connect.pool"

  private static final java.lang.String DOMAIN_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.jndi.ldap.domainname"

  private static final java.lang.String WAIT_FOR_REPLY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.jndi.ldap.search.waitForReply"

  private static final java.lang.String REPLY_QUEUE_SIZE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.jndi.ldap.search.replyQueueSize"

  private static final javax.naming.NameParser parser;
    descriptor: Ljavax/naming/NameParser;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final javax.naming.ldap.ControlFactory myResponseControlFactory;
    descriptor: Ljavax/naming/ldap/ControlFactory;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final javax.naming.ldap.Control manageReferralControl;
    descriptor: Ljavax/naming/ldap/Control;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final com.sun.jndi.toolkit.dir.HierMemDirCtx EMPTY_SCHEMA;
    descriptor: Lcom/sun/jndi/toolkit/dir/HierMemDirCtx;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  int port_number;
    descriptor: I
    flags: (0x0000) 

  java.lang.String hostname;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  com.sun.jndi.ldap.LdapClient clnt;
    descriptor: Lcom/sun/jndi/ldap/LdapClient;
    flags: (0x0000) 

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

  java.util.Hashtable<java.lang.String, java.lang.Object> envprops;
    descriptor: Ljava/util/Hashtable;
    flags: (0x0000) 
    Signature: Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Object;>;

  int handleReferrals;
    descriptor: I
    flags: (0x0000) 

  boolean hasLdapsScheme;
    descriptor: Z
    flags: (0x0000) 

  java.lang.String currentDN;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  javax.naming.Name currentParsedDN;
    descriptor: Ljavax/naming/Name;
    flags: (0x0000) 

  java.util.Vector<javax.naming.ldap.Control> respCtls;
    descriptor: Ljava/util/Vector;
    flags: (0x0000) 
    Signature: Ljava/util/Vector<Ljavax/naming/ldap/Control;>;

  javax.naming.ldap.Control[] reqCtls;
    descriptor: [Ljavax/naming/ldap/Control;
    flags: (0x0000) 

  private java.io.OutputStream trace;
    descriptor: Ljava/io/OutputStream;
    flags: (0x0002) ACC_PRIVATE

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

  private javax.naming.ldap.Control[] bindCtls;
    descriptor: [Ljavax/naming/ldap/Control;
    flags: (0x0002) ACC_PRIVATE

  private int referralHopLimit;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.util.Hashtable<java.lang.String, javax.naming.directory.DirContext> schemaTrees;
    descriptor: Ljava/util/Hashtable;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Hashtable<Ljava/lang/String;Ljavax/naming/directory/DirContext;>;

  private int batchSize;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

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

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

  private int derefAliases;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private char addrEncodingSeparator;
    descriptor: C
    flags: (0x0002) ACC_PRIVATE

  private java.util.Hashtable<java.lang.String, java.lang.Boolean> binaryAttrs;
    descriptor: Ljava/util/Hashtable;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Boolean;>;

  private int connectTimeout;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int readTimeout;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

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

  private int replyQueueSize;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

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

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

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

  private int hopCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String url;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.jndi.ldap.EventSupport eventSupport;
    descriptor: Lcom/sun/jndi/ldap/EventSupport;
    flags: (0x0002) ACC_PRIVATE

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

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

  private int enumCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 139
            iconst_4
            anewarray java.lang.String
            dup
            iconst_0
            ldc "objectClasses"
            aastore
            dup
            iconst_1
            ldc "attributeTypes"
            aastore
            dup
            iconst_2
            ldc "matchingRules"
            aastore
            dup
            iconst_3
            ldc "ldapSyntaxes"
            aastore
         1: .line 138
            putstatic com.sun.jndi.ldap.LdapCtx.SCHEMA_ATTRIBUTES:[Ljava/lang/String;
         2: .line 204
            new com.sun.jndi.ldap.LdapNameParser
            dup
            invokespecial com.sun.jndi.ldap.LdapNameParser.<init>:()V
            putstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
         3: .line 208
            new com.sun.jndi.ldap.DefaultResponseControlFactory
            dup
            invokespecial com.sun.jndi.ldap.DefaultResponseControlFactory.<init>:()V
         4: .line 207
            putstatic com.sun.jndi.ldap.LdapCtx.myResponseControlFactory:Ljavax/naming/ldap/ControlFactory;
         5: .line 210
            new com.sun.jndi.ldap.ManageReferralControl
            dup
            iconst_0
            invokespecial com.sun.jndi.ldap.ManageReferralControl.<init>:(Z)V
         6: .line 209
            putstatic com.sun.jndi.ldap.LdapCtx.manageReferralControl:Ljavax/naming/ldap/Control;
         7: .line 212
            new com.sun.jndi.toolkit.dir.HierMemDirCtx
            dup
            invokespecial com.sun.jndi.toolkit.dir.HierMemDirCtx.<init>:()V
            putstatic com.sun.jndi.ldap.LdapCtx.EMPTY_SCHEMA:Lcom/sun/jndi/toolkit/dir/HierMemDirCtx;
         8: .line 214
            getstatic com.sun.jndi.ldap.LdapCtx.EMPTY_SCHEMA:Lcom/sun/jndi/toolkit/dir/HierMemDirCtx;
         9: .line 215
            new javax.naming.directory.SchemaViolationException
            dup
            ldc "Cannot update schema object"
            invokespecial javax.naming.directory.SchemaViolationException.<init>:(Ljava/lang/String;)V
        10: .line 214
            invokevirtual com.sun.jndi.toolkit.dir.HierMemDirCtx.setReadOnly:(Ljavax/naming/NamingException;)V
        11: .line 216
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String, java.lang.String, int, java.util.Hashtable<?, ?>, );
    descriptor: (Ljava/lang/String;Ljava/lang/String;ILjava/util/Hashtable;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String dn
        start local 2 // java.lang.String host
        start local 3 // int port_number
        start local 4 // java.util.Hashtable props
        start local 5 // boolean useSsl
         0: .line 278
            aload 0 /* this */
            invokespecial com.sun.jndi.toolkit.ctx.ComponentDirContext.<init>:()V
         1: .line 224
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
         2: .line 226
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
         3: .line 227
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.reconnect:Z
         4: .line 228
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
         5: .line 229
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
         6: .line 230
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.hasLdapsScheme:Z
         7: .line 237
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
         8: .line 238
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
         9: .line 245
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.trace:Ljava/io/OutputStream;
        10: .line 246
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.netscapeSchemaBug:Z
        11: .line 247
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
        12: .line 248
            aload 0 /* this */
            bipush 10
            putfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
        13: .line 249
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
        14: .line 250
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.batchSize:I
        15: .line 251
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.deleteRDN:Z
        16: .line 252
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.typesOnly:Z
        17: .line 253
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
        18: .line 254
            aload 0 /* this */
            bipush 35
            putfield com.sun.jndi.ldap.LdapCtx.addrEncodingSeparator:C
        19: .line 256
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.binaryAttrs:Ljava/util/Hashtable;
        20: .line 257
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.connectTimeout:I
        21: .line 258
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.readTimeout:I
        22: .line 259
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.waitForReply:Z
        23: .line 260
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.replyQueueSize:I
        24: .line 261
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
        25: .line 262
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.useDefaultPortNumber:Z
        26: .line 267
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.parentIsLdapCtx:Z
        27: .line 269
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.hopCount:I
        28: .line 270
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.url:Ljava/lang/String;
        29: .line 272
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
        30: .line 273
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.sharable:Z
        31: .line 2865
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.enumCount:I
        32: .line 2866
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.closeRequested:Z
        33: .line 282
            aload 0 /* this */
            aload 0 /* this */
            iload 5 /* useSsl */
            dup_x1
            putfield com.sun.jndi.ldap.LdapCtx.hasLdapsScheme:Z
            putfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
        34: .line 284
            aload 4 /* props */
            ifnull 42
        35: .line 285
            aload 0 /* this */
            aload 4 /* props */
            invokevirtual java.util.Hashtable.clone:()Ljava/lang/Object;
            checkcast java.util.Hashtable
            putfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        36: .line 288
            ldc "ssl"
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.security.protocol"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 38
        37: .line 289
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
        38: .line 294
      StackMap locals: com.sun.jndi.ldap.LdapCtx java.lang.String java.lang.String int java.util.Hashtable int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "com.sun.jndi.ldap.trace.ber"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.io.OutputStream
            putfield com.sun.jndi.ldap.LdapCtx.trace:Ljava/io/OutputStream;
        39: .line 296
            aload 4 /* props */
            ldc "com.sun.jndi.ldap.netscape.schemaBugs"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnonnull 41
        40: .line 297
            aload 4 /* props */
            ldc "com.sun.naming.netscape.schemaBugs"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 42
        41: .line 298
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.netscapeSchemaBug:Z
        42: .line 302
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* dn */
            ifnull 43
            aload 1 /* dn */
            goto 44
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapCtx
        43: ldc ""
      StackMap locals: com.sun.jndi.ldap.LdapCtx java.lang.String java.lang.String int java.util.Hashtable int
      StackMap stack: com.sun.jndi.ldap.LdapCtx java.lang.String
        44: putfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
        45: .line 303
            aload 0 /* this */
            getstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            invokeinterface javax.naming.NameParser.parse:(Ljava/lang/String;)Ljavax/naming/Name;
            putfield com.sun.jndi.ldap.LdapCtx.currentParsedDN:Ljavax/naming/Name;
        46: .line 305
            aload 0 /* this */
            aload 2 /* host */
            ifnull 47
            aload 2 /* host */
            invokevirtual java.lang.String.length:()I
            ifle 47
            aload 2 /* host */
            goto 48
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapCtx
        47: ldc "localhost"
      StackMap locals: com.sun.jndi.ldap.LdapCtx java.lang.String java.lang.String int java.util.Hashtable int
      StackMap stack: com.sun.jndi.ldap.LdapCtx java.lang.String
        48: putfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
        49: .line 306
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 91
            if_icmpne 51
        50: .line 307
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            iconst_1
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            putfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
        51: .line 310
      StackMap locals:
      StackMap stack:
            iload 3 /* port_number */
            ifle 54
        52: .line 311
            aload 0 /* this */
            iload 3 /* port_number */
            putfield com.sun.jndi.ldap.LdapCtx.port_number:I
        53: .line 312
            goto 58
        54: .line 313
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
            ifeq 55
            sipush 636
            goto 56
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapCtx
        55: sipush 389
      StackMap locals: com.sun.jndi.ldap.LdapCtx java.lang.String java.lang.String int java.util.Hashtable int
      StackMap stack: com.sun.jndi.ldap.LdapCtx int
        56: putfield com.sun.jndi.ldap.LdapCtx.port_number:I
        57: .line 314
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.useDefaultPortNumber:Z
        58: .line 317
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.util.Hashtable
            dup
            bipush 11
            ldc 0.75
            invokespecial java.util.Hashtable.<init>:(IF)V
            putfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
        59: .line 318
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.initEnv:()V
        60: .line 320
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.connect:(Z)V
        61: .line 321
            goto 67
      StackMap locals:
      StackMap stack: javax.naming.NamingException
        62: astore 6 /* e */
        start local 6 // javax.naming.NamingException e
        63: .line 323
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.close:()V
        64: .line 324
            goto 66
      StackMap locals: com.sun.jndi.ldap.LdapCtx java.lang.String java.lang.String int java.util.Hashtable int javax.naming.NamingException
      StackMap stack: java.lang.Exception
        65: pop
        66: .line 327
      StackMap locals:
      StackMap stack:
            aload 6 /* e */
            athrow
        end local 6 // javax.naming.NamingException e
        67: .line 329
      StackMap locals:
      StackMap stack:
            return
        end local 5 // boolean useSsl
        end local 4 // java.util.Hashtable props
        end local 3 // int port_number
        end local 2 // java.lang.String host
        end local 1 // java.lang.String dn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   68     0         this  Lcom/sun/jndi/ldap/LdapCtx;
            0   68     1           dn  Ljava/lang/String;
            0   68     2         host  Ljava/lang/String;
            0   68     3  port_number  I
            0   68     4        props  Ljava/util/Hashtable<**>;
            0   68     5       useSsl  Z
           63   67     6            e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
          60    61      62  Class javax.naming.NamingException
          63    64      65  Class java.lang.Exception
    Exceptions:
      throws javax.naming.NamingException
    Signature: (Ljava/lang/String;Ljava/lang/String;ILjava/util/Hashtable<**>;Z)V
    MethodParameters:
             Name  Flags
      dn           
      host         
      port_number  
      props        
      useSsl       

  void <init>(com.sun.jndi.ldap.LdapCtx, java.lang.String);
    descriptor: (Lcom/sun/jndi/ldap/LdapCtx;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // com.sun.jndi.ldap.LdapCtx existing
        start local 2 // java.lang.String newDN
         0: .line 331
            aload 0 /* this */
            invokespecial com.sun.jndi.toolkit.ctx.ComponentDirContext.<init>:()V
         1: .line 224
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
         2: .line 226
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
         3: .line 227
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.reconnect:Z
         4: .line 228
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
         5: .line 229
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
         6: .line 230
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.hasLdapsScheme:Z
         7: .line 237
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
         8: .line 238
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
         9: .line 245
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.trace:Ljava/io/OutputStream;
        10: .line 246
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.netscapeSchemaBug:Z
        11: .line 247
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
        12: .line 248
            aload 0 /* this */
            bipush 10
            putfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
        13: .line 249
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
        14: .line 250
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.batchSize:I
        15: .line 251
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.deleteRDN:Z
        16: .line 252
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.typesOnly:Z
        17: .line 253
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
        18: .line 254
            aload 0 /* this */
            bipush 35
            putfield com.sun.jndi.ldap.LdapCtx.addrEncodingSeparator:C
        19: .line 256
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.binaryAttrs:Ljava/util/Hashtable;
        20: .line 257
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.connectTimeout:I
        21: .line 258
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.readTimeout:I
        22: .line 259
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.waitForReply:Z
        23: .line 260
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.replyQueueSize:I
        24: .line 261
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
        25: .line 262
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.useDefaultPortNumber:Z
        26: .line 267
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.parentIsLdapCtx:Z
        27: .line 269
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.hopCount:I
        28: .line 270
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.url:Ljava/lang/String;
        29: .line 272
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
        30: .line 273
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.sharable:Z
        31: .line 2865
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.enumCount:I
        32: .line 2866
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.closeRequested:Z
        33: .line 332
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
            putfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
        34: .line 333
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.hasLdapsScheme:Z
            putfield com.sun.jndi.ldap.LdapCtx.hasLdapsScheme:Z
        35: .line 334
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.useDefaultPortNumber:Z
            putfield com.sun.jndi.ldap.LdapCtx.useDefaultPortNumber:Z
        36: .line 336
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            putfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
        37: .line 337
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.port_number:I
            putfield com.sun.jndi.ldap.LdapCtx.port_number:I
        38: .line 338
            aload 0 /* this */
            aload 2 /* newDN */
            putfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
        39: .line 339
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            if_acmpne 42
        40: .line 340
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.currentParsedDN:Ljavax/naming/Name;
            putfield com.sun.jndi.ldap.LdapCtx.currentParsedDN:Ljavax/naming/Name;
        41: .line 341
            goto 43
        42: .line 342
      StackMap locals: com.sun.jndi.ldap.LdapCtx com.sun.jndi.ldap.LdapCtx java.lang.String
      StackMap stack:
            aload 0 /* this */
            getstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            invokeinterface javax.naming.NameParser.parse:(Ljava/lang/String;)Ljavax/naming/Name;
            putfield com.sun.jndi.ldap.LdapCtx.currentParsedDN:Ljavax/naming/Name;
        43: .line 345
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            putfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        44: .line 346
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
            putfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
        45: .line 348
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            putfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
        46: .line 349
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            invokevirtual com.sun.jndi.ldap.LdapClient.incRefCount:()V
        47: .line 351
            aload 0 /* this */
            aload 2 /* newDN */
            ifnull 48
            aload 2 /* newDN */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 49
        48: .line 352
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapCtx
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.parentIsLdapCtx:Z
            goto 50
        49: .line 353
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapCtx
            iconst_1
        50: .line 351
      StackMap locals: com.sun.jndi.ldap.LdapCtx com.sun.jndi.ldap.LdapCtx java.lang.String
      StackMap stack: com.sun.jndi.ldap.LdapCtx int
            putfield com.sun.jndi.ldap.LdapCtx.parentIsLdapCtx:Z
        51: .line 356
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.trace:Ljava/io/OutputStream;
            putfield com.sun.jndi.ldap.LdapCtx.trace:Ljava/io/OutputStream;
        52: .line 357
            aload 0 /* this */
            aload 1 /* existing */
            getfield com.sun.jndi.ldap.LdapCtx.netscapeSchemaBug:Z
            putfield com.sun.jndi.ldap.LdapCtx.netscapeSchemaBug:Z
        53: .line 359
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.initEnv:()V
        54: .line 360
            return
        end local 2 // java.lang.String newDN
        end local 1 // com.sun.jndi.ldap.LdapCtx existing
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   55     0      this  Lcom/sun/jndi/ldap/LdapCtx;
            0   55     1  existing  Lcom/sun/jndi/ldap/LdapCtx;
            0   55     2     newDN  Ljava/lang/String;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
          Name  Flags
      existing  
      newDN     

  public javax.naming.ldap.LdapContext newInstance(javax.naming.ldap.Control[]);
    descriptor: ([Ljavax/naming/ldap/Control;)Ljavax/naming/ldap/LdapContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.ldap.Control[] reqCtls
         0: .line 364
            new com.sun.jndi.ldap.LdapCtx
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            invokespecial com.sun.jndi.ldap.LdapCtx.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Ljava/lang/String;)V
            astore 2 /* clone */
        start local 2 // javax.naming.ldap.LdapContext clone
         1: .line 370
            aload 2 /* clone */
            aload 1 /* reqCtls */
            invokeinterface javax.naming.ldap.LdapContext.setRequestControls:([Ljavax/naming/ldap/Control;)V
         2: .line 371
            aload 2 /* clone */
            areturn
        end local 2 // javax.naming.ldap.LdapContext clone
        end local 1 // javax.naming.ldap.Control[] reqCtls
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/sun/jndi/ldap/LdapCtx;
            0    3     1  reqCtls  [Ljavax/naming/ldap/Control;
            1    3     2    clone  Ljavax/naming/ldap/LdapContext;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
         Name  Flags
      reqCtls  

  protected void c_bind(javax.naming.Name, java.lang.Object, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljava/lang/Object;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.Object obj
        start local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 381
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* obj */
            aconst_null
            aload 3 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_bind:(Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
         1: .line 382
            return
        end local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 2 // java.lang.Object obj
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    2     1  name  Ljavax/naming/Name;
            0    2     2   obj  Ljava/lang/Object;
            0    2     3  cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      obj   
      cont  

  protected void c_bind(javax.naming.Name, java.lang.Object, javax.naming.directory.Attributes, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=10, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.Object obj
        start local 3 // javax.naming.directory.Attributes attrs
        start local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 400
            aload 4 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 402
            aload 3 /* attrs */
            astore 5 /* inputAttrs */
        start local 5 // javax.naming.directory.Attributes inputAttrs
         2: .line 404
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         3: .line 406
            aload 2 /* obj */
            ifnonnull 8
         4: .line 407
            aload 3 /* attrs */
            ifnonnull 11
         5: .line 408
            new java.lang.IllegalArgumentException
            dup
         6: .line 409
            ldc "cannot bind null object with no attributes"
         7: .line 408
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 412
      StackMap locals: javax.naming.directory.Attributes
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.addrEncodingSeparator:C
            aload 2 /* obj */
            aload 3 /* attrs */
         9: .line 413
            iconst_0
            aload 1 /* name */
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        10: .line 412
            invokestatic com.sun.jndi.ldap.Obj.determineBindAttrs:(CLjava/lang/Object;Ljavax/naming/directory/Attributes;ZLjavax/naming/Name;Ljavax/naming/Context;Ljava/util/Hashtable;)Ljavax/naming/directory/Attributes;
            astore 3 /* attrs */
        11: .line 416
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            astore 6 /* newDN */
        start local 6 // java.lang.String newDN
        12: .line 417
            aload 6 /* newDN */
            aload 3 /* attrs */
            aload 5 /* inputAttrs */
            aload 3 /* attrs */
            if_acmpeq 13
            iconst_1
            goto 14
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes java.lang.String
      StackMap stack: java.lang.String javax.naming.directory.Attributes
        13: iconst_0
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes java.lang.String
      StackMap stack: java.lang.String javax.naming.directory.Attributes int
        14: invokestatic com.sun.jndi.ldap.LdapCtx.addRdnAttributes:(Ljava/lang/String;Ljavax/naming/directory/Attributes;Z)Ljavax/naming/directory/Attributes;
            astore 3 /* attrs */
        15: .line 418
            new com.sun.jndi.ldap.LdapEntry
            dup
            aload 6 /* newDN */
            aload 3 /* attrs */
            invokespecial com.sun.jndi.ldap.LdapEntry.<init>:(Ljava/lang/String;Ljavax/naming/directory/Attributes;)V
            astore 7 /* entry */
        start local 7 // com.sun.jndi.ldap.LdapEntry entry
        16: .line 420
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 7 /* entry */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.add:(Lcom/sun/jndi/ldap/LdapEntry;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 8 /* answer */
        start local 8 // com.sun.jndi.ldap.LdapResult answer
        17: .line 421
            aload 0 /* this */
            aload 8 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        18: .line 423
            aload 8 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 42
        19: .line 424
            aload 0 /* this */
            aload 8 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        end local 8 // com.sun.jndi.ldap.LdapResult answer
        end local 7 // com.sun.jndi.ldap.LdapEntry entry
        end local 6 // java.lang.String newDN
        20: .line 427
            goto 42
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
        21: astore 6 /* e */
        start local 6 // com.sun.jndi.ldap.LdapReferralException e
        22: .line 428
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 24
        23: .line 429
            aload 4 /* cont */
            aload 6 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        24: .line 435
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 6 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        25: .line 434
            astore 7 /* refCtx */
        start local 7 // com.sun.jndi.ldap.LdapReferralContext refCtx
        26: .line 440
            aload 7 /* refCtx */
            aload 1 /* name */
            aload 2 /* obj */
            aload 5 /* inputAttrs */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.bind:(Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/directory/Attributes;)V
        27: .line 449
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        28: .line 441
            return
        29: .line 443
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 8 /* re */
        start local 8 // com.sun.jndi.ldap.LdapReferralException re
        30: .line 444
            aload 8 /* re */
            astore 6 /* e */
        31: .line 449
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        32: .line 445
            goto 24
        end local 8 // com.sun.jndi.ldap.LdapReferralException re
        33: .line 447
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        34: .line 449
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        35: .line 450
            aload 9
            athrow
        end local 7 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 6 // com.sun.jndi.ldap.LdapReferralException e
        36: .line 453
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes
      StackMap stack: java.io.IOException
            astore 6 /* e */
        start local 6 // java.io.IOException e
        37: .line 454
            new javax.naming.CommunicationException
            dup
            aload 6 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 7 /* e2 */
        start local 7 // javax.naming.NamingException e2
        38: .line 455
            aload 7 /* e2 */
            aload 6 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        39: .line 456
            aload 4 /* cont */
            aload 7 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 7 // javax.naming.NamingException e2
        end local 6 // java.io.IOException e
        40: .line 458
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 6 /* e */
        start local 6 // javax.naming.NamingException e
        41: .line 459
            aload 4 /* cont */
            aload 6 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 6 // javax.naming.NamingException e
        42: .line 461
      StackMap locals:
      StackMap stack:
            return
        end local 5 // javax.naming.directory.Attributes inputAttrs
        end local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 3 // javax.naming.directory.Attributes attrs
        end local 2 // java.lang.Object obj
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   43     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0   43     1        name  Ljavax/naming/Name;
            0   43     2         obj  Ljava/lang/Object;
            0   43     3       attrs  Ljavax/naming/directory/Attributes;
            0   43     4        cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            2   43     5  inputAttrs  Ljavax/naming/directory/Attributes;
           12   20     6       newDN  Ljava/lang/String;
           16   20     7       entry  Lcom/sun/jndi/ldap/LdapEntry;
           17   20     8      answer  Lcom/sun/jndi/ldap/LdapResult;
           22   36     6           e  Lcom/sun/jndi/ldap/LdapReferralException;
           26   36     7      refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           30   33     8          re  Lcom/sun/jndi/ldap/LdapReferralException;
           37   40     6           e  Ljava/io/IOException;
           38   40     7          e2  Ljavax/naming/NamingException;
           41   42     6           e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           2    20      21  Class com.sun.jndi.ldap.LdapReferralException
          26    27      29  Class com.sun.jndi.ldap.LdapReferralException
          26    27      33  any
          29    31      33  any
           2    20      36  Class java.io.IOException
           2    20      40  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
       Name  Flags
      name   
      obj    
      attrs  
      cont   

  protected void c_rebind(javax.naming.Name, java.lang.Object, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljava/lang/Object;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.Object obj
        start local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 465
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* obj */
            aconst_null
            aload 3 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_rebind:(Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
         1: .line 466
            return
        end local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 2 // java.lang.Object obj
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    2     1  name  Ljavax/naming/Name;
            0    2     2   obj  Ljava/lang/Object;
            0    2     3  cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      obj   
      cont  

  protected void c_rebind(javax.naming.Name, java.lang.Object, javax.naming.directory.Attributes, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=12, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.Object obj
        start local 3 // javax.naming.directory.Attributes attrs
        start local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 487
            aload 4 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 489
            aload 3 /* attrs */
            astore 5 /* inputAttrs */
        start local 5 // javax.naming.directory.Attributes inputAttrs
         2: .line 492
            aconst_null
            astore 6 /* origAttrs */
        start local 6 // javax.naming.directory.Attributes origAttrs
         3: .line 496
            aload 0 /* this */
            aload 1 /* name */
            aconst_null
            aload 4 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_getAttributes:(Ljavax/naming/Name;[Ljava/lang/String;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/directory/Attributes;
            astore 6 /* origAttrs */
         4: .line 497
            goto 6
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes javax.naming.directory.Attributes
      StackMap stack: javax.naming.NameNotFoundException
         5: pop
         6: .line 500
      StackMap locals:
      StackMap stack:
            aload 6 /* origAttrs */
            ifnonnull 9
         7: .line 501
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* obj */
            aload 3 /* attrs */
            aload 4 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_bind:(Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
         8: .line 502
            return
         9: .line 508
      StackMap locals:
      StackMap stack:
            aload 3 /* attrs */
            ifnonnull 11
            aload 2 /* obj */
            instanceof javax.naming.directory.DirContext
            ifeq 11
        10: .line 509
            aload 2 /* obj */
            checkcast javax.naming.directory.DirContext
            ldc ""
            invokeinterface javax.naming.directory.DirContext.getAttributes:(Ljava/lang/String;)Ljavax/naming/directory/Attributes;
            astore 3 /* attrs */
        11: .line 511
      StackMap locals:
      StackMap stack:
            aload 6 /* origAttrs */
            invokeinterface javax.naming.directory.Attributes.clone:()Ljava/lang/Object;
            checkcast javax.naming.directory.Attributes
            astore 7 /* keepAttrs */
        start local 7 // javax.naming.directory.Attributes keepAttrs
        12: .line 513
            aload 3 /* attrs */
            ifnonnull 30
        13: .line 518
            aload 6 /* origAttrs */
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_0
            aaload
            invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
        14: .line 517
            astore 8 /* origObjectClass */
        start local 8 // javax.naming.directory.Attribute origObjectClass
        15: .line 520
            aload 8 /* origObjectClass */
            ifnull 24
        16: .line 522
            aload 8 /* origObjectClass */
            invokeinterface javax.naming.directory.Attribute.clone:()Ljava/lang/Object;
            checkcast javax.naming.directory.Attribute
            astore 8 /* origObjectClass */
        17: .line 523
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        18: goto 22
        19: .line 524
      StackMap locals: javax.naming.directory.Attributes javax.naming.directory.Attribute int
      StackMap stack:
            aload 8 /* origObjectClass */
            getstatic com.sun.jndi.ldap.Obj.JAVA_OBJECT_CLASSES_LOWER:[Ljava/lang/String;
            iload 9 /* i */
            aaload
            invokeinterface javax.naming.directory.Attribute.remove:(Ljava/lang/Object;)Z
            pop
        20: .line 525
            aload 8 /* origObjectClass */
            getstatic com.sun.jndi.ldap.Obj.JAVA_OBJECT_CLASSES:[Ljava/lang/String;
            iload 9 /* i */
            aaload
            invokeinterface javax.naming.directory.Attribute.remove:(Ljava/lang/Object;)Z
            pop
        21: .line 523
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 9 /* i */
            getstatic com.sun.jndi.ldap.Obj.JAVA_OBJECT_CLASSES:[Ljava/lang/String;
            arraylength
            if_icmplt 19
        end local 9 // int i
        23: .line 528
            aload 6 /* origAttrs */
            aload 8 /* origObjectClass */
            invokeinterface javax.naming.directory.Attributes.put:(Ljavax/naming/directory/Attribute;)Ljavax/naming/directory/Attribute;
            pop
        24: .line 532
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 9 /* i */
        start local 9 // int i
        25: goto 28
        26: .line 533
      StackMap locals: int
      StackMap stack:
            aload 6 /* origAttrs */
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iload 9 /* i */
            aaload
            invokeinterface javax.naming.directory.Attributes.remove:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
            pop
        27: .line 532
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        28: iload 9 /* i */
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            arraylength
            if_icmplt 26
        end local 9 // int i
        29: .line 536
            aload 6 /* origAttrs */
            astore 3 /* attrs */
        end local 8 // javax.naming.directory.Attribute origObjectClass
        30: .line 538
      StackMap locals:
      StackMap stack:
            aload 2 /* obj */
            ifnull 37
        31: .line 540
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.addrEncodingSeparator:C
            aload 2 /* obj */
            aload 3 /* attrs */
        32: .line 541
            aload 5 /* inputAttrs */
            aload 3 /* attrs */
            if_acmpeq 33
            iconst_1
            goto 34
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes javax.naming.directory.Attributes javax.naming.directory.Attributes
      StackMap stack: int java.lang.Object javax.naming.directory.Attributes
        33: iconst_0
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes javax.naming.directory.Attributes javax.naming.directory.Attributes
      StackMap stack: int java.lang.Object javax.naming.directory.Attributes int
        34: aload 1 /* name */
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        35: .line 540
            invokestatic com.sun.jndi.ldap.Obj.determineBindAttrs:(CLjava/lang/Object;Ljavax/naming/directory/Attributes;ZLjavax/naming/Name;Ljavax/naming/Context;Ljava/util/Hashtable;)Ljavax/naming/directory/Attributes;
        36: .line 539
            astore 3 /* attrs */
        37: .line 544
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            astore 8 /* newDN */
        start local 8 // java.lang.String newDN
        38: .line 546
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 8 /* newDN */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.delete:(Ljava/lang/String;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 9 /* answer */
        start local 9 // com.sun.jndi.ldap.LdapResult answer
        39: .line 547
            aload 0 /* this */
            aload 9 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        40: .line 549
            aload 9 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 43
        41: .line 550
            aload 0 /* this */
            aload 9 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        42: .line 551
            return
        43: .line 554
      StackMap locals: java.lang.String com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aconst_null
            astore 10 /* addEx */
        start local 10 // java.lang.Exception addEx
        44: .line 556
            aload 8 /* newDN */
            aload 3 /* attrs */
            aload 5 /* inputAttrs */
            aload 3 /* attrs */
            if_acmpeq 45
            iconst_1
            goto 46
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes javax.naming.directory.Attributes javax.naming.directory.Attributes java.lang.String com.sun.jndi.ldap.LdapResult java.lang.Exception
      StackMap stack: java.lang.String javax.naming.directory.Attributes
        45: iconst_0
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes javax.naming.directory.Attributes javax.naming.directory.Attributes java.lang.String com.sun.jndi.ldap.LdapResult java.lang.Exception
      StackMap stack: java.lang.String javax.naming.directory.Attributes int
        46: invokestatic com.sun.jndi.ldap.LdapCtx.addRdnAttributes:(Ljava/lang/String;Ljavax/naming/directory/Attributes;Z)Ljavax/naming/directory/Attributes;
            astore 3 /* attrs */
        47: .line 559
            new com.sun.jndi.ldap.LdapEntry
            dup
            aload 8 /* newDN */
            aload 3 /* attrs */
            invokespecial com.sun.jndi.ldap.LdapEntry.<init>:(Ljava/lang/String;Ljavax/naming/directory/Attributes;)V
            astore 11 /* entry */
        start local 11 // com.sun.jndi.ldap.LdapEntry entry
        48: .line 560
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 11 /* entry */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.add:(Lcom/sun/jndi/ldap/LdapEntry;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 9 /* answer */
        49: .line 561
            aload 9 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            ifnull 54
        50: .line 562
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
            aload 9 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            invokestatic com.sun.jndi.ldap.LdapCtx.appendVector:(Ljava/util/Vector;Ljava/util/Vector;)Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        end local 11 // com.sun.jndi.ldap.LdapEntry entry
        51: .line 564
            goto 54
      StackMap locals:
      StackMap stack: java.lang.Exception
        52: astore 11 /* ae */
        start local 11 // java.lang.Exception ae
        53: .line 565
            aload 11 /* ae */
            astore 10 /* addEx */
        end local 11 // java.lang.Exception ae
        54: .line 568
      StackMap locals:
      StackMap stack:
            aload 10 /* addEx */
            ifnull 55
            aload 10 /* addEx */
            instanceof com.sun.jndi.ldap.LdapReferralException
            ifeq 56
        55: .line 569
      StackMap locals:
      StackMap stack:
            aload 9 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 62
        56: .line 572
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            new com.sun.jndi.ldap.LdapEntry
            dup
            aload 8 /* newDN */
            aload 7 /* keepAttrs */
            invokespecial com.sun.jndi.ldap.LdapEntry.<init>:(Ljava/lang/String;Ljavax/naming/directory/Attributes;)V
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.add:(Lcom/sun/jndi/ldap/LdapEntry;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
        57: .line 571
            astore 11 /* answer2 */
        start local 11 // com.sun.jndi.ldap.LdapResult answer2
        58: .line 573
            aload 11 /* answer2 */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            ifnull 60
        59: .line 574
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
            aload 11 /* answer2 */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            invokestatic com.sun.jndi.ldap.LdapCtx.appendVector:(Ljava/util/Vector;Ljava/util/Vector;)Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        60: .line 577
      StackMap locals: com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 10 /* addEx */
            ifnonnull 62
        61: .line 578
            aload 0 /* this */
            aload 9 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        end local 11 // com.sun.jndi.ldap.LdapResult answer2
        62: .line 583
      StackMap locals:
      StackMap stack:
            aload 10 /* addEx */
            instanceof javax.naming.NamingException
            ifeq 64
        63: .line 584
            aload 10 /* addEx */
            checkcast javax.naming.NamingException
            athrow
        64: .line 585
      StackMap locals:
      StackMap stack:
            aload 10 /* addEx */
            instanceof java.io.IOException
            ifeq 87
        65: .line 586
            aload 10 /* addEx */
            checkcast java.io.IOException
            athrow
        end local 10 // java.lang.Exception addEx
        end local 9 // com.sun.jndi.ldap.LdapResult answer
        end local 8 // java.lang.String newDN
        end local 7 // javax.naming.directory.Attributes keepAttrs
        end local 6 // javax.naming.directory.Attributes origAttrs
        66: .line 589
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 6 /* e */
        start local 6 // com.sun.jndi.ldap.LdapReferralException e
        67: .line 590
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 69
        68: .line 591
            aload 4 /* cont */
            aload 6 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        69: .line 597
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 6 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        70: .line 596
            astore 7 /* refCtx */
        start local 7 // com.sun.jndi.ldap.LdapReferralContext refCtx
        71: .line 602
            aload 7 /* refCtx */
            aload 1 /* name */
            aload 2 /* obj */
            aload 5 /* inputAttrs */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.rebind:(Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/directory/Attributes;)V
        72: .line 611
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        73: .line 603
            return
        74: .line 605
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 8 /* re */
        start local 8 // com.sun.jndi.ldap.LdapReferralException re
        75: .line 606
            aload 8 /* re */
            astore 6 /* e */
        76: .line 611
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        77: .line 607
            goto 69
        end local 8 // com.sun.jndi.ldap.LdapReferralException re
        78: .line 609
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        79: .line 611
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        80: .line 612
            aload 9
            athrow
        end local 7 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 6 // com.sun.jndi.ldap.LdapReferralException e
        81: .line 615
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.Object javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes
      StackMap stack: java.io.IOException
            astore 6 /* e */
        start local 6 // java.io.IOException e
        82: .line 616
            new javax.naming.CommunicationException
            dup
            aload 6 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 7 /* e2 */
        start local 7 // javax.naming.NamingException e2
        83: .line 617
            aload 7 /* e2 */
            aload 6 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        84: .line 618
            aload 4 /* cont */
            aload 7 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 7 // javax.naming.NamingException e2
        end local 6 // java.io.IOException e
        85: .line 620
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 6 /* e */
        start local 6 // javax.naming.NamingException e
        86: .line 621
            aload 4 /* cont */
            aload 6 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 6 // javax.naming.NamingException e
        87: .line 623
      StackMap locals:
      StackMap stack:
            return
        end local 5 // javax.naming.directory.Attributes inputAttrs
        end local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 3 // javax.naming.directory.Attributes attrs
        end local 2 // java.lang.Object obj
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   88     0             this  Lcom/sun/jndi/ldap/LdapCtx;
            0   88     1             name  Ljavax/naming/Name;
            0   88     2              obj  Ljava/lang/Object;
            0   88     3            attrs  Ljavax/naming/directory/Attributes;
            0   88     4             cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            2   88     5       inputAttrs  Ljavax/naming/directory/Attributes;
            3   66     6        origAttrs  Ljavax/naming/directory/Attributes;
           12   66     7        keepAttrs  Ljavax/naming/directory/Attributes;
           15   30     8  origObjectClass  Ljavax/naming/directory/Attribute;
           18   23     9                i  I
           25   29     9                i  I
           38   66     8            newDN  Ljava/lang/String;
           39   66     9           answer  Lcom/sun/jndi/ldap/LdapResult;
           44   66    10            addEx  Ljava/lang/Exception;
           48   51    11            entry  Lcom/sun/jndi/ldap/LdapEntry;
           53   54    11               ae  Ljava/lang/Exception;
           58   62    11          answer2  Lcom/sun/jndi/ldap/LdapResult;
           67   81     6                e  Lcom/sun/jndi/ldap/LdapReferralException;
           71   81     7           refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           75   78     8               re  Lcom/sun/jndi/ldap/LdapReferralException;
           82   85     6                e  Ljava/io/IOException;
           83   85     7               e2  Ljavax/naming/NamingException;
           86   87     6                e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           3     4       5  Class javax.naming.NameNotFoundException
          44    51      52  Class javax.naming.NamingException
          44    51      52  Class java.io.IOException
           2     8      66  Class com.sun.jndi.ldap.LdapReferralException
           9    42      66  Class com.sun.jndi.ldap.LdapReferralException
          43    66      66  Class com.sun.jndi.ldap.LdapReferralException
          71    72      74  Class com.sun.jndi.ldap.LdapReferralException
          71    72      78  any
          74    76      78  any
           2     8      81  Class java.io.IOException
           9    42      81  Class java.io.IOException
          43    66      81  Class java.io.IOException
           2     8      85  Class javax.naming.NamingException
           9    42      85  Class javax.naming.NamingException
          43    66      85  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
       Name  Flags
      name   
      obj    
      attrs  
      cont   

  protected void c_unbind(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 627
            aload 2 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 630
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         2: .line 632
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            astore 3 /* fname */
        start local 3 // java.lang.String fname
         3: .line 633
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 3 /* fname */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.delete:(Ljava/lang/String;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 4 /* answer */
        start local 4 // com.sun.jndi.ldap.LdapResult answer
         4: .line 634
            aload 0 /* this */
            aload 4 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
         5: .line 636
            aload 0 /* this */
            aload 3 /* fname */
            aload 4 /* answer */
            invokevirtual com.sun.jndi.ldap.LdapCtx.adjustDeleteStatus:(Ljava/lang/String;Lcom/sun/jndi/ldap/LdapResult;)V
         6: .line 638
            aload 4 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 30
         7: .line 639
            aload 0 /* this */
            aload 4 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        end local 4 // com.sun.jndi.ldap.LdapResult answer
        end local 3 // java.lang.String fname
         8: .line 642
            goto 30
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
         9: astore 3 /* e */
        start local 3 // com.sun.jndi.ldap.LdapReferralException e
        10: .line 643
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 12
        11: .line 644
            aload 2 /* cont */
            aload 3 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        12: .line 650
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 3 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        13: .line 649
            astore 4 /* refCtx */
        start local 4 // com.sun.jndi.ldap.LdapReferralContext refCtx
        14: .line 655
            aload 4 /* refCtx */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.unbind:(Ljavax/naming/Name;)V
        15: .line 664
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        16: .line 656
            return
        17: .line 658
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 5 /* re */
        start local 5 // com.sun.jndi.ldap.LdapReferralException re
        18: .line 659
            aload 5 /* re */
            astore 3 /* e */
        19: .line 664
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        20: .line 660
            goto 12
        end local 5 // com.sun.jndi.ldap.LdapReferralException re
        21: .line 662
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        22: .line 664
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        23: .line 665
            aload 6
            athrow
        end local 4 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 3 // com.sun.jndi.ldap.LdapReferralException e
        24: .line 668
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        25: .line 669
            new javax.naming.CommunicationException
            dup
            aload 3 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 4 /* e2 */
        start local 4 // javax.naming.NamingException e2
        26: .line 670
            aload 4 /* e2 */
            aload 3 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        27: .line 671
            aload 2 /* cont */
            aload 4 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 4 // javax.naming.NamingException e2
        end local 3 // java.io.IOException e
        28: .line 673
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 3 /* e */
        start local 3 // javax.naming.NamingException e
        29: .line 674
            aload 2 /* cont */
            aload 3 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 3 // javax.naming.NamingException e
        30: .line 676
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   31     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0   31     1    name  Ljavax/naming/Name;
            0   31     2    cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            3    8     3   fname  Ljava/lang/String;
            4    8     4  answer  Lcom/sun/jndi/ldap/LdapResult;
           10   24     3       e  Lcom/sun/jndi/ldap/LdapReferralException;
           14   24     4  refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           18   21     5      re  Lcom/sun/jndi/ldap/LdapReferralException;
           25   28     3       e  Ljava/io/IOException;
           26   28     4      e2  Ljavax/naming/NamingException;
           29   30     3       e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           1     8       9  Class com.sun.jndi.ldap.LdapReferralException
          14    15      17  Class com.sun.jndi.ldap.LdapReferralException
          14    15      21  any
          17    19      21  any
           1     8      24  Class java.io.IOException
           1     8      28  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  protected void c_rename(javax.naming.Name, javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=14, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name oldName
        start local 2 // javax.naming.Name newName
        start local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 683
            aconst_null
            astore 8 /* newRDN */
        start local 8 // java.lang.String newRDN
         1: .line 684
            aconst_null
            astore 9 /* newSuperior */
        start local 9 // java.lang.String newSuperior
         2: .line 688
            aload 3 /* cont */
            aload 0 /* this */
            aload 1 /* oldName */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         3: .line 691
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         4: .line 694
            aload 1 /* oldName */
            invokeinterface javax.naming.Name.isEmpty:()Z
            ifeq 7
         5: .line 695
            getstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
            ldc ""
            invokeinterface javax.naming.NameParser.parse:(Ljava/lang/String;)Ljavax/naming/Name;
            astore 6 /* oldParent */
        start local 6 // javax.naming.Name oldParent
         6: .line 696
            goto 9
        end local 6 // javax.naming.Name oldParent
         7: .line 697
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation top top top top java.lang.String java.lang.String
      StackMap stack:
            getstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
            aload 1 /* oldName */
            iconst_0
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
            invokeinterface javax.naming.NameParser.parse:(Ljava/lang/String;)Ljavax/naming/Name;
            astore 4 /* oldParsed */
        start local 4 // javax.naming.Name oldParsed
         8: .line 698
            aload 4 /* oldParsed */
            aload 4 /* oldParsed */
            invokeinterface javax.naming.Name.size:()I
            iconst_1
            isub
            invokeinterface javax.naming.Name.getPrefix:(I)Ljavax/naming/Name;
            astore 6 /* oldParent */
        end local 4 // javax.naming.Name oldParsed
        start local 6 // javax.naming.Name oldParent
         9: .line 701
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation top top javax.naming.Name top java.lang.String java.lang.String
      StackMap stack:
            aload 2 /* newName */
            instanceof javax.naming.CompositeName
            ifeq 12
        10: .line 702
            getstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
            aload 2 /* newName */
            iconst_0
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
            invokeinterface javax.naming.NameParser.parse:(Ljava/lang/String;)Ljavax/naming/Name;
            astore 5 /* newParsed */
        start local 5 // javax.naming.Name newParsed
        11: .line 703
            goto 13
        end local 5 // javax.naming.Name newParsed
        12: .line 704
      StackMap locals:
      StackMap stack:
            aload 2 /* newName */
            astore 5 /* newParsed */
        start local 5 // javax.naming.Name newParsed
        13: .line 706
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation top javax.naming.Name javax.naming.Name top java.lang.String java.lang.String
      StackMap stack:
            aload 5 /* newParsed */
            aload 5 /* newParsed */
            invokeinterface javax.naming.Name.size:()I
            iconst_1
            isub
            invokeinterface javax.naming.Name.getPrefix:(I)Ljavax/naming/Name;
            astore 7 /* newParent */
        start local 7 // javax.naming.Name newParent
        14: .line 708
            aload 6 /* oldParent */
            aload 7 /* newParent */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 20
        15: .line 709
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifne 19
        16: .line 710
            new javax.naming.InvalidNameException
            dup
        17: .line 711
            ldc "LDAPv2 doesn't support changing the parent as a result of a rename"
        18: .line 710
            invokespecial javax.naming.InvalidNameException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 714
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation top javax.naming.Name javax.naming.Name javax.naming.Name java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 7 /* newParent */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* newSuperior */
        20: .line 718
      StackMap locals:
      StackMap stack:
            aload 5 /* newParsed */
            aload 5 /* newParsed */
            invokeinterface javax.naming.Name.size:()I
            iconst_1
            isub
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
            astore 8 /* newRDN */
        21: .line 720
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 0 /* this */
            aload 1 /* oldName */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
        22: .line 721
            aload 8 /* newRDN */
        23: .line 722
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.deleteRDN:Z
        24: .line 723
            aload 9 /* newSuperior */
        25: .line 724
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
        26: .line 720
            invokevirtual com.sun.jndi.ldap.LdapClient.moddn:(Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 10 /* answer */
        start local 10 // com.sun.jndi.ldap.LdapResult answer
        27: .line 725
            aload 0 /* this */
            aload 10 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        28: .line 727
            aload 10 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 61
        29: .line 728
            aload 0 /* this */
            aload 10 /* answer */
            aload 1 /* oldName */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        end local 10 // com.sun.jndi.ldap.LdapResult answer
        30: .line 731
            goto 61
        end local 7 // javax.naming.Name newParent
        end local 6 // javax.naming.Name oldParent
        end local 5 // javax.naming.Name newParsed
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation top top top top java.lang.String java.lang.String
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
        31: astore 10 /* e */
        start local 10 // com.sun.jndi.ldap.LdapReferralException e
        32: .line 734
            aload 10 /* e */
            aload 8 /* newRDN */
            invokevirtual com.sun.jndi.ldap.LdapReferralException.setNewRdn:(Ljava/lang/String;)V
        33: .line 739
            aload 9 /* newSuperior */
            ifnull 41
        34: .line 740
            new javax.naming.PartialResultException
            dup
        35: .line 741
            new java.lang.StringBuilder
            dup
            ldc "Cannot continue referral processing when newSuperior is nonempty: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        36: .line 742
            aload 9 /* newSuperior */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        37: .line 741
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        38: .line 740
            invokespecial javax.naming.PartialResultException.<init>:(Ljava/lang/String;)V
            astore 11 /* pre */
        start local 11 // javax.naming.PartialResultException pre
        39: .line 743
            aload 11 /* pre */
            aload 3 /* cont */
            aload 10 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            invokevirtual javax.naming.PartialResultException.setRootCause:(Ljava/lang/Throwable;)V
        40: .line 744
            aload 3 /* cont */
            aload 11 /* pre */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 11 // javax.naming.PartialResultException pre
        41: .line 747
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 43
        42: .line 748
            aload 3 /* cont */
            aload 10 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        43: .line 754
      StackMap locals:
      StackMap stack:
            aload 10 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        44: .line 753
            astore 11 /* refCtx */
        start local 11 // com.sun.jndi.ldap.LdapReferralContext refCtx
        45: .line 759
            aload 11 /* refCtx */
            aload 1 /* oldName */
            aload 2 /* newName */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.rename:(Ljavax/naming/Name;Ljavax/naming/Name;)V
        46: .line 768
            aload 11 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        47: .line 760
            return
        48: .line 762
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation top top top top java.lang.String java.lang.String com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 12 /* re */
        start local 12 // com.sun.jndi.ldap.LdapReferralException re
        49: .line 763
            aload 12 /* re */
            astore 10 /* e */
        50: .line 768
            aload 11 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        51: .line 764
            goto 43
        end local 12 // com.sun.jndi.ldap.LdapReferralException re
        52: .line 766
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 13
        53: .line 768
            aload 11 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        54: .line 769
            aload 13
            athrow
        end local 11 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 10 // com.sun.jndi.ldap.LdapReferralException e
        55: .line 772
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation top top top top java.lang.String java.lang.String
      StackMap stack: java.io.IOException
            astore 10 /* e */
        start local 10 // java.io.IOException e
        56: .line 773
            new javax.naming.CommunicationException
            dup
            aload 10 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 11 /* e2 */
        start local 11 // javax.naming.NamingException e2
        57: .line 774
            aload 11 /* e2 */
            aload 10 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        58: .line 775
            aload 3 /* cont */
            aload 11 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 11 // javax.naming.NamingException e2
        end local 10 // java.io.IOException e
        59: .line 777
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 10 /* e */
        start local 10 // javax.naming.NamingException e
        60: .line 778
            aload 3 /* cont */
            aload 10 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 10 // javax.naming.NamingException e
        start local 5 // javax.naming.Name newParsed
        start local 6 // javax.naming.Name oldParent
        start local 7 // javax.naming.Name newParent
        61: .line 780
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation top javax.naming.Name javax.naming.Name javax.naming.Name java.lang.String java.lang.String
      StackMap stack:
            return
        end local 9 // java.lang.String newSuperior
        end local 8 // java.lang.String newRDN
        end local 7 // javax.naming.Name newParent
        end local 6 // javax.naming.Name oldParent
        end local 5 // javax.naming.Name newParsed
        end local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 2 // javax.naming.Name newName
        end local 1 // javax.naming.Name oldName
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   62     0         this  Lcom/sun/jndi/ldap/LdapCtx;
            0   62     1      oldName  Ljavax/naming/Name;
            0   62     2      newName  Ljavax/naming/Name;
            0   62     3         cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            8    9     4    oldParsed  Ljavax/naming/Name;
           11   12     5    newParsed  Ljavax/naming/Name;
           13   31     5    newParsed  Ljavax/naming/Name;
           61   62     5    newParsed  Ljavax/naming/Name;
            6    7     6    oldParent  Ljavax/naming/Name;
            9   31     6    oldParent  Ljavax/naming/Name;
           61   62     6    oldParent  Ljavax/naming/Name;
           14   31     7    newParent  Ljavax/naming/Name;
           61   62     7    newParent  Ljavax/naming/Name;
            1   62     8       newRDN  Ljava/lang/String;
            2   62     9  newSuperior  Ljava/lang/String;
           27   30    10       answer  Lcom/sun/jndi/ldap/LdapResult;
           32   55    10            e  Lcom/sun/jndi/ldap/LdapReferralException;
           39   41    11          pre  Ljavax/naming/PartialResultException;
           45   55    11       refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           49   52    12           re  Lcom/sun/jndi/ldap/LdapReferralException;
           56   59    10            e  Ljava/io/IOException;
           57   59    11           e2  Ljavax/naming/NamingException;
           60   61    10            e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           3    30      31  Class com.sun.jndi.ldap.LdapReferralException
          45    46      48  Class com.sun.jndi.ldap.LdapReferralException
          45    46      52  any
          48    50      52  any
           3    30      55  Class java.io.IOException
           3    30      59  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
         Name  Flags
      oldName  
      newName  
      cont     

  protected javax.naming.Context c_createSubcontext(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/Context;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 784
            aload 0 /* this */
            aload 1 /* name */
            aconst_null
            aload 2 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_createSubcontext:(Ljavax/naming/Name;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/directory/DirContext;
            areturn
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    1     1  name  Ljavax/naming/Name;
            0    1     2  cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  protected javax.naming.directory.DirContext c_createSubcontext(javax.naming.Name, javax.naming.directory.Attributes, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/directory/DirContext;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // javax.naming.directory.Attributes attrs
        start local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 790
            aload 3 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 792
            aload 2 /* attrs */
            astore 4 /* inputAttrs */
        start local 4 // javax.naming.directory.Attributes inputAttrs
         2: .line 794
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         3: .line 795
            aload 2 /* attrs */
            ifnonnull 11
         4: .line 797
            new javax.naming.directory.BasicAttribute
            dup
         5: .line 798
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_0
            aaload
         6: .line 799
            getstatic com.sun.jndi.ldap.Obj.JAVA_OBJECT_CLASSES:[Ljava/lang/String;
            iconst_0
            aaload
         7: .line 797
            invokespecial javax.naming.directory.BasicAttribute.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            astore 5 /* oc */
        start local 5 // javax.naming.directory.Attribute oc
         8: .line 800
            aload 5 /* oc */
            ldc "top"
            invokeinterface javax.naming.directory.Attribute.add:(Ljava/lang/Object;)Z
            pop
         9: .line 801
            new javax.naming.directory.BasicAttributes
            dup
            iconst_1
            invokespecial javax.naming.directory.BasicAttributes.<init>:(Z)V
            astore 2 /* attrs */
        10: .line 802
            aload 2 /* attrs */
            aload 5 /* oc */
            invokeinterface javax.naming.directory.Attributes.put:(Ljavax/naming/directory/Attribute;)Ljavax/naming/directory/Attribute;
            pop
        end local 5 // javax.naming.directory.Attribute oc
        11: .line 804
      StackMap locals: javax.naming.directory.Attributes
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            astore 5 /* newDN */
        start local 5 // java.lang.String newDN
        12: .line 805
            aload 5 /* newDN */
            aload 2 /* attrs */
            aload 4 /* inputAttrs */
            aload 2 /* attrs */
            if_acmpeq 13
            iconst_1
            goto 14
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes java.lang.String
      StackMap stack: java.lang.String javax.naming.directory.Attributes
        13: iconst_0
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes java.lang.String
      StackMap stack: java.lang.String javax.naming.directory.Attributes int
        14: invokestatic com.sun.jndi.ldap.LdapCtx.addRdnAttributes:(Ljava/lang/String;Ljavax/naming/directory/Attributes;Z)Ljavax/naming/directory/Attributes;
            astore 2 /* attrs */
        15: .line 807
            new com.sun.jndi.ldap.LdapEntry
            dup
            aload 5 /* newDN */
            aload 2 /* attrs */
            invokespecial com.sun.jndi.ldap.LdapEntry.<init>:(Ljava/lang/String;Ljavax/naming/directory/Attributes;)V
            astore 6 /* entry */
        start local 6 // com.sun.jndi.ldap.LdapEntry entry
        16: .line 809
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 6 /* entry */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.add:(Lcom/sun/jndi/ldap/LdapEntry;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 7 /* answer */
        start local 7 // com.sun.jndi.ldap.LdapResult answer
        17: .line 810
            aload 0 /* this */
            aload 7 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        18: .line 812
            aload 7 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 21
        19: .line 813
            aload 0 /* this */
            aload 7 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        20: .line 814
            aconst_null
            areturn
        21: .line 818
      StackMap locals: com.sun.jndi.ldap.LdapEntry com.sun.jndi.ldap.LdapResult
      StackMap stack:
            new com.sun.jndi.ldap.LdapCtx
            dup
            aload 0 /* this */
            aload 5 /* newDN */
            invokespecial com.sun.jndi.ldap.LdapCtx.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Ljava/lang/String;)V
        22: areturn
        end local 7 // com.sun.jndi.ldap.LdapResult answer
        end local 6 // com.sun.jndi.ldap.LdapEntry entry
        end local 5 // java.lang.String newDN
        23: .line 820
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 5 /* e */
        start local 5 // com.sun.jndi.ldap.LdapReferralException e
        24: .line 821
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 26
        25: .line 822
            aload 3 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        26: .line 828
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 5 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        27: .line 827
            astore 6 /* refCtx */
        start local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        28: .line 833
            aload 6 /* refCtx */
            aload 1 /* name */
            aload 4 /* inputAttrs */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.createSubcontext:(Ljavax/naming/Name;Ljavax/naming/directory/Attributes;)Ljavax/naming/directory/DirContext;
            astore 9
        29: .line 841
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        30: .line 833
            aload 9
            areturn
        31: .line 835
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 7 /* re */
        start local 7 // com.sun.jndi.ldap.LdapReferralException re
        32: .line 836
            aload 7 /* re */
            astore 5 /* e */
        33: .line 841
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        34: .line 837
            goto 26
        end local 7 // com.sun.jndi.ldap.LdapReferralException re
        35: .line 839
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        36: .line 841
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        37: .line 842
            aload 8
            athrow
        end local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 5 // com.sun.jndi.ldap.LdapReferralException e
        38: .line 845
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attributes
      StackMap stack: java.io.IOException
            astore 5 /* e */
        start local 5 // java.io.IOException e
        39: .line 846
            new javax.naming.CommunicationException
            dup
            aload 5 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 6 /* e2 */
        start local 6 // javax.naming.NamingException e2
        40: .line 847
            aload 6 /* e2 */
            aload 5 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        41: .line 848
            aload 3 /* cont */
            aload 6 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 6 // javax.naming.NamingException e2
        end local 5 // java.io.IOException e
        42: .line 850
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 5 /* e */
        start local 5 // javax.naming.NamingException e
        43: .line 851
            aload 3 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 5 // javax.naming.NamingException e
        end local 4 // javax.naming.directory.Attributes inputAttrs
        end local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 2 // javax.naming.directory.Attributes attrs
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   44     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0   44     1        name  Ljavax/naming/Name;
            0   44     2       attrs  Ljavax/naming/directory/Attributes;
            0   44     3        cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            2   44     4  inputAttrs  Ljavax/naming/directory/Attributes;
            8   11     5          oc  Ljavax/naming/directory/Attribute;
           12   23     5       newDN  Ljava/lang/String;
           16   23     6       entry  Lcom/sun/jndi/ldap/LdapEntry;
           17   23     7      answer  Lcom/sun/jndi/ldap/LdapResult;
           24   38     5           e  Lcom/sun/jndi/ldap/LdapReferralException;
           28   38     6      refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           32   35     7          re  Lcom/sun/jndi/ldap/LdapReferralException;
           39   42     5           e  Ljava/io/IOException;
           40   42     6          e2  Ljavax/naming/NamingException;
           43   44     5           e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           2    20      23  Class com.sun.jndi.ldap.LdapReferralException
          21    22      23  Class com.sun.jndi.ldap.LdapReferralException
          28    29      31  Class com.sun.jndi.ldap.LdapReferralException
          28    29      35  any
          31    33      35  any
           2    20      38  Class java.io.IOException
          21    22      38  Class java.io.IOException
           2    20      42  Class javax.naming.NamingException
          21    22      42  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
       Name  Flags
      name   
      attrs  
      cont   

  protected void c_destroySubcontext(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 857
            aload 2 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 860
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         2: .line 862
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            astore 3 /* fname */
        start local 3 // java.lang.String fname
         3: .line 863
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 3 /* fname */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.delete:(Ljava/lang/String;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 4 /* answer */
        start local 4 // com.sun.jndi.ldap.LdapResult answer
         4: .line 864
            aload 0 /* this */
            aload 4 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
         5: .line 866
            aload 0 /* this */
            aload 3 /* fname */
            aload 4 /* answer */
            invokevirtual com.sun.jndi.ldap.LdapCtx.adjustDeleteStatus:(Ljava/lang/String;Lcom/sun/jndi/ldap/LdapResult;)V
         6: .line 868
            aload 4 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 30
         7: .line 869
            aload 0 /* this */
            aload 4 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        end local 4 // com.sun.jndi.ldap.LdapResult answer
        end local 3 // java.lang.String fname
         8: .line 872
            goto 30
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
         9: astore 3 /* e */
        start local 3 // com.sun.jndi.ldap.LdapReferralException e
        10: .line 873
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 12
        11: .line 874
            aload 2 /* cont */
            aload 3 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        12: .line 880
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 3 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        13: .line 879
            astore 4 /* refCtx */
        start local 4 // com.sun.jndi.ldap.LdapReferralContext refCtx
        14: .line 885
            aload 4 /* refCtx */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.destroySubcontext:(Ljavax/naming/Name;)V
        15: .line 892
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        16: .line 886
            return
        17: .line 887
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 5 /* re */
        start local 5 // com.sun.jndi.ldap.LdapReferralException re
        18: .line 888
            aload 5 /* re */
            astore 3 /* e */
        19: .line 892
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        20: .line 889
            goto 12
        end local 5 // com.sun.jndi.ldap.LdapReferralException re
        21: .line 890
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        22: .line 892
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        23: .line 893
            aload 6
            athrow
        end local 4 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 3 // com.sun.jndi.ldap.LdapReferralException e
        24: .line 895
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        25: .line 896
            new javax.naming.CommunicationException
            dup
            aload 3 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 4 /* e2 */
        start local 4 // javax.naming.NamingException e2
        26: .line 897
            aload 4 /* e2 */
            aload 3 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        27: .line 898
            aload 2 /* cont */
            aload 4 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 4 // javax.naming.NamingException e2
        end local 3 // java.io.IOException e
        28: .line 899
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 3 /* e */
        start local 3 // javax.naming.NamingException e
        29: .line 900
            aload 2 /* cont */
            aload 3 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 3 // javax.naming.NamingException e
        30: .line 902
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   31     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0   31     1    name  Ljavax/naming/Name;
            0   31     2    cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            3    8     3   fname  Ljava/lang/String;
            4    8     4  answer  Lcom/sun/jndi/ldap/LdapResult;
           10   24     3       e  Lcom/sun/jndi/ldap/LdapReferralException;
           14   24     4  refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           18   21     5      re  Lcom/sun/jndi/ldap/LdapReferralException;
           25   28     3       e  Ljava/io/IOException;
           26   28     4      e2  Ljavax/naming/NamingException;
           29   30     3       e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           1     8       9  Class com.sun.jndi.ldap.LdapReferralException
          14    15      17  Class com.sun.jndi.ldap.LdapReferralException
          14    15      21  any
          17    19      21  any
           1     8      24  Class java.io.IOException
           1     8      28  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  private static javax.naming.directory.Attributes addRdnAttributes(java.lang.String, javax.naming.directory.Attributes, boolean);
    descriptor: (Ljava/lang/String;Ljavax/naming/directory/Attributes;Z)Ljavax/naming/directory/Attributes;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // java.lang.String dn
        start local 1 // javax.naming.directory.Attributes attrs
        start local 2 // boolean directUpdate
         0: .line 918
            aload 0 /* dn */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 2
         1: .line 919
            aload 1 /* attrs */
            areturn
         2: .line 923
      StackMap locals:
      StackMap stack:
            new javax.naming.ldap.LdapName
            dup
            aload 0 /* dn */
            invokespecial javax.naming.ldap.LdapName.<init>:(Ljava/lang/String;)V
            invokevirtual javax.naming.ldap.LdapName.getRdns:()Ljava/util/List;
            astore 3 /* rdnList */
        start local 3 // java.util.List rdnList
         3: .line 926
            aload 3 /* rdnList */
            aload 3 /* rdnList */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast javax.naming.ldap.Rdn
            astore 4 /* rdn */
        start local 4 // javax.naming.ldap.Rdn rdn
         4: .line 927
            aload 4 /* rdn */
            invokevirtual javax.naming.ldap.Rdn.toAttributes:()Ljavax/naming/directory/Attributes;
            astore 5 /* nameAttrs */
        start local 5 // javax.naming.directory.Attributes nameAttrs
         5: .line 930
            aload 5 /* nameAttrs */
            invokeinterface javax.naming.directory.Attributes.getAll:()Ljavax/naming/NamingEnumeration;
            astore 6 /* enum_ */
        start local 6 // javax.naming.NamingEnumeration enum_
         6: .line 932
            goto 16
         7: .line 933
      StackMap locals: java.lang.String javax.naming.directory.Attributes int java.util.List javax.naming.ldap.Rdn javax.naming.directory.Attributes javax.naming.NamingEnumeration
      StackMap stack:
            aload 6 /* enum_ */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast javax.naming.directory.Attribute
            astore 7 /* nameAttr */
        start local 7 // javax.naming.directory.Attribute nameAttr
         8: .line 936
            aload 1 /* attrs */
            aload 7 /* nameAttr */
            invokeinterface javax.naming.directory.Attribute.getID:()Ljava/lang/String;
            invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
            ifnonnull 16
         9: .line 947
            aload 1 /* attrs */
            invokeinterface javax.naming.directory.Attributes.isCaseIgnored:()Z
            ifne 12
        10: .line 948
            aload 1 /* attrs */
            invokeinterface javax.naming.directory.Attributes.getIDs:()Ljavax/naming/NamingEnumeration;
            aload 7 /* nameAttr */
            invokeinterface javax.naming.directory.Attribute.getID:()Ljava/lang/String;
            invokestatic com.sun.jndi.ldap.LdapCtx.containsIgnoreCase:(Ljavax/naming/NamingEnumeration;Ljava/lang/String;)Z
            ifeq 12
        11: .line 949
            goto 16
        12: .line 952
      StackMap locals: javax.naming.directory.Attribute
      StackMap stack:
            iload 2 /* directUpdate */
            ifne 15
        13: .line 953
            aload 1 /* attrs */
            invokeinterface javax.naming.directory.Attributes.clone:()Ljava/lang/Object;
            checkcast javax.naming.directory.Attributes
            astore 1 /* attrs */
        14: .line 954
            iconst_1
            istore 2 /* directUpdate */
        15: .line 956
      StackMap locals:
      StackMap stack:
            aload 1 /* attrs */
            aload 7 /* nameAttr */
            invokeinterface javax.naming.directory.Attributes.put:(Ljavax/naming/directory/Attribute;)Ljavax/naming/directory/Attribute;
            pop
        end local 7 // javax.naming.directory.Attribute nameAttr
        16: .line 932
      StackMap locals:
      StackMap stack:
            aload 6 /* enum_ */
            invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
            ifne 7
        17: .line 960
            aload 1 /* attrs */
            areturn
        end local 6 // javax.naming.NamingEnumeration enum_
        end local 5 // javax.naming.directory.Attributes nameAttrs
        end local 4 // javax.naming.ldap.Rdn rdn
        end local 3 // java.util.List rdnList
        end local 2 // boolean directUpdate
        end local 1 // javax.naming.directory.Attributes attrs
        end local 0 // java.lang.String dn
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   18     0            dn  Ljava/lang/String;
            0   18     1         attrs  Ljavax/naming/directory/Attributes;
            0   18     2  directUpdate  Z
            3   18     3       rdnList  Ljava/util/List<Ljavax/naming/ldap/Rdn;>;
            4   18     4           rdn  Ljavax/naming/ldap/Rdn;
            5   18     5     nameAttrs  Ljavax/naming/directory/Attributes;
            6   18     6         enum_  Ljavax/naming/NamingEnumeration<+Ljavax/naming/directory/Attribute;>;
            8   16     7      nameAttr  Ljavax/naming/directory/Attribute;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
              Name  Flags
      dn            
      attrs         
      directUpdate  

  private static boolean containsIgnoreCase(javax.naming.NamingEnumeration<java.lang.String>, java.lang.String);
    descriptor: (Ljavax/naming/NamingEnumeration;Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javax.naming.NamingEnumeration enumStr
        start local 1 // java.lang.String str
         0: .line 968
            goto 4
         1: .line 969
      StackMap locals:
      StackMap stack:
            aload 0 /* enumStr */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* strEntry */
        start local 2 // java.lang.String strEntry
         2: .line 970
            aload 2 /* strEntry */
            aload 1 /* str */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 971
            iconst_1
            ireturn
        end local 2 // java.lang.String strEntry
         4: .line 968
      StackMap locals:
      StackMap stack:
            aload 0 /* enumStr */
            invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
            ifne 1
         5: .line 974
            iconst_0
            ireturn
        end local 1 // java.lang.String str
        end local 0 // javax.naming.NamingEnumeration enumStr
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0   enumStr  Ljavax/naming/NamingEnumeration<Ljava/lang/String;>;
            0    6     1       str  Ljava/lang/String;
            2    4     2  strEntry  Ljava/lang/String;
    Exceptions:
      throws javax.naming.NamingException
    Signature: (Ljavax/naming/NamingEnumeration<Ljava/lang/String;>;Ljava/lang/String;)Z
    MethodParameters:
         Name  Flags
      enumStr  
      str      

  private void adjustDeleteStatus(java.lang.String, com.sun.jndi.ldap.LdapResult);
    descriptor: (Ljava/lang/String;Lcom/sun/jndi/ldap/LdapResult;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String fname
        start local 2 // com.sun.jndi.ldap.LdapResult answer
         0: .line 979
            aload 2 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            bipush 32
            if_icmpne 8
         1: .line 980
            aload 2 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.matchedDN:Ljava/lang/String;
            ifnull 8
         2: .line 984
            getstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
            aload 1 /* fname */
            invokeinterface javax.naming.NameParser.parse:(Ljava/lang/String;)Ljavax/naming/Name;
            astore 3 /* orig */
        start local 3 // javax.naming.Name orig
         3: .line 985
            getstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
            aload 2 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.matchedDN:Ljava/lang/String;
            invokeinterface javax.naming.NameParser.parse:(Ljava/lang/String;)Ljavax/naming/Name;
            astore 4 /* matched */
        start local 4 // javax.naming.Name matched
         4: .line 986
            aload 3 /* orig */
            invokeinterface javax.naming.Name.size:()I
            aload 4 /* matched */
            invokeinterface javax.naming.Name.size:()I
            isub
            iconst_1
            if_icmpne 8
         5: .line 987
            aload 2 /* answer */
            iconst_0
            putfield com.sun.jndi.ldap.LdapResult.status:I
        end local 4 // javax.naming.Name matched
        end local 3 // javax.naming.Name orig
         6: .line 988
            goto 8
      StackMap locals:
      StackMap stack: javax.naming.NamingException
         7: pop
         8: .line 990
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.sun.jndi.ldap.LdapResult answer
        end local 1 // java.lang.String fname
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lcom/sun/jndi/ldap/LdapCtx;
            0    9     1    fname  Ljava/lang/String;
            0    9     2   answer  Lcom/sun/jndi/ldap/LdapResult;
            3    6     3     orig  Ljavax/naming/Name;
            4    6     4  matched  Ljavax/naming/Name;
      Exception table:
        from    to  target  type
           2     6       7  Class javax.naming.NamingException
    MethodParameters:
        Name  Flags
      fname   
      answer  

  private static <T> java.util.Vector<T> appendVector(java.util.Vector<T>, java.util.Vector<T>);
    descriptor: (Ljava/util/Vector;Ljava/util/Vector;)Ljava/util/Vector;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.util.Vector v1
        start local 1 // java.util.Vector v2
         0: .line 997
            aload 0 /* v1 */
            ifnonnull 3
         1: .line 998
            aload 1 /* v2 */
            astore 0 /* v1 */
         2: .line 999
            goto 8
         3: .line 1000
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 7
         5: .line 1001
      StackMap locals: int
      StackMap stack:
            aload 0 /* v1 */
            aload 1 /* v2 */
            iload 2 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
         6: .line 1000
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 1 /* v2 */
            invokevirtual java.util.Vector.size:()I
            if_icmplt 5
        end local 2 // int i
         8: .line 1004
      StackMap locals:
      StackMap stack:
            aload 0 /* v1 */
            areturn
        end local 1 // java.util.Vector v2
        end local 0 // java.util.Vector v1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0    v1  Ljava/util/Vector<TT;>;
            0    9     1    v2  Ljava/util/Vector<TT;>;
            4    8     2     i  I
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Vector<TT;>;Ljava/util/Vector<TT;>;)Ljava/util/Vector<TT;>;
    MethodParameters:
      Name  Flags
      v1    
      v2    

  protected java.lang.Object c_lookupLink(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1013
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_lookup:(Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljava/lang/Object;
            areturn
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    1     1  name  Ljavax/naming/Name;
            0    1     2  cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  protected java.lang.Object c_lookup(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1018
            aload 2 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 1019
            aconst_null
            astore 3 /* obj */
        start local 3 // java.lang.Object obj
         2: .line 1023
            new javax.naming.directory.SearchControls
            dup
            invokespecial javax.naming.directory.SearchControls.<init>:()V
            astore 5 /* cons */
        start local 5 // javax.naming.directory.SearchControls cons
         3: .line 1024
            aload 5 /* cons */
            iconst_0
            invokevirtual javax.naming.directory.SearchControls.setSearchScope:(I)V
         4: .line 1025
            aload 5 /* cons */
            aconst_null
            invokevirtual javax.naming.directory.SearchControls.setReturningAttributes:([Ljava/lang/String;)V
         5: .line 1026
            aload 5 /* cons */
            iconst_1
            invokevirtual javax.naming.directory.SearchControls.setReturningObjFlag:(Z)V
         6: .line 1028
            aload 0 /* this */
            aload 1 /* name */
            ldc "(objectClass=*)"
            aload 5 /* cons */
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.doSearchOnce:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Z)Lcom/sun/jndi/ldap/LdapResult;
            astore 6 /* answer */
        start local 6 // com.sun.jndi.ldap.LdapResult answer
         7: .line 1029
            aload 0 /* this */
            aload 6 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
         8: .line 1033
            aload 6 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 10
         9: .line 1034
            aload 0 /* this */
            aload 6 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        10: .line 1037
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation java.lang.Object top javax.naming.directory.SearchControls com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 6 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            ifnull 11
            aload 6 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            iconst_1
            if_icmpeq 13
        11: .line 1039
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.BasicAttributes
            dup
            iconst_1
            invokespecial javax.naming.directory.BasicAttributes.<init>:(Z)V
            astore 4 /* attrs */
        start local 4 // javax.naming.directory.Attributes attrs
        12: .line 1040
            goto 18
        end local 4 // javax.naming.directory.Attributes attrs
        13: .line 1041
      StackMap locals:
      StackMap stack:
            aload 6 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            iconst_0
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast com.sun.jndi.ldap.LdapEntry
            astore 7 /* entry */
        start local 7 // com.sun.jndi.ldap.LdapEntry entry
        14: .line 1042
            aload 7 /* entry */
            getfield com.sun.jndi.ldap.LdapEntry.attributes:Ljavax/naming/directory/Attributes;
            astore 4 /* attrs */
        start local 4 // javax.naming.directory.Attributes attrs
        15: .line 1044
            aload 7 /* entry */
            getfield com.sun.jndi.ldap.LdapEntry.respCtls:Ljava/util/Vector;
            astore 8 /* entryCtls */
        start local 8 // java.util.Vector entryCtls
        16: .line 1045
            aload 8 /* entryCtls */
            ifnull 18
        17: .line 1046
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
            aload 8 /* entryCtls */
            invokestatic com.sun.jndi.ldap.LdapCtx.appendVector:(Ljava/util/Vector;Ljava/util/Vector;)Ljava/util/Vector;
            pop
        end local 8 // java.util.Vector entryCtls
        end local 7 // com.sun.jndi.ldap.LdapEntry entry
        18: .line 1050
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation java.lang.Object javax.naming.directory.Attributes javax.naming.directory.SearchControls com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 4 /* attrs */
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_2
            aaload
            invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
            ifnull 20
        19: .line 1052
            aload 4 /* attrs */
            invokestatic com.sun.jndi.ldap.Obj.decodeObject:(Ljavax/naming/directory/Attributes;)Ljava/lang/Object;
            astore 3 /* obj */
        20: .line 1054
      StackMap locals:
      StackMap stack:
            aload 3 /* obj */
            ifnonnull 40
        21: .line 1055
            new com.sun.jndi.ldap.LdapCtx
            dup
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            invokespecial com.sun.jndi.ldap.LdapCtx.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Ljava/lang/String;)V
            astore 3 /* obj */
        end local 6 // com.sun.jndi.ldap.LdapResult answer
        end local 5 // javax.naming.directory.SearchControls cons
        22: .line 1057
            goto 40
        end local 4 // javax.naming.directory.Attributes attrs
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation java.lang.Object
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
        23: astore 5 /* e */
        start local 5 // com.sun.jndi.ldap.LdapReferralException e
        24: .line 1058
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 26
        25: .line 1059
            aload 2 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        26: .line 1065
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation java.lang.Object top com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 5 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        27: .line 1064
            astore 6 /* refCtx */
        start local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        28: .line 1069
            aload 6 /* refCtx */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.lookup:(Ljavax/naming/Name;)Ljava/lang/Object;
            astore 9
        29: .line 1077
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        30: .line 1069
            aload 9
            areturn
        31: .line 1071
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation java.lang.Object top com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 7 /* re */
        start local 7 // com.sun.jndi.ldap.LdapReferralException re
        32: .line 1072
            aload 7 /* re */
            astore 5 /* e */
        33: .line 1077
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        34: .line 1073
            goto 26
        end local 7 // com.sun.jndi.ldap.LdapReferralException re
        35: .line 1075
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        36: .line 1077
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        37: .line 1078
            aload 8
            athrow
        end local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 5 // com.sun.jndi.ldap.LdapReferralException e
        38: .line 1081
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation java.lang.Object
      StackMap stack: javax.naming.NamingException
            astore 5 /* e */
        start local 5 // javax.naming.NamingException e
        39: .line 1082
            aload 2 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 5 // javax.naming.NamingException e
        start local 4 // javax.naming.directory.Attributes attrs
        40: .line 1086
      StackMap locals: javax.naming.directory.Attributes
      StackMap stack:
            aload 3 /* obj */
            aload 1 /* name */
        41: .line 1087
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 4 /* attrs */
        42: .line 1086
            invokestatic javax.naming.spi.DirectoryManager.getObjectInstance:(Ljava/lang/Object;Ljavax/naming/Name;Ljavax/naming/Context;Ljava/util/Hashtable;Ljavax/naming/directory/Attributes;)Ljava/lang/Object;
        43: areturn
        44: .line 1089
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 5 /* e */
        start local 5 // javax.naming.NamingException e
        45: .line 1090
            aload 2 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 5 // javax.naming.NamingException e
        46: .line 1092
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 5 /* e */
        start local 5 // java.lang.Exception e
        47: .line 1093
            new javax.naming.NamingException
            dup
        48: .line 1094
            ldc "problem generating object using object factory"
        49: .line 1093
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 6 /* e2 */
        start local 6 // javax.naming.NamingException e2
        50: .line 1095
            aload 6 /* e2 */
            aload 5 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        51: .line 1096
            aload 2 /* cont */
            aload 6 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 6 // javax.naming.NamingException e2
        end local 5 // java.lang.Exception e
        end local 4 // javax.naming.directory.Attributes attrs
        end local 3 // java.lang.Object obj
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   52     0       this  Lcom/sun/jndi/ldap/LdapCtx;
            0   52     1       name  Ljavax/naming/Name;
            0   52     2       cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            2   52     3        obj  Ljava/lang/Object;
           12   13     4      attrs  Ljavax/naming/directory/Attributes;
           15   23     4      attrs  Ljavax/naming/directory/Attributes;
           40   52     4      attrs  Ljavax/naming/directory/Attributes;
            3   22     5       cons  Ljavax/naming/directory/SearchControls;
            7   22     6     answer  Lcom/sun/jndi/ldap/LdapResult;
           14   18     7      entry  Lcom/sun/jndi/ldap/LdapEntry;
           16   18     8  entryCtls  Ljava/util/Vector<Ljavax/naming/ldap/Control;>;
           24   38     5          e  Lcom/sun/jndi/ldap/LdapReferralException;
           28   38     6     refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           32   35     7         re  Lcom/sun/jndi/ldap/LdapReferralException;
           39   40     5          e  Ljavax/naming/NamingException;
           45   46     5          e  Ljavax/naming/NamingException;
           47   52     5          e  Ljava/lang/Exception;
           50   52     6         e2  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           2    22      23  Class com.sun.jndi.ldap.LdapReferralException
          28    29      31  Class com.sun.jndi.ldap.LdapReferralException
          28    29      35  any
          31    33      35  any
           2    22      38  Class javax.naming.NamingException
          40    43      44  Class javax.naming.NamingException
          40    43      46  Class java.lang.Exception
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  protected javax.naming.NamingEnumeration<javax.naming.NameClassPair> c_list(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1102
            new javax.naming.directory.SearchControls
            dup
            invokespecial javax.naming.directory.SearchControls.<init>:()V
            astore 3 /* cons */
        start local 3 // javax.naming.directory.SearchControls cons
         1: .line 1103
            iconst_2
            anewarray java.lang.String
            astore 4 /* classAttrs */
        start local 4 // java.lang.String[] classAttrs
         2: .line 1105
            aload 4 /* classAttrs */
            iconst_0
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_0
            aaload
            aastore
         3: .line 1106
            aload 4 /* classAttrs */
            iconst_1
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_2
            aaload
            aastore
         4: .line 1107
            aload 3 /* cons */
            aload 4 /* classAttrs */
            invokevirtual javax.naming.directory.SearchControls.setReturningAttributes:([Ljava/lang/String;)V
         5: .line 1110
            aload 3 /* cons */
            iconst_1
            invokevirtual javax.naming.directory.SearchControls.setReturningObjFlag:(Z)V
         6: .line 1112
            aload 2 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         7: .line 1114
            aconst_null
            astore 5 /* answer */
        start local 5 // com.sun.jndi.ldap.LdapResult answer
         8: .line 1117
            aload 0 /* this */
            aload 1 /* name */
            ldc "(objectClass=*)"
            aload 3 /* cons */
            iconst_1
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.doSearch:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZ)Lcom/sun/jndi/ldap/LdapResult;
            astore 5 /* answer */
         9: .line 1120
            aload 5 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifne 11
        10: .line 1121
            aload 5 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            ifnull 12
        11: .line 1122
      StackMap locals: javax.naming.directory.SearchControls java.lang.String[] com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 0 /* this */
            aload 5 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        12: .line 1125
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.LdapNamingEnumeration
            dup
            aload 0 /* this */
            aload 5 /* answer */
            aload 1 /* name */
            aload 2 /* cont */
            invokespecial com.sun.jndi.ldap.LdapNamingEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        13: areturn
        14: .line 1127
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 6 /* e */
        start local 6 // com.sun.jndi.ldap.LdapReferralException e
        15: .line 1128
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 17
        16: .line 1129
            aload 2 /* cont */
            aload 6 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        17: .line 1135
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 6 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        18: .line 1134
            astore 7 /* refCtx */
        start local 7 // com.sun.jndi.ldap.LdapReferralContext refCtx
        19: .line 1140
            aload 7 /* refCtx */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.list:(Ljavax/naming/Name;)Ljavax/naming/NamingEnumeration;
            astore 10
        20: .line 1148
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        21: .line 1140
            aload 10
            areturn
        22: .line 1142
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.SearchControls java.lang.String[] com.sun.jndi.ldap.LdapResult com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 8 /* re */
        start local 8 // com.sun.jndi.ldap.LdapReferralException re
        23: .line 1143
            aload 8 /* re */
            astore 6 /* e */
        24: .line 1148
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        25: .line 1144
            goto 17
        end local 8 // com.sun.jndi.ldap.LdapReferralException re
        26: .line 1146
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        27: .line 1148
            aload 7 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        28: .line 1149
            aload 9
            athrow
        end local 7 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 6 // com.sun.jndi.ldap.LdapReferralException e
        29: .line 1152
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.SearchControls java.lang.String[] com.sun.jndi.ldap.LdapResult
      StackMap stack: javax.naming.LimitExceededException
            astore 6 /* e */
        start local 6 // javax.naming.LimitExceededException e
        30: .line 1154
            new com.sun.jndi.ldap.LdapNamingEnumeration
            dup
            aload 0 /* this */
            aload 5 /* answer */
            aload 1 /* name */
            aload 2 /* cont */
            invokespecial com.sun.jndi.ldap.LdapNamingEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        31: .line 1153
            astore 7 /* res */
        start local 7 // com.sun.jndi.ldap.LdapNamingEnumeration res
        32: .line 1156
            aload 7 /* res */
        33: .line 1157
            aload 2 /* cont */
            aload 6 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            checkcast javax.naming.LimitExceededException
        34: .line 1156
            invokevirtual com.sun.jndi.ldap.LdapNamingEnumeration.setNamingException:(Ljavax/naming/NamingException;)V
        35: .line 1158
            aload 7 /* res */
            areturn
        end local 7 // com.sun.jndi.ldap.LdapNamingEnumeration res
        end local 6 // javax.naming.LimitExceededException e
        36: .line 1160
      StackMap locals:
      StackMap stack: javax.naming.PartialResultException
            astore 6 /* e */
        start local 6 // javax.naming.PartialResultException e
        37: .line 1162
            new com.sun.jndi.ldap.LdapNamingEnumeration
            dup
            aload 0 /* this */
            aload 5 /* answer */
            aload 1 /* name */
            aload 2 /* cont */
            invokespecial com.sun.jndi.ldap.LdapNamingEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        38: .line 1161
            astore 7 /* res */
        start local 7 // com.sun.jndi.ldap.LdapNamingEnumeration res
        39: .line 1164
            aload 7 /* res */
        40: .line 1165
            aload 2 /* cont */
            aload 6 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            checkcast javax.naming.PartialResultException
        41: .line 1164
            invokevirtual com.sun.jndi.ldap.LdapNamingEnumeration.setNamingException:(Ljavax/naming/NamingException;)V
        42: .line 1166
            aload 7 /* res */
            areturn
        end local 7 // com.sun.jndi.ldap.LdapNamingEnumeration res
        end local 6 // javax.naming.PartialResultException e
        43: .line 1168
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 6 /* e */
        start local 6 // javax.naming.NamingException e
        44: .line 1169
            aload 2 /* cont */
            aload 6 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 6 // javax.naming.NamingException e
        end local 5 // com.sun.jndi.ldap.LdapResult answer
        end local 4 // java.lang.String[] classAttrs
        end local 3 // javax.naming.directory.SearchControls cons
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   45     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0   45     1        name  Ljavax/naming/Name;
            0   45     2        cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            1   45     3        cons  Ljavax/naming/directory/SearchControls;
            2   45     4  classAttrs  [Ljava/lang/String;
            8   45     5      answer  Lcom/sun/jndi/ldap/LdapResult;
           15   29     6           e  Lcom/sun/jndi/ldap/LdapReferralException;
           19   29     7      refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           23   26     8          re  Lcom/sun/jndi/ldap/LdapReferralException;
           30   36     6           e  Ljavax/naming/LimitExceededException;
           32   36     7         res  Lcom/sun/jndi/ldap/LdapNamingEnumeration;
           37   43     6           e  Ljavax/naming/PartialResultException;
           39   43     7         res  Lcom/sun/jndi/ldap/LdapNamingEnumeration;
           44   45     6           e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           8    13      14  Class com.sun.jndi.ldap.LdapReferralException
          19    20      22  Class com.sun.jndi.ldap.LdapReferralException
          19    20      26  any
          22    24      26  any
           8    13      29  Class javax.naming.LimitExceededException
           8    13      36  Class javax.naming.PartialResultException
           8    13      43  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    Signature: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration<Ljavax/naming/NameClassPair;>;
    MethodParameters:
      Name  Flags
      name  
      cont  

  protected javax.naming.NamingEnumeration<javax.naming.Binding> c_listBindings(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=10, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1176
            new javax.naming.directory.SearchControls
            dup
            invokespecial javax.naming.directory.SearchControls.<init>:()V
            astore 3 /* cons */
        start local 3 // javax.naming.directory.SearchControls cons
         1: .line 1177
            aload 3 /* cons */
            aconst_null
            invokevirtual javax.naming.directory.SearchControls.setReturningAttributes:([Ljava/lang/String;)V
         2: .line 1178
            aload 3 /* cons */
            iconst_1
            invokevirtual javax.naming.directory.SearchControls.setReturningObjFlag:(Z)V
         3: .line 1180
            aload 2 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         4: .line 1182
            aconst_null
            astore 4 /* answer */
        start local 4 // com.sun.jndi.ldap.LdapResult answer
         5: .line 1185
            aload 0 /* this */
            aload 1 /* name */
            ldc "(objectClass=*)"
            aload 3 /* cons */
            iconst_1
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.doSearch:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZ)Lcom/sun/jndi/ldap/LdapResult;
            astore 4 /* answer */
         6: .line 1188
            aload 4 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifne 8
         7: .line 1189
            aload 4 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            ifnull 9
         8: .line 1190
      StackMap locals: javax.naming.directory.SearchControls com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 0 /* this */
            aload 4 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
         9: .line 1193
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.LdapBindingEnumeration
            dup
            aload 0 /* this */
            aload 4 /* answer */
            aload 1 /* name */
            aload 2 /* cont */
            invokespecial com.sun.jndi.ldap.LdapBindingEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        10: areturn
        11: .line 1195
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 5 /* e */
        start local 5 // com.sun.jndi.ldap.LdapReferralException e
        12: .line 1196
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 14
        13: .line 1197
            aload 2 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        14: .line 1203
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 5 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        15: .line 1202
            astore 6 /* refCtx */
        start local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        16: .line 1208
            aload 6 /* refCtx */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.listBindings:(Ljavax/naming/Name;)Ljavax/naming/NamingEnumeration;
            astore 9
        17: .line 1216
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        18: .line 1208
            aload 9
            areturn
        19: .line 1210
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.SearchControls com.sun.jndi.ldap.LdapResult com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 7 /* re */
        start local 7 // com.sun.jndi.ldap.LdapReferralException re
        20: .line 1211
            aload 7 /* re */
            astore 5 /* e */
        21: .line 1216
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        22: .line 1212
            goto 14
        end local 7 // com.sun.jndi.ldap.LdapReferralException re
        23: .line 1214
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        24: .line 1216
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        25: .line 1217
            aload 8
            athrow
        end local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 5 // com.sun.jndi.ldap.LdapReferralException e
        26: .line 1219
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.SearchControls com.sun.jndi.ldap.LdapResult
      StackMap stack: javax.naming.LimitExceededException
            astore 5 /* e */
        start local 5 // javax.naming.LimitExceededException e
        27: .line 1221
            new com.sun.jndi.ldap.LdapBindingEnumeration
            dup
            aload 0 /* this */
            aload 4 /* answer */
            aload 1 /* name */
            aload 2 /* cont */
            invokespecial com.sun.jndi.ldap.LdapBindingEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        28: .line 1220
            astore 6 /* res */
        start local 6 // com.sun.jndi.ldap.LdapBindingEnumeration res
        29: .line 1223
            aload 6 /* res */
            aload 2 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            invokevirtual com.sun.jndi.ldap.LdapBindingEnumeration.setNamingException:(Ljavax/naming/NamingException;)V
        30: .line 1224
            aload 6 /* res */
            areturn
        end local 6 // com.sun.jndi.ldap.LdapBindingEnumeration res
        end local 5 // javax.naming.LimitExceededException e
        31: .line 1226
      StackMap locals:
      StackMap stack: javax.naming.PartialResultException
            astore 5 /* e */
        start local 5 // javax.naming.PartialResultException e
        32: .line 1228
            new com.sun.jndi.ldap.LdapBindingEnumeration
            dup
            aload 0 /* this */
            aload 4 /* answer */
            aload 1 /* name */
            aload 2 /* cont */
            invokespecial com.sun.jndi.ldap.LdapBindingEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        33: .line 1227
            astore 6 /* res */
        start local 6 // com.sun.jndi.ldap.LdapBindingEnumeration res
        34: .line 1230
            aload 6 /* res */
            aload 2 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            invokevirtual com.sun.jndi.ldap.LdapBindingEnumeration.setNamingException:(Ljavax/naming/NamingException;)V
        35: .line 1231
            aload 6 /* res */
            areturn
        end local 6 // com.sun.jndi.ldap.LdapBindingEnumeration res
        end local 5 // javax.naming.PartialResultException e
        36: .line 1233
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 5 /* e */
        start local 5 // javax.naming.NamingException e
        37: .line 1234
            aload 2 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 5 // javax.naming.NamingException e
        end local 4 // com.sun.jndi.ldap.LdapResult answer
        end local 3 // javax.naming.directory.SearchControls cons
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   38     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0   38     1    name  Ljavax/naming/Name;
            0   38     2    cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            1   38     3    cons  Ljavax/naming/directory/SearchControls;
            5   38     4  answer  Lcom/sun/jndi/ldap/LdapResult;
           12   26     5       e  Lcom/sun/jndi/ldap/LdapReferralException;
           16   26     6  refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           20   23     7      re  Lcom/sun/jndi/ldap/LdapReferralException;
           27   31     5       e  Ljavax/naming/LimitExceededException;
           29   31     6     res  Lcom/sun/jndi/ldap/LdapBindingEnumeration;
           32   36     5       e  Ljavax/naming/PartialResultException;
           34   36     6     res  Lcom/sun/jndi/ldap/LdapBindingEnumeration;
           37   38     5       e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           5    10      11  Class com.sun.jndi.ldap.LdapReferralException
          16    17      19  Class com.sun.jndi.ldap.LdapReferralException
          16    17      23  any
          19    21      23  any
           5    10      26  Class javax.naming.LimitExceededException
           5    10      31  Class javax.naming.PartialResultException
           5    10      36  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    Signature: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration<Ljavax/naming/Binding;>;
    MethodParameters:
      Name  Flags
      name  
      cont  

  protected javax.naming.NameParser c_getNameParser(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NameParser;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1245
            aload 2 /* cont */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setSuccess:()V
         1: .line 1246
            getstatic com.sun.jndi.ldap.LdapCtx.parser:Ljavax/naming/NameParser;
            areturn
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    2     1  name  Ljavax/naming/Name;
            0    2     2  cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  public java.lang.String getNameInNamespace();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 1250
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            areturn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapCtx;

  public javax.naming.Name composeName(javax.naming.Name, javax.naming.Name);
    descriptor: (Ljavax/naming/Name;Ljavax/naming/Name;)Ljavax/naming/Name;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // javax.naming.Name prefix
         0: .line 1259
            aload 1 /* name */
            instanceof javax.naming.ldap.LdapName
            ifeq 4
            aload 2 /* prefix */
            instanceof javax.naming.ldap.LdapName
            ifeq 4
         1: .line 1260
            aload 2 /* prefix */
            invokeinterface javax.naming.Name.clone:()Ljava/lang/Object;
            checkcast javax.naming.Name
            astore 3 /* result */
        start local 3 // javax.naming.Name result
         2: .line 1261
            aload 3 /* result */
            aload 1 /* name */
            invokeinterface javax.naming.Name.addAll:(Ljavax/naming/Name;)Ljavax/naming/Name;
            pop
         3: .line 1262
            new javax.naming.CompositeName
            dup
            invokespecial javax.naming.CompositeName.<init>:()V
            aload 3 /* result */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual javax.naming.CompositeName.add:(Ljava/lang/String;)Ljavax/naming/Name;
            areturn
        end local 3 // javax.naming.Name result
         4: .line 1264
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            instanceof javax.naming.CompositeName
            ifne 6
         5: .line 1265
            new javax.naming.CompositeName
            dup
            invokespecial javax.naming.CompositeName.<init>:()V
            aload 1 /* name */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual javax.naming.CompositeName.add:(Ljava/lang/String;)Ljavax/naming/Name;
            astore 1 /* name */
         6: .line 1267
      StackMap locals:
      StackMap stack:
            aload 2 /* prefix */
            instanceof javax.naming.CompositeName
            ifne 8
         7: .line 1268
            new javax.naming.CompositeName
            dup
            invokespecial javax.naming.CompositeName.<init>:()V
            aload 2 /* prefix */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual javax.naming.CompositeName.add:(Ljava/lang/String;)Ljavax/naming/Name;
            astore 2 /* prefix */
         8: .line 1271
      StackMap locals:
      StackMap stack:
            aload 2 /* prefix */
            invokeinterface javax.naming.Name.size:()I
            iconst_1
            isub
            istore 4 /* prefixLast */
        start local 4 // int prefixLast
         9: .line 1273
            aload 1 /* name */
            invokeinterface javax.naming.Name.isEmpty:()Z
            ifne 11
            aload 2 /* prefix */
            invokeinterface javax.naming.Name.isEmpty:()Z
            ifne 11
        10: .line 1274
            aload 1 /* name */
            iconst_0
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 11
            aload 2 /* prefix */
            iload 4 /* prefixLast */
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 12
        11: .line 1275
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name top int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* prefix */
            invokespecial com.sun.jndi.toolkit.ctx.ComponentDirContext.composeName:(Ljavax/naming/Name;Ljavax/naming/Name;)Ljavax/naming/Name;
            areturn
        12: .line 1278
      StackMap locals:
      StackMap stack:
            aload 2 /* prefix */
            invokeinterface javax.naming.Name.clone:()Ljava/lang/Object;
            checkcast javax.naming.Name
            astore 3 /* result */
        start local 3 // javax.naming.Name result
        13: .line 1279
            aload 3 /* result */
            aload 1 /* name */
            invokeinterface javax.naming.Name.addAll:(Ljavax/naming/Name;)Ljavax/naming/Name;
            pop
        14: .line 1281
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.parentIsLdapCtx:Z
            ifeq 21
        15: .line 1282
            aload 3 /* result */
            iload 4 /* prefixLast */
            iconst_1
            iadd
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
        16: .line 1283
            aload 3 /* result */
            iload 4 /* prefixLast */
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
        17: .line 1282
            invokestatic com.sun.jndi.ldap.LdapCtx.concatNames:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* ldapComp */
        start local 5 // java.lang.String ldapComp
        18: .line 1284
            aload 3 /* result */
            iload 4 /* prefixLast */
            iconst_1
            iadd
            invokeinterface javax.naming.Name.remove:(I)Ljava/lang/Object;
            pop
        19: .line 1285
            aload 3 /* result */
            iload 4 /* prefixLast */
            invokeinterface javax.naming.Name.remove:(I)Ljava/lang/Object;
            pop
        20: .line 1286
            aload 3 /* result */
            iload 4 /* prefixLast */
            aload 5 /* ldapComp */
            invokeinterface javax.naming.Name.add:(ILjava/lang/String;)Ljavax/naming/Name;
            pop
        end local 5 // java.lang.String ldapComp
        21: .line 1288
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.Name javax.naming.Name int
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 4 // int prefixLast
        end local 3 // javax.naming.Name result
        end local 2 // javax.naming.Name prefix
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   22     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0   22     1        name  Ljavax/naming/Name;
            0   22     2      prefix  Ljavax/naming/Name;
            2    4     3      result  Ljavax/naming/Name;
           13   22     3      result  Ljavax/naming/Name;
            9   22     4  prefixLast  I
           18   21     5    ldapComp  Ljava/lang/String;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
        Name  Flags
      name    
      prefix  

  private java.lang.String fullyQualifiedName(javax.naming.Name);
    descriptor: (Ljavax/naming/Name;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name rel
         0: .line 1292
            aload 1 /* rel */
            invokeinterface javax.naming.Name.isEmpty:()Z
            ifeq 2
         1: .line 1293
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            goto 3
         2: .line 1294
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* rel */
            iconst_0
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljava/lang/String;)Ljava/lang/String;
         3: .line 1292
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
        end local 1 // javax.naming.Name rel
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    4     1   rel  Ljavax/naming/Name;
    MethodParameters:
      Name  Flags
      rel   

  private java.lang.String fullyQualifiedName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String rel
         0: .line 1298
            aload 1 /* rel */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            invokestatic com.sun.jndi.ldap.LdapCtx.concatNames:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String rel
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    1     1   rel  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      rel   

  private static java.lang.String concatNames(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String lesser
        start local 1 // java.lang.String greater
         0: .line 1303
            aload 0 /* lesser */
            ifnull 1
            aload 0 /* lesser */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 2
         1: .line 1304
      StackMap locals:
      StackMap stack:
            aload 1 /* greater */
            areturn
         2: .line 1305
      StackMap locals:
      StackMap stack:
            aload 1 /* greater */
            ifnull 3
            aload 1 /* greater */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 4
         3: .line 1306
      StackMap locals:
      StackMap stack:
            aload 0 /* lesser */
            areturn
         4: .line 1308
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* lesser */
            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 /* greater */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.String greater
        end local 0 // java.lang.String lesser
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0   lesser  Ljava/lang/String;
            0    5     1  greater  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      lesser   
      greater  

  protected javax.naming.directory.Attributes c_getAttributes(javax.naming.Name, java.lang.String[], com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;[Ljava/lang/String;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/directory/Attributes;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.String[] attrIds
        start local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1318
            aload 3 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 1320
            new javax.naming.directory.SearchControls
            dup
            invokespecial javax.naming.directory.SearchControls.<init>:()V
            astore 4 /* cons */
        start local 4 // javax.naming.directory.SearchControls cons
         2: .line 1321
            aload 4 /* cons */
            iconst_0
            invokevirtual javax.naming.directory.SearchControls.setSearchScope:(I)V
         3: .line 1322
            aload 4 /* cons */
            aload 2 /* attrIds */
            invokevirtual javax.naming.directory.SearchControls.setReturningAttributes:([Ljava/lang/String;)V
         4: .line 1326
            aload 0 /* this */
            aload 1 /* name */
            ldc "(objectClass=*)"
            aload 4 /* cons */
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.doSearchOnce:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Z)Lcom/sun/jndi/ldap/LdapResult;
         5: .line 1325
            astore 5 /* answer */
        start local 5 // com.sun.jndi.ldap.LdapResult answer
         6: .line 1327
            aload 0 /* this */
            aload 5 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
         7: .line 1329
            aload 5 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 9
         8: .line 1330
            aload 0 /* this */
            aload 5 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
         9: .line 1333
      StackMap locals: javax.naming.directory.SearchControls com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 5 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            ifnull 10
            aload 5 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            iconst_1
            if_icmpeq 12
        10: .line 1334
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.BasicAttributes
            dup
            iconst_1
            invokespecial javax.naming.directory.BasicAttributes.<init>:(Z)V
        11: areturn
        12: .line 1338
      StackMap locals:
      StackMap stack:
            aload 5 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            iconst_0
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast com.sun.jndi.ldap.LdapEntry
            astore 6 /* entry */
        start local 6 // com.sun.jndi.ldap.LdapEntry entry
        13: .line 1340
            aload 6 /* entry */
            getfield com.sun.jndi.ldap.LdapEntry.respCtls:Ljava/util/Vector;
            astore 7 /* entryCtls */
        start local 7 // java.util.Vector entryCtls
        14: .line 1341
            aload 7 /* entryCtls */
            ifnull 16
        15: .line 1342
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
            aload 7 /* entryCtls */
            invokestatic com.sun.jndi.ldap.LdapCtx.appendVector:(Ljava/util/Vector;Ljava/util/Vector;)Ljava/util/Vector;
            pop
        16: .line 1346
      StackMap locals: com.sun.jndi.ldap.LdapEntry java.util.Vector
      StackMap stack:
            aload 0 /* this */
            aload 6 /* entry */
            getfield com.sun.jndi.ldap.LdapEntry.attributes:Ljavax/naming/directory/Attributes;
            aload 1 /* name */
            invokeinterface javax.naming.Name.clone:()Ljava/lang/Object;
            checkcast javax.naming.Name
            invokevirtual com.sun.jndi.ldap.LdapCtx.setParents:(Ljavax/naming/directory/Attributes;Ljavax/naming/Name;)V
        17: .line 1348
            aload 6 /* entry */
            getfield com.sun.jndi.ldap.LdapEntry.attributes:Ljavax/naming/directory/Attributes;
        18: areturn
        end local 7 // java.util.Vector entryCtls
        end local 6 // com.sun.jndi.ldap.LdapEntry entry
        end local 5 // com.sun.jndi.ldap.LdapResult answer
        19: .line 1350
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.String[] com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.SearchControls
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 5 /* e */
        start local 5 // com.sun.jndi.ldap.LdapReferralException e
        20: .line 1351
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 22
        21: .line 1352
            aload 3 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        22: .line 1358
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 5 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        23: .line 1357
            astore 6 /* refCtx */
        start local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        24: .line 1363
            aload 6 /* refCtx */
            aload 1 /* name */
            aload 2 /* attrIds */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.getAttributes:(Ljavax/naming/Name;[Ljava/lang/String;)Ljavax/naming/directory/Attributes;
            astore 9
        25: .line 1371
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        26: .line 1363
            aload 9
            areturn
        27: .line 1365
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.String[] com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.SearchControls com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 7 /* re */
        start local 7 // com.sun.jndi.ldap.LdapReferralException re
        28: .line 1366
            aload 7 /* re */
            astore 5 /* e */
        29: .line 1371
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        30: .line 1367
            goto 22
        end local 7 // com.sun.jndi.ldap.LdapReferralException re
        31: .line 1369
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        32: .line 1371
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        33: .line 1372
            aload 8
            athrow
        end local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 5 // com.sun.jndi.ldap.LdapReferralException e
        34: .line 1375
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.String[] com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.SearchControls
      StackMap stack: javax.naming.NamingException
            astore 5 /* e */
        start local 5 // javax.naming.NamingException e
        35: .line 1376
            aload 3 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 5 // javax.naming.NamingException e
        end local 4 // javax.naming.directory.SearchControls cons
        end local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 2 // java.lang.String[] attrIds
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   36     0       this  Lcom/sun/jndi/ldap/LdapCtx;
            0   36     1       name  Ljavax/naming/Name;
            0   36     2    attrIds  [Ljava/lang/String;
            0   36     3       cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            2   36     4       cons  Ljavax/naming/directory/SearchControls;
            6   19     5     answer  Lcom/sun/jndi/ldap/LdapResult;
           13   19     6      entry  Lcom/sun/jndi/ldap/LdapEntry;
           14   19     7  entryCtls  Ljava/util/Vector<Ljavax/naming/ldap/Control;>;
           20   34     5          e  Lcom/sun/jndi/ldap/LdapReferralException;
           24   34     6     refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           28   31     7         re  Lcom/sun/jndi/ldap/LdapReferralException;
           35   36     5          e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           4    11      19  Class com.sun.jndi.ldap.LdapReferralException
          12    18      19  Class com.sun.jndi.ldap.LdapReferralException
          24    25      27  Class com.sun.jndi.ldap.LdapReferralException
          24    25      31  any
          27    29      31  any
           4    11      34  Class javax.naming.NamingException
          12    18      34  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
         Name  Flags
      name     
      attrIds  
      cont     

  protected void c_modifyAttributes(javax.naming.Name, int, javax.naming.directory.Attributes, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;ILjavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=11, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // int mod_op
        start local 3 // javax.naming.directory.Attributes attrs
        start local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1384
            aload 4 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 1387
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         2: .line 1389
            aload 3 /* attrs */
            ifnull 3
            aload 3 /* attrs */
            invokeinterface javax.naming.directory.Attributes.size:()I
            ifne 4
         3: .line 1390
      StackMap locals:
      StackMap stack:
            return
         4: .line 1392
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            astore 5 /* newDN */
        start local 5 // java.lang.String newDN
         5: .line 1393
            iload 2 /* mod_op */
            invokestatic com.sun.jndi.ldap.LdapCtx.convertToLdapModCode:(I)I
            istore 6 /* jmod_op */
        start local 6 // int jmod_op
         6: .line 1396
            aload 3 /* attrs */
            invokeinterface javax.naming.directory.Attributes.size:()I
            newarray 10
            astore 7 /* jmods */
        start local 7 // int[] jmods
         7: .line 1397
            aload 3 /* attrs */
            invokeinterface javax.naming.directory.Attributes.size:()I
            anewarray javax.naming.directory.Attribute
            astore 8 /* jattrs */
        start local 8 // javax.naming.directory.Attribute[] jattrs
         8: .line 1399
            aload 3 /* attrs */
            invokeinterface javax.naming.directory.Attributes.getAll:()Ljavax/naming/NamingEnumeration;
            astore 9 /* ae */
        start local 9 // javax.naming.NamingEnumeration ae
         9: .line 1400
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        10: goto 14
        11: .line 1401
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name int javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation java.lang.String int int[] javax.naming.directory.Attribute[] javax.naming.NamingEnumeration int
      StackMap stack:
            aload 7 /* jmods */
            iload 10 /* i */
            iload 6 /* jmod_op */
            iastore
        12: .line 1402
            aload 8 /* jattrs */
            iload 10 /* i */
            aload 9 /* ae */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast javax.naming.directory.Attribute
            aastore
        13: .line 1400
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 10 /* i */
            aload 7 /* jmods */
            arraylength
            if_icmpge 15
            aload 9 /* ae */
            invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
            ifne 11
        end local 10 // int i
        15: .line 1405
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 5 /* newDN */
            aload 7 /* jmods */
            aload 8 /* jattrs */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.modify:(Ljava/lang/String;[I[Ljavax/naming/directory/Attribute;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 10 /* answer */
        start local 10 // com.sun.jndi.ldap.LdapResult answer
        16: .line 1406
            aload 0 /* this */
            aload 10 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        17: .line 1408
            aload 10 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 41
        18: .line 1409
            aload 0 /* this */
            aload 10 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        19: .line 1410
            return
        end local 10 // com.sun.jndi.ldap.LdapResult answer
        end local 9 // javax.naming.NamingEnumeration ae
        end local 8 // javax.naming.directory.Attribute[] jattrs
        end local 7 // int[] jmods
        end local 6 // int jmod_op
        end local 5 // java.lang.String newDN
        20: .line 1413
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name int javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 5 /* e */
        start local 5 // com.sun.jndi.ldap.LdapReferralException e
        21: .line 1414
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 23
        22: .line 1415
            aload 4 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        23: .line 1421
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 5 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        24: .line 1420
            astore 6 /* refCtx */
        start local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        25: .line 1426
            aload 6 /* refCtx */
            aload 1 /* name */
            iload 2 /* mod_op */
            aload 3 /* attrs */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.modifyAttributes:(Ljavax/naming/Name;ILjavax/naming/directory/Attributes;)V
        26: .line 1435
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        27: .line 1427
            return
        28: .line 1429
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name int javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 7 /* re */
        start local 7 // com.sun.jndi.ldap.LdapReferralException re
        29: .line 1430
            aload 7 /* re */
            astore 5 /* e */
        30: .line 1435
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        31: .line 1431
            goto 23
        end local 7 // com.sun.jndi.ldap.LdapReferralException re
        32: .line 1433
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        33: .line 1435
            aload 6 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        34: .line 1436
            aload 8
            athrow
        end local 6 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 5 // com.sun.jndi.ldap.LdapReferralException e
        35: .line 1439
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name int javax.naming.directory.Attributes com.sun.jndi.toolkit.ctx.Continuation
      StackMap stack: java.io.IOException
            astore 5 /* e */
        start local 5 // java.io.IOException e
        36: .line 1440
            new javax.naming.CommunicationException
            dup
            aload 5 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 6 /* e2 */
        start local 6 // javax.naming.NamingException e2
        37: .line 1441
            aload 6 /* e2 */
            aload 5 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        38: .line 1442
            aload 4 /* cont */
            aload 6 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 6 // javax.naming.NamingException e2
        end local 5 // java.io.IOException e
        39: .line 1444
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 5 /* e */
        start local 5 // javax.naming.NamingException e
        40: .line 1445
            aload 4 /* cont */
            aload 5 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 5 // javax.naming.NamingException e
        41: .line 1447
      StackMap locals:
      StackMap stack:
            return
        end local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 3 // javax.naming.directory.Attributes attrs
        end local 2 // int mod_op
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   42     0     this  Lcom/sun/jndi/ldap/LdapCtx;
            0   42     1     name  Ljavax/naming/Name;
            0   42     2   mod_op  I
            0   42     3    attrs  Ljavax/naming/directory/Attributes;
            0   42     4     cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            5   20     5    newDN  Ljava/lang/String;
            6   20     6  jmod_op  I
            7   20     7    jmods  [I
            8   20     8   jattrs  [Ljavax/naming/directory/Attribute;
            9   20     9       ae  Ljavax/naming/NamingEnumeration<+Ljavax/naming/directory/Attribute;>;
           10   15    10        i  I
           16   20    10   answer  Lcom/sun/jndi/ldap/LdapResult;
           21   35     5        e  Lcom/sun/jndi/ldap/LdapReferralException;
           25   35     6   refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           29   32     7       re  Lcom/sun/jndi/ldap/LdapReferralException;
           36   39     5        e  Ljava/io/IOException;
           37   39     6       e2  Ljavax/naming/NamingException;
           40   41     5        e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           1     3      20  Class com.sun.jndi.ldap.LdapReferralException
           4    19      20  Class com.sun.jndi.ldap.LdapReferralException
          25    26      28  Class com.sun.jndi.ldap.LdapReferralException
          25    26      32  any
          28    30      32  any
           1     3      35  Class java.io.IOException
           4    19      35  Class java.io.IOException
           1     3      39  Class javax.naming.NamingException
           4    19      39  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
        Name  Flags
      name    
      mod_op  
      attrs   
      cont    

  protected void c_modifyAttributes(javax.naming.Name, javax.naming.directory.ModificationItem[], com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;[Ljavax/naming/directory/ModificationItem;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // javax.naming.directory.ModificationItem[] mods
        start local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1452
            aload 3 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 1455
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         2: .line 1457
            aload 2 /* mods */
            ifnull 3
            aload 2 /* mods */
            arraylength
            ifne 4
         3: .line 1458
      StackMap locals:
      StackMap stack:
            return
         4: .line 1460
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            astore 4 /* newDN */
        start local 4 // java.lang.String newDN
         5: .line 1463
            aload 2 /* mods */
            arraylength
            newarray 10
            astore 5 /* jmods */
        start local 5 // int[] jmods
         6: .line 1464
            aload 2 /* mods */
            arraylength
            anewarray javax.naming.directory.Attribute
            astore 6 /* jattrs */
        start local 6 // javax.naming.directory.Attribute[] jattrs
         7: .line 1466
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         8: goto 13
         9: .line 1467
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.ModificationItem[] com.sun.jndi.toolkit.ctx.Continuation java.lang.String int[] javax.naming.directory.Attribute[] top int
      StackMap stack:
            aload 2 /* mods */
            iload 8 /* i */
            aaload
            astore 7 /* mod */
        start local 7 // javax.naming.directory.ModificationItem mod
        10: .line 1468
            aload 5 /* jmods */
            iload 8 /* i */
            aload 7 /* mod */
            invokevirtual javax.naming.directory.ModificationItem.getModificationOp:()I
            invokestatic com.sun.jndi.ldap.LdapCtx.convertToLdapModCode:(I)I
            iastore
        11: .line 1469
            aload 6 /* jattrs */
            iload 8 /* i */
            aload 7 /* mod */
            invokevirtual javax.naming.directory.ModificationItem.getAttribute:()Ljavax/naming/directory/Attribute;
            aastore
        12: .line 1466
            iinc 8 /* i */ 1
        end local 7 // javax.naming.directory.ModificationItem mod
      StackMap locals:
      StackMap stack:
        13: iload 8 /* i */
            aload 5 /* jmods */
            arraylength
            if_icmplt 9
        end local 8 // int i
        14: .line 1472
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 4 /* newDN */
            aload 5 /* jmods */
            aload 6 /* jattrs */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.modify:(Ljava/lang/String;[I[Ljavax/naming/directory/Attribute;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 8 /* answer */
        start local 8 // com.sun.jndi.ldap.LdapResult answer
        15: .line 1473
            aload 0 /* this */
            aload 8 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        16: .line 1475
            aload 8 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 40
        17: .line 1476
            aload 0 /* this */
            aload 8 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        end local 8 // com.sun.jndi.ldap.LdapResult answer
        end local 6 // javax.naming.directory.Attribute[] jattrs
        end local 5 // int[] jmods
        end local 4 // java.lang.String newDN
        18: .line 1479
            goto 40
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.ModificationItem[] com.sun.jndi.toolkit.ctx.Continuation
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
        19: astore 4 /* e */
        start local 4 // com.sun.jndi.ldap.LdapReferralException e
        20: .line 1480
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 22
        21: .line 1481
            aload 3 /* cont */
            aload 4 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        22: .line 1487
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 4 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        23: .line 1486
            astore 5 /* refCtx */
        start local 5 // com.sun.jndi.ldap.LdapReferralContext refCtx
        24: .line 1492
            aload 5 /* refCtx */
            aload 1 /* name */
            aload 2 /* mods */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.modifyAttributes:(Ljavax/naming/Name;[Ljavax/naming/directory/ModificationItem;)V
        25: .line 1501
            aload 5 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        26: .line 1493
            return
        27: .line 1495
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.ModificationItem[] com.sun.jndi.toolkit.ctx.Continuation com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 6 /* re */
        start local 6 // com.sun.jndi.ldap.LdapReferralException re
        28: .line 1496
            aload 6 /* re */
            astore 4 /* e */
        29: .line 1501
            aload 5 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        30: .line 1497
            goto 22
        end local 6 // com.sun.jndi.ldap.LdapReferralException re
        31: .line 1499
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        32: .line 1501
            aload 5 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        33: .line 1502
            aload 7
            athrow
        end local 5 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 4 // com.sun.jndi.ldap.LdapReferralException e
        34: .line 1505
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.ModificationItem[] com.sun.jndi.toolkit.ctx.Continuation
      StackMap stack: java.io.IOException
            astore 4 /* e */
        start local 4 // java.io.IOException e
        35: .line 1506
            new javax.naming.CommunicationException
            dup
            aload 4 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 5 /* e2 */
        start local 5 // javax.naming.NamingException e2
        36: .line 1507
            aload 5 /* e2 */
            aload 4 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        37: .line 1508
            aload 3 /* cont */
            aload 5 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 5 // javax.naming.NamingException e2
        end local 4 // java.io.IOException e
        38: .line 1510
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 4 /* e */
        start local 4 // javax.naming.NamingException e
        39: .line 1511
            aload 3 /* cont */
            aload 4 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 4 // javax.naming.NamingException e
        40: .line 1513
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 2 // javax.naming.directory.ModificationItem[] mods
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   41     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0   41     1    name  Ljavax/naming/Name;
            0   41     2    mods  [Ljavax/naming/directory/ModificationItem;
            0   41     3    cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            5   18     4   newDN  Ljava/lang/String;
            6   18     5   jmods  [I
            7   18     6  jattrs  [Ljavax/naming/directory/Attribute;
           10   13     7     mod  Ljavax/naming/directory/ModificationItem;
            8   14     8       i  I
           15   18     8  answer  Lcom/sun/jndi/ldap/LdapResult;
           20   34     4       e  Lcom/sun/jndi/ldap/LdapReferralException;
           24   34     5  refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           28   31     6      re  Lcom/sun/jndi/ldap/LdapReferralException;
           35   38     4       e  Ljava/io/IOException;
           36   38     5      e2  Ljavax/naming/NamingException;
           39   40     4       e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           1     3      19  Class com.sun.jndi.ldap.LdapReferralException
           4    18      19  Class com.sun.jndi.ldap.LdapReferralException
          24    25      27  Class com.sun.jndi.ldap.LdapReferralException
          24    25      31  any
          27    29      31  any
           1     3      34  Class java.io.IOException
           4    18      34  Class java.io.IOException
           1     3      38  Class javax.naming.NamingException
           4    18      38  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      mods  
      cont  

  private static int convertToLdapModCode(int);
    descriptor: (I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // int mod_op
         0: .line 1516
            iload 0 /* mod_op */
            tableswitch { // 1 - 3
                    1: 1
                    2: 2
                    3: 3
              default: 4
          }
         1: .line 1518
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 1521
      StackMap locals:
      StackMap stack:
            iconst_2
            ireturn
         3: .line 1524
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         4: .line 1527
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid modification code"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // int mod_op
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0  mod_op  I
    MethodParameters:
        Name  Flags
      mod_op  

  protected javax.naming.directory.DirContext c_getSchema(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/directory/DirContext;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1535
            aload 2 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 1537
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.getSchemaTree:(Ljavax/naming/Name;)Ljavax/naming/directory/DirContext;
         2: areturn
         3: .line 1539
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 3 /* e */
        start local 3 // javax.naming.NamingException e
         4: .line 1540
            aload 2 /* cont */
            aload 3 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 3 // javax.naming.NamingException e
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1  name  Ljavax/naming/Name;
            0    5     2  cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            4    5     3     e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           1     2       3  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  protected javax.naming.directory.DirContext c_getSchemaClassDefinition(javax.naming.Name, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/directory/DirContext;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1547
            aload 2 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         1: .line 1551
            aload 0 /* this */
            aload 1 /* name */
         2: .line 1552
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "objectclass"
            aastore
            aload 2 /* cont */
         3: .line 1551
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_getAttributes:(Ljavax/naming/Name;[Ljava/lang/String;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/directory/Attributes;
         4: .line 1552
            ldc "objectclass"
            invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
         5: .line 1551
            astore 3 /* objectClassAttr */
        start local 3 // javax.naming.directory.Attribute objectClassAttr
         6: .line 1553
            aload 3 /* objectClassAttr */
            ifnull 7
            aload 3 /* objectClassAttr */
            invokeinterface javax.naming.directory.Attribute.size:()I
            ifne 9
         7: .line 1554
      StackMap locals: javax.naming.directory.Attribute
      StackMap stack:
            getstatic com.sun.jndi.ldap.LdapCtx.EMPTY_SCHEMA:Lcom/sun/jndi/toolkit/dir/HierMemDirCtx;
         8: areturn
         9: .line 1558
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_getSchema:(Ljavax/naming/Name;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/directory/DirContext;
        10: .line 1559
            ldc "ClassDefinition"
        11: .line 1558
            invokeinterface javax.naming.directory.DirContext.lookup:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast javax.naming.Context
            astore 4 /* ocSchema */
        start local 4 // javax.naming.Context ocSchema
        12: .line 1563
            new com.sun.jndi.toolkit.dir.HierMemDirCtx
            dup
            invokespecial com.sun.jndi.toolkit.dir.HierMemDirCtx.<init>:()V
            astore 5 /* objectClassCtx */
        start local 5 // com.sun.jndi.toolkit.dir.HierMemDirCtx objectClassCtx
        13: .line 1566
            aload 3 /* objectClassAttr */
            invokeinterface javax.naming.directory.Attribute.getAll:()Ljavax/naming/NamingEnumeration;
            astore 8 /* objectClasses */
        start local 8 // java.util.Enumeration objectClasses
        14: .line 1567
            goto 18
        15: .line 1568
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.Attribute javax.naming.Context com.sun.jndi.toolkit.dir.HierMemDirCtx top top java.util.Enumeration
      StackMap stack:
            aload 8 /* objectClasses */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* objectClassName */
        start local 7 // java.lang.String objectClassName
        16: .line 1570
            aload 4 /* ocSchema */
            aload 7 /* objectClassName */
            invokeinterface javax.naming.Context.lookup:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast javax.naming.directory.DirContext
            astore 6 /* objectClassDef */
        start local 6 // javax.naming.directory.DirContext objectClassDef
        17: .line 1571
            aload 5 /* objectClassCtx */
            aload 7 /* objectClassName */
            aload 6 /* objectClassDef */
            invokevirtual com.sun.jndi.toolkit.dir.HierMemDirCtx.bind:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 7 // java.lang.String objectClassName
        end local 6 // javax.naming.directory.DirContext objectClassDef
        18: .line 1567
      StackMap locals:
      StackMap stack:
            aload 8 /* objectClasses */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 15
        end local 8 // java.util.Enumeration objectClasses
        19: .line 1575
            aload 5 /* objectClassCtx */
        20: .line 1576
            new javax.naming.directory.SchemaViolationException
            dup
            ldc "Cannot update schema object"
            invokespecial javax.naming.directory.SchemaViolationException.<init>:(Ljava/lang/String;)V
        21: .line 1575
            invokevirtual com.sun.jndi.toolkit.dir.HierMemDirCtx.setReadOnly:(Ljavax/naming/NamingException;)V
        22: .line 1577
            aload 5 /* objectClassCtx */
        23: areturn
        end local 5 // com.sun.jndi.toolkit.dir.HierMemDirCtx objectClassCtx
        end local 4 // javax.naming.Context ocSchema
        end local 3 // javax.naming.directory.Attribute objectClassAttr
        24: .line 1579
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name com.sun.jndi.toolkit.ctx.Continuation
      StackMap stack: javax.naming.NamingException
            astore 3 /* e */
        start local 3 // javax.naming.NamingException e
        25: .line 1580
            aload 2 /* cont */
            aload 3 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 3 // javax.naming.NamingException e
        end local 2 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   26     0             this  Lcom/sun/jndi/ldap/LdapCtx;
            0   26     1             name  Ljavax/naming/Name;
            0   26     2             cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            6   24     3  objectClassAttr  Ljavax/naming/directory/Attribute;
           12   24     4         ocSchema  Ljavax/naming/Context;
           13   24     5   objectClassCtx  Lcom/sun/jndi/toolkit/dir/HierMemDirCtx;
           17   18     6   objectClassDef  Ljavax/naming/directory/DirContext;
           16   18     7  objectClassName  Ljava/lang/String;
           14   19     8    objectClasses  Ljava/util/Enumeration<*>;
           25   26     3                e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           1     8      24  Class javax.naming.NamingException
           9    23      24  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  
      cont  

  private javax.naming.directory.DirContext getSchemaTree(javax.naming.Name);
    descriptor: (Ljavax/naming/Name;)Ljavax/naming/directory/DirContext;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
         0: .line 1590
            aload 0 /* this */
            aload 1 /* name */
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.getSchemaEntry:(Ljavax/naming/Name;Z)Ljava/lang/String;
            astore 2 /* subschemasubentry */
        start local 2 // java.lang.String subschemasubentry
         1: .line 1592
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
            aload 2 /* subschemasubentry */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.naming.directory.DirContext
            astore 3 /* schemaTree */
        start local 3 // javax.naming.directory.DirContext schemaTree
         2: .line 1594
            aload 3 /* schemaTree */
            ifnonnull 5
         3: .line 1596
            aload 0 /* this */
            aload 2 /* subschemasubentry */
            invokevirtual com.sun.jndi.ldap.LdapCtx.buildSchemaTree:(Ljava/lang/String;)Ljavax/naming/directory/DirContext;
            astore 3 /* schemaTree */
         4: .line 1597
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
            aload 2 /* subschemasubentry */
            aload 3 /* schemaTree */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 1600
      StackMap locals: java.lang.String javax.naming.directory.DirContext
      StackMap stack:
            aload 3 /* schemaTree */
            areturn
        end local 3 // javax.naming.directory.DirContext schemaTree
        end local 2 // java.lang.String subschemasubentry
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lcom/sun/jndi/ldap/LdapCtx;
            0    6     1               name  Ljavax/naming/Name;
            1    6     2  subschemasubentry  Ljava/lang/String;
            2    6     3         schemaTree  Ljavax/naming/directory/DirContext;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      name  

  private javax.naming.directory.DirContext buildSchemaTree(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/naming/directory/DirContext;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=7, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String subschemasubentry
         0: .line 1615
            new javax.naming.directory.SearchControls
            dup
            iconst_0
         1: .line 1616
            lconst_0
            iconst_0
         2: .line 1617
            getstatic com.sun.jndi.ldap.LdapCtx.SCHEMA_ATTRIBUTES:[Ljava/lang/String;
         3: .line 1618
            iconst_1
         4: .line 1619
            iconst_0
         5: .line 1614
            invokespecial javax.naming.directory.SearchControls.<init>:(IJI[Ljava/lang/String;ZZ)V
            astore 2 /* constraints */
        start local 2 // javax.naming.directory.SearchControls constraints
         6: .line 1621
            new javax.naming.CompositeName
            dup
            invokespecial javax.naming.CompositeName.<init>:()V
            aload 1 /* subschemasubentry */
            invokevirtual javax.naming.CompositeName.add:(Ljava/lang/String;)Ljavax/naming/Name;
            astore 3 /* sse */
        start local 3 // javax.naming.Name sse
         7: .line 1623
            aload 0 /* this */
            aload 3 /* sse */
            ldc "(objectClass=subschema)"
            aload 2 /* constraints */
         8: .line 1624
            iconst_0
            iconst_1
            new com.sun.jndi.toolkit.ctx.Continuation
            dup
            invokespecial com.sun.jndi.toolkit.ctx.Continuation.<init>:()V
         9: .line 1623
            invokevirtual com.sun.jndi.ldap.LdapCtx.searchAux:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZLcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
        10: .line 1622
            astore 4 /* results */
        start local 4 // javax.naming.NamingEnumeration results
        11: .line 1626
            aload 4 /* results */
            invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
            ifne 15
        12: .line 1627
            new javax.naming.OperationNotSupportedException
            dup
        13: .line 1628
            new java.lang.StringBuilder
            dup
            ldc "Cannot get read subschemasubentry: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* subschemasubentry */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        14: .line 1627
            invokespecial javax.naming.OperationNotSupportedException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 1630
      StackMap locals: javax.naming.directory.SearchControls javax.naming.Name javax.naming.NamingEnumeration
      StackMap stack:
            aload 4 /* results */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast javax.naming.directory.SearchResult
            astore 5 /* result */
        start local 5 // javax.naming.directory.SearchResult result
        16: .line 1631
            aload 4 /* results */
            invokeinterface javax.naming.NamingEnumeration.close:()V
        17: .line 1633
            aload 5 /* result */
            invokevirtual javax.naming.directory.SearchResult.getObject:()Ljava/lang/Object;
            astore 6 /* obj */
        start local 6 // java.lang.Object obj
        18: .line 1634
            aload 6 /* obj */
            instanceof com.sun.jndi.ldap.LdapCtx
            ifne 22
        19: .line 1635
            new javax.naming.NamingException
            dup
        20: .line 1636
            new java.lang.StringBuilder
            dup
            ldc "Cannot get schema object as DirContext: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* subschemasubentry */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        21: .line 1635
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 1639
      StackMap locals: javax.naming.directory.SearchResult java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 1 /* subschemasubentry */
        23: .line 1640
            aload 6 /* obj */
            checkcast com.sun.jndi.ldap.LdapCtx
        24: .line 1641
            aload 5 /* result */
            invokevirtual javax.naming.directory.SearchResult.getAttributes:()Ljavax/naming/directory/Attributes;
        25: .line 1642
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.netscapeSchemaBug:Z
        26: .line 1639
            invokestatic com.sun.jndi.ldap.LdapSchemaCtx.createSchemaTree:(Ljava/util/Hashtable;Ljava/lang/String;Lcom/sun/jndi/ldap/LdapCtx;Ljavax/naming/directory/Attributes;Z)Ljavax/naming/directory/DirContext;
            areturn
        end local 6 // java.lang.Object obj
        end local 5 // javax.naming.directory.SearchResult result
        end local 4 // javax.naming.NamingEnumeration results
        end local 3 // javax.naming.Name sse
        end local 2 // javax.naming.directory.SearchControls constraints
        end local 1 // java.lang.String subschemasubentry
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   27     0               this  Lcom/sun/jndi/ldap/LdapCtx;
            0   27     1  subschemasubentry  Ljava/lang/String;
            6   27     2        constraints  Ljavax/naming/directory/SearchControls;
            7   27     3                sse  Ljavax/naming/Name;
           11   27     4            results  Ljavax/naming/NamingEnumeration<Ljavax/naming/directory/SearchResult;>;
           16   27     5             result  Ljavax/naming/directory/SearchResult;
           18   27     6                obj  Ljava/lang/Object;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
                   Name  Flags
      subschemasubentry  

  private java.lang.String getSchemaEntry(javax.naming.Name, boolean);
    descriptor: (Ljavax/naming/Name;Z)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=7, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // boolean relative
         0: .line 1669
            new javax.naming.directory.SearchControls
            dup
            iconst_0
         1: .line 1670
            lconst_0
            iconst_0
         2: .line 1671
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "subschemasubentry"
            aastore
         3: .line 1672
            iconst_0
         4: .line 1673
            iconst_0
         5: .line 1669
            invokespecial javax.naming.directory.SearchControls.<init>:(IJI[Ljava/lang/String;ZZ)V
            astore 3 /* constraints */
        start local 3 // javax.naming.directory.SearchControls constraints
         6: .line 1677
            aload 0 /* this */
            aload 1 /* name */
            ldc "objectclass=*"
            aload 3 /* constraints */
            iload 2 /* relative */
         7: .line 1678
            iconst_1
            new com.sun.jndi.toolkit.ctx.Continuation
            dup
            invokespecial com.sun.jndi.toolkit.ctx.Continuation.<init>:()V
         8: .line 1677
            invokevirtual com.sun.jndi.ldap.LdapCtx.searchAux:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZLcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
            astore 4 /* results */
        start local 4 // javax.naming.NamingEnumeration results
         9: .line 1680
            goto 16
        end local 4 // javax.naming.NamingEnumeration results
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name int javax.naming.directory.SearchControls
      StackMap stack: javax.naming.NamingException
        10: astore 5 /* ne */
        start local 5 // javax.naming.NamingException ne
        11: .line 1681
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifne 15
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifne 15
            aload 1 /* name */
            invokeinterface javax.naming.Name.isEmpty:()Z
            ifeq 15
        12: .line 1684
            new javax.naming.OperationNotSupportedException
            dup
        13: .line 1685
            ldc "Cannot get schema information from server"
        14: .line 1684
            invokespecial javax.naming.OperationNotSupportedException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 1687
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name int javax.naming.directory.SearchControls top javax.naming.NamingException
      StackMap stack:
            aload 5 /* ne */
            athrow
        end local 5 // javax.naming.NamingException ne
        start local 4 // javax.naming.NamingEnumeration results
        16: .line 1691
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name int javax.naming.directory.SearchControls javax.naming.NamingEnumeration
      StackMap stack:
            aload 4 /* results */
            invokeinterface javax.naming.NamingEnumeration.hasMoreElements:()Z
            ifne 20
        17: .line 1692
            new javax.naming.ConfigurationException
            dup
        18: .line 1693
            new java.lang.StringBuilder
            dup
            ldc "Requesting schema of nonexistent entry: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        19: .line 1692
            invokespecial javax.naming.ConfigurationException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 1696
      StackMap locals:
      StackMap stack:
            aload 4 /* results */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast javax.naming.directory.SearchResult
            astore 5 /* result */
        start local 5 // javax.naming.directory.SearchResult result
        21: .line 1697
            aload 4 /* results */
            invokeinterface javax.naming.NamingEnumeration.close:()V
        22: .line 1700
            aload 5 /* result */
            invokevirtual javax.naming.directory.SearchResult.getAttributes:()Ljavax/naming/directory/Attributes;
            ldc "subschemasubentry"
            invokeinterface javax.naming.directory.Attributes.get:(Ljava/lang/String;)Ljavax/naming/directory/Attribute;
        23: .line 1699
            astore 6 /* schemaEntryAttr */
        start local 6 // javax.naming.directory.Attribute schemaEntryAttr
        24: .line 1703
            aload 6 /* schemaEntryAttr */
            ifnull 25
            aload 6 /* schemaEntryAttr */
            invokeinterface javax.naming.directory.Attribute.size:()I
            ifge 30
        25: .line 1704
      StackMap locals: javax.naming.directory.SearchResult javax.naming.directory.Attribute
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifne 29
            aload 1 /* name */
            invokeinterface javax.naming.Name.isEmpty:()Z
            ifeq 29
        26: .line 1707
            new javax.naming.OperationNotSupportedException
            dup
        27: .line 1708
            ldc "Cannot read subschemasubentry of root DSE"
        28: .line 1707
            invokespecial javax.naming.OperationNotSupportedException.<init>:(Ljava/lang/String;)V
            athrow
        29: .line 1710
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new javax.naming.CompositeName
            dup
            invokespecial javax.naming.CompositeName.<init>:()V
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.getSchemaEntry:(Ljavax/naming/Name;Z)Ljava/lang/String;
            areturn
        30: .line 1714
      StackMap locals:
      StackMap stack:
            aload 6 /* schemaEntryAttr */
            invokeinterface javax.naming.directory.Attribute.get:()Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 6 // javax.naming.directory.Attribute schemaEntryAttr
        end local 5 // javax.naming.directory.SearchResult result
        end local 4 // javax.naming.NamingEnumeration results
        end local 3 // javax.naming.directory.SearchControls constraints
        end local 2 // boolean relative
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   31     0             this  Lcom/sun/jndi/ldap/LdapCtx;
            0   31     1             name  Ljavax/naming/Name;
            0   31     2         relative  Z
            6   31     3      constraints  Ljavax/naming/directory/SearchControls;
            9   10     4          results  Ljavax/naming/NamingEnumeration<Ljavax/naming/directory/SearchResult;>;
           16   31     4          results  Ljavax/naming/NamingEnumeration<Ljavax/naming/directory/SearchResult;>;
           11   16     5               ne  Ljavax/naming/NamingException;
           21   31     5           result  Ljavax/naming/directory/SearchResult;
           24   31     6  schemaEntryAttr  Ljavax/naming/directory/Attribute;
      Exception table:
        from    to  target  type
           6     9      10  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
          Name  Flags
      name      
      relative  

  void setParents(javax.naming.directory.Attributes, javax.naming.Name);
    descriptor: (Ljavax/naming/directory/Attributes;Ljavax/naming/Name;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.directory.Attributes attrs
        start local 2 // javax.naming.Name name
         0: .line 1721
            aload 1 /* attrs */
            invokeinterface javax.naming.directory.Attributes.getAll:()Ljavax/naming/NamingEnumeration;
            astore 3 /* ae */
        start local 3 // javax.naming.NamingEnumeration ae
         1: .line 1722
            goto 3
         2: .line 1723
      StackMap locals: javax.naming.NamingEnumeration
      StackMap stack:
            aload 3 /* ae */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast com.sun.jndi.ldap.LdapAttribute
            aload 0 /* this */
            aload 2 /* name */
            invokevirtual com.sun.jndi.ldap.LdapAttribute.setParent:(Ljavax/naming/directory/DirContext;Ljavax/naming/Name;)V
         3: .line 1722
      StackMap locals:
      StackMap stack:
            aload 3 /* ae */
            invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
            ifne 2
         4: .line 1725
            return
        end local 3 // javax.naming.NamingEnumeration ae
        end local 2 // javax.naming.Name name
        end local 1 // javax.naming.directory.Attributes attrs
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1  attrs  Ljavax/naming/directory/Attributes;
            0    5     2   name  Ljavax/naming/Name;
            1    5     3     ae  Ljavax/naming/NamingEnumeration<+Ljavax/naming/directory/Attribute;>;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
       Name  Flags
      attrs  
      name   

  java.lang.String getURL();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 1732
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.url:Ljava/lang/String;
            ifnonnull 4
         1: .line 1733
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.port_number:I
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
         2: .line 1734
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hasLdapsScheme:Z
         3: .line 1733
            invokestatic com.sun.jndi.ldap.LdapURL.toUrlString:(Ljava/lang/String;ILjava/lang/String;Z)Ljava/lang/String;
            putfield com.sun.jndi.ldap.LdapCtx.url:Ljava/lang/String;
         4: .line 1737
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.url:Ljava/lang/String;
            areturn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/jndi/ldap/LdapCtx;

  protected javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> c_search(javax.naming.Name, javax.naming.directory.Attributes, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // javax.naming.directory.Attributes matchingAttributes
        start local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1745
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* matchingAttributes */
            aconst_null
            aload 3 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_search:(Ljavax/naming/Name;Ljavax/naming/directory/Attributes;[Ljava/lang/String;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
            areturn
        end local 3 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 2 // javax.naming.directory.Attributes matchingAttributes
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0                this  Lcom/sun/jndi/ldap/LdapCtx;
            0    1     1                name  Ljavax/naming/Name;
            0    1     2  matchingAttributes  Ljavax/naming/directory/Attributes;
            0    1     3                cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
    Exceptions:
      throws javax.naming.NamingException
    Signature: (Ljavax/naming/Name;Ljavax/naming/directory/Attributes;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration<Ljavax/naming/directory/SearchResult;>;
    MethodParameters:
                    Name  Flags
      name                
      matchingAttributes  
      cont                

  protected javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> c_search(javax.naming.Name, javax.naming.directory.Attributes, java.lang.String[], com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljavax/naming/directory/Attributes;[Ljava/lang/String;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // javax.naming.directory.Attributes matchingAttributes
        start local 3 // java.lang.String[] attributesToReturn
        start local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1753
            new javax.naming.directory.SearchControls
            dup
            invokespecial javax.naming.directory.SearchControls.<init>:()V
            astore 5 /* cons */
        start local 5 // javax.naming.directory.SearchControls cons
         1: .line 1754
            aload 5 /* cons */
            aload 3 /* attributesToReturn */
            invokevirtual javax.naming.directory.SearchControls.setReturningAttributes:([Ljava/lang/String;)V
         2: .line 1757
            aload 2 /* matchingAttributes */
            invokestatic com.sun.jndi.toolkit.dir.SearchFilter.format:(Ljavax/naming/directory/Attributes;)Ljava/lang/String;
            astore 6 /* filter */
        start local 6 // java.lang.String filter
         3: .line 1758
            goto 7
        end local 6 // java.lang.String filter
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name javax.naming.directory.Attributes java.lang.String[] com.sun.jndi.toolkit.ctx.Continuation javax.naming.directory.SearchControls
      StackMap stack: javax.naming.NamingException
         4: astore 7 /* e */
        start local 7 // javax.naming.NamingException e
         5: .line 1759
            aload 4 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         6: .line 1760
            aload 4 /* cont */
            aload 7 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 7 // javax.naming.NamingException e
        start local 6 // java.lang.String filter
         7: .line 1762
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 6 /* filter */
            aload 5 /* cons */
            aload 4 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_search:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
            areturn
        end local 6 // java.lang.String filter
        end local 5 // javax.naming.directory.SearchControls cons
        end local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 3 // java.lang.String[] attributesToReturn
        end local 2 // javax.naming.directory.Attributes matchingAttributes
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    8     0                this  Lcom/sun/jndi/ldap/LdapCtx;
            0    8     1                name  Ljavax/naming/Name;
            0    8     2  matchingAttributes  Ljavax/naming/directory/Attributes;
            0    8     3  attributesToReturn  [Ljava/lang/String;
            0    8     4                cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            1    8     5                cons  Ljavax/naming/directory/SearchControls;
            3    4     6              filter  Ljava/lang/String;
            7    8     6              filter  Ljava/lang/String;
            5    7     7                   e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           2     3       4  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    Signature: (Ljavax/naming/Name;Ljavax/naming/directory/Attributes;[Ljava/lang/String;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration<Ljavax/naming/directory/SearchResult;>;
    MethodParameters:
                    Name  Flags
      name                
      matchingAttributes  
      attributesToReturn  
      cont                

  protected javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> c_search(javax.naming.Name, java.lang.String, javax.naming.directory.SearchControls, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.String filter
        start local 3 // javax.naming.directory.SearchControls cons
        start local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1770
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* filter */
            aload 3 /* cons */
            invokestatic com.sun.jndi.ldap.LdapCtx.cloneSearchControls:(Ljavax/naming/directory/SearchControls;)Ljavax/naming/directory/SearchControls;
            iconst_1
         1: .line 1771
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.waitForReply:Z
            aload 4 /* cont */
         2: .line 1770
            invokevirtual com.sun.jndi.ldap.LdapCtx.searchAux:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZLcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
            areturn
        end local 4 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 3 // javax.naming.directory.SearchControls cons
        end local 2 // java.lang.String filter
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0    3     1    name  Ljavax/naming/Name;
            0    3     2  filter  Ljava/lang/String;
            0    3     3    cons  Ljavax/naming/directory/SearchControls;
            0    3     4    cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
    Exceptions:
      throws javax.naming.NamingException
    Signature: (Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration<Ljavax/naming/directory/SearchResult;>;
    MethodParameters:
        Name  Flags
      name    
      filter  
      cons    
      cont    

  protected javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> c_search(javax.naming.Name, java.lang.String, [], javax.naming.directory.SearchControls, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljava/lang/String;[Ljava/lang/Object;Ljavax/naming/directory/SearchControls;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=8, args_size=6
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.String filterExpr
        start local 3 // java.lang.Object[] filterArgs
        start local 4 // javax.naming.directory.SearchControls cons
        start local 5 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1782
            aload 2 /* filterExpr */
            aload 3 /* filterArgs */
            invokestatic com.sun.jndi.toolkit.dir.SearchFilter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 6 /* strfilter */
        start local 6 // java.lang.String strfilter
         1: .line 1783
            goto 5
        end local 6 // java.lang.String strfilter
      StackMap locals:
      StackMap stack: javax.naming.NamingException
         2: astore 7 /* e */
        start local 7 // javax.naming.NamingException e
         3: .line 1784
            aload 5 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
         4: .line 1785
            aload 5 /* cont */
            aload 7 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 7 // javax.naming.NamingException e
        start local 6 // java.lang.String strfilter
         5: .line 1787
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 6 /* strfilter */
            aload 4 /* cons */
            aload 5 /* cont */
            invokevirtual com.sun.jndi.ldap.LdapCtx.c_search:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
            areturn
        end local 6 // java.lang.String strfilter
        end local 5 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 4 // javax.naming.directory.SearchControls cons
        end local 3 // java.lang.Object[] filterArgs
        end local 2 // java.lang.String filterExpr
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0    6     1        name  Ljavax/naming/Name;
            0    6     2  filterExpr  Ljava/lang/String;
            0    6     3  filterArgs  [Ljava/lang/Object;
            0    6     4        cons  Ljavax/naming/directory/SearchControls;
            0    6     5        cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            1    2     6   strfilter  Ljava/lang/String;
            5    6     6   strfilter  Ljava/lang/String;
            3    5     7           e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           0     1       2  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    Signature: (Ljavax/naming/Name;Ljava/lang/String;[Ljava/lang/Object;Ljavax/naming/directory/SearchControls;Lcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration<Ljavax/naming/directory/SearchResult;>;
    MethodParameters:
            Name  Flags
      name        
      filterExpr  
      filterArgs  
      cons        
      cont        

  javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> searchAux(javax.naming.Name, java.lang.String, javax.naming.directory.SearchControls, boolean, boolean, com.sun.jndi.toolkit.ctx.Continuation);
    descriptor: (Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZLcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration;
    flags: (0x0000) 
    Code:
      stack=7, locals=16, args_size=7
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.String filter
        start local 3 // javax.naming.directory.SearchControls cons
        start local 4 // boolean relative
        start local 5 // boolean waitForReply
        start local 6 // com.sun.jndi.toolkit.ctx.Continuation cont
         0: .line 1797
            aconst_null
            astore 7 /* answer */
        start local 7 // com.sun.jndi.ldap.LdapResult answer
         1: .line 1798
            iconst_2
            anewarray java.lang.String
            astore 8 /* tokens */
        start local 8 // java.lang.String[] tokens
         2: .line 1801
            aload 3 /* cons */
            ifnonnull 4
         3: .line 1802
            new javax.naming.directory.SearchControls
            dup
            invokespecial javax.naming.directory.SearchControls.<init>:()V
            astore 3 /* cons */
         4: .line 1804
      StackMap locals: com.sun.jndi.ldap.LdapResult java.lang.String[]
      StackMap stack:
            aload 3 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getReturningAttributes:()[Ljava/lang/String;
            astore 9 /* reqAttrs */
        start local 9 // java.lang.String[] reqAttrs
         5: .line 1808
            aload 3 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getReturningObjFlag:()Z
            ifeq 25
         6: .line 1809
            aload 9 /* reqAttrs */
            ifnull 25
         7: .line 1812
            iconst_0
            istore 10 /* hasWildcard */
        start local 10 // boolean hasWildcard
         8: .line 1813
            aload 9 /* reqAttrs */
            arraylength
            iconst_1
            isub
            istore 11 /* i */
        start local 11 // int i
         9: goto 14
        10: .line 1814
      StackMap locals: java.lang.String[] int int
      StackMap stack:
            aload 9 /* reqAttrs */
            iload 11 /* i */
            aaload
            ldc "*"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        11: .line 1815
            iconst_1
            istore 10 /* hasWildcard */
        12: .line 1816
            goto 15
        13: .line 1813
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ -1
      StackMap locals:
      StackMap stack:
        14: iload 11 /* i */
            ifge 10
        end local 11 // int i
        15: .line 1819
      StackMap locals:
      StackMap stack:
            iload 10 /* hasWildcard */
            ifne 25
        16: .line 1821
            aload 9 /* reqAttrs */
            arraylength
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            arraylength
            iadd
            anewarray java.lang.String
        17: .line 1820
            astore 11 /* totalAttrs */
        start local 11 // java.lang.String[] totalAttrs
        18: .line 1822
            aload 9 /* reqAttrs */
            iconst_0
            aload 11 /* totalAttrs */
            iconst_0
        19: .line 1823
            aload 9 /* reqAttrs */
            arraylength
        20: .line 1822
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        21: .line 1824
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            iconst_0
            aload 11 /* totalAttrs */
        22: .line 1825
            aload 9 /* reqAttrs */
            arraylength
            getstatic com.sun.jndi.ldap.Obj.JAVA_ATTRIBUTES:[Ljava/lang/String;
            arraylength
        23: .line 1824
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        24: .line 1827
            aload 3 /* cons */
            aload 11 /* totalAttrs */
            invokevirtual javax.naming.directory.SearchControls.setReturningAttributes:([Ljava/lang/String;)V
        end local 11 // java.lang.String[] totalAttrs
        end local 10 // boolean hasWildcard
        25: .line 1833
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.LdapCtx$SearchArgs
            dup
            aload 1 /* name */
            aload 2 /* filter */
            aload 3 /* cons */
            aload 9 /* reqAttrs */
            invokespecial com.sun.jndi.ldap.LdapCtx$SearchArgs.<init>:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;[Ljava/lang/String;)V
        26: .line 1832
            astore 10 /* args */
        start local 10 // com.sun.jndi.ldap.LdapCtx$SearchArgs args
        27: .line 1835
            aload 6 /* cont */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.setError:(Ljava/lang/Object;Ljavax/naming/Name;)V
        28: .line 1838
            aload 2 /* filter */
            aload 3 /* cons */
            aload 8 /* tokens */
            invokestatic com.sun.jndi.ldap.LdapCtx.searchToCompare:(Ljava/lang/String;Ljavax/naming/directory/SearchControls;[Ljava/lang/String;)Z
            ifeq 33
        29: .line 1840
            aload 0 /* this */
            aload 1 /* name */
            aload 8 /* tokens */
            iconst_0
            aaload
            aload 8 /* tokens */
            iconst_1
            aaload
            invokevirtual com.sun.jndi.ldap.LdapCtx.compare:(Ljavax/naming/Name;Ljava/lang/String;Ljava/lang/String;)Lcom/sun/jndi/ldap/LdapResult;
            astore 7 /* answer */
        30: .line 1841
            aload 7 /* answer */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            invokevirtual com.sun.jndi.ldap.LdapResult.compareToSearchResult:(Ljava/lang/String;)Z
            ifne 35
        31: .line 1842
            aload 0 /* this */
            aload 7 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        32: .line 1844
            goto 35
        33: .line 1845
      StackMap locals: com.sun.jndi.ldap.LdapCtx$SearchArgs
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* filter */
            aload 3 /* cons */
            iload 4 /* relative */
            iload 5 /* waitForReply */
            invokevirtual com.sun.jndi.ldap.LdapCtx.doSearch:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZ)Lcom/sun/jndi/ldap/LdapResult;
            astore 7 /* answer */
        34: .line 1847
            aload 0 /* this */
            aload 7 /* answer */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
        35: .line 1849
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.LdapSearchEnumeration
            dup
            aload 0 /* this */
            aload 7 /* answer */
        36: .line 1850
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
        37: .line 1851
            aload 10 /* args */
            aload 6 /* cont */
        38: .line 1849
            invokespecial com.sun.jndi.ldap.LdapSearchEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljava/lang/String;Lcom/sun/jndi/ldap/LdapCtx$SearchArgs;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        39: areturn
        40: .line 1853
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 11 /* e */
        start local 11 // com.sun.jndi.ldap.LdapReferralException e
        41: .line 1854
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 43
        42: .line 1855
            aload 6 /* cont */
            aload 11 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        43: .line 1862
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 11 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
        44: .line 1861
            checkcast com.sun.jndi.ldap.LdapReferralContext
            astore 12 /* refCtx */
        start local 12 // com.sun.jndi.ldap.LdapReferralContext refCtx
        45: .line 1867
            aload 12 /* refCtx */
            aload 1 /* name */
            aload 2 /* filter */
            aload 3 /* cons */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.search:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;)Ljavax/naming/NamingEnumeration;
            astore 15
        46: .line 1875
            aload 12 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        47: .line 1867
            aload 15
            areturn
        48: .line 1869
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.String javax.naming.directory.SearchControls int int com.sun.jndi.toolkit.ctx.Continuation com.sun.jndi.ldap.LdapResult java.lang.String[] java.lang.String[] com.sun.jndi.ldap.LdapCtx$SearchArgs com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 13 /* re */
        start local 13 // com.sun.jndi.ldap.LdapReferralException re
        49: .line 1870
            aload 13 /* re */
            astore 11 /* e */
        50: .line 1875
            aload 12 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        51: .line 1871
            goto 43
        end local 13 // com.sun.jndi.ldap.LdapReferralException re
        52: .line 1873
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 14
        53: .line 1875
            aload 12 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        54: .line 1876
            aload 14
            athrow
        end local 12 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 11 // com.sun.jndi.ldap.LdapReferralException e
        55: .line 1879
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.String javax.naming.directory.SearchControls int int com.sun.jndi.toolkit.ctx.Continuation com.sun.jndi.ldap.LdapResult java.lang.String[] java.lang.String[] com.sun.jndi.ldap.LdapCtx$SearchArgs
      StackMap stack: javax.naming.LimitExceededException
            astore 11 /* e */
        start local 11 // javax.naming.LimitExceededException e
        56: .line 1881
            new com.sun.jndi.ldap.LdapSearchEnumeration
            dup
            aload 0 /* this */
            aload 7 /* answer */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
        57: .line 1882
            aload 10 /* args */
            aload 6 /* cont */
        58: .line 1881
            invokespecial com.sun.jndi.ldap.LdapSearchEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljava/lang/String;Lcom/sun/jndi/ldap/LdapCtx$SearchArgs;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        59: .line 1880
            astore 12 /* res */
        start local 12 // com.sun.jndi.ldap.LdapSearchEnumeration res
        60: .line 1883
            aload 12 /* res */
            aload 11 /* e */
            invokevirtual com.sun.jndi.ldap.LdapSearchEnumeration.setNamingException:(Ljavax/naming/NamingException;)V
        61: .line 1884
            aload 12 /* res */
            areturn
        end local 12 // com.sun.jndi.ldap.LdapSearchEnumeration res
        end local 11 // javax.naming.LimitExceededException e
        62: .line 1886
      StackMap locals:
      StackMap stack: javax.naming.PartialResultException
            astore 11 /* e */
        start local 11 // javax.naming.PartialResultException e
        63: .line 1888
            new com.sun.jndi.ldap.LdapSearchEnumeration
            dup
            aload 0 /* this */
            aload 7 /* answer */
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
        64: .line 1889
            aload 10 /* args */
            aload 6 /* cont */
        65: .line 1888
            invokespecial com.sun.jndi.ldap.LdapSearchEnumeration.<init>:(Lcom/sun/jndi/ldap/LdapCtx;Lcom/sun/jndi/ldap/LdapResult;Ljava/lang/String;Lcom/sun/jndi/ldap/LdapCtx$SearchArgs;Lcom/sun/jndi/toolkit/ctx/Continuation;)V
        66: .line 1887
            astore 12 /* res */
        start local 12 // com.sun.jndi.ldap.LdapSearchEnumeration res
        67: .line 1891
            aload 12 /* res */
            aload 11 /* e */
            invokevirtual com.sun.jndi.ldap.LdapSearchEnumeration.setNamingException:(Ljavax/naming/NamingException;)V
        68: .line 1892
            aload 12 /* res */
            areturn
        end local 12 // com.sun.jndi.ldap.LdapSearchEnumeration res
        end local 11 // javax.naming.PartialResultException e
        69: .line 1894
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 11 /* e */
        start local 11 // java.io.IOException e
        70: .line 1895
            new javax.naming.CommunicationException
            dup
            aload 11 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 12 /* e2 */
        start local 12 // javax.naming.NamingException e2
        71: .line 1896
            aload 12 /* e2 */
            aload 11 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        72: .line 1897
            aload 6 /* cont */
            aload 12 /* e2 */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 12 // javax.naming.NamingException e2
        end local 11 // java.io.IOException e
        73: .line 1899
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 11 /* e */
        start local 11 // javax.naming.NamingException e
        74: .line 1900
            aload 6 /* cont */
            aload 11 /* e */
            invokevirtual com.sun.jndi.toolkit.ctx.Continuation.fillInException:(Ljavax/naming/NamingException;)Ljavax/naming/NamingException;
            athrow
        end local 11 // javax.naming.NamingException e
        end local 10 // com.sun.jndi.ldap.LdapCtx$SearchArgs args
        end local 9 // java.lang.String[] reqAttrs
        end local 8 // java.lang.String[] tokens
        end local 7 // com.sun.jndi.ldap.LdapResult answer
        end local 6 // com.sun.jndi.toolkit.ctx.Continuation cont
        end local 5 // boolean waitForReply
        end local 4 // boolean relative
        end local 3 // javax.naming.directory.SearchControls cons
        end local 2 // java.lang.String filter
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   75     0          this  Lcom/sun/jndi/ldap/LdapCtx;
            0   75     1          name  Ljavax/naming/Name;
            0   75     2        filter  Ljava/lang/String;
            0   75     3          cons  Ljavax/naming/directory/SearchControls;
            0   75     4      relative  Z
            0   75     5  waitForReply  Z
            0   75     6          cont  Lcom/sun/jndi/toolkit/ctx/Continuation;
            1   75     7        answer  Lcom/sun/jndi/ldap/LdapResult;
            2   75     8        tokens  [Ljava/lang/String;
            5   75     9      reqAttrs  [Ljava/lang/String;
            8   25    10   hasWildcard  Z
            9   15    11             i  I
           18   25    11    totalAttrs  [Ljava/lang/String;
           27   75    10          args  Lcom/sun/jndi/ldap/LdapCtx$SearchArgs;
           41   55    11             e  Lcom/sun/jndi/ldap/LdapReferralException;
           45   55    12        refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           49   52    13            re  Lcom/sun/jndi/ldap/LdapReferralException;
           56   62    11             e  Ljavax/naming/LimitExceededException;
           60   62    12           res  Lcom/sun/jndi/ldap/LdapSearchEnumeration;
           63   69    11             e  Ljavax/naming/PartialResultException;
           67   69    12           res  Lcom/sun/jndi/ldap/LdapSearchEnumeration;
           70   73    11             e  Ljava/io/IOException;
           71   73    12            e2  Ljavax/naming/NamingException;
           74   75    11             e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
          28    39      40  Class com.sun.jndi.ldap.LdapReferralException
          45    46      48  Class com.sun.jndi.ldap.LdapReferralException
          45    46      52  any
          48    50      52  any
          28    39      55  Class javax.naming.LimitExceededException
          28    39      62  Class javax.naming.PartialResultException
          28    39      69  Class java.io.IOException
          28    39      73  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    Signature: (Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZLcom/sun/jndi/toolkit/ctx/Continuation;)Ljavax/naming/NamingEnumeration<Ljavax/naming/directory/SearchResult;>;
    MethodParameters:
              Name  Flags
      name          
      filter        
      cons          
      relative      
      waitForReply  
      cont          

  com.sun.jndi.ldap.LdapResult getSearchReply(com.sun.jndi.ldap.LdapClient, com.sun.jndi.ldap.LdapResult);
    descriptor: (Lcom/sun/jndi/ldap/LdapClient;Lcom/sun/jndi/ldap/LdapResult;)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // com.sun.jndi.ldap.LdapClient eClnt
        start local 2 // com.sun.jndi.ldap.LdapResult res
         0: .line 1913
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 1 /* eClnt */
            if_acmpeq 4
         1: .line 1914
            new javax.naming.CommunicationException
            dup
         2: .line 1915
            ldc "Context's connection changed; unable to continue enumeration"
         3: .line 1914
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1919
      StackMap locals:
      StackMap stack:
            aload 1 /* eClnt */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.batchSize:I
            aload 2 /* res */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.binaryAttrs:Ljava/util/Hashtable;
            invokevirtual com.sun.jndi.ldap.LdapClient.getSearchReply:(ILcom/sun/jndi/ldap/LdapResult;Ljava/util/Hashtable;)Lcom/sun/jndi/ldap/LdapResult;
         5: areturn
         6: .line 1920
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
         7: .line 1921
            new javax.naming.CommunicationException
            dup
            aload 3 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 4 /* e2 */
        start local 4 // javax.naming.NamingException e2
         8: .line 1922
            aload 4 /* e2 */
            aload 3 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
         9: .line 1923
            aload 4 /* e2 */
            athrow
        end local 4 // javax.naming.NamingException e2
        end local 3 // java.io.IOException e
        end local 2 // com.sun.jndi.ldap.LdapResult res
        end local 1 // com.sun.jndi.ldap.LdapClient eClnt
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lcom/sun/jndi/ldap/LdapCtx;
            0   10     1  eClnt  Lcom/sun/jndi/ldap/LdapClient;
            0   10     2    res  Lcom/sun/jndi/ldap/LdapResult;
            7   10     3      e  Ljava/io/IOException;
            8   10     4     e2  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           4     5       6  Class java.io.IOException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
       Name  Flags
      eClnt  
      res    

  private com.sun.jndi.ldap.LdapResult doSearchOnce(javax.naming.Name, java.lang.String, javax.naming.directory.SearchControls, boolean);
    descriptor: (Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Z)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.String filter
        start local 3 // javax.naming.directory.SearchControls cons
        start local 4 // boolean relative
         0: .line 1931
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.batchSize:I
            istore 5 /* savedBatchSize */
        start local 5 // int savedBatchSize
         1: .line 1932
            aload 0 /* this */
            iconst_2
            putfield com.sun.jndi.ldap.LdapCtx.batchSize:I
         2: .line 1934
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* filter */
            aload 3 /* cons */
            iload 4 /* relative */
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.doSearch:(Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZ)Lcom/sun/jndi/ldap/LdapResult;
            astore 6 /* answer */
        start local 6 // com.sun.jndi.ldap.LdapResult answer
         3: .line 1936
            aload 0 /* this */
            iload 5 /* savedBatchSize */
            putfield com.sun.jndi.ldap.LdapCtx.batchSize:I
         4: .line 1937
            aload 6 /* answer */
            areturn
        end local 6 // com.sun.jndi.ldap.LdapResult answer
        end local 5 // int savedBatchSize
        end local 4 // boolean relative
        end local 3 // javax.naming.directory.SearchControls cons
        end local 2 // java.lang.String filter
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1            name  Ljavax/naming/Name;
            0    5     2          filter  Ljava/lang/String;
            0    5     3            cons  Ljavax/naming/directory/SearchControls;
            0    5     4        relative  Z
            1    5     5  savedBatchSize  I
            3    5     6          answer  Lcom/sun/jndi/ldap/LdapResult;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
          Name  Flags
      name      
      filter    
      cons      
      relative  

  private com.sun.jndi.ldap.LdapResult doSearch(javax.naming.Name, java.lang.String, javax.naming.directory.SearchControls, boolean, boolean);
    descriptor: (Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;ZZ)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=14, locals=12, args_size=6
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.String filter
        start local 3 // javax.naming.directory.SearchControls cons
        start local 4 // boolean relative
        start local 5 // boolean waitForReply
         0: .line 1942
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         1: .line 1946
            aload 3 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getSearchScope:()I
            tableswitch { // 0 - 2
                    0: 2
                    1: 4
                    2: 6
              default: 4
          }
         2: .line 1948
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* scope */
        start local 6 // int scope
         3: .line 1949
            goto 7
        end local 6 // int scope
         4: .line 1952
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 6 /* scope */
        start local 6 // int scope
         5: .line 1953
            goto 7
        end local 6 // int scope
         6: .line 1955
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 6 /* scope */
        start local 6 // int scope
         7: .line 1962
      StackMap locals: int
      StackMap stack:
            aload 3 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getReturningAttributes:()[Ljava/lang/String;
            astore 7 /* retattrs */
        start local 7 // java.lang.String[] retattrs
         8: .line 1963
            aload 7 /* retattrs */
            ifnull 11
            aload 7 /* retattrs */
            arraylength
            ifne 11
         9: .line 1966
            iconst_1
            anewarray java.lang.String
            astore 7 /* retattrs */
        10: .line 1967
            aload 7 /* retattrs */
            iconst_0
            ldc "1.1"
            aastore
        11: .line 1970
      StackMap locals: java.lang.String[]
      StackMap stack:
            iload 4 /* relative */
            ifeq 13
        12: .line 1971
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            goto 16
        13: .line 1972
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            invokeinterface javax.naming.Name.isEmpty:()Z
            ifeq 15
        14: .line 1973
            ldc ""
            goto 16
        15: .line 1974
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            iconst_0
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
        16: .line 1970
      StackMap locals:
      StackMap stack: java.lang.String
            astore 8 /* nm */
        start local 8 // java.lang.String nm
        17: .line 1978
            aload 3 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getTimeLimit:()I
            istore 9 /* msecLimit */
        start local 9 // int msecLimit
        18: .line 1979
            iconst_0
            istore 10 /* secLimit */
        start local 10 // int secLimit
        19: .line 1981
            iload 9 /* msecLimit */
            ifle 21
        20: .line 1982
            iload 9 /* msecLimit */
            sipush 1000
            idiv
            iconst_1
            iadd
            istore 10 /* secLimit */
        21: .line 1986
      StackMap locals: java.lang.String int int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 8 /* nm */
        22: .line 1987
            iload 6 /* scope */
        23: .line 1988
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
        24: .line 1989
            aload 3 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getCountLimit:()J
            l2i
        25: .line 1990
            iload 10 /* secLimit */
        26: .line 1991
            aload 3 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getReturningObjFlag:()Z
            ifeq 27
            iconst_0
            goto 28
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.String javax.naming.directory.SearchControls int int int java.lang.String[] java.lang.String int int
      StackMap stack: com.sun.jndi.ldap.LdapClient java.lang.String int int int int
        27: aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.typesOnly:Z
        28: .line 1992
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.String javax.naming.directory.SearchControls int int int java.lang.String[] java.lang.String int int
      StackMap stack: com.sun.jndi.ldap.LdapClient java.lang.String int int int int int
            aload 7 /* retattrs */
        29: .line 1993
            aload 2 /* filter */
        30: .line 1994
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.batchSize:I
        31: .line 1995
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
        32: .line 1996
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.binaryAttrs:Ljava/util/Hashtable;
        33: .line 1997
            iload 5 /* waitForReply */
        34: .line 1998
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.replyQueueSize:I
        35: .line 1986
            invokevirtual com.sun.jndi.ldap.LdapClient.search:(Ljava/lang/String;IIIIZ[Ljava/lang/String;Ljava/lang/String;I[Ljavax/naming/ldap/Control;Ljava/util/Hashtable;ZI)Lcom/sun/jndi/ldap/LdapResult;
        36: .line 1985
            astore 11 /* answer */
        start local 11 // com.sun.jndi.ldap.LdapResult answer
        37: .line 1999
            aload 0 /* this */
            aload 11 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        38: .line 2000
            aload 11 /* answer */
        39: areturn
        end local 11 // com.sun.jndi.ldap.LdapResult answer
        end local 10 // int secLimit
        end local 9 // int msecLimit
        end local 8 // java.lang.String nm
        end local 7 // java.lang.String[] retattrs
        end local 6 // int scope
        40: .line 2002
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.Name java.lang.String javax.naming.directory.SearchControls int int
      StackMap stack: java.io.IOException
            astore 6 /* e */
        start local 6 // java.io.IOException e
        41: .line 2003
            new javax.naming.CommunicationException
            dup
            aload 6 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 7 /* e2 */
        start local 7 // javax.naming.NamingException e2
        42: .line 2004
            aload 7 /* e2 */
            aload 6 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        43: .line 2005
            aload 7 /* e2 */
            athrow
        end local 7 // javax.naming.NamingException e2
        end local 6 // java.io.IOException e
        end local 5 // boolean waitForReply
        end local 4 // boolean relative
        end local 3 // javax.naming.directory.SearchControls cons
        end local 2 // java.lang.String filter
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   44     0          this  Lcom/sun/jndi/ldap/LdapCtx;
            0   44     1          name  Ljavax/naming/Name;
            0   44     2        filter  Ljava/lang/String;
            0   44     3          cons  Ljavax/naming/directory/SearchControls;
            0   44     4      relative  Z
            0   44     5  waitForReply  Z
            3    4     6         scope  I
            5    6     6         scope  I
            7   40     6         scope  I
            8   40     7      retattrs  [Ljava/lang/String;
           17   40     8            nm  Ljava/lang/String;
           18   40     9     msecLimit  I
           19   40    10      secLimit  I
           37   40    11        answer  Lcom/sun/jndi/ldap/LdapResult;
           41   44     6             e  Ljava/io/IOException;
           42   44     7            e2  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           1    39      40  Class java.io.IOException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
              Name  Flags
      name          
      filter        
      cons          
      relative      
      waitForReply  

  private static boolean searchToCompare(java.lang.String, javax.naming.directory.SearchControls, java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljavax/naming/directory/SearchControls;[Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // java.lang.String filter
        start local 1 // javax.naming.directory.SearchControls cons
        start local 2 // java.lang.String[] tokens
         0: .line 2032
            aload 1 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getSearchScope:()I
            ifeq 2
         1: .line 2033
            iconst_0
            ireturn
         2: .line 2037
      StackMap locals:
      StackMap stack:
            aload 1 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getReturningAttributes:()[Ljava/lang/String;
            astore 3 /* attrs */
        start local 3 // java.lang.String[] attrs
         3: .line 2038
            aload 3 /* attrs */
            ifnull 4
            aload 3 /* attrs */
            arraylength
            ifeq 5
         4: .line 2039
      StackMap locals: java.lang.String[]
      StackMap stack:
            iconst_0
            ireturn
         5: .line 2043
      StackMap locals:
      StackMap stack:
            aload 0 /* filter */
            aload 2 /* tokens */
            invokestatic com.sun.jndi.ldap.LdapCtx.filterToAssertion:(Ljava/lang/String;[Ljava/lang/String;)Z
            ifne 7
         6: .line 2044
            iconst_0
            ireturn
         7: .line 2048
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // java.lang.String[] attrs
        end local 2 // java.lang.String[] tokens
        end local 1 // javax.naming.directory.SearchControls cons
        end local 0 // java.lang.String filter
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0  filter  Ljava/lang/String;
            0    8     1    cons  Ljavax/naming/directory/SearchControls;
            0    8     2  tokens  [Ljava/lang/String;
            3    8     3   attrs  [Ljava/lang/String;
    MethodParameters:
        Name  Flags
      filter  
      cons    
      tokens  

  private static boolean filterToAssertion(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // java.lang.String filter
        start local 1 // java.lang.String[] tokens
         0: .line 2060
            new java.util.StringTokenizer
            dup
            aload 0 /* filter */
            ldc "="
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 2 /* assertionTokenizer */
        start local 2 // java.util.StringTokenizer assertionTokenizer
         1: .line 2062
            aload 2 /* assertionTokenizer */
            invokevirtual java.util.StringTokenizer.countTokens:()I
            iconst_2
            if_icmpeq 3
         2: .line 2063
            iconst_0
            ireturn
         3: .line 2066
      StackMap locals: java.util.StringTokenizer
      StackMap stack:
            aload 1 /* tokens */
            iconst_0
            aload 2 /* assertionTokenizer */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            aastore
         4: .line 2067
            aload 1 /* tokens */
            iconst_1
            aload 2 /* assertionTokenizer */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            aastore
         5: .line 2070
            aload 1 /* tokens */
            iconst_1
            aaload
            bipush 42
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpeq 7
         6: .line 2071
            iconst_0
            ireturn
         7: .line 2075
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* hasParens */
        start local 3 // boolean hasParens
         8: .line 2076
            aload 1 /* tokens */
            iconst_1
            aaload
            invokevirtual java.lang.String.length:()I
            istore 4 /* len */
        start local 4 // int len
         9: .line 2078
            aload 1 /* tokens */
            iconst_0
            aaload
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 40
            if_icmpne 13
        10: .line 2079
            aload 1 /* tokens */
            iconst_1
            aaload
            iload 4 /* len */
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 41
            if_icmpne 13
        11: .line 2080
            iconst_1
            istore 3 /* hasParens */
        12: .line 2082
            goto 16
      StackMap locals: int int
      StackMap stack:
        13: aload 1 /* tokens */
            iconst_0
            aaload
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 40
            if_icmpeq 15
        14: .line 2083
            aload 1 /* tokens */
            iconst_1
            aaload
            iload 4 /* len */
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 41
            if_icmpne 16
        15: .line 2084
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        16: .line 2089
      StackMap locals:
      StackMap stack:
            new java.util.StringTokenizer
            dup
            aload 1 /* tokens */
            iconst_0
            aaload
            ldc "()&|!=~><*"
            iconst_1
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;Z)V
        17: .line 2088
            astore 5 /* illegalCharsTokenizer */
        start local 5 // java.util.StringTokenizer illegalCharsTokenizer
        18: .line 2091
            aload 5 /* illegalCharsTokenizer */
            invokevirtual java.util.StringTokenizer.countTokens:()I
            iload 3 /* hasParens */
            ifeq 19
            iconst_2
            goto 20
      StackMap locals: java.lang.String java.lang.String[] java.util.StringTokenizer int int java.util.StringTokenizer
      StackMap stack: int
        19: iconst_1
      StackMap locals: java.lang.String java.lang.String[] java.util.StringTokenizer int int java.util.StringTokenizer
      StackMap stack: int int
        20: if_icmpeq 22
        21: .line 2092
            iconst_0
            ireturn
        22: .line 2096
      StackMap locals:
      StackMap stack:
            new java.util.StringTokenizer
            dup
            aload 1 /* tokens */
            iconst_1
            aaload
            ldc "()&|!=~><*"
            iconst_1
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;Z)V
        23: .line 2095
            astore 5 /* illegalCharsTokenizer */
        24: .line 2098
            aload 5 /* illegalCharsTokenizer */
            invokevirtual java.util.StringTokenizer.countTokens:()I
            iload 3 /* hasParens */
            ifeq 25
            iconst_2
            goto 26
      StackMap locals:
      StackMap stack: int
        25: iconst_1
      StackMap locals: java.lang.String java.lang.String[] java.util.StringTokenizer int int java.util.StringTokenizer
      StackMap stack: int int
        26: if_icmpeq 28
        27: .line 2099
            iconst_0
            ireturn
        28: .line 2103
      StackMap locals:
      StackMap stack:
            iload 3 /* hasParens */
            ifeq 31
        29: .line 2104
            aload 1 /* tokens */
            iconst_0
            aload 1 /* tokens */
            iconst_0
            aaload
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            aastore
        30: .line 2105
            aload 1 /* tokens */
            iconst_1
            aload 1 /* tokens */
            iconst_1
            aaload
            iconst_0
            iload 4 /* len */
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            aastore
        31: .line 2108
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 5 // java.util.StringTokenizer illegalCharsTokenizer
        end local 4 // int len
        end local 3 // boolean hasParens
        end local 2 // java.util.StringTokenizer assertionTokenizer
        end local 1 // java.lang.String[] tokens
        end local 0 // java.lang.String filter
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   32     0                 filter  Ljava/lang/String;
            0   32     1                 tokens  [Ljava/lang/String;
            1   32     2     assertionTokenizer  Ljava/util/StringTokenizer;
            8   32     3              hasParens  Z
            9   32     4                    len  I
           18   32     5  illegalCharsTokenizer  Ljava/util/StringTokenizer;
    MethodParameters:
        Name  Flags
      filter  
      tokens  

  private com.sun.jndi.ldap.LdapResult compare(javax.naming.Name, java.lang.String, java.lang.String);
    descriptor: (Ljavax/naming/Name;Ljava/lang/String;Ljava/lang/String;)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name name
        start local 2 // java.lang.String type
        start local 3 // java.lang.String value
         0: .line 2114
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         1: .line 2115
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
            astore 4 /* nm */
        start local 4 // java.lang.String nm
         2: .line 2117
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 4 /* nm */
            aload 2 /* type */
            aload 3 /* value */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapClient.compare:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 5 /* answer */
        start local 5 // com.sun.jndi.ldap.LdapResult answer
         3: .line 2118
            aload 0 /* this */
            aload 5 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
         4: .line 2120
            aload 5 /* answer */
            areturn
        end local 5 // com.sun.jndi.ldap.LdapResult answer
        end local 4 // java.lang.String nm
        end local 3 // java.lang.String value
        end local 2 // java.lang.String type
        end local 1 // javax.naming.Name name
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1    name  Ljavax/naming/Name;
            0    5     2    type  Ljava/lang/String;
            0    5     3   value  Ljava/lang/String;
            2    5     4      nm  Ljava/lang/String;
            3    5     5  answer  Lcom/sun/jndi/ldap/LdapResult;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
       Name  Flags
      name   
      type   
      value  

  private static javax.naming.directory.SearchControls cloneSearchControls(javax.naming.directory.SearchControls);
    descriptor: (Ljavax/naming/directory/SearchControls;)Ljavax/naming/directory/SearchControls;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=9, locals=3, args_size=1
        start local 0 // javax.naming.directory.SearchControls cons
         0: .line 2124
            aload 0 /* cons */
            ifnonnull 2
         1: .line 2125
            aconst_null
            areturn
         2: .line 2127
      StackMap locals:
      StackMap stack:
            aload 0 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getReturningAttributes:()[Ljava/lang/String;
            astore 1 /* retAttrs */
        start local 1 // java.lang.String[] retAttrs
         3: .line 2128
            aload 1 /* retAttrs */
            ifnull 7
         4: .line 2129
            aload 1 /* retAttrs */
            arraylength
            anewarray java.lang.String
            astore 2 /* attrs */
        start local 2 // java.lang.String[] attrs
         5: .line 2130
            aload 1 /* retAttrs */
            iconst_0
            aload 2 /* attrs */
            iconst_0
            aload 1 /* retAttrs */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         6: .line 2131
            aload 2 /* attrs */
            astore 1 /* retAttrs */
        end local 2 // java.lang.String[] attrs
         7: .line 2133
      StackMap locals: java.lang.String[]
      StackMap stack:
            new javax.naming.directory.SearchControls
            dup
            aload 0 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getSearchScope:()I
         8: .line 2134
            aload 0 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getCountLimit:()J
         9: .line 2135
            aload 0 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getTimeLimit:()I
        10: .line 2136
            aload 1 /* retAttrs */
        11: .line 2137
            aload 0 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getReturningObjFlag:()Z
        12: .line 2138
            aload 0 /* cons */
            invokevirtual javax.naming.directory.SearchControls.getDerefLinkFlag:()Z
        13: .line 2133
            invokespecial javax.naming.directory.SearchControls.<init>:(IJI[Ljava/lang/String;ZZ)V
            areturn
        end local 1 // java.lang.String[] retAttrs
        end local 0 // javax.naming.directory.SearchControls cons
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      cons  Ljavax/naming/directory/SearchControls;
            3   14     1  retAttrs  [Ljava/lang/String;
            5    7     2     attrs  [Ljava/lang/String;
    MethodParameters:
      Name  Flags
      cons  

  protected java.util.Hashtable<java.lang.String, java.lang.Object> p_getEnvironment();
    descriptor: ()Ljava/util/Hashtable;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 2147
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            areturn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapCtx;
    Signature: ()Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Object;>;

  public java.util.Hashtable<java.lang.String, java.lang.Object> getEnvironment();
    descriptor: ()Ljava/util/Hashtable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 2152
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnonnull 2
         1: .line 2153
            new java.util.Hashtable
            dup
            iconst_5
            ldc 0.75
            invokespecial java.util.Hashtable.<init>:(IF)V
            goto 3
         2: .line 2154
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.clone:()Ljava/lang/Object;
            checkcast java.util.Hashtable
         3: .line 2152
      StackMap locals:
      StackMap stack: java.util.Hashtable
            areturn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/jndi/ldap/LdapCtx;
    Exceptions:
      throws javax.naming.NamingException
    Signature: ()Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Object;>;

  public java.lang.Object removeFromEnvironment(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String propName
         0: .line 2162
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnull 1
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 1 /* propName */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnonnull 2
         1: .line 2163
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 2165
      StackMap locals:
      StackMap stack:
            aload 1 /* propName */
            dup
            astore 2
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 18
          -2125978773: 3
          -1907752796: 4
          -1793828884: 5
          -1690536287: 6
          -1273698008: 7
          -1264241948: 8
          -1012288104: 9
           -986853030: 10
           -597571529: 11
             51576954: 12
            520248524: 13
            523906937: 14
            704861003: 15
            778463863: 16
           1186209693: 17
           1514015564: 18
           1515176491: 19
           1859284381: 20
              default: 55
          }
      StackMap locals: java.lang.String
      StackMap stack:
         3: aload 2
            ldc "java.naming.ldap.version"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 52
            goto 55
      StackMap locals:
      StackMap stack:
         4: aload 2
            ldc "java.naming.ldap.deleteRDN"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 25
            goto 55
      StackMap locals:
      StackMap stack:
         5: aload 2
            ldc "java.naming.security.protocol"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 45
            goto 55
      StackMap locals:
      StackMap stack:
         6: aload 2
            ldc "java.naming.batchsize"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 29
            goto 55
      StackMap locals:
      StackMap stack:
         7: aload 2
            ldc "java.naming.security.credentials"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 54
            goto 55
      StackMap locals:
      StackMap stack:
         8: aload 2
            ldc "java.naming.ldap.factory.socket"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 52
            goto 55
      StackMap locals:
      StackMap stack:
         9: aload 2
            ldc "java.naming.ldap.typesOnly"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 23
            goto 55
      StackMap locals:
      StackMap stack:
        10: aload 2
            ldc "java.naming.security.principal"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 54
            goto 55
      StackMap locals:
      StackMap stack:
        11: aload 2
            ldc "java.naming.ldap.referral.limit"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 31
            goto 55
      StackMap locals:
      StackMap stack:
        12: aload 2
            ldc "com.sun.jndi.ldap.read.timeout"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 39
            goto 55
      StackMap locals:
      StackMap stack:
        13: aload 2
            ldc "java.naming.security.authentication"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 54
            goto 55
      StackMap locals:
      StackMap stack:
        14: aload 2
            ldc "java.naming.ldap.derefAliases"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 27
            goto 55
      StackMap locals:
      StackMap stack:
        15: aload 2
            ldc "java.naming.ldap.attributes.binary"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 35
            goto 55
      StackMap locals:
      StackMap stack:
        16: aload 2
            ldc "java.naming.referral"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 33
            goto 55
      StackMap locals:
      StackMap stack:
        17: aload 2
            ldc "java.naming.ldap.ref.separator"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 21
            goto 55
      StackMap locals:
      StackMap stack:
        18: aload 2
            ldc "com.sun.jndi.ldap.connect.timeout"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 37
            goto 55
      StackMap locals:
      StackMap stack:
        19: aload 2
            ldc "com.sun.jndi.ldap.search.waitForReply"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 41
            goto 55
      StackMap locals:
      StackMap stack:
        20: aload 2
            ldc "com.sun.jndi.ldap.search.replyQueueSize"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 43
            goto 55
        21: .line 2167
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 35
            putfield com.sun.jndi.ldap.LdapCtx.addrEncodingSeparator:C
        22: .line 2168
            goto 55
        23: .line 2170
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.typesOnly:Z
        24: .line 2171
            goto 55
        25: .line 2173
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.deleteRDN:Z
        26: .line 2174
            goto 55
        27: .line 2176
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
        28: .line 2177
            goto 55
        29: .line 2179
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.batchSize:I
        30: .line 2180
            goto 55
        31: .line 2182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 10
            putfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
        32: .line 2183
            goto 55
        33: .line 2185
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReferralMode:(Ljava/lang/String;Z)V
        34: .line 2186
            goto 55
        35: .line 2188
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            invokevirtual com.sun.jndi.ldap.LdapCtx.setBinaryAttributes:(Ljava/lang/String;)V
        36: .line 2189
            goto 55
        37: .line 2191
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.connectTimeout:I
        38: .line 2192
            goto 55
        39: .line 2194
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.readTimeout:I
        40: .line 2195
            goto 55
        41: .line 2197
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.waitForReply:Z
        42: .line 2198
            goto 55
        43: .line 2200
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.replyQueueSize:I
        44: .line 2201
            goto 55
        45: .line 2206
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.closeConnection:(Z)V
        46: .line 2208
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
            ifeq 55
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hasLdapsScheme:Z
            ifne 55
        47: .line 2209
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
        48: .line 2210
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.url:Ljava/lang/String;
        49: .line 2211
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.useDefaultPortNumber:Z
            ifeq 55
        50: .line 2212
            aload 0 /* this */
            sipush 389
            putfield com.sun.jndi.ldap.LdapCtx.port_number:I
        51: .line 2215
            goto 55
        52: .line 2218
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.closeConnection:(Z)V
        53: .line 2219
            goto 55
        54: .line 2223
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.sharable:Z
        55: .line 2228
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.clone:()Ljava/lang/Object;
            checkcast java.util.Hashtable
            putfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        56: .line 2229
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 1 /* propName */
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.String propName
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   57     0      this  Lcom/sun/jndi/ldap/LdapCtx;
            0   57     1  propName  Ljava/lang/String;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
          Name  Flags
      propName  

  public java.lang.Object addToEnvironment(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String propName
        start local 2 // java.lang.Object propVal
         0: .line 2237
            aload 2 /* propVal */
            ifnonnull 2
         1: .line 2238
            aload 0 /* this */
            aload 1 /* propName */
            invokevirtual com.sun.jndi.ldap.LdapCtx.removeFromEnvironment:(Ljava/lang/String;)Ljava/lang/Object;
            areturn
         2: .line 2240
      StackMap locals:
      StackMap stack:
            aload 1 /* propName */
            dup
            astore 3
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 18
          -2125978773: 3
          -1907752796: 4
          -1793828884: 5
          -1690536287: 6
          -1273698008: 7
          -1264241948: 8
          -1012288104: 9
           -986853030: 10
           -597571529: 11
             51576954: 12
            520248524: 13
            523906937: 14
            704861003: 15
            778463863: 16
           1186209693: 17
           1514015564: 18
           1515176491: 19
           1859284381: 20
              default: 55
          }
      StackMap locals: java.lang.String
      StackMap stack:
         3: aload 3
            ldc "java.naming.ldap.version"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 52
            goto 55
      StackMap locals:
      StackMap stack:
         4: aload 3
            ldc "java.naming.ldap.deleteRDN"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 25
            goto 55
      StackMap locals:
      StackMap stack:
         5: aload 3
            ldc "java.naming.security.protocol"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 45
            goto 55
      StackMap locals:
      StackMap stack:
         6: aload 3
            ldc "java.naming.batchsize"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 29
            goto 55
      StackMap locals:
      StackMap stack:
         7: aload 3
            ldc "java.naming.security.credentials"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 54
            goto 55
      StackMap locals:
      StackMap stack:
         8: aload 3
            ldc "java.naming.ldap.factory.socket"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 52
            goto 55
      StackMap locals:
      StackMap stack:
         9: aload 3
            ldc "java.naming.ldap.typesOnly"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 23
            goto 55
      StackMap locals:
      StackMap stack:
        10: aload 3
            ldc "java.naming.security.principal"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 54
            goto 55
      StackMap locals:
      StackMap stack:
        11: aload 3
            ldc "java.naming.ldap.referral.limit"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 31
            goto 55
      StackMap locals:
      StackMap stack:
        12: aload 3
            ldc "com.sun.jndi.ldap.read.timeout"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 39
            goto 55
      StackMap locals:
      StackMap stack:
        13: aload 3
            ldc "java.naming.security.authentication"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 54
            goto 55
      StackMap locals:
      StackMap stack:
        14: aload 3
            ldc "java.naming.ldap.derefAliases"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 27
            goto 55
      StackMap locals:
      StackMap stack:
        15: aload 3
            ldc "java.naming.ldap.attributes.binary"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 35
            goto 55
      StackMap locals:
      StackMap stack:
        16: aload 3
            ldc "java.naming.referral"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 33
            goto 55
      StackMap locals:
      StackMap stack:
        17: aload 3
            ldc "java.naming.ldap.ref.separator"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 21
            goto 55
      StackMap locals:
      StackMap stack:
        18: aload 3
            ldc "com.sun.jndi.ldap.connect.timeout"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 37
            goto 55
      StackMap locals:
      StackMap stack:
        19: aload 3
            ldc "com.sun.jndi.ldap.search.waitForReply"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 41
            goto 55
      StackMap locals:
      StackMap stack:
        20: aload 3
            ldc "com.sun.jndi.ldap.search.replyQueueSize"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 43
            goto 55
        21: .line 2242
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setRefSeparator:(Ljava/lang/String;)V
        22: .line 2243
            goto 55
        23: .line 2245
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setTypesOnly:(Ljava/lang/String;)V
        24: .line 2246
            goto 55
        25: .line 2248
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setDeleteRDN:(Ljava/lang/String;)V
        26: .line 2249
            goto 55
        27: .line 2251
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setDerefAliases:(Ljava/lang/String;)V
        28: .line 2252
            goto 55
        29: .line 2254
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setBatchSize:(Ljava/lang/String;)V
        30: .line 2255
            goto 55
        31: .line 2257
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReferralLimit:(Ljava/lang/String;)V
        32: .line 2258
            goto 55
        33: .line 2260
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReferralMode:(Ljava/lang/String;Z)V
        34: .line 2261
            goto 55
        35: .line 2263
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setBinaryAttributes:(Ljava/lang/String;)V
        36: .line 2264
            goto 55
        37: .line 2266
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setConnectTimeout:(Ljava/lang/String;)V
        38: .line 2267
            goto 55
        39: .line 2269
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReadTimeout:(Ljava/lang/String;)V
        40: .line 2270
            goto 55
        41: .line 2272
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setWaitForReply:(Ljava/lang/String;)V
        42: .line 2273
            goto 55
        43: .line 2275
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* propVal */
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReplyQueueSize:(Ljava/lang/String;)V
        44: .line 2276
            goto 55
        45: .line 2281
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.closeConnection:(Z)V
        46: .line 2283
            ldc "ssl"
            aload 2 /* propVal */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 55
        47: .line 2284
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
        48: .line 2285
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.url:Ljava/lang/String;
        49: .line 2286
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.useDefaultPortNumber:Z
            ifeq 55
        50: .line 2287
            aload 0 /* this */
            sipush 636
            putfield com.sun.jndi.ldap.LdapCtx.port_number:I
        51: .line 2290
            goto 55
        52: .line 2293
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.closeConnection:(Z)V
        53: .line 2294
            goto 55
        54: .line 2298
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.sharable:Z
        55: .line 2303
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnonnull 57
        56: .line 2304
            new java.util.Hashtable
            dup
            iconst_5
            ldc 0.75
            invokespecial java.util.Hashtable.<init>:(IF)V
            goto 58
        57: .line 2305
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapCtx
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.clone:()Ljava/lang/Object;
            checkcast java.util.Hashtable
        58: .line 2303
      StackMap locals: com.sun.jndi.ldap.LdapCtx java.lang.String java.lang.Object
      StackMap stack: com.sun.jndi.ldap.LdapCtx java.util.Hashtable
            putfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        59: .line 2306
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 1 /* propName */
            aload 2 /* propVal */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object propVal
        end local 1 // java.lang.String propName
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   60     0      this  Lcom/sun/jndi/ldap/LdapCtx;
            0   60     1  propName  Ljava/lang/String;
            0   60     2   propVal  Ljava/lang/Object;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
          Name  Flags
      propName  
      propVal   

  void setProviderUrl(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String providerUrl
         0: .line 2314
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnull 2
         1: .line 2315
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.provider.url"
            aload 1 /* providerUrl */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 2317
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String providerUrl
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lcom/sun/jndi/ldap/LdapCtx;
            0    3     1  providerUrl  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      providerUrl  

  void setDomainName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String domainName
         0: .line 2325
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnull 2
         1: .line 2326
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "com.sun.jndi.ldap.domainname"
            aload 1 /* domainName */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 2328
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String domainName
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0    3     1  domainName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      domainName  

  private void initEnv();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 2331
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnonnull 3
         1: .line 2333
            aload 0 /* this */
            aconst_null
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReferralMode:(Ljava/lang/String;Z)V
         2: .line 2334
            return
         3: .line 2338
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.batchsize"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setBatchSize:(Ljava/lang/String;)V
         4: .line 2341
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.ref.separator"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setRefSeparator:(Ljava/lang/String;)V
         5: .line 2344
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.deleteRDN"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setDeleteRDN:(Ljava/lang/String;)V
         6: .line 2347
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.typesOnly"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setTypesOnly:(Ljava/lang/String;)V
         7: .line 2350
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.derefAliases"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setDerefAliases:(Ljava/lang/String;)V
         8: .line 2353
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.referral.limit"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReferralLimit:(Ljava/lang/String;)V
         9: .line 2355
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.attributes.binary"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setBinaryAttributes:(Ljava/lang/String;)V
        10: .line 2357
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.control.connect"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.naming.ldap.Control[]
            invokestatic com.sun.jndi.ldap.LdapCtx.cloneControls:([Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
            putfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
        11: .line 2360
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.referral"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReferralMode:(Ljava/lang/String;Z)V
        12: .line 2363
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "com.sun.jndi.ldap.connect.timeout"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setConnectTimeout:(Ljava/lang/String;)V
        13: .line 2366
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "com.sun.jndi.ldap.read.timeout"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReadTimeout:(Ljava/lang/String;)V
        14: .line 2370
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "com.sun.jndi.ldap.search.waitForReply"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setWaitForReply:(Ljava/lang/String;)V
        15: .line 2373
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "com.sun.jndi.ldap.search.replyQueueSize"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.jndi.ldap.LdapCtx.setReplyQueueSize:(Ljava/lang/String;)V
        16: .line 2377
            return
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Lcom/sun/jndi/ldap/LdapCtx;
    Exceptions:
      throws javax.naming.NamingException

  private void setDeleteRDN(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String deleteRDNProp
         0: .line 2380
            aload 1 /* deleteRDNProp */
            ifnull 4
         1: .line 2381
            aload 1 /* deleteRDNProp */
            ldc "false"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 4
         2: .line 2382
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.deleteRDN:Z
         3: .line 2383
            goto 5
         4: .line 2384
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.deleteRDN:Z
         5: .line 2386
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String deleteRDNProp
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lcom/sun/jndi/ldap/LdapCtx;
            0    6     1  deleteRDNProp  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      deleteRDNProp  

  private void setTypesOnly(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String typesOnlyProp
         0: .line 2389
            aload 1 /* typesOnlyProp */
            ifnull 4
         1: .line 2390
            aload 1 /* typesOnlyProp */
            ldc "true"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 4
         2: .line 2391
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.typesOnly:Z
         3: .line 2392
            goto 5
         4: .line 2393
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.typesOnly:Z
         5: .line 2395
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String typesOnlyProp
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lcom/sun/jndi/ldap/LdapCtx;
            0    6     1  typesOnlyProp  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      typesOnlyProp  

  private void setBatchSize(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String batchSizeProp
         0: .line 2402
            aload 1 /* batchSizeProp */
            ifnull 3
         1: .line 2403
            aload 0 /* this */
            aload 1 /* batchSizeProp */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            putfield com.sun.jndi.ldap.LdapCtx.batchSize:I
         2: .line 2404
            goto 4
         3: .line 2405
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.batchSize:I
         4: .line 2407
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String batchSizeProp
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1  batchSizeProp  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      batchSizeProp  

  private void setReferralMode(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String ref
        start local 2 // boolean update
         0: .line 2415
            aload 1 /* ref */
            ifnull 18
         1: .line 2416
            aload 1 /* ref */
            dup
            astore 3
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 4
          -1268958287: 2
          -1190396462: 3
           -412873919: 4
            110339814: 5
              default: 14
          }
      StackMap locals: java.lang.String
      StackMap stack:
         2: aload 3
            ldc "follow"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 14
      StackMap locals:
      StackMap stack:
         3: aload 3
            ldc "ignore"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
            goto 14
      StackMap locals:
      StackMap stack:
         4: aload 3
            ldc "follow-scheme"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            goto 14
      StackMap locals:
      StackMap stack:
         5: aload 3
            ldc "throw"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
            goto 14
         6: .line 2418
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_4
            putfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
         7: .line 2419
            goto 19
         8: .line 2421
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
         9: .line 2422
            goto 19
        10: .line 2424
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_2
            putfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
        11: .line 2425
            goto 19
        12: .line 2427
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
        13: .line 2428
            goto 19
        14: .line 2430
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        15: .line 2431
            ldc "Illegal value for java.naming.referral property."
        16: .line 2430
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 2433
      StackMap locals:
      StackMap stack:
            goto 19
        18: .line 2434
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
        19: .line 2437
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_3
            if_icmpne 22
        20: .line 2439
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            getstatic com.sun.jndi.ldap.LdapCtx.manageReferralControl:Ljavax/naming/ldap/Control;
            invokestatic com.sun.jndi.ldap.LdapCtx.addControl:([Ljavax/naming/ldap/Control;Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
            putfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
        21: .line 2441
            goto 24
      StackMap locals:
      StackMap stack:
        22: iload 2 /* update */
            ifeq 24
        23: .line 2444
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            getstatic com.sun.jndi.ldap.LdapCtx.manageReferralControl:Ljavax/naming/ldap/Control;
            invokestatic com.sun.jndi.ldap.LdapCtx.removeControl:([Ljavax/naming/ldap/Control;Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
            putfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
        24: .line 2447
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean update
        end local 1 // java.lang.String ref
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   25     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0   25     1     ref  Ljava/lang/String;
            0   25     2  update  Z
    MethodParameters:
        Name  Flags
      ref     
      update  

  private void setDerefAliases(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String deref
         0: .line 2453
            aload 1 /* deref */
            ifnull 16
         1: .line 2454
            aload 1 /* deref */
            dup
            astore 2
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 4
          -1414557169: 2
           -853173367: 3
            104712844: 4
           1778217274: 5
              default: 14
          }
      StackMap locals: java.lang.String
      StackMap stack:
         2: aload 2
            ldc "always"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
            goto 14
      StackMap locals:
      StackMap stack:
         3: aload 2
            ldc "finding"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
            goto 14
      StackMap locals:
      StackMap stack:
         4: aload 2
            ldc "never"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            goto 14
      StackMap locals:
      StackMap stack:
         5: aload 2
            ldc "searching"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 14
         6: .line 2456
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
         7: .line 2457
            goto 17
         8: .line 2459
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
         9: .line 2460
            goto 17
        10: .line 2462
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_2
            putfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
        11: .line 2463
            goto 17
        12: .line 2465
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
        13: .line 2466
            goto 17
        14: .line 2468
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Illegal value for java.naming.ldap.derefAliases property."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 2471
      StackMap locals:
      StackMap stack:
            goto 17
        16: .line 2472
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield com.sun.jndi.ldap.LdapCtx.derefAliases:I
        17: .line 2474
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String deref
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   18     0   this  Lcom/sun/jndi/ldap/LdapCtx;
            0   18     1  deref  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      deref  

  private void setRefSeparator(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String sepStr
         0: .line 2477
            aload 1 /* sepStr */
            ifnull 3
            aload 1 /* sepStr */
            invokevirtual java.lang.String.length:()I
            ifle 3
         1: .line 2478
            aload 0 /* this */
            aload 1 /* sepStr */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            putfield com.sun.jndi.ldap.LdapCtx.addrEncodingSeparator:C
         2: .line 2479
            goto 4
         3: .line 2480
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 35
            putfield com.sun.jndi.ldap.LdapCtx.addrEncodingSeparator:C
         4: .line 2482
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String sepStr
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1  sepStr  Ljava/lang/String;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
        Name  Flags
      sepStr  

  private void setReferralLimit(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String referralLimitProp
         0: .line 2489
            aload 1 /* referralLimitProp */
            ifnull 5
         1: .line 2490
            aload 0 /* this */
            aload 1 /* referralLimitProp */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            putfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
         2: .line 2493
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
            ifne 6
         3: .line 2494
            aload 0 /* this */
            ldc 2147483647
            putfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
         4: .line 2495
            goto 6
         5: .line 2496
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 10
            putfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
         6: .line 2498
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String referralLimitProp
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0               this  Lcom/sun/jndi/ldap/LdapCtx;
            0    7     1  referralLimitProp  Ljava/lang/String;
    MethodParameters:
                   Name  Flags
      referralLimitProp  

  void setHopCount(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // int hopCount
         0: .line 2502
            aload 0 /* this */
            iload 1 /* hopCount */
            putfield com.sun.jndi.ldap.LdapCtx.hopCount:I
         1: .line 2503
            return
        end local 1 // int hopCount
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/sun/jndi/ldap/LdapCtx;
            0    2     1  hopCount  I
    MethodParameters:
          Name  Flags
      hopCount  

  private void setConnectTimeout(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String connectTimeoutProp
         0: .line 2509
            aload 1 /* connectTimeoutProp */
            ifnull 3
         1: .line 2510
            aload 0 /* this */
            aload 1 /* connectTimeoutProp */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            putfield com.sun.jndi.ldap.LdapCtx.connectTimeout:I
         2: .line 2511
            goto 4
         3: .line 2512
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.connectTimeout:I
         4: .line 2514
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String connectTimeoutProp
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    5     0                this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1  connectTimeoutProp  Ljava/lang/String;
    MethodParameters:
                    Name  Flags
      connectTimeoutProp  

  private void setReplyQueueSize(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String replyQueueSizeProp
         0: .line 2520
            aload 1 /* replyQueueSizeProp */
            ifnull 5
         1: .line 2521
            aload 0 /* this */
            aload 1 /* replyQueueSizeProp */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            putfield com.sun.jndi.ldap.LdapCtx.replyQueueSize:I
         2: .line 2523
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.replyQueueSize:I
            ifgt 6
         3: .line 2524
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.replyQueueSize:I
         4: .line 2526
            goto 6
         5: .line 2527
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.replyQueueSize:I
         6: .line 2529
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String replyQueueSizeProp
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    7     0                this  Lcom/sun/jndi/ldap/LdapCtx;
            0    7     1  replyQueueSizeProp  Ljava/lang/String;
    MethodParameters:
                    Name  Flags
      replyQueueSizeProp  

  private void setWaitForReply(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String waitForReplyProp
         0: .line 2536
            aload 1 /* waitForReplyProp */
            ifnull 4
         1: .line 2537
            aload 1 /* waitForReplyProp */
            ldc "false"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 4
         2: .line 2538
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.waitForReply:Z
         3: .line 2539
            goto 5
         4: .line 2540
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.waitForReply:Z
         5: .line 2542
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String waitForReplyProp
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              this  Lcom/sun/jndi/ldap/LdapCtx;
            0    6     1  waitForReplyProp  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      waitForReplyProp  

  private void setReadTimeout(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String readTimeoutProp
         0: .line 2548
            aload 1 /* readTimeoutProp */
            ifnull 3
         1: .line 2549
            aload 0 /* this */
            aload 1 /* readTimeoutProp */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            putfield com.sun.jndi.ldap.LdapCtx.readTimeout:I
         2: .line 2550
            goto 4
         3: .line 2551
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            putfield com.sun.jndi.ldap.LdapCtx.readTimeout:I
         4: .line 2553
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String readTimeoutProp
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1  readTimeoutProp  Ljava/lang/String;
    MethodParameters:
                 Name  Flags
      readTimeoutProp  

  private static java.util.Vector<java.util.Vector<java.lang.String>> extractURLs(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Vector;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // java.lang.String refString
         0: .line 2567
            iconst_0
            istore 1 /* separator */
        start local 1 // int separator
         1: .line 2568
            iconst_0
            istore 2 /* urlCount */
        start local 2 // int urlCount
         2: .line 2571
            goto 5
         3: .line 2572
      StackMap locals: int int
      StackMap stack:
            iinc 1 /* separator */ 1
         4: .line 2573
            iinc 2 /* urlCount */ 1
         5: .line 2571
      StackMap locals:
      StackMap stack:
            aload 0 /* refString */
            bipush 10
            iload 1 /* separator */
            invokevirtual java.lang.String.indexOf:(II)I
            dup
            istore 1 /* separator */
            ifge 3
         6: .line 2576
            new java.util.Vector
            dup
            iload 2 /* urlCount */
            invokespecial java.util.Vector.<init>:(I)V
            astore 3 /* referrals */
        start local 3 // java.util.Vector referrals
         7: .line 2580
            aload 0 /* refString */
            bipush 10
            invokevirtual java.lang.String.indexOf:(I)I
            istore 1 /* separator */
         8: .line 2581
            iload 1 /* separator */
            iconst_1
            iadd
            istore 4 /* iURL */
        start local 4 // int iURL
         9: .line 2582
            goto 14
        10: .line 2583
      StackMap locals: java.util.Vector int
      StackMap stack:
            new java.util.Vector
            dup
            iconst_1
            invokespecial java.util.Vector.<init>:(I)V
            astore 5 /* referral */
        start local 5 // java.util.Vector referral
        11: .line 2584
            aload 5 /* referral */
            aload 0 /* refString */
            iload 4 /* iURL */
            iload 1 /* separator */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        12: .line 2585
            aload 3 /* referrals */
            aload 5 /* referral */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        13: .line 2586
            iload 1 /* separator */
            iconst_1
            iadd
            istore 4 /* iURL */
        end local 5 // java.util.Vector referral
        14: .line 2582
      StackMap locals:
      StackMap stack:
            aload 0 /* refString */
            bipush 10
            iload 4 /* iURL */
            invokevirtual java.lang.String.indexOf:(II)I
            dup
            istore 1 /* separator */
            ifge 10
        15: .line 2588
            new java.util.Vector
            dup
            iconst_1
            invokespecial java.util.Vector.<init>:(I)V
            astore 5 /* referral */
        start local 5 // java.util.Vector referral
        16: .line 2589
            aload 5 /* referral */
            aload 0 /* refString */
            iload 4 /* iURL */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        17: .line 2590
            aload 3 /* referrals */
            aload 5 /* referral */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        18: .line 2592
            aload 3 /* referrals */
            areturn
        end local 5 // java.util.Vector referral
        end local 4 // int iURL
        end local 3 // java.util.Vector referrals
        end local 2 // int urlCount
        end local 1 // int separator
        end local 0 // java.lang.String refString
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   19     0  refString  Ljava/lang/String;
            1   19     1  separator  I
            2   19     2   urlCount  I
            7   19     3  referrals  Ljava/util/Vector<Ljava/util/Vector<Ljava/lang/String;>;>;
            9   19     4       iURL  I
           11   14     5   referral  Ljava/util/Vector<Ljava/lang/String;>;
           16   19     5   referral  Ljava/util/Vector<Ljava/lang/String;>;
    Signature: (Ljava/lang/String;)Ljava/util/Vector<Ljava/util/Vector<Ljava/lang/String;>;>;
    MethodParameters:
           Name  Flags
      refString  

  private void setBinaryAttributes(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String attrIds
         0: .line 2600
            aload 1 /* attrIds */
            ifnonnull 3
         1: .line 2601
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.binaryAttrs:Ljava/util/Hashtable;
         2: .line 2602
            goto 9
         3: .line 2603
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.util.Hashtable
            dup
            bipush 11
            ldc 0.75
            invokespecial java.util.Hashtable.<init>:(IF)V
            putfield com.sun.jndi.ldap.LdapCtx.binaryAttrs:Ljava/util/Hashtable;
         4: .line 2605
            new java.util.StringTokenizer
            dup
            aload 1 /* attrIds */
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            ldc " "
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
         5: .line 2604
            astore 2 /* tokens */
        start local 2 // java.util.StringTokenizer tokens
         6: .line 2607
            goto 8
         7: .line 2608
      StackMap locals: java.util.StringTokenizer
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.binaryAttrs:Ljava/util/Hashtable;
            aload 2 /* tokens */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 2607
      StackMap locals:
      StackMap stack:
            aload 2 /* tokens */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 7
        end local 2 // java.util.StringTokenizer tokens
         9: .line 2611
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String attrIds
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lcom/sun/jndi/ldap/LdapCtx;
            0   10     1  attrIds  Ljava/lang/String;
            6    9     2   tokens  Ljava/util/StringTokenizer;
    MethodParameters:
         Name  Flags
      attrIds  

  protected void finalize();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 2618
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.close:()V
         1: .line 2619
            goto 3
      StackMap locals:
      StackMap stack: javax.naming.NamingException
         2: pop
         3: .line 2622
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/jndi/ldap/LdapCtx;
      Exception table:
        from    to  target  type
           0     1       2  Class javax.naming.NamingException

  public synchronized void close();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 2631
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            ifnull 3
         1: .line 2632
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            invokevirtual com.sun.jndi.ldap.EventSupport.cleanup:()V
         2: .line 2633
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.removeUnsolicited:()V
         3: .line 2637
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.enumCount:I
            ifle 6
         4: .line 2640
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.closeRequested:Z
         5: .line 2641
            return
         6: .line 2643
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.closeConnection:(Z)V
         7: .line 2654
            return
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/jndi/ldap/LdapCtx;
    Exceptions:
      throws javax.naming.NamingException

  public void reconnect(javax.naming.ldap.Control[]);
    descriptor: ([Ljavax/naming/ldap/Control;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.ldap.Control[] connCtls
         0: .line 2659
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnonnull 2
         1: .line 2660
            new java.util.Hashtable
            dup
            iconst_5
            ldc 0.75
            invokespecial java.util.Hashtable.<init>:(IF)V
            goto 3
         2: .line 2661
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapCtx
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.clone:()Ljava/lang/Object;
            checkcast java.util.Hashtable
         3: .line 2659
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.ldap.Control[]
      StackMap stack: com.sun.jndi.ldap.LdapCtx java.util.Hashtable
            putfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
         4: .line 2663
            aload 1 /* connCtls */
            ifnonnull 8
         5: .line 2664
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.control.connect"
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 2665
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
         7: .line 2666
            goto 9
         8: .line 2667
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.control.connect"
            aload 0 /* this */
            aload 1 /* connCtls */
            invokestatic com.sun.jndi.ldap.LdapCtx.cloneControls:([Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
            dup_x1
            putfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 2670
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.sharable:Z
        10: .line 2671
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.reconnect:Z
        11: .line 2672
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
        12: .line 2673
            return
        end local 1 // javax.naming.ldap.Control[] connCtls
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lcom/sun/jndi/ldap/LdapCtx;
            0   13     1  connCtls  [Ljavax/naming/ldap/Control;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
          Name  Flags
      connCtls  

  private void ensureOpen();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 2676
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:(Z)V
         1: .line 2677
            return
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/LdapCtx;
    Exceptions:
      throws javax.naming.NamingException

  private void ensureOpen(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // boolean startTLS
         0: .line 2682
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            ifnonnull 4
         1: .line 2688
            aload 0 /* this */
            new java.util.Hashtable
            dup
            bipush 11
            ldc 0.75
            invokespecial java.util.Hashtable.<init>:(IF)V
            putfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
         2: .line 2689
            aload 0 /* this */
            iload 1 /* startTLS */
            invokevirtual com.sun.jndi.ldap.LdapCtx.connect:(Z)V
         3: .line 2691
            goto 20
      StackMap locals:
      StackMap stack:
         4: aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.sharable:Z
            ifeq 5
            iload 1 /* startTLS */
            ifeq 20
         5: .line 2693
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            dup
            astore 2
            monitorenter
         6: .line 2694
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 9
         7: .line 2695
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            getfield com.sun.jndi.ldap.LdapClient.referenceCount:I
            iconst_1
            if_icmpgt 9
         8: .line 2696
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            invokevirtual com.sun.jndi.ldap.LdapClient.usingSaslStreams:()Z
            ifeq 10
         9: .line 2697
      StackMap locals: com.sun.jndi.ldap.LdapClient
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapCtx.closeConnection:(Z)V
        10: .line 2693
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        11: goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: aload 2
            monitorexit
        13: athrow
        14: .line 2701
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.util.Hashtable
            dup
            bipush 11
            ldc 0.75
            invokespecial java.util.Hashtable.<init>:(IF)V
            putfield com.sun.jndi.ldap.LdapCtx.schemaTrees:Ljava/util/Hashtable;
        15: .line 2702
            aload 0 /* this */
            iload 1 /* startTLS */
            invokevirtual com.sun.jndi.ldap.LdapCtx.connect:(Z)V
        16: .line 2705
            goto 20
      StackMap locals:
      StackMap stack: java.lang.Throwable
        17: astore 3
        18: .line 2706
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.sharable:Z
        19: .line 2708
            aload 3
            athrow
        20: .line 2706
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.sharable:Z
        21: .line 2709
            return
        end local 1 // boolean startTLS
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   22     0      this  Lcom/sun/jndi/ldap/LdapCtx;
            0   22     1  startTLS  Z
      Exception table:
        from    to  target  type
           6    11      12  any
          12    13      12  any
           0    17      17  any
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
          Name  Flags
      startTLS  

  private void connect(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=15, locals=15, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // boolean startTLS
         0: .line 2714
            aconst_null
            astore 2 /* user */
        start local 2 // java.lang.String user
         1: .line 2715
            aconst_null
            astore 3 /* passwd */
        start local 3 // java.lang.Object passwd
         2: .line 2716
            aconst_null
            astore 4 /* secProtocol */
        start local 4 // java.lang.String secProtocol
         3: .line 2717
            aconst_null
            astore 5 /* socketFactory */
        start local 5 // java.lang.String socketFactory
         4: .line 2718
            aconst_null
            astore 6 /* authMechanism */
        start local 6 // java.lang.String authMechanism
         5: .line 2719
            aconst_null
            astore 7 /* ver */
        start local 7 // java.lang.String ver
         6: .line 2721
            iconst_0
            istore 9 /* usePool */
        start local 9 // boolean usePool
         7: .line 2723
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnull 18
         8: .line 2724
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.security.principal"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* user */
         9: .line 2725
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.security.credentials"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* passwd */
        10: .line 2726
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.version"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* ver */
        11: .line 2728
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.useSsl:Z
            ifeq 12
            ldc "ssl"
            goto 13
      StackMap locals: com.sun.jndi.ldap.LdapCtx int java.lang.String java.lang.Object java.lang.String java.lang.String java.lang.String java.lang.String top int
      StackMap stack:
        12: aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.security.protocol"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
        13: .line 2727
      StackMap locals:
      StackMap stack: java.lang.String
            astore 4 /* secProtocol */
        14: .line 2729
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.ldap.factory.socket"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* socketFactory */
        15: .line 2731
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "java.naming.security.authentication"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
        16: .line 2730
            astore 6 /* authMechanism */
        17: .line 2733
            ldc "true"
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "com.sun.jndi.ldap.connect.pool"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            istore 9 /* usePool */
        18: .line 2736
      StackMap locals:
      StackMap stack:
            aload 5 /* socketFactory */
            ifnonnull 22
        19: .line 2738
            ldc "ssl"
            aload 4 /* secProtocol */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
            ldc "javax.net.ssl.SSLSocketFactory"
            goto 21
      StackMap locals:
      StackMap stack:
        20: aconst_null
        21: .line 2737
      StackMap locals:
      StackMap stack: java.lang.String
            astore 5 /* socketFactory */
        22: .line 2741
      StackMap locals:
      StackMap stack:
            aload 6 /* authMechanism */
            ifnonnull 26
        23: .line 2742
            aload 2 /* user */
            ifnonnull 24
            ldc "none"
            goto 25
      StackMap locals:
      StackMap stack:
        24: ldc "simple"
      StackMap locals:
      StackMap stack: java.lang.String
        25: astore 6 /* authMechanism */
        26: .line 2746
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            ifnonnull 27
            iconst_1
            goto 28
      StackMap locals:
      StackMap stack:
        27: iconst_0
      StackMap locals:
      StackMap stack: int
        28: istore 10 /* initial */
        start local 10 // boolean initial
        29: .line 2748
            iload 10 /* initial */
            ifne 30
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reconnect:Z
            ifeq 52
        30: .line 2749
      StackMap locals: int
      StackMap stack:
            aload 7 /* ver */
            ifnull 31
            aload 7 /* ver */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            goto 32
        31: .line 2750
      StackMap locals:
      StackMap stack:
            bipush 32
        32: .line 2749
      StackMap locals:
      StackMap stack: int
            istore 8 /* ldapVersion */
        start local 8 // int ldapVersion
        33: .line 2752
            aload 0 /* this */
        34: .line 2753
            iload 9 /* usePool */
        35: .line 2756
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
        36: .line 2757
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.port_number:I
        37: .line 2758
            aload 5 /* socketFactory */
        38: .line 2759
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.connectTimeout:I
        39: .line 2760
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.readTimeout:I
        40: .line 2761
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.trace:Ljava/io/OutputStream;
        41: .line 2764
            iload 8 /* ldapVersion */
        42: .line 2765
            aload 6 /* authMechanism */
        43: .line 2766
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
        44: .line 2767
            aload 4 /* secProtocol */
        45: .line 2770
            aload 2 /* user */
        46: .line 2771
            aload 3 /* passwd */
        47: .line 2774
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        48: .line 2752
            invokestatic com.sun.jndi.ldap.LdapClient.getInstance:(ZLjava/lang/String;ILjava/lang/String;IILjava/io/OutputStream;ILjava/lang/String;[Ljavax/naming/ldap/Control;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Ljava/util/Hashtable;)Lcom/sun/jndi/ldap/LdapClient;
            putfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
        49: .line 2776
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.reconnect:Z
        50: .line 2782
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            invokevirtual com.sun.jndi.ldap.LdapClient.authenticateCalled:()Z
            ifeq 55
        51: .line 2783
            return
        end local 8 // int ldapVersion
        52: .line 2786
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.sharable:Z
            ifeq 54
            iload 1 /* startTLS */
            ifeq 54
        53: .line 2787
            return
        54: .line 2792
      StackMap locals:
      StackMap stack:
            iconst_3
            istore 8 /* ldapVersion */
        start local 8 // int ldapVersion
        55: .line 2795
      StackMap locals: com.sun.jndi.ldap.LdapCtx int java.lang.String java.lang.Object java.lang.String java.lang.String java.lang.String java.lang.String int int int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            iload 10 /* initial */
        56: .line 2796
            aload 2 /* user */
            aload 3 /* passwd */
            iload 8 /* ldapVersion */
            aload 6 /* authMechanism */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        57: .line 2795
            invokevirtual com.sun.jndi.ldap.LdapClient.authenticate:(ZLjava/lang/String;Ljava/lang/Object;ILjava/lang/String;[Ljavax/naming/ldap/Control;Ljava/util/Hashtable;)Lcom/sun/jndi/ldap/LdapResult;
            astore 11 /* answer */
        start local 11 // com.sun.jndi.ldap.LdapResult answer
        58: .line 2798
            aload 0 /* this */
            aload 11 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
        59: .line 2800
            aload 11 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 85
        60: .line 2801
            iload 10 /* initial */
            ifeq 62
        61: .line 2802
            aload 0 /* this */
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapCtx.closeConnection:(Z)V
        62: .line 2804
      StackMap locals: com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 0 /* this */
            aload 11 /* answer */
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;)V
        end local 11 // com.sun.jndi.ldap.LdapResult answer
        end local 10 // boolean initial
        63: .line 2807
            goto 85
        end local 8 // int ldapVersion
      StackMap locals: com.sun.jndi.ldap.LdapCtx int java.lang.String java.lang.Object java.lang.String java.lang.String java.lang.String java.lang.String top int
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
        64: astore 10 /* e */
        start local 10 // com.sun.jndi.ldap.LdapReferralException e
        65: .line 2808
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 67
        66: .line 2809
            aload 10 /* e */
            athrow
        67: .line 2813
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aconst_null
            astore 13 /* saved_ex */
        start local 13 // javax.naming.NamingException saved_ex
        68: .line 2819
      StackMap locals: com.sun.jndi.ldap.LdapCtx int java.lang.String java.lang.Object java.lang.String java.lang.String java.lang.String java.lang.String top int com.sun.jndi.ldap.LdapReferralException top top javax.naming.NamingException
      StackMap stack:
            aload 10 /* e */
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getNextReferral:()Ljava/lang/String;
            dup
            astore 11 /* referral */
        start local 11 // java.lang.String referral
        69: ifnonnull 75
        70: .line 2822
            aload 13 /* saved_ex */
            ifnull 72
        71: .line 2823
            aload 13 /* saved_ex */
            invokevirtual javax.naming.NamingException.fillInStackTrace:()Ljava/lang/Throwable;
            checkcast javax.naming.NamingException
            athrow
        72: .line 2826
      StackMap locals: com.sun.jndi.ldap.LdapCtx int java.lang.String java.lang.Object java.lang.String java.lang.String java.lang.String java.lang.String top int com.sun.jndi.ldap.LdapReferralException java.lang.String top javax.naming.NamingException
      StackMap stack:
            new javax.naming.NamingException
            dup
        73: .line 2827
            ldc "Internal error processing referral during connection"
        74: .line 2826
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            athrow
        75: .line 2832
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.LdapURL
            dup
            aload 11 /* referral */
            invokespecial com.sun.jndi.ldap.LdapURL.<init>:(Ljava/lang/String;)V
            astore 12 /* url */
        start local 12 // com.sun.jndi.ldap.LdapURL url
        76: .line 2833
            aload 0 /* this */
            aload 12 /* url */
            invokevirtual com.sun.jndi.ldap.LdapURL.getHost:()Ljava/lang/String;
            putfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
        77: .line 2834
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            ifnull 79
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 91
            if_icmpne 79
        78: .line 2835
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            iconst_1
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            putfield com.sun.jndi.ldap.LdapCtx.hostname:Ljava/lang/String;
        79: .line 2837
      StackMap locals: com.sun.jndi.ldap.LdapCtx int java.lang.String java.lang.Object java.lang.String java.lang.String java.lang.String java.lang.String top int com.sun.jndi.ldap.LdapReferralException java.lang.String com.sun.jndi.ldap.LdapURL javax.naming.NamingException
      StackMap stack:
            aload 0 /* this */
            aload 12 /* url */
            invokevirtual com.sun.jndi.ldap.LdapURL.getPort:()I
            putfield com.sun.jndi.ldap.LdapCtx.port_number:I
        80: .line 2841
            aload 0 /* this */
            iload 1 /* startTLS */
            invokevirtual com.sun.jndi.ldap.LdapCtx.connect:(Z)V
        81: .line 2842
            goto 85
        82: .line 2844
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 14 /* ne */
        start local 14 // javax.naming.NamingException ne
        83: .line 2845
            aload 14 /* ne */
            astore 13 /* saved_ex */
        end local 14 // javax.naming.NamingException ne
        end local 12 // com.sun.jndi.ldap.LdapURL url
        end local 11 // java.lang.String referral
        84: .line 2817
            goto 68
        end local 13 // javax.naming.NamingException saved_ex
        end local 10 // com.sun.jndi.ldap.LdapReferralException e
        85: .line 2850
      StackMap locals: com.sun.jndi.ldap.LdapCtx int java.lang.String java.lang.Object java.lang.String java.lang.String java.lang.String java.lang.String top int
      StackMap stack:
            return
        end local 9 // boolean usePool
        end local 7 // java.lang.String ver
        end local 6 // java.lang.String authMechanism
        end local 5 // java.lang.String socketFactory
        end local 4 // java.lang.String secProtocol
        end local 3 // java.lang.Object passwd
        end local 2 // java.lang.String user
        end local 1 // boolean startTLS
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   86     0           this  Lcom/sun/jndi/ldap/LdapCtx;
            0   86     1       startTLS  Z
            1   86     2           user  Ljava/lang/String;
            2   86     3         passwd  Ljava/lang/Object;
            3   86     4    secProtocol  Ljava/lang/String;
            4   86     5  socketFactory  Ljava/lang/String;
            5   86     6  authMechanism  Ljava/lang/String;
            6   86     7            ver  Ljava/lang/String;
           33   52     8    ldapVersion  I
           55   64     8    ldapVersion  I
            7   86     9        usePool  Z
           29   63    10        initial  Z
           58   63    11         answer  Lcom/sun/jndi/ldap/LdapResult;
           65   85    10              e  Lcom/sun/jndi/ldap/LdapReferralException;
           69   84    11       referral  Ljava/lang/String;
           76   84    12            url  Lcom/sun/jndi/ldap/LdapURL;
           68   85    13       saved_ex  Ljavax/naming/NamingException;
           83   84    14             ne  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
          26    51      64  Class com.sun.jndi.ldap.LdapReferralException
          52    53      64  Class com.sun.jndi.ldap.LdapReferralException
          54    63      64  Class com.sun.jndi.ldap.LdapReferralException
          80    81      82  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
          Name  Flags
      startTLS  

  private void closeConnection(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // boolean hardclose
         0: .line 2853
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.removeUnsolicited:()V
         1: .line 2855
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            ifnull 4
         2: .line 2859
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            iload 1 /* hardclose */
            invokevirtual com.sun.jndi.ldap.LdapClient.close:([Ljavax/naming/ldap/Control;Z)V
         3: .line 2860
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
         4: .line 2862
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean hardclose
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1  hardclose  Z
    MethodParameters:
           Name  Flags
      hardclose  

  synchronized void incEnumCount();
    descriptor: ()V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 2869
            aload 0 /* this */
            dup
            getfield com.sun.jndi.ldap.LdapCtx.enumCount:I
            iconst_1
            iadd
            putfield com.sun.jndi.ldap.LdapCtx.enumCount:I
         1: .line 2871
            return
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/LdapCtx;

  synchronized void decEnumCount();
    descriptor: ()V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 2874
            aload 0 /* this */
            dup
            getfield com.sun.jndi.ldap.LdapCtx.enumCount:I
            iconst_1
            isub
            putfield com.sun.jndi.ldap.LdapCtx.enumCount:I
         1: .line 2877
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.enumCount:I
            ifne 5
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.closeRequested:Z
            ifeq 5
         2: .line 2879
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.close:()V
         3: .line 2880
            goto 5
      StackMap locals:
      StackMap stack: javax.naming.NamingException
         4: pop
         5: .line 2884
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/jndi/ldap/LdapCtx;
      Exception table:
        from    to  target  type
           2     3       4  Class javax.naming.NamingException

  protected void processReturnCode(com.sun.jndi.ldap.LdapResult);
    descriptor: (Lcom/sun/jndi/ldap/LdapResult;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // com.sun.jndi.ldap.LdapResult answer
         0: .line 2890
            aload 0 /* this */
            aload 1 /* answer */
            aconst_null
            aload 0 /* this */
            aconst_null
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aconst_null
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/Name;Ljava/util/Hashtable;Ljava/lang/String;)V
         1: .line 2891
            return
        end local 1 // com.sun.jndi.ldap.LdapResult answer
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0    2     1  answer  Lcom/sun/jndi/ldap/LdapResult;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
        Name  Flags
      answer  

  void processReturnCode(com.sun.jndi.ldap.LdapResult, javax.naming.Name);
    descriptor: (Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
    flags: (0x0000) 
    Code:
      stack=8, locals=3, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // com.sun.jndi.ldap.LdapResult answer
        start local 2 // javax.naming.Name remainName
         0: .line 2895
            aload 0 /* this */
            aload 1 /* answer */
         1: .line 2896
            new javax.naming.CompositeName
            dup
            invokespecial javax.naming.CompositeName.<init>:()V
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.currentDN:Ljava/lang/String;
            invokevirtual javax.naming.CompositeName.add:(Ljava/lang/String;)Ljavax/naming/Name;
         2: .line 2897
            aload 0 /* this */
         3: .line 2898
            aload 2 /* remainName */
         4: .line 2899
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
         5: .line 2900
            aload 0 /* this */
            aload 2 /* remainName */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fullyQualifiedName:(Ljavax/naming/Name;)Ljava/lang/String;
         6: .line 2895
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/Name;Ljava/util/Hashtable;Ljava/lang/String;)V
         7: .line 2901
            return
        end local 2 // javax.naming.Name remainName
        end local 1 // com.sun.jndi.ldap.LdapResult answer
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0    8     1      answer  Lcom/sun/jndi/ldap/LdapResult;
            0    8     2  remainName  Ljavax/naming/Name;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
            Name  Flags
      answer      
      remainName  

  protected void processReturnCode(com.sun.jndi.ldap.LdapResult, javax.naming.Name, , javax.naming.Name, java.util.Hashtable<?, ?>, java.lang.String);
    descriptor: (Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/Name;Ljava/util/Hashtable;Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=10, locals=14, args_size=7
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // com.sun.jndi.ldap.LdapResult res
        start local 2 // javax.naming.Name resolvedName
        start local 3 // java.lang.Object resolvedObj
        start local 4 // javax.naming.Name remainName
        start local 5 // java.util.Hashtable envprops
        start local 6 // java.lang.String fullDN
         0: .line 2907
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.errorMessage:Ljava/lang/String;
            invokestatic com.sun.jndi.ldap.LdapClient.getErrorMessage:(ILjava/lang/String;)Ljava/lang/String;
            astore 7 /* msg */
        start local 7 // java.lang.String msg
         1: .line 2909
            aconst_null
            astore 9 /* r */
        start local 9 // com.sun.jndi.ldap.LdapReferralException r
         2: .line 2911
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            lookupswitch { // 5
                    0: 3
                    9: 74
                   10: 43
                   34: 107
                   64: 107
              default: 113
          }
         3: .line 2916
      StackMap locals: com.sun.jndi.ldap.LdapCtx com.sun.jndi.ldap.LdapResult javax.naming.Name java.lang.Object javax.naming.Name java.util.Hashtable java.lang.String java.lang.String top com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            ifnull 42
         4: .line 2918
            ldc "Unprocessed Continuation Reference(s)"
            astore 7 /* msg */
         5: .line 2920
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_3
            if_icmpne 8
         6: .line 2921
            new javax.naming.PartialResultException
            dup
            aload 7 /* msg */
            invokespecial javax.naming.PartialResultException.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
         7: .line 2922
            goto 114
        end local 8 // javax.naming.NamingException e
         8: .line 2926
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            istore 10 /* contRefCount */
        start local 10 // int contRefCount
         9: .line 2927
            aconst_null
            astore 11 /* head */
        start local 11 // com.sun.jndi.ldap.LdapReferralException head
        10: .line 2928
            aconst_null
            astore 12 /* ptr */
        start local 12 // com.sun.jndi.ldap.LdapReferralException ptr
        11: .line 2930
            ldc "Continuation Reference"
            astore 7 /* msg */
        12: .line 2933
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        13: goto 27
        14: .line 2935
      StackMap locals: com.sun.jndi.ldap.LdapCtx com.sun.jndi.ldap.LdapResult javax.naming.Name java.lang.Object javax.naming.Name java.util.Hashtable java.lang.String java.lang.String top com.sun.jndi.ldap.LdapReferralException int com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralException int
      StackMap stack:
            new com.sun.jndi.ldap.LdapReferralException
            dup
            aload 2 /* resolvedName */
            aload 3 /* resolvedObj */
        15: .line 2936
            aload 4 /* remainName */
            aload 7 /* msg */
            aload 5 /* envprops */
            aload 6 /* fullDN */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
        16: .line 2937
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
        17: .line 2935
            invokespecial com.sun.jndi.ldap.LdapReferralException.<init>:(Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/Name;Ljava/lang/String;Ljava/util/Hashtable;Ljava/lang/String;I[Ljavax/naming/ldap/Control;)V
            astore 9 /* r */
        18: .line 2938
            aload 9 /* r */
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            iload 13 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast java.util.Vector
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapReferralException.setReferralInfo:(Ljava/util/Vector;Z)V
        19: .line 2940
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            iconst_1
            if_icmple 21
        20: .line 2941
            aload 9 /* r */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            invokevirtual com.sun.jndi.ldap.LdapReferralException.setHopCount:(I)V
        21: .line 2944
      StackMap locals:
      StackMap stack:
            aload 11 /* head */
            ifnonnull 24
        22: .line 2945
            aload 9 /* r */
            dup
            astore 12 /* ptr */
            astore 11 /* head */
        23: .line 2946
            goto 26
        24: .line 2947
      StackMap locals:
      StackMap stack:
            aload 12 /* ptr */
            aload 9 /* r */
            putfield com.sun.jndi.ldap.LdapReferralException.nextReferralEx:Lcom/sun/jndi/ldap/LdapReferralException;
        25: .line 2948
            aload 9 /* r */
            astore 12 /* ptr */
        26: .line 2933
      StackMap locals:
      StackMap stack:
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 13 /* i */
            iload 10 /* contRefCount */
            if_icmplt 14
        end local 13 // int i
        28: .line 2951
            aload 1 /* res */
            aconst_null
            putfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
        29: .line 2953
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.refEx:Lcom/sun/jndi/ldap/LdapReferralException;
            ifnonnull 32
        30: .line 2954
            aload 1 /* res */
            aload 11 /* head */
            putfield com.sun.jndi.ldap.LdapResult.refEx:Lcom/sun/jndi/ldap/LdapReferralException;
        31: .line 2956
            goto 37
        32: .line 2957
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.refEx:Lcom/sun/jndi/ldap/LdapReferralException;
            astore 12 /* ptr */
        33: .line 2959
            goto 35
        34: .line 2960
      StackMap locals:
      StackMap stack:
            aload 12 /* ptr */
            getfield com.sun.jndi.ldap.LdapReferralException.nextReferralEx:Lcom/sun/jndi/ldap/LdapReferralException;
            astore 12 /* ptr */
        35: .line 2959
      StackMap locals:
      StackMap stack:
            aload 12 /* ptr */
            getfield com.sun.jndi.ldap.LdapReferralException.nextReferralEx:Lcom/sun/jndi/ldap/LdapReferralException;
            ifnonnull 34
        36: .line 2962
            aload 12 /* ptr */
            aload 11 /* head */
            putfield com.sun.jndi.ldap.LdapReferralException.nextReferralEx:Lcom/sun/jndi/ldap/LdapReferralException;
        37: .line 2966
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
            if_icmple 42
        38: .line 2968
            new javax.naming.LimitExceededException
            dup
            ldc "Referral limit exceeded"
            invokespecial javax.naming.LimitExceededException.<init>:(Ljava/lang/String;)V
        39: .line 2967
            astore 13 /* lee */
        start local 13 // javax.naming.NamingException lee
        40: .line 2969
            aload 13 /* lee */
            aload 9 /* r */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        41: .line 2970
            aload 13 /* lee */
            athrow
        end local 13 // javax.naming.NamingException lee
        end local 12 // com.sun.jndi.ldap.LdapReferralException ptr
        end local 11 // com.sun.jndi.ldap.LdapReferralException head
        end local 10 // int contRefCount
        42: .line 2973
      StackMap locals:
      StackMap stack:
            return
        43: .line 2977
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_3
            if_icmpne 46
        44: .line 2978
            new javax.naming.PartialResultException
            dup
            aload 7 /* msg */
            invokespecial javax.naming.PartialResultException.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
        45: .line 2979
            goto 114
        end local 8 // javax.naming.NamingException e
        46: .line 2982
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.LdapReferralException
            dup
            aload 2 /* resolvedName */
            aload 3 /* resolvedObj */
            aload 4 /* remainName */
        47: .line 2983
            aload 7 /* msg */
            aload 5 /* envprops */
            aload 6 /* fullDN */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
        48: .line 2982
            invokespecial com.sun.jndi.ldap.LdapReferralException.<init>:(Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/Name;Ljava/lang/String;Ljava/util/Hashtable;Ljava/lang/String;I[Ljavax/naming/ldap/Control;)V
            astore 9 /* r */
        49: .line 2986
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            ifnonnull 52
        50: .line 2987
            aconst_null
            astore 10 /* refs */
        start local 10 // java.util.Vector refs
        51: .line 2988
            goto 63
        end local 10 // java.util.Vector refs
      StackMap locals:
      StackMap stack:
        52: aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_4
            if_icmpne 62
        53: .line 2989
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            astore 10 /* refs */
        start local 10 // java.util.Vector refs
        54: .line 2990
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            iconst_0
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast java.util.Vector
            invokevirtual java.util.Vector.iterator:()Ljava/util/Iterator;
            astore 12
            goto 58
      StackMap locals: com.sun.jndi.ldap.LdapCtx com.sun.jndi.ldap.LdapResult javax.naming.Name java.lang.Object javax.naming.Name java.util.Hashtable java.lang.String java.lang.String top com.sun.jndi.ldap.LdapReferralException java.util.Vector top java.util.Iterator
      StackMap stack:
        55: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 11 /* s */
        start local 11 // java.lang.String s
        56: .line 2991
            aload 11 /* s */
            ldc "ldap:"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 58
        57: .line 2992
            aload 10 /* refs */
            aload 11 /* s */
            invokevirtual java.util.Vector.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // java.lang.String s
        58: .line 2990
      StackMap locals:
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 55
        59: .line 2995
            aload 10 /* refs */
            invokevirtual java.util.Vector.isEmpty:()Z
            ifeq 63
        60: .line 2996
            aconst_null
            astore 10 /* refs */
        61: .line 2998
            goto 63
        end local 10 // java.util.Vector refs
        62: .line 2999
      StackMap locals: com.sun.jndi.ldap.LdapCtx com.sun.jndi.ldap.LdapResult javax.naming.Name java.lang.Object javax.naming.Name java.util.Hashtable java.lang.String java.lang.String top com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            iconst_0
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast java.util.Vector
            astore 10 /* refs */
        start local 10 // java.util.Vector refs
        63: .line 3001
      StackMap locals: java.util.Vector
      StackMap stack:
            aload 9 /* r */
            aload 10 /* refs */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapReferralException.setReferralInfo:(Ljava/util/Vector;Z)V
        64: .line 3003
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            iconst_1
            if_icmple 66
        65: .line 3004
            aload 9 /* r */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            invokevirtual com.sun.jndi.ldap.LdapReferralException.setHopCount:(I)V
        66: .line 3008
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
            if_icmple 72
        67: .line 3010
            new javax.naming.LimitExceededException
            dup
            ldc "Referral limit exceeded"
            invokespecial javax.naming.LimitExceededException.<init>:(Ljava/lang/String;)V
        68: .line 3009
            astore 11 /* lee */
        start local 11 // javax.naming.NamingException lee
        69: .line 3011
            aload 11 /* lee */
            aload 9 /* r */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        70: .line 3012
            aload 11 /* lee */
            astore 8 /* e */
        end local 11 // javax.naming.NamingException lee
        start local 8 // javax.naming.NamingException e
        71: .line 3014
            goto 114
        end local 8 // javax.naming.NamingException e
        72: .line 3015
      StackMap locals:
      StackMap stack:
            aload 9 /* r */
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
        73: .line 3017
            goto 114
        end local 10 // java.util.Vector refs
        end local 8 // javax.naming.NamingException e
        74: .line 3033
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_3
            if_icmpne 77
        75: .line 3034
            new javax.naming.PartialResultException
            dup
            aload 7 /* msg */
            invokespecial javax.naming.PartialResultException.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
        76: .line 3035
            goto 114
        end local 8 // javax.naming.NamingException e
        77: .line 3039
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.errorMessage:Ljava/lang/String;
            ifnull 80
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.errorMessage:Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 80
        78: .line 3040
            aload 1 /* res */
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.errorMessage:Ljava/lang/String;
            invokestatic com.sun.jndi.ldap.LdapCtx.extractURLs:(Ljava/lang/String;)Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
        79: .line 3041
            goto 82
        80: .line 3042
      StackMap locals:
      StackMap stack:
            new javax.naming.PartialResultException
            dup
            aload 7 /* msg */
            invokespecial javax.naming.PartialResultException.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
        81: .line 3043
            goto 114
        end local 8 // javax.naming.NamingException e
        82: .line 3047
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.LdapReferralException
            dup
            aload 2 /* resolvedName */
        83: .line 3048
            aload 3 /* resolvedObj */
        84: .line 3049
            aload 4 /* remainName */
        85: .line 3050
            aload 7 /* msg */
        86: .line 3051
            aload 5 /* envprops */
        87: .line 3052
            aload 6 /* fullDN */
        88: .line 3053
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
        89: .line 3054
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
        90: .line 3047
            invokespecial com.sun.jndi.ldap.LdapReferralException.<init>:(Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/Name;Ljava/lang/String;Ljava/util/Hashtable;Ljava/lang/String;I[Ljavax/naming/ldap/Control;)V
            astore 9 /* r */
        91: .line 3056
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            iconst_1
            if_icmple 93
        92: .line 3057
            aload 9 /* r */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            invokevirtual com.sun.jndi.ldap.LdapReferralException.setHopCount:(I)V
        93: .line 3069
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            ifnull 94
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            invokevirtual java.util.Vector.isEmpty:()Z
            ifeq 104
        94: .line 3070
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            ifnull 104
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            iconst_1
            if_icmpne 104
        95: .line 3072
            aload 9 /* r */
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapReferralException.setReferralInfo:(Ljava/util/Vector;Z)V
        96: .line 3075
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.hopCount:I
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.referralHopLimit:I
            if_icmple 102
        97: .line 3077
            new javax.naming.LimitExceededException
            dup
            ldc "Referral limit exceeded"
            invokespecial javax.naming.LimitExceededException.<init>:(Ljava/lang/String;)V
        98: .line 3076
            astore 11 /* lee */
        start local 11 // javax.naming.NamingException lee
        99: .line 3078
            aload 11 /* lee */
            aload 9 /* r */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
       100: .line 3079
            aload 11 /* lee */
            astore 8 /* e */
        end local 11 // javax.naming.NamingException lee
        start local 8 // javax.naming.NamingException e
       101: .line 3081
            goto 114
        end local 8 // javax.naming.NamingException e
       102: .line 3082
      StackMap locals:
      StackMap stack:
            aload 9 /* r */
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
       103: .line 3085
            goto 114
        end local 8 // javax.naming.NamingException e
       104: .line 3086
      StackMap locals:
      StackMap stack:
            aload 9 /* r */
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            iconst_1
            invokevirtual com.sun.jndi.ldap.LdapReferralException.setReferralInfo:(Ljava/util/Vector;Z)V
       105: .line 3087
            aload 1 /* res */
            aload 9 /* r */
            putfield com.sun.jndi.ldap.LdapResult.refEx:Lcom/sun/jndi/ldap/LdapReferralException;
       106: .line 3088
            return
       107: .line 3095
      StackMap locals:
      StackMap stack:
            aload 4 /* remainName */
            ifnull 111
       108: .line 3097
            new javax.naming.InvalidNameException
            dup
            new java.lang.StringBuilder
            dup
            aload 4 /* remainName */
            invokevirtual java.lang.Object.toString:()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 7 /* msg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       109: .line 3096
            invokespecial javax.naming.InvalidNameException.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
       110: .line 3098
            goto 114
        end local 8 // javax.naming.NamingException e
       111: .line 3099
      StackMap locals:
      StackMap stack:
            new javax.naming.InvalidNameException
            dup
            aload 7 /* msg */
            invokespecial javax.naming.InvalidNameException.<init>:(Ljava/lang/String;)V
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
       112: .line 3101
            goto 114
        end local 8 // javax.naming.NamingException e
       113: .line 3104
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.errorMessage:Ljava/lang/String;
            invokestatic com.sun.jndi.ldap.LdapCtx.mapErrorCode:(ILjava/lang/String;)Ljavax/naming/NamingException;
            astore 8 /* e */
        start local 8 // javax.naming.NamingException e
       114: .line 3107
      StackMap locals: com.sun.jndi.ldap.LdapCtx com.sun.jndi.ldap.LdapResult javax.naming.Name java.lang.Object javax.naming.Name java.util.Hashtable java.lang.String java.lang.String javax.naming.NamingException com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 8 /* e */
            aload 2 /* resolvedName */
            invokevirtual javax.naming.NamingException.setResolvedName:(Ljavax/naming/Name;)V
       115: .line 3108
            aload 8 /* e */
            aload 3 /* resolvedObj */
            invokevirtual javax.naming.NamingException.setResolvedObj:(Ljava/lang/Object;)V
       116: .line 3109
            aload 8 /* e */
            aload 4 /* remainName */
            invokevirtual javax.naming.NamingException.setRemainingName:(Ljavax/naming/Name;)V
       117: .line 3110
            aload 8 /* e */
            athrow
        end local 9 // com.sun.jndi.ldap.LdapReferralException r
        end local 8 // javax.naming.NamingException e
        end local 7 // java.lang.String msg
        end local 6 // java.lang.String fullDN
        end local 5 // java.util.Hashtable envprops
        end local 4 // javax.naming.Name remainName
        end local 3 // java.lang.Object resolvedObj
        end local 2 // javax.naming.Name resolvedName
        end local 1 // com.sun.jndi.ldap.LdapResult res
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0  118     0          this  Lcom/sun/jndi/ldap/LdapCtx;
            0  118     1           res  Lcom/sun/jndi/ldap/LdapResult;
            0  118     2  resolvedName  Ljavax/naming/Name;
            0  118     3   resolvedObj  Ljava/lang/Object;
            0  118     4    remainName  Ljavax/naming/Name;
            0  118     5      envprops  Ljava/util/Hashtable<**>;
            0  118     6        fullDN  Ljava/lang/String;
            1  118     7           msg  Ljava/lang/String;
            7    8     8             e  Ljavax/naming/NamingException;
           45   46     8             e  Ljavax/naming/NamingException;
           71   72     8             e  Ljavax/naming/NamingException;
           73   74     8             e  Ljavax/naming/NamingException;
           76   77     8             e  Ljavax/naming/NamingException;
           81   82     8             e  Ljavax/naming/NamingException;
          101  102     8             e  Ljavax/naming/NamingException;
          103  104     8             e  Ljavax/naming/NamingException;
          110  111     8             e  Ljavax/naming/NamingException;
          112  113     8             e  Ljavax/naming/NamingException;
          114  118     8             e  Ljavax/naming/NamingException;
            2  118     9             r  Lcom/sun/jndi/ldap/LdapReferralException;
            9   42    10  contRefCount  I
           10   42    11          head  Lcom/sun/jndi/ldap/LdapReferralException;
           11   42    12           ptr  Lcom/sun/jndi/ldap/LdapReferralException;
           13   28    13             i  I
           40   42    13           lee  Ljavax/naming/NamingException;
           51   52    10          refs  Ljava/util/Vector<Ljava/lang/String;>;
           54   62    10          refs  Ljava/util/Vector<Ljava/lang/String;>;
           63   74    10          refs  Ljava/util/Vector<Ljava/lang/String;>;
           56   58    11             s  Ljava/lang/String;
           69   71    11           lee  Ljavax/naming/NamingException;
           99  101    11           lee  Ljavax/naming/NamingException;
    Exceptions:
      throws javax.naming.NamingException
    Signature: (Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;Ljava/lang/Object;Ljavax/naming/Name;Ljava/util/Hashtable<**>;Ljava/lang/String;)V
    MethodParameters:
              Name  Flags
      res           
      resolvedName  
      resolvedObj   
      remainName    
      envprops      
      fullDN        

  public static javax.naming.NamingException mapErrorCode(int, java.lang.String);
    descriptor: (ILjava/lang/String;)Ljavax/naming/NamingException;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // int errorCode
        start local 1 // java.lang.String errorMessage
         0: .line 3125
            iload 0 /* errorCode */
            ifne 2
         1: .line 3126
            aconst_null
            areturn
         2: .line 3128
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* e */
        start local 2 // javax.naming.NamingException e
         3: .line 3129
            iload 0 /* errorCode */
            aload 1 /* errorMessage */
            invokestatic com.sun.jndi.ldap.LdapClient.getErrorMessage:(ILjava/lang/String;)Ljava/lang/String;
            astore 3 /* message */
        start local 3 // java.lang.String message
         4: .line 3131
            iload 0 /* errorCode */
            tableswitch { // 1 - 80
                    1: 33
                    2: 37
                    3: 41
                    4: 39
                    5: 51
                    6: 51
                    7: 11
                    8: 11
                    9: 57
                   10: 55
                   11: 53
                   12: 43
                   13: 11
                   14: 15
                   15: 61
                   16: 25
                   17: 47
                   18: 17
                   19: 21
                   20: 9
                   21: 21
                   22: 61
                   23: 61
                   24: 61
                   25: 61
                   26: 61
                   27: 61
                   28: 61
                   29: 61
                   30: 61
                   31: 61
                   32: 27
                   33: 7
                   34: 59
                   35: 51
                   36: 5
                   37: 61
                   38: 61
                   39: 61
                   40: 61
                   41: 61
                   42: 61
                   43: 61
                   44: 61
                   45: 61
                   46: 61
                   47: 61
                   48: 11
                   49: 15
                   50: 19
                   51: 45
                   52: 45
                   53: 49
                   54: 23
                   55: 61
                   56: 61
                   57: 61
                   58: 61
                   59: 61
                   60: 61
                   61: 61
                   62: 61
                   63: 61
                   64: 59
                   65: 29
                   66: 31
                   67: 29
                   68: 13
                   69: 29
                   70: 61
                   71: 61
                   72: 61
                   73: 61
                   74: 61
                   75: 61
                   76: 61
                   77: 61
                   78: 61
                   79: 61
                   80: 35
              default: 61
          }
         5: .line 3134
      StackMap locals: javax.naming.NamingException java.lang.String
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
         6: .line 3135
            goto 62
         7: .line 3138
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
         8: .line 3139
            goto 62
         9: .line 3142
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.AttributeInUseException
            dup
            aload 3 /* message */
            invokespecial javax.naming.directory.AttributeInUseException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        10: .line 3143
            goto 62
        11: .line 3149
      StackMap locals:
      StackMap stack:
            new javax.naming.AuthenticationNotSupportedException
            dup
            aload 3 /* message */
            invokespecial javax.naming.AuthenticationNotSupportedException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        12: .line 3150
            goto 62
        13: .line 3153
      StackMap locals:
      StackMap stack:
            new javax.naming.NameAlreadyBoundException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NameAlreadyBoundException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        14: .line 3154
            goto 62
        15: .line 3158
      StackMap locals:
      StackMap stack:
            new javax.naming.AuthenticationException
            dup
            aload 3 /* message */
            invokespecial javax.naming.AuthenticationException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        16: .line 3159
            goto 62
        17: .line 3162
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.InvalidSearchFilterException
            dup
            aload 3 /* message */
            invokespecial javax.naming.directory.InvalidSearchFilterException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        18: .line 3163
            goto 62
        19: .line 3166
      StackMap locals:
      StackMap stack:
            new javax.naming.NoPermissionException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NoPermissionException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        20: .line 3167
            goto 62
        21: .line 3171
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.InvalidAttributeValueException
            dup
            aload 3 /* message */
            invokespecial javax.naming.directory.InvalidAttributeValueException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        22: .line 3172
            goto 62
        23: .line 3175
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        24: .line 3176
            goto 62
        25: .line 3179
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.NoSuchAttributeException
            dup
            aload 3 /* message */
            invokespecial javax.naming.directory.NoSuchAttributeException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        26: .line 3180
            goto 62
        27: .line 3183
      StackMap locals:
      StackMap stack:
            new javax.naming.NameNotFoundException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NameNotFoundException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        28: .line 3184
            goto 62
        29: .line 3189
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.SchemaViolationException
            dup
            aload 3 /* message */
            invokespecial javax.naming.directory.SchemaViolationException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        30: .line 3190
            goto 62
        31: .line 3193
      StackMap locals:
      StackMap stack:
            new javax.naming.ContextNotEmptyException
            dup
            aload 3 /* message */
            invokespecial javax.naming.ContextNotEmptyException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        32: .line 3194
            goto 62
        33: .line 3198
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        34: .line 3199
            goto 62
        35: .line 3202
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        36: .line 3203
            goto 62
        37: .line 3206
      StackMap locals:
      StackMap stack:
            new javax.naming.CommunicationException
            dup
            aload 3 /* message */
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        38: .line 3207
            goto 62
        39: .line 3210
      StackMap locals:
      StackMap stack:
            new javax.naming.SizeLimitExceededException
            dup
            aload 3 /* message */
            invokespecial javax.naming.SizeLimitExceededException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        40: .line 3211
            goto 62
        41: .line 3214
      StackMap locals:
      StackMap stack:
            new javax.naming.TimeLimitExceededException
            dup
            aload 3 /* message */
            invokespecial javax.naming.TimeLimitExceededException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        42: .line 3215
            goto 62
        43: .line 3218
      StackMap locals:
      StackMap stack:
            new javax.naming.OperationNotSupportedException
            dup
            aload 3 /* message */
            invokespecial javax.naming.OperationNotSupportedException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        44: .line 3219
            goto 62
        45: .line 3223
      StackMap locals:
      StackMap stack:
            new javax.naming.ServiceUnavailableException
            dup
            aload 3 /* message */
            invokespecial javax.naming.ServiceUnavailableException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        46: .line 3224
            goto 62
        47: .line 3227
      StackMap locals:
      StackMap stack:
            new javax.naming.directory.InvalidAttributeIdentifierException
            dup
            aload 3 /* message */
            invokespecial javax.naming.directory.InvalidAttributeIdentifierException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        48: .line 3228
            goto 62
        49: .line 3231
      StackMap locals:
      StackMap stack:
            new javax.naming.OperationNotSupportedException
            dup
            aload 3 /* message */
            invokespecial javax.naming.OperationNotSupportedException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        50: .line 3232
            goto 62
        51: .line 3239
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        52: .line 3240
            goto 62
        53: .line 3243
      StackMap locals:
      StackMap stack:
            new javax.naming.LimitExceededException
            dup
            aload 3 /* message */
            invokespecial javax.naming.LimitExceededException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        54: .line 3244
            goto 62
        55: .line 3247
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        56: .line 3248
            goto 62
        57: .line 3251
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        58: .line 3252
            goto 62
        59: .line 3256
      StackMap locals:
      StackMap stack:
            new javax.naming.InvalidNameException
            dup
            aload 3 /* message */
            invokespecial javax.naming.InvalidNameException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        60: .line 3257
            goto 62
        61: .line 3260
      StackMap locals:
      StackMap stack:
            new javax.naming.NamingException
            dup
            aload 3 /* message */
            invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        62: .line 3264
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            areturn
        end local 3 // java.lang.String message
        end local 2 // javax.naming.NamingException e
        end local 1 // java.lang.String errorMessage
        end local 0 // int errorCode
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   63     0     errorCode  I
            0   63     1  errorMessage  Ljava/lang/String;
            3   63     2             e  Ljavax/naming/NamingException;
            4   63     3       message  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      errorCode     
      errorMessage  

  public javax.naming.ldap.ExtendedResponse extendedOperation(javax.naming.ldap.ExtendedRequest);
    descriptor: (Ljavax/naming/ldap/ExtendedRequest;)Ljavax/naming/ldap/ExtendedResponse;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.ldap.ExtendedRequest request
         0: .line 3272
            aload 1 /* request */
            invokeinterface javax.naming.ldap.ExtendedRequest.getID:()Ljava/lang/String;
            ldc "1.3.6.1.4.1.1466.20037"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            istore 2 /* startTLS */
        start local 2 // boolean startTLS
         1: .line 3273
            aload 0 /* this */
            iload 2 /* startTLS */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:(Z)V
         2: .line 3278
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 1 /* request */
            invokeinterface javax.naming.ldap.ExtendedRequest.getID:()Ljava/lang/String;
            aload 1 /* request */
            invokeinterface javax.naming.ldap.ExtendedRequest.getEncodedValue:()[B
         3: .line 3279
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            iload 2 /* startTLS */
         4: .line 3278
            invokevirtual com.sun.jndi.ldap.LdapClient.extendedOp:(Ljava/lang/String;[B[Ljavax/naming/ldap/Control;Z)Lcom/sun/jndi/ldap/LdapResult;
         5: .line 3277
            astore 3 /* answer */
        start local 3 // com.sun.jndi.ldap.LdapResult answer
         6: .line 3280
            aload 0 /* this */
            aload 3 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
         7: .line 3282
            aload 3 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifeq 9
         8: .line 3283
            aload 0 /* this */
            aload 3 /* answer */
            new javax.naming.CompositeName
            dup
            invokespecial javax.naming.CompositeName.<init>:()V
            invokevirtual com.sun.jndi.ldap.LdapCtx.processReturnCode:(Lcom/sun/jndi/ldap/LdapResult;Ljavax/naming/Name;)V
         9: .line 3287
      StackMap locals: int com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 3 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.extensionValue:[B
            ifnonnull 11
        10: .line 3288
            iconst_0
            goto 12
        11: .line 3289
      StackMap locals:
      StackMap stack:
            aload 3 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.extensionValue:[B
            arraylength
        12: .line 3287
      StackMap locals:
      StackMap stack: int
            istore 4 /* len */
        start local 4 // int len
        13: .line 3292
            aload 1 /* request */
            aload 3 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.extensionId:Ljava/lang/String;
        14: .line 3293
            aload 3 /* answer */
            getfield com.sun.jndi.ldap.LdapResult.extensionValue:[B
            iconst_0
            iload 4 /* len */
        15: .line 3292
            invokeinterface javax.naming.ldap.ExtendedRequest.createExtendedResponse:(Ljava/lang/String;[BII)Ljavax/naming/ldap/ExtendedResponse;
        16: .line 3291
            astore 5 /* er */
        start local 5 // javax.naming.ldap.ExtendedResponse er
        17: .line 3295
            aload 5 /* er */
            instanceof com.sun.jndi.ldap.ext.StartTlsResponseImpl
            ifeq 22
        18: .line 3298
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ifnull 19
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            ldc "com.sun.jndi.ldap.domainname"
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            goto 20
      StackMap locals: int javax.naming.ldap.ExtendedResponse
      StackMap stack:
        19: aconst_null
        20: .line 3297
      StackMap locals:
      StackMap stack: java.lang.Object
            checkcast java.lang.String
            astore 6 /* domainName */
        start local 6 // java.lang.String domainName
        21: .line 3299
            aload 5 /* er */
            checkcast com.sun.jndi.ldap.ext.StartTlsResponseImpl
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 6 /* domainName */
            invokevirtual com.sun.jndi.ldap.ext.StartTlsResponseImpl.setConnection:(Lcom/sun/jndi/ldap/Connection;Ljava/lang/String;)V
        end local 6 // java.lang.String domainName
        22: .line 3301
      StackMap locals:
      StackMap stack:
            aload 5 /* er */
        23: areturn
        end local 5 // javax.naming.ldap.ExtendedResponse er
        end local 4 // int len
        end local 3 // com.sun.jndi.ldap.LdapResult answer
        24: .line 3303
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.ldap.ExtendedRequest int
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 3 /* e */
        start local 3 // com.sun.jndi.ldap.LdapReferralException e
        25: .line 3305
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_2
            if_icmpne 27
        26: .line 3306
            aload 3 /* e */
            athrow
        27: .line 3312
      StackMap locals: com.sun.jndi.ldap.LdapReferralException
      StackMap stack:
            aload 3 /* e */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokevirtual com.sun.jndi.ldap.LdapReferralException.getReferralContext:(Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Ljavax/naming/Context;
            checkcast com.sun.jndi.ldap.LdapReferralContext
        28: .line 3311
            astore 4 /* refCtx */
        start local 4 // com.sun.jndi.ldap.LdapReferralContext refCtx
        29: .line 3317
            aload 4 /* refCtx */
            aload 1 /* request */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.extendedOperation:(Ljavax/naming/ldap/ExtendedRequest;)Ljavax/naming/ldap/ExtendedResponse;
            astore 7
        30: .line 3325
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        31: .line 3317
            aload 7
            areturn
        32: .line 3319
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.ldap.ExtendedRequest int com.sun.jndi.ldap.LdapReferralException com.sun.jndi.ldap.LdapReferralContext
      StackMap stack: com.sun.jndi.ldap.LdapReferralException
            astore 5 /* re */
        start local 5 // com.sun.jndi.ldap.LdapReferralException re
        33: .line 3320
            aload 5 /* re */
            astore 3 /* e */
        34: .line 3325
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        35: .line 3321
            goto 27
        end local 5 // com.sun.jndi.ldap.LdapReferralException re
        36: .line 3323
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        37: .line 3325
            aload 4 /* refCtx */
            invokevirtual com.sun.jndi.ldap.LdapReferralContext.close:()V
        38: .line 3326
            aload 6
            athrow
        end local 4 // com.sun.jndi.ldap.LdapReferralContext refCtx
        end local 3 // com.sun.jndi.ldap.LdapReferralException e
        39: .line 3329
      StackMap locals: com.sun.jndi.ldap.LdapCtx javax.naming.ldap.ExtendedRequest int
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        40: .line 3330
            new javax.naming.CommunicationException
            dup
            aload 3 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 4 /* e2 */
        start local 4 // javax.naming.NamingException e2
        41: .line 3331
            aload 4 /* e2 */
            aload 3 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        42: .line 3332
            aload 4 /* e2 */
            athrow
        end local 4 // javax.naming.NamingException e2
        end local 3 // java.io.IOException e
        end local 2 // boolean startTLS
        end local 1 // javax.naming.ldap.ExtendedRequest request
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   43     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0   43     1     request  Ljavax/naming/ldap/ExtendedRequest;
            1   43     2    startTLS  Z
            6   24     3      answer  Lcom/sun/jndi/ldap/LdapResult;
           13   24     4         len  I
           17   24     5          er  Ljavax/naming/ldap/ExtendedResponse;
           21   22     6  domainName  Ljava/lang/String;
           25   39     3           e  Lcom/sun/jndi/ldap/LdapReferralException;
           29   39     4      refCtx  Lcom/sun/jndi/ldap/LdapReferralContext;
           33   36     5          re  Lcom/sun/jndi/ldap/LdapReferralException;
           40   43     3           e  Ljava/io/IOException;
           41   43     4          e2  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
           2    23      24  Class com.sun.jndi.ldap.LdapReferralException
          29    30      32  Class com.sun.jndi.ldap.LdapReferralException
          29    30      36  any
          32    34      36  any
           2    23      39  Class java.io.IOException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
         Name  Flags
      request  

  public void setRequestControls(javax.naming.ldap.Control[]);
    descriptor: ([Ljavax/naming/ldap/Control;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.ldap.Control[] reqCtls
         0: .line 3337
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.handleReferrals:I
            iconst_3
            if_icmpne 3
         1: .line 3338
            aload 0 /* this */
            aload 1 /* reqCtls */
            getstatic com.sun.jndi.ldap.LdapCtx.manageReferralControl:Ljavax/naming/ldap/Control;
            invokestatic com.sun.jndi.ldap.LdapCtx.addControl:([Ljavax/naming/ldap/Control;Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
            putfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
         2: .line 3339
            goto 4
         3: .line 3340
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* reqCtls */
            invokestatic com.sun.jndi.ldap.LdapCtx.cloneControls:([Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
            putfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
         4: .line 3342
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.naming.ldap.Control[] reqCtls
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/sun/jndi/ldap/LdapCtx;
            0    5     1  reqCtls  [Ljavax/naming/ldap/Control;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
         Name  Flags
      reqCtls  

  public javax.naming.ldap.Control[] getRequestControls();
    descriptor: ()[Ljavax/naming/ldap/Control;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 3345
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.reqCtls:[Ljavax/naming/ldap/Control;
            invokestatic com.sun.jndi.ldap.LdapCtx.cloneControls:([Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
            areturn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapCtx;
    Exceptions:
      throws javax.naming.NamingException

  public javax.naming.ldap.Control[] getConnectControls();
    descriptor: ()[Ljavax/naming/ldap/Control;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 3349
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.bindCtls:[Ljavax/naming/ldap/Control;
            invokestatic com.sun.jndi.ldap.LdapCtx.cloneControls:([Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
            areturn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapCtx;
    Exceptions:
      throws javax.naming.NamingException

  public javax.naming.ldap.Control[] getResponseControls();
    descriptor: ()[Ljavax/naming/ldap/Control;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 3353
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
            ifnull 1
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.respCtls:Ljava/util/Vector;
            invokevirtual com.sun.jndi.ldap.LdapCtx.convertControls:(Ljava/util/Vector;)[Ljavax/naming/ldap/Control;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: javax.naming.ldap.Control[]
         2: areturn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/jndi/ldap/LdapCtx;
    Exceptions:
      throws javax.naming.NamingException

  javax.naming.ldap.Control[] convertControls(java.util.Vector<javax.naming.ldap.Control>);
    descriptor: (Ljava/util/Vector;)[Ljavax/naming/ldap/Control;
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.util.Vector ctls
         0: .line 3361
            aload 1 /* ctls */
            invokevirtual java.util.Vector.size:()I
            istore 2 /* count */
        start local 2 // int count
         1: .line 3363
            iload 2 /* count */
            ifne 3
         2: .line 3364
            aconst_null
            areturn
         3: .line 3367
      StackMap locals: int
      StackMap stack:
            iload 2 /* count */
            anewarray javax.naming.ldap.Control
            astore 3 /* controls */
        start local 3 // javax.naming.ldap.Control[] controls
         4: .line 3369
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 14
         6: .line 3371
      StackMap locals: javax.naming.ldap.Control[] int
      StackMap stack:
            aload 3 /* controls */
            iload 4 /* i */
            getstatic com.sun.jndi.ldap.LdapCtx.myResponseControlFactory:Ljavax/naming/ldap/ControlFactory;
         7: .line 3372
            aload 1 /* ctls */
            iload 4 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast javax.naming.ldap.Control
         8: .line 3371
            invokevirtual javax.naming.ldap.ControlFactory.getControlInstance:(Ljavax/naming/ldap/Control;)Ljavax/naming/ldap/Control;
            aastore
         9: .line 3375
            aload 3 /* controls */
            iload 4 /* i */
            aaload
            ifnonnull 13
        10: .line 3376
            aload 3 /* controls */
            iload 4 /* i */
        11: .line 3377
            aload 1 /* ctls */
            iload 4 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast javax.naming.ldap.Control
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.envprops:Ljava/util/Hashtable;
        12: .line 3376
            invokestatic javax.naming.ldap.ControlFactory.getControlInstance:(Ljavax/naming/ldap/Control;Ljavax/naming/Context;Ljava/util/Hashtable;)Ljavax/naming/ldap/Control;
            aastore
        13: .line 3369
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 4 /* i */
            iload 2 /* count */
            if_icmplt 6
        end local 4 // int i
        15: .line 3380
            aload 3 /* controls */
            areturn
        end local 3 // javax.naming.ldap.Control[] controls
        end local 2 // int count
        end local 1 // java.util.Vector ctls
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      this  Lcom/sun/jndi/ldap/LdapCtx;
            0   16     1      ctls  Ljava/util/Vector<Ljavax/naming/ldap/Control;>;
            1   16     2     count  I
            4   16     3  controls  [Ljavax/naming/ldap/Control;
            5   15     4         i  I
    Exceptions:
      throws javax.naming.NamingException
    Signature: (Ljava/util/Vector<Ljavax/naming/ldap/Control;>;)[Ljavax/naming/ldap/Control;
    MethodParameters:
      Name  Flags
      ctls  

  private static javax.naming.ldap.Control[] addControl(javax.naming.ldap.Control[], javax.naming.ldap.Control);
    descriptor: ([Ljavax/naming/ldap/Control;Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // javax.naming.ldap.Control[] prevCtls
        start local 1 // javax.naming.ldap.Control addition
         0: .line 3384
            aload 0 /* prevCtls */
            ifnonnull 2
         1: .line 3385
            iconst_1
            anewarray javax.naming.ldap.Control
            dup
            iconst_0
            aload 1 /* addition */
            aastore
            areturn
         2: .line 3389
      StackMap locals:
      StackMap stack:
            aload 0 /* prevCtls */
            aload 1 /* addition */
            invokestatic com.sun.jndi.ldap.LdapCtx.findControl:([Ljavax/naming/ldap/Control;Ljavax/naming/ldap/Control;)I
            istore 2 /* found */
        start local 2 // int found
         3: .line 3390
            iload 2 /* found */
            iconst_m1
            if_icmpeq 5
         4: .line 3391
            aload 0 /* prevCtls */
            areturn
         5: .line 3394
      StackMap locals: int
      StackMap stack:
            aload 0 /* prevCtls */
            arraylength
            iconst_1
            iadd
            anewarray javax.naming.ldap.Control
            astore 3 /* newCtls */
        start local 3 // javax.naming.ldap.Control[] newCtls
         6: .line 3395
            aload 0 /* prevCtls */
            iconst_0
            aload 3 /* newCtls */
            iconst_0
            aload 0 /* prevCtls */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 3396
            aload 3 /* newCtls */
            aload 0 /* prevCtls */
            arraylength
            aload 1 /* addition */
            aastore
         8: .line 3397
            aload 3 /* newCtls */
            areturn
        end local 3 // javax.naming.ldap.Control[] newCtls
        end local 2 // int found
        end local 1 // javax.naming.ldap.Control addition
        end local 0 // javax.naming.ldap.Control[] prevCtls
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0  prevCtls  [Ljavax/naming/ldap/Control;
            0    9     1  addition  Ljavax/naming/ldap/Control;
            3    9     2     found  I
            6    9     3   newCtls  [Ljavax/naming/ldap/Control;
    MethodParameters:
          Name  Flags
      prevCtls  
      addition  

  private static int findControl(javax.naming.ldap.Control[], javax.naming.ldap.Control);
    descriptor: ([Ljavax/naming/ldap/Control;Ljavax/naming/ldap/Control;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javax.naming.ldap.Control[] ctls
        start local 1 // javax.naming.ldap.Control target
         0: .line 3401
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 5
         2: .line 3402
      StackMap locals: int
      StackMap stack:
            aload 0 /* ctls */
            iload 2 /* i */
            aaload
            aload 1 /* target */
            if_acmpne 4
         3: .line 3403
            iload 2 /* i */
            ireturn
         4: .line 3401
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* ctls */
            arraylength
            if_icmplt 2
        end local 2 // int i
         6: .line 3406
            iconst_m1
            ireturn
        end local 1 // javax.naming.ldap.Control target
        end local 0 // javax.naming.ldap.Control[] ctls
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    ctls  [Ljavax/naming/ldap/Control;
            0    7     1  target  Ljavax/naming/ldap/Control;
            1    6     2       i  I
    MethodParameters:
        Name  Flags
      ctls    
      target  

  private static javax.naming.ldap.Control[] removeControl(javax.naming.ldap.Control[], javax.naming.ldap.Control);
    descriptor: ([Ljavax/naming/ldap/Control;Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // javax.naming.ldap.Control[] prevCtls
        start local 1 // javax.naming.ldap.Control target
         0: .line 3410
            aload 0 /* prevCtls */
            ifnonnull 2
         1: .line 3411
            aconst_null
            areturn
         2: .line 3415
      StackMap locals:
      StackMap stack:
            aload 0 /* prevCtls */
            aload 1 /* target */
            invokestatic com.sun.jndi.ldap.LdapCtx.findControl:([Ljavax/naming/ldap/Control;Ljavax/naming/ldap/Control;)I
            istore 2 /* found */
        start local 2 // int found
         3: .line 3416
            iload 2 /* found */
            iconst_m1
            if_icmpne 5
         4: .line 3417
            aload 0 /* prevCtls */
            areturn
         5: .line 3421
      StackMap locals: int
      StackMap stack:
            aload 0 /* prevCtls */
            arraylength
            iconst_1
            isub
            anewarray javax.naming.ldap.Control
            astore 3 /* newCtls */
        start local 3 // javax.naming.ldap.Control[] newCtls
         6: .line 3422
            aload 0 /* prevCtls */
            iconst_0
            aload 3 /* newCtls */
            iconst_0
            iload 2 /* found */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 3423
            aload 0 /* prevCtls */
            iload 2 /* found */
            iconst_1
            iadd
            aload 3 /* newCtls */
            iload 2 /* found */
         8: .line 3424
            aload 0 /* prevCtls */
            arraylength
            iload 2 /* found */
            isub
            iconst_1
            isub
         9: .line 3423
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        10: .line 3425
            aload 3 /* newCtls */
            areturn
        end local 3 // javax.naming.ldap.Control[] newCtls
        end local 2 // int found
        end local 1 // javax.naming.ldap.Control target
        end local 0 // javax.naming.ldap.Control[] prevCtls
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0  prevCtls  [Ljavax/naming/ldap/Control;
            0   11     1    target  Ljavax/naming/ldap/Control;
            3   11     2     found  I
            6   11     3   newCtls  [Ljavax/naming/ldap/Control;
    MethodParameters:
          Name  Flags
      prevCtls  
      target    

  private static javax.naming.ldap.Control[] cloneControls(javax.naming.ldap.Control[]);
    descriptor: ([Ljavax/naming/ldap/Control;)[Ljavax/naming/ldap/Control;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // javax.naming.ldap.Control[] ctls
         0: .line 3429
            aload 0 /* ctls */
            ifnonnull 2
         1: .line 3430
            aconst_null
            areturn
         2: .line 3432
      StackMap locals:
      StackMap stack:
            aload 0 /* ctls */
            arraylength
            anewarray javax.naming.ldap.Control
            astore 1 /* copiedCtls */
        start local 1 // javax.naming.ldap.Control[] copiedCtls
         3: .line 3433
            aload 0 /* ctls */
            iconst_0
            aload 1 /* copiedCtls */
            iconst_0
            aload 0 /* ctls */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 3434
            aload 1 /* copiedCtls */
            areturn
        end local 1 // javax.naming.ldap.Control[] copiedCtls
        end local 0 // javax.naming.ldap.Control[] ctls
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        ctls  [Ljavax/naming/ldap/Control;
            3    5     1  copiedCtls  [Ljavax/naming/ldap/Control;
    MethodParameters:
      Name  Flags
      ctls  

  public void addNamingListener(javax.naming.Name, int, javax.naming.event.NamingListener);
    descriptor: (Ljavax/naming/Name;ILjavax/naming/event/NamingListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name nm
        start local 2 // int scope
        start local 3 // javax.naming.event.NamingListener l
         0: .line 3447
            aload 0 /* this */
            aload 1 /* nm */
            invokestatic com.sun.jndi.ldap.LdapCtx.getTargetName:(Ljavax/naming/Name;)Ljava/lang/String;
            iload 2 /* scope */
            aload 3 /* l */
            invokevirtual com.sun.jndi.ldap.LdapCtx.addNamingListener:(Ljava/lang/String;ILjavax/naming/event/NamingListener;)V
         1: .line 3448
            return
        end local 3 // javax.naming.event.NamingListener l
        end local 2 // int scope
        end local 1 // javax.naming.Name nm
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/sun/jndi/ldap/LdapCtx;
            0    2     1     nm  Ljavax/naming/Name;
            0    2     2  scope  I
            0    2     3      l  Ljavax/naming/event/NamingListener;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
       Name  Flags
      nm     
      scope  
      l      

  public void addNamingListener(java.lang.String, int, javax.naming.event.NamingListener);
    descriptor: (Ljava/lang/String;ILjavax/naming/event/NamingListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String nm
        start local 2 // int scope
        start local 3 // javax.naming.event.NamingListener l
         0: .line 3452
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            ifnonnull 2
         1: .line 3453
            aload 0 /* this */
            new com.sun.jndi.ldap.EventSupport
            dup
            aload 0 /* this */
            invokespecial com.sun.jndi.ldap.EventSupport.<init>:(Lcom/sun/jndi/ldap/LdapCtx;)V
            putfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
         2: .line 3454
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            new javax.naming.CompositeName
            dup
            aload 1 /* nm */
            invokespecial javax.naming.CompositeName.<init>:(Ljava/lang/String;)V
            invokestatic com.sun.jndi.ldap.LdapCtx.getTargetName:(Ljavax/naming/Name;)Ljava/lang/String;
         3: .line 3455
            iload 2 /* scope */
            aload 3 /* l */
         4: .line 3454
            invokevirtual com.sun.jndi.ldap.EventSupport.addNamingListener:(Ljava/lang/String;ILjavax/naming/event/NamingListener;)V
         5: .line 3458
            aload 3 /* l */
            instanceof javax.naming.ldap.UnsolicitedNotificationListener
            ifeq 7
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
            ifne 7
         6: .line 3459
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.addUnsolicited:()V
         7: .line 3461
      StackMap locals:
      StackMap stack:
            return
        end local 3 // javax.naming.event.NamingListener l
        end local 2 // int scope
        end local 1 // java.lang.String nm
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lcom/sun/jndi/ldap/LdapCtx;
            0    8     1     nm  Ljava/lang/String;
            0    8     2  scope  I
            0    8     3      l  Ljavax/naming/event/NamingListener;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
       Name  Flags
      nm     
      scope  
      l      

  public void removeNamingListener(javax.naming.event.NamingListener);
    descriptor: (Ljavax/naming/event/NamingListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.event.NamingListener l
         0: .line 3464
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            ifnonnull 2
         1: .line 3465
            return
         2: .line 3467
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            aload 1 /* l */
            invokevirtual com.sun.jndi.ldap.EventSupport.removeNamingListener:(Ljavax/naming/event/NamingListener;)V
         3: .line 3470
            aload 1 /* l */
            instanceof javax.naming.ldap.UnsolicitedNotificationListener
            ifeq 6
         4: .line 3471
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            invokevirtual com.sun.jndi.ldap.EventSupport.hasUnsolicited:()Z
            ifne 6
         5: .line 3472
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.removeUnsolicited:()V
         6: .line 3474
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.naming.event.NamingListener l
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0    7     1     l  Ljavax/naming/event/NamingListener;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      l     

  public void addNamingListener(java.lang.String, java.lang.String, javax.naming.directory.SearchControls, javax.naming.event.NamingListener);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Ljavax/naming/event/NamingListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String nm
        start local 2 // java.lang.String filter
        start local 3 // javax.naming.directory.SearchControls ctls
        start local 4 // javax.naming.event.NamingListener l
         0: .line 3478
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            ifnonnull 2
         1: .line 3479
            aload 0 /* this */
            new com.sun.jndi.ldap.EventSupport
            dup
            aload 0 /* this */
            invokespecial com.sun.jndi.ldap.EventSupport.<init>:(Lcom/sun/jndi/ldap/LdapCtx;)V
            putfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
         2: .line 3480
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            new javax.naming.CompositeName
            dup
            aload 1 /* nm */
            invokespecial javax.naming.CompositeName.<init>:(Ljava/lang/String;)V
            invokestatic com.sun.jndi.ldap.LdapCtx.getTargetName:(Ljavax/naming/Name;)Ljava/lang/String;
         3: .line 3481
            aload 2 /* filter */
            aload 3 /* ctls */
            invokestatic com.sun.jndi.ldap.LdapCtx.cloneSearchControls:(Ljavax/naming/directory/SearchControls;)Ljavax/naming/directory/SearchControls;
            aload 4 /* l */
         4: .line 3480
            invokevirtual com.sun.jndi.ldap.EventSupport.addNamingListener:(Ljava/lang/String;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Ljavax/naming/event/NamingListener;)V
         5: .line 3484
            aload 4 /* l */
            instanceof javax.naming.ldap.UnsolicitedNotificationListener
            ifeq 7
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
            ifne 7
         6: .line 3485
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.addUnsolicited:()V
         7: .line 3487
      StackMap locals:
      StackMap stack:
            return
        end local 4 // javax.naming.event.NamingListener l
        end local 3 // javax.naming.directory.SearchControls ctls
        end local 2 // java.lang.String filter
        end local 1 // java.lang.String nm
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0    8     1      nm  Ljava/lang/String;
            0    8     2  filter  Ljava/lang/String;
            0    8     3    ctls  Ljavax/naming/directory/SearchControls;
            0    8     4       l  Ljavax/naming/event/NamingListener;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
        Name  Flags
      nm      
      filter  
      ctls    
      l       

  public void addNamingListener(javax.naming.Name, java.lang.String, javax.naming.directory.SearchControls, javax.naming.event.NamingListener);
    descriptor: (Ljavax/naming/Name;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Ljavax/naming/event/NamingListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name nm
        start local 2 // java.lang.String filter
        start local 3 // javax.naming.directory.SearchControls ctls
        start local 4 // javax.naming.event.NamingListener l
         0: .line 3491
            aload 0 /* this */
            aload 1 /* nm */
            invokestatic com.sun.jndi.ldap.LdapCtx.getTargetName:(Ljavax/naming/Name;)Ljava/lang/String;
            aload 2 /* filter */
            aload 3 /* ctls */
            aload 4 /* l */
            invokevirtual com.sun.jndi.ldap.LdapCtx.addNamingListener:(Ljava/lang/String;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Ljavax/naming/event/NamingListener;)V
         1: .line 3492
            return
        end local 4 // javax.naming.event.NamingListener l
        end local 3 // javax.naming.directory.SearchControls ctls
        end local 2 // java.lang.String filter
        end local 1 // javax.naming.Name nm
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/sun/jndi/ldap/LdapCtx;
            0    2     1      nm  Ljavax/naming/Name;
            0    2     2  filter  Ljava/lang/String;
            0    2     3    ctls  Ljavax/naming/directory/SearchControls;
            0    2     4       l  Ljavax/naming/event/NamingListener;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
        Name  Flags
      nm      
      filter  
      ctls    
      l       

  public void addNamingListener(javax.naming.Name, java.lang.String, java.lang.Object[], javax.naming.directory.SearchControls, javax.naming.event.NamingListener);
    descriptor: (Ljavax/naming/Name;Ljava/lang/String;[Ljava/lang/Object;Ljavax/naming/directory/SearchControls;Ljavax/naming/event/NamingListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // javax.naming.Name nm
        start local 2 // java.lang.String filter
        start local 3 // java.lang.Object[] filterArgs
        start local 4 // javax.naming.directory.SearchControls ctls
        start local 5 // javax.naming.event.NamingListener l
         0: .line 3496
            aload 0 /* this */
            aload 1 /* nm */
            invokestatic com.sun.jndi.ldap.LdapCtx.getTargetName:(Ljavax/naming/Name;)Ljava/lang/String;
            aload 2 /* filter */
            aload 3 /* filterArgs */
            aload 4 /* ctls */
            aload 5 /* l */
            invokevirtual com.sun.jndi.ldap.LdapCtx.addNamingListener:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;Ljavax/naming/directory/SearchControls;Ljavax/naming/event/NamingListener;)V
         1: .line 3497
            return
        end local 5 // javax.naming.event.NamingListener l
        end local 4 // javax.naming.directory.SearchControls ctls
        end local 3 // java.lang.Object[] filterArgs
        end local 2 // java.lang.String filter
        end local 1 // javax.naming.Name nm
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0    2     1          nm  Ljavax/naming/Name;
            0    2     2      filter  Ljava/lang/String;
            0    2     3  filterArgs  [Ljava/lang/Object;
            0    2     4        ctls  Ljavax/naming/directory/SearchControls;
            0    2     5           l  Ljavax/naming/event/NamingListener;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
            Name  Flags
      nm          
      filter      
      filterArgs  
      ctls        
      l           

  public void addNamingListener(java.lang.String, java.lang.String, java.lang.Object[], javax.naming.directory.SearchControls, javax.naming.event.NamingListener);
    descriptor: (Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;Ljavax/naming/directory/SearchControls;Ljavax/naming/event/NamingListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.String nm
        start local 2 // java.lang.String filterExpr
        start local 3 // java.lang.Object[] filterArgs
        start local 4 // javax.naming.directory.SearchControls ctls
        start local 5 // javax.naming.event.NamingListener l
         0: .line 3501
            aload 2 /* filterExpr */
            aload 3 /* filterArgs */
            invokestatic com.sun.jndi.toolkit.dir.SearchFilter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 6 /* strfilter */
        start local 6 // java.lang.String strfilter
         1: .line 3502
            aload 0 /* this */
            new javax.naming.CompositeName
            dup
            aload 1 /* nm */
            invokespecial javax.naming.CompositeName.<init>:(Ljava/lang/String;)V
            invokestatic com.sun.jndi.ldap.LdapCtx.getTargetName:(Ljavax/naming/Name;)Ljava/lang/String;
            aload 6 /* strfilter */
            aload 4 /* ctls */
            aload 5 /* l */
            invokevirtual com.sun.jndi.ldap.LdapCtx.addNamingListener:(Ljava/lang/String;Ljava/lang/String;Ljavax/naming/directory/SearchControls;Ljavax/naming/event/NamingListener;)V
         2: .line 3503
            return
        end local 6 // java.lang.String strfilter
        end local 5 // javax.naming.event.NamingListener l
        end local 4 // javax.naming.directory.SearchControls ctls
        end local 3 // java.lang.Object[] filterArgs
        end local 2 // java.lang.String filterExpr
        end local 1 // java.lang.String nm
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/sun/jndi/ldap/LdapCtx;
            0    3     1          nm  Ljava/lang/String;
            0    3     2  filterExpr  Ljava/lang/String;
            0    3     3  filterArgs  [Ljava/lang/Object;
            0    3     4        ctls  Ljavax/naming/directory/SearchControls;
            0    3     5           l  Ljavax/naming/event/NamingListener;
            1    3     6   strfilter  Ljava/lang/String;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
            Name  Flags
      nm          
      filterExpr  
      filterArgs  
      ctls        
      l           

  public boolean targetMustExist();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 3506
            iconst_1
            ireturn
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapCtx;

  private static java.lang.String getTargetName(javax.naming.Name);
    descriptor: (Ljavax/naming/Name;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // javax.naming.Name nm
         0: .line 3518
            aload 0 /* nm */
            instanceof javax.naming.CompositeName
            ifeq 8
         1: .line 3519
            aload 0 /* nm */
            invokeinterface javax.naming.Name.size:()I
            iconst_1
            if_icmple 5
         2: .line 3520
            new javax.naming.InvalidNameException
            dup
         3: .line 3521
            new java.lang.StringBuilder
            dup
            ldc "Target cannot span multiple namespaces: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* nm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 3520
            invokespecial javax.naming.InvalidNameException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 3522
      StackMap locals:
      StackMap stack:
            aload 0 /* nm */
            invokeinterface javax.naming.Name.isEmpty:()Z
            ifeq 7
         6: .line 3523
            ldc ""
            areturn
         7: .line 3525
      StackMap locals:
      StackMap stack:
            aload 0 /* nm */
            iconst_0
            invokeinterface javax.naming.Name.get:(I)Ljava/lang/String;
            areturn
         8: .line 3529
      StackMap locals:
      StackMap stack:
            aload 0 /* nm */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            areturn
        end local 0 // javax.naming.Name nm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0    nm  Ljavax/naming/Name;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      nm    

  private void addUnsolicited();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 3552
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapCtx.ensureOpen:()V
         1: .line 3553
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            dup
            astore 1
            monitorenter
         2: .line 3554
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.addUnsolicited:(Lcom/sun/jndi/ldap/LdapCtx;)V
         3: .line 3555
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
         4: .line 3553
            aload 1
            monitorexit
         5: goto 8
      StackMap locals: com.sun.jndi.ldap.LdapCtx com.sun.jndi.ldap.EventSupport
      StackMap stack: java.lang.Throwable
         6: aload 1
            monitorexit
         7: athrow
         8: .line 3557
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/jndi/ldap/LdapCtx;
      Exception table:
        from    to  target  type
           2     5       6  any
           6     7       6  any
    Exceptions:
      throws javax.naming.NamingException

  private void removeUnsolicited();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapCtx this
         0: .line 3577
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            ifnonnull 2
         1: .line 3578
            return
         2: .line 3582
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            dup
            astore 1
            monitorenter
         3: .line 3583
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
            ifeq 5
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            ifnull 5
         4: .line 3584
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.clnt:Lcom/sun/jndi/ldap/LdapClient;
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.removeUnsolicited:(Lcom/sun/jndi/ldap/LdapCtx;)V
         5: .line 3586
      StackMap locals: com.sun.jndi.ldap.EventSupport
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
         6: .line 3582
            aload 1
            monitorexit
         7: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 1
            monitorexit
         9: athrow
        10: .line 3588
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lcom/sun/jndi/ldap/LdapCtx;
      Exception table:
        from    to  target  type
           3     7       8  any
           8     9       8  any

  void fireUnsolicited(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapCtx this
        start local 1 // java.lang.Object obj
         0: .line 3599
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            dup
            astore 2
            monitorenter
         1: .line 3600
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
            ifeq 5
         2: .line 3601
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapCtx.eventSupport:Lcom/sun/jndi/ldap/EventSupport;
            aload 1 /* obj */
            invokevirtual com.sun.jndi.ldap.EventSupport.fireUnsolicited:(Ljava/lang/Object;)V
         3: .line 3603
            aload 1 /* obj */
            instanceof javax.naming.NamingException
            ifeq 5
         4: .line 3604
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapCtx.unsolicited:Z
         5: .line 3599
      StackMap locals: com.sun.jndi.ldap.EventSupport
      StackMap stack:
            aload 2
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 2
            monitorexit
         8: athrow
         9: .line 3611
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object obj
        end local 0 // com.sun.jndi.ldap.LdapCtx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lcom/sun/jndi/ldap/LdapCtx;
            0   10     1   obj  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
    MethodParameters:
      Name  Flags
      obj   
}
SourceFile: "LdapCtx.java"
NestMembers:
  com.sun.jndi.ldap.LdapCtx$SearchArgs
InnerClasses:
  final SearchArgs = com.sun.jndi.ldap.LdapCtx$SearchArgs of com.sun.jndi.ldap.LdapCtx