public final class com.sun.jndi.ldap.LdapClient implements com.sun.jndi.ldap.pool.PooledConnection
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.sun.jndi.ldap.LdapClient
  super_class: java.lang.Object
{
  private static final int debug;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final boolean caseIgnore;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final java.util.Hashtable<java.lang.String, java.lang.Boolean> defaultBinaryAttrs;
    descriptor: Ljava/util/Hashtable;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Boolean;>;

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

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

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

  final com.sun.jndi.ldap.Connection conn;
    descriptor: Lcom/sun/jndi/ldap/Connection;
    flags: (0x0010) ACC_FINAL

  private final com.sun.jndi.ldap.pool.PoolCallback pcb;
    descriptor: Lcom/sun/jndi/ldap/pool/PoolCallback;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean pooled;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  static final int SCOPE_BASE_OBJECT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final int SCOPE_ONE_LEVEL;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int SCOPE_SUBTREE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int ADD;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final int DELETE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int REPLACE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int LDAP_VERSION3_VERSION2;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  static final int LDAP_VERSION2;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int LDAP_VERSION3;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static final int LDAP_VERSION;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static final int LDAP_REF_FOLLOW;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int LDAP_REF_THROW;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int LDAP_REF_IGNORE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static final int LDAP_REF_FOLLOW_SCHEME;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4

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

  static final java.lang.String LDAPS_URL;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "ldaps://"

  static final int LBER_BOOLEAN;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int LBER_INTEGER;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int LBER_BITSTRING;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static final int LBER_OCTETSTRING;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  static final int LBER_NULL;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  static final int LBER_ENUMERATED;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  static final int LBER_SEQUENCE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 48

  static final int LBER_SET;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 49

  static final int LDAP_SUPERIOR_DN;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 128

  static final int LDAP_REQ_BIND;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 96

  static final int LDAP_REQ_UNBIND;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 66

  static final int LDAP_REQ_SEARCH;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 99

  static final int LDAP_REQ_MODIFY;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 102

  static final int LDAP_REQ_ADD;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 104

  static final int LDAP_REQ_DELETE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 74

  static final int LDAP_REQ_MODRDN;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 108

  static final int LDAP_REQ_COMPARE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 110

  static final int LDAP_REQ_ABANDON;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 80

  static final int LDAP_REQ_EXTENSION;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 119

  static final int LDAP_REP_BIND;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 97

  static final int LDAP_REP_SEARCH;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 100

  static final int LDAP_REP_SEARCH_REF;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 115

  static final int LDAP_REP_RESULT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 101

  static final int LDAP_REP_MODIFY;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 103

  static final int LDAP_REP_ADD;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 105

  static final int LDAP_REP_DELETE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 107

  static final int LDAP_REP_MODRDN;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 109

  static final int LDAP_REP_COMPARE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 111

  static final int LDAP_REP_EXTENSION;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 120

  static final int LDAP_REP_REFERRAL;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 163

  static final int LDAP_REP_EXT_OID;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 138

  static final int LDAP_REP_EXT_VAL;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 139

  static final int LDAP_CONTROLS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 160

  static final java.lang.String LDAP_CONTROL_MANAGE_DSA_IT;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "2.16.840.1.113730.3.4.2"

  static final java.lang.String LDAP_CONTROL_PREFERRED_LANG;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "1.3.6.1.4.1.1466.20035"

  static final java.lang.String LDAP_CONTROL_PAGED_RESULTS;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "1.2.840.113556.1.4.319"

  static final java.lang.String LDAP_CONTROL_SERVER_SORT_REQ;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "1.2.840.113556.1.4.473"

  static final java.lang.String LDAP_CONTROL_SERVER_SORT_RES;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "1.2.840.113556.1.4.474"

  static final int LDAP_SUCCESS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final int LDAP_OPERATIONS_ERROR;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int LDAP_PROTOCOL_ERROR;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int LDAP_TIME_LIMIT_EXCEEDED;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static final int LDAP_SIZE_LIMIT_EXCEEDED;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  static final int LDAP_COMPARE_FALSE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  static final int LDAP_COMPARE_TRUE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  static final int LDAP_AUTH_METHOD_NOT_SUPPORTED;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  static final int LDAP_STRONG_AUTH_REQUIRED;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  static final int LDAP_PARTIAL_RESULTS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 9

  static final int LDAP_REFERRAL;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  static final int LDAP_ADMIN_LIMIT_EXCEEDED;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 11

  static final int LDAP_UNAVAILABLE_CRITICAL_EXTENSION;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 12

  static final int LDAP_CONFIDENTIALITY_REQUIRED;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 13

  static final int LDAP_SASL_BIND_IN_PROGRESS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 14

  static final int LDAP_NO_SUCH_ATTRIBUTE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  static final int LDAP_UNDEFINED_ATTRIBUTE_TYPE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 17

  static final int LDAP_INAPPROPRIATE_MATCHING;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 18

  static final int LDAP_CONSTRAINT_VIOLATION;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 19

  static final int LDAP_ATTRIBUTE_OR_VALUE_EXISTS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 20

  static final int LDAP_INVALID_ATTRIBUTE_SYNTAX;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 21

  static final int LDAP_NO_SUCH_OBJECT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  static final int LDAP_ALIAS_PROBLEM;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 33

  static final int LDAP_INVALID_DN_SYNTAX;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 34

  static final int LDAP_IS_LEAF;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 35

  static final int LDAP_ALIAS_DEREFERENCING_PROBLEM;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 36

  static final int LDAP_INAPPROPRIATE_AUTHENTICATION;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 48

  static final int LDAP_INVALID_CREDENTIALS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 49

  static final int LDAP_INSUFFICIENT_ACCESS_RIGHTS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 50

  static final int LDAP_BUSY;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 51

  static final int LDAP_UNAVAILABLE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 52

  static final int LDAP_UNWILLING_TO_PERFORM;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 53

  static final int LDAP_LOOP_DETECT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 54

  static final int LDAP_NAMING_VIOLATION;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 64

  static final int LDAP_OBJECT_CLASS_VIOLATION;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 65

  static final int LDAP_NOT_ALLOWED_ON_NON_LEAF;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 66

  static final int LDAP_NOT_ALLOWED_ON_RDN;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 67

  static final int LDAP_ENTRY_ALREADY_EXISTS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 68

  static final int LDAP_OBJECT_CLASS_MODS_PROHIBITED;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 69

  static final int LDAP_AFFECTS_MULTIPLE_DSAS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 71

  static final int LDAP_OTHER;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 80

  static final java.lang.String[] ldap_error_message;
    descriptor: [Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private java.util.Vector<com.sun.jndi.ldap.LdapCtx> unsolicited;
    descriptor: Ljava/util/Vector;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Vector<Lcom/sun/jndi/ldap/LdapCtx;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 85
            new java.util.Hashtable
            dup
            bipush 23
            ldc 0.75
            invokespecial java.util.Hashtable.<init>:(IF)V
         1: .line 84
            putstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
         2: .line 87
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "userpassword"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 88
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "javaserializeddata"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 90
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "javaserializedobject"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 92
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "jpegphoto"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 94
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "audio"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 95
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "thumbnailphoto"
            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 97
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "thumbnaillogo"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 99
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "usercertificate"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 100
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "cacertificate"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 101
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "certificaterevocationlist"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 103
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "authorityrevocationlist"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 104
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "crosscertificatepair"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 105
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "photo"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 106
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "personalsignature"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 108
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            ldc "x500uniqueidentifier"
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 1330
            bipush 91
            anewarray java.lang.String
            dup
            iconst_0
        18: .line 1331
            ldc "Success"
            aastore
            dup
            iconst_1
        19: .line 1332
            ldc "Operations Error"
            aastore
            dup
            iconst_2
        20: .line 1333
            ldc "Protocol Error"
            aastore
            dup
            iconst_3
        21: .line 1334
            ldc "Timelimit Exceeded"
            aastore
            dup
            iconst_4
        22: .line 1335
            ldc "Sizelimit Exceeded"
            aastore
            dup
            iconst_5
        23: .line 1336
            ldc "Compare False"
            aastore
            dup
            bipush 6
        24: .line 1337
            ldc "Compare True"
            aastore
            dup
            bipush 7
        25: .line 1338
            ldc "Authentication Method Not Supported"
            aastore
            dup
            bipush 8
        26: .line 1339
            ldc "Strong Authentication Required"
            aastore
            dup
            bipush 10
        27: .line 1341
            ldc "Referral"
            aastore
            dup
            bipush 11
        28: .line 1342
            ldc "Administrative Limit Exceeded"
            aastore
            dup
            bipush 12
        29: .line 1343
            ldc "Unavailable Critical Extension"
            aastore
            dup
            bipush 13
        30: .line 1344
            ldc "Confidentiality Required"
            aastore
            dup
            bipush 14
        31: .line 1345
            ldc "SASL Bind In Progress"
            aastore
            dup
            bipush 16
        32: .line 1347
            ldc "No Such Attribute"
            aastore
            dup
            bipush 17
        33: .line 1348
            ldc "Undefined Attribute Type"
            aastore
            dup
            bipush 18
        34: .line 1349
            ldc "Inappropriate Matching"
            aastore
            dup
            bipush 19
        35: .line 1350
            ldc "Constraint Violation"
            aastore
            dup
            bipush 20
        36: .line 1351
            ldc "Attribute Or Value Exists"
            aastore
            dup
            bipush 21
        37: .line 1352
            ldc "Invalid Attribute Syntax"
            aastore
            dup
            bipush 32
        38: .line 1363
            ldc "No Such Object"
            aastore
            dup
            bipush 33
        39: .line 1364
            ldc "Alias Problem"
            aastore
            dup
            bipush 34
        40: .line 1365
            ldc "Invalid DN Syntax"
            aastore
            dup
            bipush 36
        41: .line 1367
            ldc "Alias Dereferencing Problem"
            aastore
            dup
            bipush 48
        42: .line 1379
            ldc "Inappropriate Authentication"
            aastore
            dup
            bipush 49
        43: .line 1380
            ldc "Invalid Credentials"
            aastore
            dup
            bipush 50
        44: .line 1381
            ldc "Insufficient Access Rights"
            aastore
            dup
            bipush 51
        45: .line 1382
            ldc "Busy"
            aastore
            dup
            bipush 52
        46: .line 1383
            ldc "Unavailable"
            aastore
            dup
            bipush 53
        47: .line 1384
            ldc "Unwilling To Perform"
            aastore
            dup
            bipush 54
        48: .line 1385
            ldc "Loop Detect"
            aastore
            dup
            bipush 64
        49: .line 1395
            ldc "Naming Violation"
            aastore
            dup
            bipush 65
        50: .line 1396
            ldc "Object Class Violation"
            aastore
            dup
            bipush 66
        51: .line 1397
            ldc "Not Allowed On Non-leaf"
            aastore
            dup
            bipush 67
        52: .line 1398
            ldc "Not Allowed On RDN"
            aastore
            dup
            bipush 68
        53: .line 1399
            ldc "Entry Already Exists"
            aastore
            dup
            bipush 69
        54: .line 1400
            ldc "Object Class Modifications Prohibited"
            aastore
            dup
            bipush 71
        55: .line 1402
            ldc "Affects Multiple DSAs"
            aastore
            dup
            bipush 80
        56: .line 1411
            ldc "Other"
            aastore
        57: .line 1330
            putstatic com.sun.jndi.ldap.LdapClient.ldap_error_message:[Ljava/lang/String;
        58: .line 1422
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.lang.String, int, java.lang.String, int, int, java.io.OutputStream, com.sun.jndi.ldap.pool.PoolCallback);
    descriptor: (Ljava/lang/String;ILjava/lang/String;IILjava/io/OutputStream;Lcom/sun/jndi/ldap/pool/PoolCallback;)V
    flags: (0x0000) 
    Code:
      stack=10, locals=8, args_size=8
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // java.lang.String host
        start local 2 // int port
        start local 3 // java.lang.String socketFactory
        start local 4 // int connectTimeout
        start local 5 // int readTimeout
        start local 6 // java.io.OutputStream trace
        start local 7 // com.sun.jndi.ldap.pool.PoolCallback pcb
         0: .line 131
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 116
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapClient.referenceCount:I
         2: .line 123
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapClient.authenticateCalled:Z
         3: .line 1484
            aload 0 /* this */
            new java.util.Vector
            dup
            iconst_3
            invokespecial java.util.Vector.<init>:(I)V
            putfield com.sun.jndi.ldap.LdapClient.unsolicited:Ljava/util/Vector;
         4: .line 137
            aload 0 /* this */
            new com.sun.jndi.ldap.Connection
            dup
            aload 0 /* this */
            aload 1 /* host */
            iload 2 /* port */
            aload 3 /* socketFactory */
            iload 4 /* connectTimeout */
            iload 5 /* readTimeout */
         5: .line 138
            aload 6 /* trace */
            invokespecial com.sun.jndi.ldap.Connection.<init>:(Lcom/sun/jndi/ldap/LdapClient;Ljava/lang/String;ILjava/lang/String;IILjava/io/OutputStream;)V
         6: .line 137
            putfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
         7: .line 140
            aload 0 /* this */
            aload 7 /* pcb */
            putfield com.sun.jndi.ldap.LdapClient.pcb:Lcom/sun/jndi/ldap/pool/PoolCallback;
         8: .line 141
            aload 0 /* this */
            aload 7 /* pcb */
            ifnull 9
            iconst_1
            goto 10
      StackMap locals: com.sun.jndi.ldap.LdapClient java.lang.String int java.lang.String int int java.io.OutputStream com.sun.jndi.ldap.pool.PoolCallback
      StackMap stack: com.sun.jndi.ldap.LdapClient
         9: iconst_0
      StackMap locals: com.sun.jndi.ldap.LdapClient java.lang.String int java.lang.String int int java.io.OutputStream com.sun.jndi.ldap.pool.PoolCallback
      StackMap stack: com.sun.jndi.ldap.LdapClient int
        10: putfield com.sun.jndi.ldap.LdapClient.pooled:Z
        11: .line 142
            return
        end local 7 // com.sun.jndi.ldap.pool.PoolCallback pcb
        end local 6 // java.io.OutputStream trace
        end local 5 // int readTimeout
        end local 4 // int connectTimeout
        end local 3 // java.lang.String socketFactory
        end local 2 // int port
        end local 1 // java.lang.String host
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0            this  Lcom/sun/jndi/ldap/LdapClient;
            0   12     1            host  Ljava/lang/String;
            0   12     2            port  I
            0   12     3   socketFactory  Ljava/lang/String;
            0   12     4  connectTimeout  I
            0   12     5     readTimeout  I
            0   12     6           trace  Ljava/io/OutputStream;
            0   12     7             pcb  Lcom/sun/jndi/ldap/pool/PoolCallback;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
                Name  Flags
      host            
      port            
      socketFactory   
      connectTimeout  
      readTimeout     
      trace           
      pcb             

  synchronized boolean authenticateCalled();
    descriptor: ()Z
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapClient this
         0: .line 145
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.authenticateCalled:Z
            ireturn
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapClient;

  synchronized com.sun.jndi.ldap.LdapResult authenticate(boolean, java.lang.String, , int, java.lang.String, javax.naming.ldap.Control[], java.util.Hashtable<?, ?>);
    descriptor: (ZLjava/lang/String;Ljava/lang/Object;ILjava/lang/String;[Ljavax/naming/ldap/Control;Ljava/util/Hashtable;)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=8, locals=17, args_size=8
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // boolean initial
        start local 2 // java.lang.String name
        start local 3 // java.lang.Object pw
        start local 4 // int version
        start local 5 // java.lang.String authMechanism
        start local 6 // javax.naming.ldap.Control[] ctls
        start local 7 // java.util.Hashtable env
         0: .line 153
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.readTimeout:I
            istore 8 /* readTimeout */
        start local 8 // int readTimeout
         1: .line 154
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.connectTimeout:I
            putfield com.sun.jndi.ldap.Connection.readTimeout:I
         2: .line 155
            aconst_null
            astore 9 /* res */
        start local 9 // com.sun.jndi.ldap.LdapResult res
         3: .line 158
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapClient.authenticateCalled:Z
         4: .line 161
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.ensureOpen:()V
         5: .line 162
            goto 10
      StackMap locals: com.sun.jndi.ldap.LdapClient int java.lang.String java.lang.Object int java.lang.String javax.naming.ldap.Control[] java.util.Hashtable int com.sun.jndi.ldap.LdapResult
      StackMap stack: java.io.IOException
         6: astore 10 /* e */
        start local 10 // java.io.IOException e
         7: .line 163
            new javax.naming.CommunicationException
            dup
            invokespecial javax.naming.CommunicationException.<init>:()V
            astore 11 /* ne */
        start local 11 // javax.naming.NamingException ne
         8: .line 164
            aload 11 /* ne */
            aload 10 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
         9: .line 165
            aload 11 /* ne */
            athrow
        end local 11 // javax.naming.NamingException ne
        end local 10 // java.io.IOException e
        10: .line 168
      StackMap locals:
      StackMap stack:
            iload 4 /* version */
            lookupswitch { // 3
                    2: 13
                    3: 11
                   32: 11
              default: 15
          }
        11: .line 171
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
        12: .line 172
            goto 18
        13: .line 174
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
        14: .line 175
            goto 18
        15: .line 177
      StackMap locals:
      StackMap stack:
            new javax.naming.CommunicationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Protocol version "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* version */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        16: .line 178
            ldc " not supported"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        17: .line 177
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 181
      StackMap locals:
      StackMap stack:
            aload 5 /* authMechanism */
            ldc "none"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 20
        19: .line 182
            aload 5 /* authMechanism */
            ldc "anonymous"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 40
        20: .line 186
      StackMap locals:
      StackMap stack:
            iload 1 /* initial */
            ifeq 24
        21: .line 187
            iload 4 /* version */
            iconst_2
            if_icmpeq 24
        22: .line 188
            iload 4 /* version */
            bipush 32
            if_icmpeq 24
        23: .line 189
            aload 6 /* ctls */
            ifnull 37
            aload 6 /* ctls */
            arraylength
            ifle 37
        24: .line 192
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            dup
            astore 2 /* name */
            aconst_null
            dup
            astore 3 /* pw */
            checkcast byte[]
            aload 6 /* ctls */
            aconst_null
        25: .line 193
            iconst_0
        26: .line 192
            invokevirtual com.sun.jndi.ldap.LdapClient.ldapBind:(Ljava/lang/String;[B[Ljavax/naming/ldap/Control;Ljava/lang/String;Z)Lcom/sun/jndi/ldap/LdapResult;
            astore 9 /* res */
        27: .line 194
            aload 9 /* res */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifne 84
        28: .line 195
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            invokevirtual com.sun.jndi.ldap.Connection.setBound:()V
        29: .line 197
            goto 84
      StackMap locals:
      StackMap stack: java.io.IOException
        30: astore 10 /* e */
        start local 10 // java.io.IOException e
        31: .line 199
            new javax.naming.CommunicationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "anonymous bind failed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        32: .line 200
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.host:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.port:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        33: .line 199
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
        34: .line 198
            astore 11 /* ne */
        start local 11 // javax.naming.NamingException ne
        35: .line 201
            aload 11 /* ne */
            aload 10 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        36: .line 202
            aload 11 /* ne */
            athrow
        end local 11 // javax.naming.NamingException ne
        end local 10 // java.io.IOException e
        37: .line 206
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.LdapResult
            dup
            invokespecial com.sun.jndi.ldap.LdapResult.<init>:()V
            astore 9 /* res */
        38: .line 207
            aload 9 /* res */
            iconst_0
            putfield com.sun.jndi.ldap.LdapResult.status:I
        39: .line 209
            goto 84
      StackMap locals:
      StackMap stack:
        40: aload 5 /* authMechanism */
            ldc "simple"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 69
        41: .line 211
            aconst_null
            astore 10 /* encodedPw */
        start local 10 // byte[] encodedPw
        42: .line 213
            aload 3 /* pw */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokestatic com.sun.jndi.ldap.LdapClient.encodePassword:(Ljava/lang/Object;Z)[B
            astore 10 /* encodedPw */
        43: .line 214
            aload 0 /* this */
            aload 2 /* name */
            aload 10 /* encodedPw */
            aload 6 /* ctls */
            aconst_null
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapClient.ldapBind:(Ljava/lang/String;[B[Ljavax/naming/ldap/Control;Ljava/lang/String;Z)Lcom/sun/jndi/ldap/LdapResult;
            astore 9 /* res */
        44: .line 215
            aload 9 /* res */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifne 62
        45: .line 216
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            invokevirtual com.sun.jndi.ldap.Connection.setBound:()V
        46: .line 218
            goto 62
      StackMap locals: com.sun.jndi.ldap.LdapClient int java.lang.String java.lang.Object int java.lang.String javax.naming.ldap.Control[] java.util.Hashtable int com.sun.jndi.ldap.LdapResult byte[]
      StackMap stack: java.io.IOException
        47: astore 11 /* e */
        start local 11 // java.io.IOException e
        48: .line 220
            new javax.naming.CommunicationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "simple bind failed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        49: .line 221
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.host:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.port:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        50: .line 220
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
        51: .line 219
            astore 12 /* ne */
        start local 12 // javax.naming.NamingException ne
        52: .line 222
            aload 12 /* ne */
            aload 11 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        53: .line 223
            aload 12 /* ne */
            athrow
        end local 12 // javax.naming.NamingException ne
        end local 11 // java.io.IOException e
        54: .line 224
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 13
        55: .line 227
            aload 10 /* encodedPw */
            aload 3 /* pw */
            if_acmpeq 61
            aload 10 /* encodedPw */
            ifnull 61
        56: .line 228
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        57: goto 60
        58: .line 229
      StackMap locals: com.sun.jndi.ldap.LdapClient int java.lang.String java.lang.Object int java.lang.String javax.naming.ldap.Control[] java.util.Hashtable int com.sun.jndi.ldap.LdapResult byte[] top top java.lang.Throwable int
      StackMap stack:
            aload 10 /* encodedPw */
            iload 14 /* i */
            iconst_0
            bastore
        59: .line 228
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
        60: iload 14 /* i */
            aload 10 /* encodedPw */
            arraylength
            if_icmplt 58
        end local 14 // int i
        61: .line 232
      StackMap locals:
      StackMap stack:
            aload 13
            athrow
        62: .line 227
      StackMap locals: com.sun.jndi.ldap.LdapClient int java.lang.String java.lang.Object int java.lang.String javax.naming.ldap.Control[] java.util.Hashtable int com.sun.jndi.ldap.LdapResult byte[]
      StackMap stack:
            aload 10 /* encodedPw */
            aload 3 /* pw */
            if_acmpeq 84
            aload 10 /* encodedPw */
            ifnull 84
        63: .line 228
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        64: goto 67
        65: .line 229
      StackMap locals: com.sun.jndi.ldap.LdapClient int java.lang.String java.lang.Object int java.lang.String javax.naming.ldap.Control[] java.util.Hashtable int com.sun.jndi.ldap.LdapResult byte[] top top top int
      StackMap stack:
            aload 10 /* encodedPw */
            iload 14 /* i */
            iconst_0
            bastore
        66: .line 228
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
        67: iload 14 /* i */
            aload 10 /* encodedPw */
            arraylength
            if_icmplt 65
        end local 14 // int i
        end local 10 // byte[] encodedPw
        68: .line 233
            goto 84
      StackMap locals: com.sun.jndi.ldap.LdapClient int java.lang.String java.lang.Object int java.lang.String javax.naming.ldap.Control[] java.util.Hashtable int com.sun.jndi.ldap.LdapResult
      StackMap stack:
        69: aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 83
        70: .line 236
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.host:Ljava/lang/String;
            aload 2 /* name */
            aload 3 /* pw */
        71: .line 237
            aload 5 /* authMechanism */
            aload 7 /* env */
            aload 6 /* ctls */
        72: .line 236
            invokestatic com.sun.jndi.ldap.sasl.LdapSasl.saslBind:(Lcom/sun/jndi/ldap/LdapClient;Lcom/sun/jndi/ldap/Connection;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;Ljava/util/Hashtable;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
            astore 9 /* res */
        73: .line 238
            aload 9 /* res */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifne 84
        74: .line 239
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            invokevirtual com.sun.jndi.ldap.Connection.setBound:()V
        75: .line 241
            goto 84
      StackMap locals:
      StackMap stack: java.io.IOException
        76: astore 10 /* e */
        start local 10 // java.io.IOException e
        77: .line 243
            new javax.naming.CommunicationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "SASL bind failed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        78: .line 244
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.host:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.port:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        79: .line 243
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
        80: .line 242
            astore 11 /* ne */
        start local 11 // javax.naming.NamingException ne
        81: .line 245
            aload 11 /* ne */
            aload 10 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        82: .line 246
            aload 11 /* ne */
            athrow
        end local 11 // javax.naming.NamingException ne
        end local 10 // java.io.IOException e
        83: .line 249
      StackMap locals:
      StackMap stack:
            new javax.naming.AuthenticationNotSupportedException
            dup
            aload 5 /* authMechanism */
            invokespecial javax.naming.AuthenticationNotSupportedException.<init>:(Ljava/lang/String;)V
            athrow
        84: .line 255
      StackMap locals:
      StackMap stack:
            iload 1 /* initial */
            ifeq 118
        85: .line 256
            aload 9 /* res */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            iconst_2
            if_icmpne 118
        86: .line 257
            iload 4 /* version */
            bipush 32
            if_icmpne 118
        87: .line 258
            aload 5 /* authMechanism */
            ldc "none"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 90
        88: .line 259
            aload 5 /* authMechanism */
            ldc "anonymous"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 90
        89: .line 260
            aload 5 /* authMechanism */
            ldc "simple"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 118
        90: .line 262
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 10 /* encodedPw */
        start local 10 // byte[] encodedPw
        91: .line 264
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
        92: .line 265
            aload 3 /* pw */
            iconst_0
            invokestatic com.sun.jndi.ldap.LdapClient.encodePassword:(Ljava/lang/Object;Z)[B
            astore 10 /* encodedPw */
        93: .line 266
            aload 0 /* this */
            aload 2 /* name */
            aload 10 /* encodedPw */
            aload 6 /* ctls */
            aconst_null
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapClient.ldapBind:(Ljava/lang/String;[B[Ljavax/naming/ldap/Control;Ljava/lang/String;Z)Lcom/sun/jndi/ldap/LdapResult;
            astore 9 /* res */
        94: .line 267
            aload 9 /* res */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            ifne 112
        95: .line 268
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            invokevirtual com.sun.jndi.ldap.Connection.setBound:()V
        96: .line 270
            goto 112
      StackMap locals: com.sun.jndi.ldap.LdapClient int java.lang.String java.lang.Object int java.lang.String javax.naming.ldap.Control[] java.util.Hashtable int com.sun.jndi.ldap.LdapResult byte[]
      StackMap stack: java.io.IOException
        97: astore 11 /* e */
        start local 11 // java.io.IOException e
        98: .line 272
            new javax.naming.CommunicationException
            dup
            new java.lang.StringBuilder
            dup
            aload 5 /* authMechanism */
            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;
        99: .line 273
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.host:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.port:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       100: .line 272
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
       101: .line 271
            astore 12 /* ne */
        start local 12 // javax.naming.NamingException ne
       102: .line 274
            aload 12 /* ne */
            aload 11 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
       103: .line 275
            aload 12 /* ne */
            athrow
        end local 12 // javax.naming.NamingException ne
        end local 11 // java.io.IOException e
       104: .line 276
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 13
       105: .line 279
            aload 10 /* encodedPw */
            aload 3 /* pw */
            if_acmpeq 111
            aload 10 /* encodedPw */
            ifnull 111
       106: .line 280
            iconst_0
            istore 14 /* i */
        start local 14 // int i
       107: goto 110
       108: .line 281
      StackMap locals: com.sun.jndi.ldap.LdapClient int java.lang.String java.lang.Object int java.lang.String javax.naming.ldap.Control[] java.util.Hashtable int com.sun.jndi.ldap.LdapResult byte[] top top java.lang.Throwable int
      StackMap stack:
            aload 10 /* encodedPw */
            iload 14 /* i */
            iconst_0
            bastore
       109: .line 280
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
       110: iload 14 /* i */
            aload 10 /* encodedPw */
            arraylength
            if_icmplt 108
        end local 14 // int i
       111: .line 284
      StackMap locals:
      StackMap stack:
            aload 13
            athrow
       112: .line 279
      StackMap locals: com.sun.jndi.ldap.LdapClient int java.lang.String java.lang.Object int java.lang.String javax.naming.ldap.Control[] java.util.Hashtable int com.sun.jndi.ldap.LdapResult byte[]
      StackMap stack:
            aload 10 /* encodedPw */
            aload 3 /* pw */
            if_acmpeq 118
            aload 10 /* encodedPw */
            ifnull 118
       113: .line 280
            iconst_0
            istore 14 /* i */
        start local 14 // int i
       114: goto 117
       115: .line 281
      StackMap locals: com.sun.jndi.ldap.LdapClient int java.lang.String java.lang.Object int java.lang.String javax.naming.ldap.Control[] java.util.Hashtable int com.sun.jndi.ldap.LdapResult byte[] top top top int
      StackMap stack:
            aload 10 /* encodedPw */
            iload 14 /* i */
            iconst_0
            bastore
       116: .line 280
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
       117: iload 14 /* i */
            aload 10 /* encodedPw */
            arraylength
            if_icmplt 115
        end local 14 // int i
        end local 10 // byte[] encodedPw
       118: .line 284
      StackMap locals: com.sun.jndi.ldap.LdapClient int java.lang.String java.lang.Object int java.lang.String javax.naming.ldap.Control[] java.util.Hashtable int com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 9 /* res */
       119: .line 293
            getfield com.sun.jndi.ldap.LdapResult.status:I
            bipush 32
            if_icmpne 123
       120: .line 294
            new javax.naming.AuthenticationException
            dup
       121: .line 295
            aload 9 /* res */
            getfield com.sun.jndi.ldap.LdapResult.status:I
            aload 9 /* res */
            getfield com.sun.jndi.ldap.LdapResult.errorMessage:Ljava/lang/String;
            invokestatic com.sun.jndi.ldap.LdapClient.getErrorMessage:(ILjava/lang/String;)Ljava/lang/String;
       122: .line 294
            invokespecial javax.naming.AuthenticationException.<init>:(Ljava/lang/String;)V
            athrow
       123: .line 297
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.Connection.setV3:(Z)V
       124: .line 298
            aload 9 /* res */
            astore 16
       125: .line 300
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            iload 8 /* readTimeout */
            putfield com.sun.jndi.ldap.Connection.readTimeout:I
       126: .line 298
            aload 16
            areturn
       127: .line 299
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 15
       128: .line 300
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            iload 8 /* readTimeout */
            putfield com.sun.jndi.ldap.Connection.readTimeout:I
       129: .line 301
            aload 15
            athrow
        end local 9 // com.sun.jndi.ldap.LdapResult res
        end local 8 // int readTimeout
        end local 7 // java.util.Hashtable env
        end local 6 // javax.naming.ldap.Control[] ctls
        end local 5 // java.lang.String authMechanism
        end local 4 // int version
        end local 3 // java.lang.Object pw
        end local 2 // java.lang.String name
        end local 1 // boolean initial
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0  130     0           this  Lcom/sun/jndi/ldap/LdapClient;
            0  130     1        initial  Z
            0  130     2           name  Ljava/lang/String;
            0  130     3             pw  Ljava/lang/Object;
            0  130     4        version  I
            0  130     5  authMechanism  Ljava/lang/String;
            0  130     6           ctls  [Ljavax/naming/ldap/Control;
            0  130     7            env  Ljava/util/Hashtable<**>;
            1  130     8    readTimeout  I
            3  130     9            res  Lcom/sun/jndi/ldap/LdapResult;
            7   10    10              e  Ljava/io/IOException;
            8   10    11             ne  Ljavax/naming/NamingException;
           31   37    10              e  Ljava/io/IOException;
           35   37    11             ne  Ljavax/naming/NamingException;
           42   68    10      encodedPw  [B
           48   54    11              e  Ljava/io/IOException;
           52   54    12             ne  Ljavax/naming/NamingException;
           57   61    14              i  I
           64   68    14              i  I
           77   83    10              e  Ljava/io/IOException;
           81   83    11             ne  Ljavax/naming/NamingException;
           91  118    10      encodedPw  [B
           98  104    11              e  Ljava/io/IOException;
          102  104    12             ne  Ljavax/naming/NamingException;
          107  111    14              i  I
          114  118    14              i  I
      Exception table:
        from    to  target  type
           4     5       6  Class java.io.IOException
          24    29      30  Class java.io.IOException
          42    46      47  Class java.io.IOException
          42    54      54  any
          70    75      76  Class java.io.IOException
          91    96      97  Class java.io.IOException
          91   104     104  any
           3   125     127  any
    Exceptions:
      throws javax.naming.NamingException
    Signature: (ZLjava/lang/String;Ljava/lang/Object;ILjava/lang/String;[Ljavax/naming/ldap/Control;Ljava/util/Hashtable<**>;)Lcom/sun/jndi/ldap/LdapResult;
    MethodParameters:
               Name  Flags
      initial        
      name           
      pw             
      version        
      authMechanism  
      ctls           
      env            

  public synchronized com.sun.jndi.ldap.LdapResult ldapBind(java.lang.String, byte[], javax.naming.ldap.Control[], java.lang.String, boolean);
    descriptor: (Ljava/lang/String;[B[Ljavax/naming/ldap/Control;Ljava/lang/String;Z)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=11, args_size=6
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // java.lang.String dn
        start local 2 // byte[] toServer
        start local 3 // javax.naming.ldap.Control[] bindCtls
        start local 4 // java.lang.String auth
        start local 5 // boolean pauseAfterReceipt
         0: .line 316
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.ensureOpen:()V
         1: .line 319
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aconst_null
            invokevirtual com.sun.jndi.ldap.Connection.abandonOutstandingReqs:([Ljavax/naming/ldap/Control;)V
         2: .line 321
            new com.sun.jndi.ldap.BerEncoder
            dup
            invokespecial com.sun.jndi.ldap.BerEncoder.<init>:()V
            astore 6 /* ber */
        start local 6 // com.sun.jndi.ldap.BerEncoder ber
         3: .line 322
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            invokevirtual com.sun.jndi.ldap.Connection.getMsgId:()I
            istore 7 /* curMsgId */
        start local 7 // int curMsgId
         4: .line 323
            new com.sun.jndi.ldap.LdapResult
            dup
            invokespecial com.sun.jndi.ldap.LdapResult.<init>:()V
            astore 8 /* res */
        start local 8 // com.sun.jndi.ldap.LdapResult res
         5: .line 324
            aload 8 /* res */
            iconst_1
            putfield com.sun.jndi.ldap.LdapResult.status:I
         6: .line 329
            aload 6 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         7: .line 330
            aload 6 /* ber */
            iload 7 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
         8: .line 331
            aload 6 /* ber */
            bipush 96
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         9: .line 332
            aload 6 /* ber */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 10
            iconst_3
            goto 11
      StackMap locals: com.sun.jndi.ldap.LdapClient java.lang.String byte[] javax.naming.ldap.Control[] java.lang.String int com.sun.jndi.ldap.BerEncoder int com.sun.jndi.ldap.LdapResult
      StackMap stack: com.sun.jndi.ldap.BerEncoder
        10: iconst_2
      StackMap locals: com.sun.jndi.ldap.LdapClient java.lang.String byte[] javax.naming.ldap.Control[] java.lang.String int com.sun.jndi.ldap.BerEncoder int com.sun.jndi.ldap.LdapResult
      StackMap stack: com.sun.jndi.ldap.BerEncoder int
        11: invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
        12: .line 333
            aload 6 /* ber */
            aload 1 /* dn */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;Z)V
        13: .line 336
            aload 4 /* auth */
            ifnull 22
        14: .line 337
            aload 6 /* ber */
            sipush 163
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
        15: .line 338
            aload 6 /* ber */
            aload 4 /* auth */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;Z)V
        16: .line 339
            aload 2 /* toServer */
            ifnull 20
        17: .line 340
            aload 6 /* ber */
            aload 2 /* toServer */
        18: .line 341
            iconst_4
        19: .line 340
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BI)V
        20: .line 343
      StackMap locals:
      StackMap stack:
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        21: .line 344
            goto 26
        22: .line 345
      StackMap locals:
      StackMap stack:
            aload 2 /* toServer */
            ifnull 25
        23: .line 346
            aload 6 /* ber */
            aload 2 /* toServer */
            sipush 128
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BI)V
        24: .line 347
            goto 26
        25: .line 348
      StackMap locals:
      StackMap stack:
            aload 6 /* ber */
            aconst_null
            sipush 128
            iconst_0
            iconst_0
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BIII)V
        26: .line 351
      StackMap locals:
      StackMap stack:
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        27: .line 354
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 29
        28: .line 355
            aload 6 /* ber */
            aload 3 /* bindCtls */
            invokestatic com.sun.jndi.ldap.LdapClient.encodeControls:(Lcom/sun/jndi/ldap/BerEncoder;[Ljavax/naming/ldap/Control;)V
        29: .line 357
      StackMap locals:
      StackMap stack:
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        30: .line 359
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 6 /* ber */
            iload 7 /* curMsgId */
            iload 5 /* pauseAfterReceipt */
            invokevirtual com.sun.jndi.ldap.Connection.writeRequest:(Lcom/sun/jndi/ldap/BerEncoder;IZ)Lcom/sun/jndi/ldap/LdapRequest;
            astore 9 /* req */
        start local 9 // com.sun.jndi.ldap.LdapRequest req
        31: .line 360
            aload 2 /* toServer */
            ifnull 33
        32: .line 361
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.reset:()V
        33: .line 365
      StackMap locals: com.sun.jndi.ldap.LdapRequest
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 9 /* req */
            invokevirtual com.sun.jndi.ldap.Connection.readReply:(Lcom/sun/jndi/ldap/LdapRequest;)Lcom/sun/jndi/ldap/BerDecoder;
            astore 10 /* rber */
        start local 10 // com.sun.jndi.ldap.BerDecoder rber
        34: .line 367
            aload 10 /* rber */
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            pop
        35: .line 368
            aload 10 /* rber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseInt:()I
            pop
        36: .line 369
            aload 10 /* rber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseByte:()I
            bipush 97
            if_icmpeq 38
        37: .line 370
            aload 8 /* res */
            areturn
        38: .line 373
      StackMap locals: com.sun.jndi.ldap.BerDecoder
      StackMap stack:
            aload 10 /* rber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseLength:()I
            pop
        39: .line 374
            aload 10 /* rber */
            aload 8 /* res */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokestatic com.sun.jndi.ldap.LdapClient.parseResult:(Lcom/sun/jndi/ldap/BerDecoder;Lcom/sun/jndi/ldap/LdapResult;Z)V
        40: .line 377
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 44
        41: .line 378
            aload 10 /* rber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.bytesLeft:()I
            ifle 44
        42: .line 379
            aload 10 /* rber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.peekByte:()I
            sipush 135
            if_icmpne 44
        43: .line 380
            aload 8 /* res */
            aload 10 /* rber */
            sipush 135
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseOctetString:(I[I)[B
            putfield com.sun.jndi.ldap.LdapResult.serverCreds:[B
        44: .line 383
      StackMap locals:
      StackMap stack:
            aload 8 /* res */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 45
            aload 10 /* rber */
            invokestatic com.sun.jndi.ldap.LdapClient.parseControls:(Lcom/sun/jndi/ldap/BerDecoder;)Ljava/util/Vector;
            goto 46
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapResult
        45: aconst_null
      StackMap locals: com.sun.jndi.ldap.LdapClient java.lang.String byte[] javax.naming.ldap.Control[] java.lang.String int com.sun.jndi.ldap.BerEncoder int com.sun.jndi.ldap.LdapResult com.sun.jndi.ldap.LdapRequest com.sun.jndi.ldap.BerDecoder
      StackMap stack: com.sun.jndi.ldap.LdapResult java.util.Vector
        46: putfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
        47: .line 385
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 9 /* req */
            invokevirtual com.sun.jndi.ldap.Connection.removeRequest:(Lcom/sun/jndi/ldap/LdapRequest;)V
        48: .line 386
            aload 8 /* res */
            areturn
        end local 10 // com.sun.jndi.ldap.BerDecoder rber
        end local 9 // com.sun.jndi.ldap.LdapRequest req
        end local 8 // com.sun.jndi.ldap.LdapResult res
        end local 7 // int curMsgId
        end local 6 // com.sun.jndi.ldap.BerEncoder ber
        end local 5 // boolean pauseAfterReceipt
        end local 4 // java.lang.String auth
        end local 3 // javax.naming.ldap.Control[] bindCtls
        end local 2 // byte[] toServer
        end local 1 // java.lang.String dn
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   49     0               this  Lcom/sun/jndi/ldap/LdapClient;
            0   49     1                 dn  Ljava/lang/String;
            0   49     2           toServer  [B
            0   49     3           bindCtls  [Ljavax/naming/ldap/Control;
            0   49     4               auth  Ljava/lang/String;
            0   49     5  pauseAfterReceipt  Z
            3   49     6                ber  Lcom/sun/jndi/ldap/BerEncoder;
            4   49     7           curMsgId  I
            5   49     8                res  Lcom/sun/jndi/ldap/LdapResult;
           31   49     9                req  Lcom/sun/jndi/ldap/LdapRequest;
           34   49    10               rber  Lcom/sun/jndi/ldap/BerDecoder;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
                   Name  Flags
      dn                 
      toServer           
      bindCtls           
      auth               
      pauseAfterReceipt  

  boolean usingSaslStreams();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapClient this
         0: .line 396
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.inStream:Ljava/io/InputStream;
            instanceof com.sun.jndi.ldap.sasl.SaslInputStream
            ireturn
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/jndi/ldap/LdapClient;

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

  private static byte[] encodePassword(java.lang.Object, boolean);
    descriptor: (Ljava/lang/Object;Z)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Object pw
        start local 1 // boolean v3
         0: .line 412
            aload 0 /* pw */
            instanceof char[]
            ifeq 2
         1: .line 413
            new java.lang.String
            dup
            aload 0 /* pw */
            checkcast char[]
            invokespecial java.lang.String.<init>:([C)V
            astore 0 /* pw */
         2: .line 416
      StackMap locals:
      StackMap stack:
            aload 0 /* pw */
            instanceof java.lang.String
            ifeq 6
         3: .line 417
            iload 1 /* v3 */
            ifeq 5
         4: .line 418
            aload 0 /* pw */
            checkcast java.lang.String
            ldc "UTF8"
            invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
            areturn
         5: .line 420
      StackMap locals:
      StackMap stack:
            aload 0 /* pw */
            checkcast java.lang.String
            ldc "8859_1"
            invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
            areturn
         6: .line 423
      StackMap locals:
      StackMap stack:
            aload 0 /* pw */
            checkcast byte[]
            areturn
        end local 1 // boolean v3
        end local 0 // java.lang.Object pw
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0    pw  Ljava/lang/Object;
            0    7     1    v3  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      pw    
      v3    

  synchronized void close(javax.naming.ldap.Control[], boolean);
    descriptor: ([Ljavax/naming/ldap/Control;Z)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // javax.naming.ldap.Control[] reqCtls
        start local 2 // boolean hardClose
         0: .line 428
            aload 0 /* this */
            dup
            getfield com.sun.jndi.ldap.LdapClient.referenceCount:I
            iconst_1
            isub
            putfield com.sun.jndi.ldap.LdapClient.referenceCount:I
         1: .line 436
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.referenceCount:I
            ifgt 10
         2: .line 438
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.pooled:Z
            ifne 5
         3: .line 440
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 1 /* reqCtls */
            iconst_0
            invokevirtual com.sun.jndi.ldap.Connection.cleanup:([Ljavax/naming/ldap/Control;Z)V
         4: .line 441
            goto 10
         5: .line 444
      StackMap locals:
      StackMap stack:
            iload 2 /* hardClose */
            ifeq 9
         6: .line 445
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 1 /* reqCtls */
            iconst_0
            invokevirtual com.sun.jndi.ldap.Connection.cleanup:([Ljavax/naming/ldap/Control;Z)V
         7: .line 446
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.pcb:Lcom/sun/jndi/ldap/pool/PoolCallback;
            aload 0 /* this */
            invokeinterface com.sun.jndi.ldap.pool.PoolCallback.removePooledConnection:(Lcom/sun/jndi/ldap/pool/PooledConnection;)Z
            pop
         8: .line 447
            goto 10
         9: .line 448
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.pcb:Lcom/sun/jndi/ldap/pool/PoolCallback;
            aload 0 /* this */
            invokeinterface com.sun.jndi.ldap.pool.PoolCallback.releasePooledConnection:(Lcom/sun/jndi/ldap/pool/PooledConnection;)Z
            pop
        10: .line 452
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean hardClose
        end local 1 // javax.naming.ldap.Control[] reqCtls
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lcom/sun/jndi/ldap/LdapClient;
            0   11     1    reqCtls  [Ljavax/naming/ldap/Control;
            0   11     2  hardClose  Z
    MethodParameters:
           Name  Flags
      reqCtls    
      hardClose  

  private void forceClose(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // boolean cleanPool
         0: .line 456
            aload 0 /* this */
            iconst_0
            putfield com.sun.jndi.ldap.LdapClient.referenceCount:I
         1: .line 465
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aconst_null
            iconst_0
            invokevirtual com.sun.jndi.ldap.Connection.cleanup:([Ljavax/naming/ldap/Control;Z)V
         2: .line 466
            iload 1 /* cleanPool */
            ifeq 4
         3: .line 467
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.pcb:Lcom/sun/jndi/ldap/pool/PoolCallback;
            aload 0 /* this */
            invokeinterface com.sun.jndi.ldap.pool.PoolCallback.removePooledConnection:(Lcom/sun/jndi/ldap/pool/PooledConnection;)Z
            pop
         4: .line 469
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean cleanPool
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/sun/jndi/ldap/LdapClient;
            0    5     1  cleanPool  Z
    MethodParameters:
           Name  Flags
      cleanPool  

  protected void finalize();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapClient this
         0: .line 474
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.pooled:Z
            invokevirtual com.sun.jndi.ldap.LdapClient.forceClose:(Z)V
         1: .line 475
            return
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/LdapClient;

  public synchronized void closeConnection();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapClient this
         0: .line 481
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.jndi.ldap.LdapClient.forceClose:(Z)V
         1: .line 482
            return
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/LdapClient;

  void processConnectionClosure();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapClient this
         0: .line 492
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.unsolicited:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            ifle 6
         1: .line 494
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            ifnull 4
         2: .line 495
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.host: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 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.port:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " connection closed"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* msg */
        start local 1 // java.lang.String msg
         3: .line 496
            goto 5
        end local 1 // java.lang.String msg
         4: .line 497
      StackMap locals:
      StackMap stack:
            ldc "Connection closed"
            astore 1 /* msg */
        start local 1 // java.lang.String msg
         5: .line 499
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            new javax.naming.CommunicationException
            dup
            aload 1 /* msg */
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            invokevirtual com.sun.jndi.ldap.LdapClient.notifyUnsolicited:(Ljava/lang/Object;)V
        end local 1 // java.lang.String msg
         6: .line 503
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.pooled:Z
            ifeq 8
         7: .line 504
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.pcb:Lcom/sun/jndi/ldap/pool/PoolCallback;
            aload 0 /* this */
            invokeinterface com.sun.jndi.ldap.pool.PoolCallback.removePooledConnection:(Lcom/sun/jndi/ldap/pool/PooledConnection;)Z
            pop
         8: .line 506
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/jndi/ldap/LdapClient;
            3    4     1   msg  Ljava/lang/String;
            5    6     1   msg  Ljava/lang/String;

  com.sun.jndi.ldap.LdapResult search(java.lang.String, int, int, int, int, boolean, java.lang.String[], java.lang.String, int, javax.naming.ldap.Control[], java.util.Hashtable<java.lang.String, java.lang.Boolean>, boolean, int);
    descriptor: (Ljava/lang/String;IIIIZ[Ljava/lang/String;Ljava/lang/String;I[Ljavax/naming/ldap/Control;Ljava/util/Hashtable;ZI)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0000) 
    Code:
      stack=5, locals=18, args_size=14
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // java.lang.String dn
        start local 2 // int scope
        start local 3 // int deref
        start local 4 // int sizeLimit
        start local 5 // int timeLimit
        start local 6 // boolean attrsOnly
        start local 7 // java.lang.String[] attrs
        start local 8 // java.lang.String filter
        start local 9 // int batchSize
        start local 10 // javax.naming.ldap.Control[] reqCtls
        start local 11 // java.util.Hashtable binaryAttrs
        start local 12 // boolean waitFirstReply
        start local 13 // int replyQueueCapacity
         0: .line 525
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.ensureOpen:()V
         1: .line 527
            new com.sun.jndi.ldap.LdapResult
            dup
            invokespecial com.sun.jndi.ldap.LdapResult.<init>:()V
            astore 14 /* res */
        start local 14 // com.sun.jndi.ldap.LdapResult res
         2: .line 529
            new com.sun.jndi.ldap.BerEncoder
            dup
            invokespecial com.sun.jndi.ldap.BerEncoder.<init>:()V
            astore 15 /* ber */
        start local 15 // com.sun.jndi.ldap.BerEncoder ber
         3: .line 530
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            invokevirtual com.sun.jndi.ldap.Connection.getMsgId:()I
            istore 16 /* curMsgId */
        start local 16 // int curMsgId
         4: .line 532
            aload 15 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         5: .line 533
            aload 15 /* ber */
            iload 16 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
         6: .line 534
            aload 15 /* ber */
            bipush 99
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         7: .line 535
            aload 15 /* ber */
            aload 1 /* dn */
            ifnonnull 8
            ldc ""
            goto 9
      StackMap locals: com.sun.jndi.ldap.LdapClient java.lang.String int int int int int java.lang.String[] java.lang.String int javax.naming.ldap.Control[] java.util.Hashtable int int com.sun.jndi.ldap.LdapResult com.sun.jndi.ldap.BerEncoder int
      StackMap stack: com.sun.jndi.ldap.BerEncoder
         8: aload 1 /* dn */
      StackMap locals: com.sun.jndi.ldap.LdapClient java.lang.String int int int int int java.lang.String[] java.lang.String int javax.naming.ldap.Control[] java.util.Hashtable int int com.sun.jndi.ldap.LdapResult com.sun.jndi.ldap.BerEncoder int
      StackMap stack: com.sun.jndi.ldap.BerEncoder java.lang.String
         9: aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;Z)V
        10: .line 536
            aload 15 /* ber */
            iload 2 /* scope */
            bipush 10
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(II)V
        11: .line 537
            aload 15 /* ber */
            iload 3 /* deref */
            bipush 10
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(II)V
        12: .line 538
            aload 15 /* ber */
            iload 4 /* sizeLimit */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
        13: .line 539
            aload 15 /* ber */
            iload 5 /* timeLimit */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
        14: .line 540
            aload 15 /* ber */
            iload 6 /* attrsOnly */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeBoolean:(Z)V
        15: .line 541
            aload 15 /* ber */
            aload 8 /* filter */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokestatic com.sun.jndi.ldap.Filter.encodeFilterString:(Lcom/sun/jndi/ldap/BerEncoder;Ljava/lang/String;Z)V
        16: .line 542
            aload 15 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
        17: .line 543
            aload 15 /* ber */
            aload 7 /* attrs */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeStringArray:([Ljava/lang/String;Z)V
        18: .line 544
            aload 15 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        19: .line 545
            aload 15 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        20: .line 546
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 21
            aload 15 /* ber */
            aload 10 /* reqCtls */
            invokestatic com.sun.jndi.ldap.LdapClient.encodeControls:(Lcom/sun/jndi/ldap/BerEncoder;[Ljavax/naming/ldap/Control;)V
        21: .line 547
      StackMap locals:
      StackMap stack:
            aload 15 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        22: .line 550
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 15 /* ber */
            iload 16 /* curMsgId */
            iconst_0
            iload 13 /* replyQueueCapacity */
            invokevirtual com.sun.jndi.ldap.Connection.writeRequest:(Lcom/sun/jndi/ldap/BerEncoder;IZI)Lcom/sun/jndi/ldap/LdapRequest;
        23: .line 549
            astore 17 /* req */
        start local 17 // com.sun.jndi.ldap.LdapRequest req
        24: .line 552
            aload 14 /* res */
            iload 16 /* curMsgId */
            putfield com.sun.jndi.ldap.LdapResult.msgId:I
        25: .line 553
            aload 14 /* res */
            iconst_0
            putfield com.sun.jndi.ldap.LdapResult.status:I
        26: .line 554
            iload 12 /* waitFirstReply */
            ifeq 28
        27: .line 556
            aload 0 /* this */
            aload 17 /* req */
            iload 9 /* batchSize */
            aload 14 /* res */
            aload 11 /* binaryAttrs */
            invokevirtual com.sun.jndi.ldap.LdapClient.getSearchReply:(Lcom/sun/jndi/ldap/LdapRequest;ILcom/sun/jndi/ldap/LdapResult;Ljava/util/Hashtable;)Lcom/sun/jndi/ldap/LdapResult;
            astore 14 /* res */
        28: .line 558
      StackMap locals: com.sun.jndi.ldap.LdapRequest
      StackMap stack:
            aload 14 /* res */
            areturn
        end local 17 // com.sun.jndi.ldap.LdapRequest req
        end local 16 // int curMsgId
        end local 15 // com.sun.jndi.ldap.BerEncoder ber
        end local 14 // com.sun.jndi.ldap.LdapResult res
        end local 13 // int replyQueueCapacity
        end local 12 // boolean waitFirstReply
        end local 11 // java.util.Hashtable binaryAttrs
        end local 10 // javax.naming.ldap.Control[] reqCtls
        end local 9 // int batchSize
        end local 8 // java.lang.String filter
        end local 7 // java.lang.String[] attrs
        end local 6 // boolean attrsOnly
        end local 5 // int timeLimit
        end local 4 // int sizeLimit
        end local 3 // int deref
        end local 2 // int scope
        end local 1 // java.lang.String dn
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   29     0                this  Lcom/sun/jndi/ldap/LdapClient;
            0   29     1                  dn  Ljava/lang/String;
            0   29     2               scope  I
            0   29     3               deref  I
            0   29     4           sizeLimit  I
            0   29     5           timeLimit  I
            0   29     6           attrsOnly  Z
            0   29     7               attrs  [Ljava/lang/String;
            0   29     8              filter  Ljava/lang/String;
            0   29     9           batchSize  I
            0   29    10             reqCtls  [Ljavax/naming/ldap/Control;
            0   29    11         binaryAttrs  Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Boolean;>;
            0   29    12      waitFirstReply  Z
            0   29    13  replyQueueCapacity  I
            2   29    14                 res  Lcom/sun/jndi/ldap/LdapResult;
            3   29    15                 ber  Lcom/sun/jndi/ldap/BerEncoder;
            4   29    16            curMsgId  I
           24   29    17                 req  Lcom/sun/jndi/ldap/LdapRequest;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    Signature: (Ljava/lang/String;IIIIZ[Ljava/lang/String;Ljava/lang/String;I[Ljavax/naming/ldap/Control;Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Boolean;>;ZI)Lcom/sun/jndi/ldap/LdapResult;
    MethodParameters:
                    Name  Flags
      dn                  
      scope               
      deref               
      sizeLimit           
      timeLimit           
      attrsOnly           
      attrs               
      filter              
      batchSize           
      reqCtls             
      binaryAttrs         
      waitFirstReply      
      replyQueueCapacity  

  void clearSearchReply(com.sun.jndi.ldap.LdapResult, javax.naming.ldap.Control[]);
    descriptor: (Lcom/sun/jndi/ldap/LdapResult;[Ljavax/naming/ldap/Control;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // com.sun.jndi.ldap.LdapResult res
        start local 2 // javax.naming.ldap.Control[] ctls
         0: .line 565
            aload 1 /* res */
            ifnull 8
         1: .line 569
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.msgId:I
            invokevirtual com.sun.jndi.ldap.Connection.findRequest:(I)Lcom/sun/jndi/ldap/LdapRequest;
            astore 3 /* req */
        start local 3 // com.sun.jndi.ldap.LdapRequest req
         2: .line 570
            aload 3 /* req */
            ifnonnull 4
         3: .line 571
            return
         4: .line 579
      StackMap locals: com.sun.jndi.ldap.LdapRequest
      StackMap stack:
            aload 3 /* req */
            invokevirtual com.sun.jndi.ldap.LdapRequest.hasSearchCompleted:()Z
            ifeq 7
         5: .line 580
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 3 /* req */
            invokevirtual com.sun.jndi.ldap.Connection.removeRequest:(Lcom/sun/jndi/ldap/LdapRequest;)V
         6: .line 581
            goto 8
         7: .line 582
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 3 /* req */
            aload 2 /* ctls */
            invokevirtual com.sun.jndi.ldap.Connection.abandonRequest:(Lcom/sun/jndi/ldap/LdapRequest;[Ljavax/naming/ldap/Control;)V
        end local 3 // com.sun.jndi.ldap.LdapRequest req
         8: .line 585
      StackMap locals:
      StackMap stack:
            return
        end local 2 // javax.naming.ldap.Control[] ctls
        end local 1 // com.sun.jndi.ldap.LdapResult res
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/jndi/ldap/LdapClient;
            0    9     1   res  Lcom/sun/jndi/ldap/LdapResult;
            0    9     2  ctls  [Ljavax/naming/ldap/Control;
            2    8     3   req  Lcom/sun/jndi/ldap/LdapRequest;
    MethodParameters:
      Name  Flags
      res   
      ctls  

  com.sun.jndi.ldap.LdapResult getSearchReply(int, com.sun.jndi.ldap.LdapResult, java.util.Hashtable<java.lang.String, java.lang.Boolean>);
    descriptor: (ILcom/sun/jndi/ldap/LdapResult;Ljava/util/Hashtable;)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // int batchSize
        start local 2 // com.sun.jndi.ldap.LdapResult res
        start local 3 // java.util.Hashtable binaryAttrs
         0: .line 593
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.ensureOpen:()V
         1: .line 597
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 2 /* res */
            getfield com.sun.jndi.ldap.LdapResult.msgId:I
            invokevirtual com.sun.jndi.ldap.Connection.findRequest:(I)Lcom/sun/jndi/ldap/LdapRequest;
            dup
            astore 4 /* req */
        start local 4 // com.sun.jndi.ldap.LdapRequest req
         2: ifnonnull 4
         3: .line 598
            aconst_null
            areturn
         4: .line 601
      StackMap locals: com.sun.jndi.ldap.LdapRequest
      StackMap stack:
            aload 0 /* this */
            aload 4 /* req */
            iload 1 /* batchSize */
            aload 2 /* res */
            aload 3 /* binaryAttrs */
            invokevirtual com.sun.jndi.ldap.LdapClient.getSearchReply:(Lcom/sun/jndi/ldap/LdapRequest;ILcom/sun/jndi/ldap/LdapResult;Ljava/util/Hashtable;)Lcom/sun/jndi/ldap/LdapResult;
            areturn
        end local 4 // com.sun.jndi.ldap.LdapRequest req
        end local 3 // java.util.Hashtable binaryAttrs
        end local 2 // com.sun.jndi.ldap.LdapResult res
        end local 1 // int batchSize
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lcom/sun/jndi/ldap/LdapClient;
            0    5     1    batchSize  I
            0    5     2          res  Lcom/sun/jndi/ldap/LdapResult;
            0    5     3  binaryAttrs  Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Boolean;>;
            2    5     4          req  Lcom/sun/jndi/ldap/LdapRequest;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    Signature: (ILcom/sun/jndi/ldap/LdapResult;Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Boolean;>;)Lcom/sun/jndi/ldap/LdapResult;
    MethodParameters:
             Name  Flags
      batchSize    
      res          
      binaryAttrs  

  private com.sun.jndi.ldap.LdapResult getSearchReply(com.sun.jndi.ldap.LdapRequest, int, com.sun.jndi.ldap.LdapResult, java.util.Hashtable<java.lang.String, java.lang.Boolean>);
    descriptor: (Lcom/sun/jndi/ldap/LdapRequest;ILcom/sun/jndi/ldap/LdapResult;Ljava/util/Hashtable;)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=15, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // com.sun.jndi.ldap.LdapRequest req
        start local 2 // int batchSize
        start local 3 // com.sun.jndi.ldap.LdapResult res
        start local 4 // java.util.Hashtable binaryAttrs
         0: .line 608
            iload 2 /* batchSize */
            ifne 2
         1: .line 609
            ldc 2147483647
            istore 2 /* batchSize */
         2: .line 611
      StackMap locals:
      StackMap stack:
            aload 3 /* res */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            ifnull 5
         3: .line 612
            aload 3 /* res */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            iconst_0
            invokevirtual java.util.Vector.setSize:(I)V
         4: .line 613
            goto 10
         5: .line 614
      StackMap locals:
      StackMap stack:
            aload 3 /* res */
         6: .line 615
            new java.util.Vector
            dup
            iload 2 /* batchSize */
            ldc 2147483647
            if_icmpne 7
            bipush 32
            goto 8
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapRequest int com.sun.jndi.ldap.LdapResult java.util.Hashtable
      StackMap stack: com.sun.jndi.ldap.LdapResult new 6 new 6
         7: iload 2 /* batchSize */
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapRequest int com.sun.jndi.ldap.LdapResult java.util.Hashtable
      StackMap stack: com.sun.jndi.ldap.LdapResult new 6 new 6 int
         8: invokespecial java.util.Vector.<init>:(I)V
         9: .line 614
            putfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
        10: .line 618
      StackMap locals:
      StackMap stack:
            aload 3 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            ifnull 12
        11: .line 619
            aload 3 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            iconst_0
            invokevirtual java.util.Vector.setSize:(I)V
        12: .line 632
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        13: goto 64
        14: .line 633
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapRequest int com.sun.jndi.ldap.LdapResult java.util.Hashtable top top top top top top top top int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 1 /* req */
            invokevirtual com.sun.jndi.ldap.Connection.readReply:(Lcom/sun/jndi/ldap/LdapRequest;)Lcom/sun/jndi/ldap/BerDecoder;
            astore 5 /* replyBer */
        start local 5 // com.sun.jndi.ldap.BerDecoder replyBer
        15: .line 638
            aload 5 /* replyBer */
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            pop
        16: .line 639
            aload 5 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseInt:()I
            pop
        17: .line 640
            aload 5 /* replyBer */
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            istore 6 /* seq */
        start local 6 // int seq
        18: .line 642
            iload 6 /* seq */
            bipush 100
            if_icmpne 37
        19: .line 645
            new javax.naming.directory.BasicAttributes
            dup
            iconst_1
            invokespecial javax.naming.directory.BasicAttributes.<init>:(Z)V
            astore 7 /* lattrs */
        start local 7 // javax.naming.directory.Attributes lattrs
        20: .line 646
            aload 5 /* replyBer */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseString:(Z)Ljava/lang/String;
            astore 9 /* DN */
        start local 9 // java.lang.String DN
        21: .line 647
            new com.sun.jndi.ldap.LdapEntry
            dup
            aload 9 /* DN */
            aload 7 /* lattrs */
            invokespecial com.sun.jndi.ldap.LdapEntry.<init>:(Ljava/lang/String;Ljavax/naming/directory/Attributes;)V
            astore 10 /* le */
        start local 10 // com.sun.jndi.ldap.LdapEntry le
        22: .line 648
            iconst_1
            newarray 10
            astore 11 /* seqlen */
        start local 11 // int[] seqlen
        23: .line 650
            aload 5 /* replyBer */
            aload 11 /* seqlen */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            pop
        24: .line 651
            aload 5 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.getParsePosition:()I
            aload 11 /* seqlen */
            iconst_0
            iaload
            iadd
            istore 12 /* endseq */
        start local 12 // int endseq
        25: .line 652
            goto 28
        26: .line 654
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapRequest int com.sun.jndi.ldap.LdapResult java.util.Hashtable com.sun.jndi.ldap.BerDecoder int javax.naming.directory.Attributes top java.lang.String com.sun.jndi.ldap.LdapEntry int[] int int
      StackMap stack:
            aload 0 /* this */
            aload 5 /* replyBer */
            aload 4 /* binaryAttrs */
            invokevirtual com.sun.jndi.ldap.LdapClient.parseAttribute:(Lcom/sun/jndi/ldap/BerDecoder;Ljava/util/Hashtable;)Ljavax/naming/directory/Attribute;
            astore 8 /* la */
        start local 8 // javax.naming.directory.Attribute la
        27: .line 655
            aload 7 /* lattrs */
            aload 8 /* la */
            invokeinterface javax.naming.directory.Attributes.put:(Ljavax/naming/directory/Attribute;)Ljavax/naming/directory/Attribute;
            pop
        end local 8 // javax.naming.directory.Attribute la
        28: .line 652
      StackMap locals:
      StackMap stack:
            aload 5 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.getParsePosition:()I
            iload 12 /* endseq */
            if_icmpge 31
        29: .line 653
            aload 5 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.bytesLeft:()I
        30: .line 652
            ifgt 26
        31: .line 657
      StackMap locals:
      StackMap stack:
            aload 10 /* le */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 32
            aload 5 /* replyBer */
            invokestatic com.sun.jndi.ldap.LdapClient.parseControls:(Lcom/sun/jndi/ldap/BerDecoder;)Ljava/util/Vector;
            goto 33
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapEntry
        32: aconst_null
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapRequest int com.sun.jndi.ldap.LdapResult java.util.Hashtable com.sun.jndi.ldap.BerDecoder int javax.naming.directory.Attributes top java.lang.String com.sun.jndi.ldap.LdapEntry int[] int int
      StackMap stack: com.sun.jndi.ldap.LdapEntry java.util.Vector
        33: putfield com.sun.jndi.ldap.LdapEntry.respCtls:Ljava/util/Vector;
        34: .line 659
            aload 3 /* res */
            getfield com.sun.jndi.ldap.LdapResult.entries:Ljava/util/Vector;
            aload 10 /* le */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        35: .line 660
            iinc 13 /* i */ 1
        36: .line 662
            goto 64
        end local 12 // int endseq
        end local 11 // int[] seqlen
        end local 10 // com.sun.jndi.ldap.LdapEntry le
        end local 9 // java.lang.String DN
        end local 7 // javax.naming.directory.Attributes lattrs
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapRequest int com.sun.jndi.ldap.LdapResult java.util.Hashtable com.sun.jndi.ldap.BerDecoder int top top top top top top int
      StackMap stack:
        37: iload 6 /* seq */
            bipush 115
            if_icmpne 54
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 54
        38: .line 665
            new java.util.Vector
            dup
            iconst_4
            invokespecial java.util.Vector.<init>:(I)V
            astore 14 /* URLs */
        start local 14 // java.util.Vector URLs
        39: .line 669
            aload 5 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.peekByte:()I
        40: .line 670
            bipush 48
        41: .line 669
            if_icmpne 45
        42: .line 671
            aload 5 /* replyBer */
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            pop
        43: .line 674
            goto 45
        44: .line 677
      StackMap locals: java.util.Vector
      StackMap stack:
            aload 14 /* URLs */
            aload 5 /* replyBer */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseString:(Z)Ljava/lang/String;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        45: .line 674
      StackMap locals:
      StackMap stack:
            aload 5 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.bytesLeft:()I
            ifle 47
        46: .line 675
            aload 5 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.peekByte:()I
            iconst_4
            if_icmpeq 44
        47: .line 680
      StackMap locals:
      StackMap stack:
            aload 3 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            ifnonnull 49
        48: .line 681
            aload 3 /* res */
            new java.util.Vector
            dup
            iconst_4
            invokespecial java.util.Vector.<init>:(I)V
            putfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
        49: .line 683
      StackMap locals:
      StackMap stack:
            aload 3 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            aload 14 /* URLs */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        50: .line 684
            aload 3 /* res */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 51
            aload 5 /* replyBer */
            invokestatic com.sun.jndi.ldap.LdapClient.parseControls:(Lcom/sun/jndi/ldap/BerDecoder;)Ljava/util/Vector;
            goto 52
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapResult
        51: aconst_null
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapRequest int com.sun.jndi.ldap.LdapResult java.util.Hashtable com.sun.jndi.ldap.BerDecoder int top top top top top top int java.util.Vector
      StackMap stack: com.sun.jndi.ldap.LdapResult java.util.Vector
        52: putfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
        end local 14 // java.util.Vector URLs
        53: .line 688
            goto 64
      StackMap locals:
      StackMap stack:
        54: iload 6 /* seq */
            bipush 120
            if_icmpne 57
        55: .line 690
            aload 0 /* this */
            aload 5 /* replyBer */
            aload 3 /* res */
            invokevirtual com.sun.jndi.ldap.LdapClient.parseExtResponse:(Lcom/sun/jndi/ldap/BerDecoder;Lcom/sun/jndi/ldap/LdapResult;)V
        56: .line 692
            goto 64
      StackMap locals:
      StackMap stack:
        57: iload 6 /* seq */
            bipush 101
            if_icmpne 64
        58: .line 694
            aload 5 /* replyBer */
            aload 3 /* res */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokestatic com.sun.jndi.ldap.LdapClient.parseResult:(Lcom/sun/jndi/ldap/BerDecoder;Lcom/sun/jndi/ldap/LdapResult;Z)V
        59: .line 695
            aload 3 /* res */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 60
            aload 5 /* replyBer */
            invokestatic com.sun.jndi.ldap.LdapClient.parseControls:(Lcom/sun/jndi/ldap/BerDecoder;)Ljava/util/Vector;
            goto 61
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapResult
        60: aconst_null
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapRequest int com.sun.jndi.ldap.LdapResult java.util.Hashtable com.sun.jndi.ldap.BerDecoder int top top top top top top int
      StackMap stack: com.sun.jndi.ldap.LdapResult java.util.Vector
        61: putfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
        62: .line 697
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 1 /* req */
            invokevirtual com.sun.jndi.ldap.Connection.removeRequest:(Lcom/sun/jndi/ldap/LdapRequest;)V
        63: .line 698
            aload 3 /* res */
            areturn
        end local 6 // int seq
        end local 5 // com.sun.jndi.ldap.BerDecoder replyBer
        64: .line 632
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapRequest int com.sun.jndi.ldap.LdapResult java.util.Hashtable top top top top top top top top int
      StackMap stack:
            iload 13 /* i */
            iload 2 /* batchSize */
            if_icmplt 14
        end local 13 // int i
        65: .line 702
            aload 3 /* res */
            areturn
        end local 4 // java.util.Hashtable binaryAttrs
        end local 3 // com.sun.jndi.ldap.LdapResult res
        end local 2 // int batchSize
        end local 1 // com.sun.jndi.ldap.LdapRequest req
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   66     0         this  Lcom/sun/jndi/ldap/LdapClient;
            0   66     1          req  Lcom/sun/jndi/ldap/LdapRequest;
            0   66     2    batchSize  I
            0   66     3          res  Lcom/sun/jndi/ldap/LdapResult;
            0   66     4  binaryAttrs  Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Boolean;>;
           15   64     5     replyBer  Lcom/sun/jndi/ldap/BerDecoder;
           18   64     6          seq  I
           20   37     7       lattrs  Ljavax/naming/directory/Attributes;
           27   28     8           la  Ljavax/naming/directory/Attribute;
           21   37     9           DN  Ljava/lang/String;
           22   37    10           le  Lcom/sun/jndi/ldap/LdapEntry;
           23   37    11       seqlen  [I
           25   37    12       endseq  I
           13   65    13            i  I
           39   53    14         URLs  Ljava/util/Vector<Ljava/lang/String;>;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    Signature: (Lcom/sun/jndi/ldap/LdapRequest;ILcom/sun/jndi/ldap/LdapResult;Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Boolean;>;)Lcom/sun/jndi/ldap/LdapResult;
    MethodParameters:
             Name  Flags
      req          
      batchSize    
      res          
      binaryAttrs  

  private javax.naming.directory.Attribute parseAttribute(com.sun.jndi.ldap.BerDecoder, java.util.Hashtable<java.lang.String, java.lang.Boolean>);
    descriptor: (Lcom/sun/jndi/ldap/BerDecoder;Ljava/util/Hashtable;)Ljavax/naming/directory/Attribute;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // com.sun.jndi.ldap.BerDecoder ber
        start local 2 // java.util.Hashtable binaryAttrs
         0: .line 709
            iconst_1
            newarray 10
            astore 3 /* len */
        start local 3 // int[] len
         1: .line 710
            aload 1 /* ber */
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            pop
         2: .line 711
            aload 1 /* ber */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseString:(Z)Ljava/lang/String;
            astore 4 /* attrid */
        start local 4 // java.lang.String attrid
         3: .line 712
            aload 0 /* this */
            aload 4 /* attrid */
            aload 2 /* binaryAttrs */
            invokevirtual com.sun.jndi.ldap.LdapClient.isBinaryValued:(Ljava/lang/String;Ljava/util/Hashtable;)Z
            istore 5 /* hasBinaryValues */
        start local 5 // boolean hasBinaryValues
         4: .line 713
            new com.sun.jndi.ldap.LdapAttribute
            dup
            aload 4 /* attrid */
            invokespecial com.sun.jndi.ldap.LdapAttribute.<init>:(Ljava/lang/String;)V
            astore 6 /* la */
        start local 6 // javax.naming.directory.Attribute la
         5: .line 715
            aload 1 /* ber */
            aload 3 /* len */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            bipush 49
            if_icmpne 15
         6: .line 716
            aload 3 /* len */
            iconst_0
            iaload
            istore 7 /* attrlen */
        start local 7 // int attrlen
         7: .line 717
            goto 13
         8: .line 719
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.BerDecoder java.util.Hashtable int[] java.lang.String int javax.naming.directory.Attribute int
      StackMap stack:
            iload 7 /* attrlen */
            aload 0 /* this */
            aload 1 /* ber */
            aload 6 /* la */
            iload 5 /* hasBinaryValues */
            invokevirtual com.sun.jndi.ldap.LdapClient.parseAttributeValue:(Lcom/sun/jndi/ldap/BerDecoder;Ljavax/naming/directory/Attribute;Z)I
            isub
            istore 7 /* attrlen */
         9: .line 720
            goto 13
      StackMap locals:
      StackMap stack: java.io.IOException
        10: pop
        11: .line 721
            aload 1 /* ber */
            iload 7 /* attrlen */
            invokevirtual com.sun.jndi.ldap.BerDecoder.seek:(I)V
        12: .line 722
            goto 16
        13: .line 717
      StackMap locals:
      StackMap stack:
            aload 1 /* ber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.bytesLeft:()I
            ifle 16
            iload 7 /* attrlen */
            ifgt 8
        end local 7 // int attrlen
        14: .line 725
            goto 16
        15: .line 727
      StackMap locals:
      StackMap stack:
            aload 1 /* ber */
            aload 3 /* len */
            iconst_0
            iaload
            invokevirtual com.sun.jndi.ldap.BerDecoder.seek:(I)V
        16: .line 729
      StackMap locals:
      StackMap stack:
            aload 6 /* la */
            areturn
        end local 6 // javax.naming.directory.Attribute la
        end local 5 // boolean hasBinaryValues
        end local 4 // java.lang.String attrid
        end local 3 // int[] len
        end local 2 // java.util.Hashtable binaryAttrs
        end local 1 // com.sun.jndi.ldap.BerDecoder ber
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   17     0             this  Lcom/sun/jndi/ldap/LdapClient;
            0   17     1              ber  Lcom/sun/jndi/ldap/BerDecoder;
            0   17     2      binaryAttrs  Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Boolean;>;
            1   17     3              len  [I
            3   17     4           attrid  Ljava/lang/String;
            4   17     5  hasBinaryValues  Z
            5   17     6               la  Ljavax/naming/directory/Attribute;
            7   14     7          attrlen  I
      Exception table:
        from    to  target  type
           8     9      10  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    Signature: (Lcom/sun/jndi/ldap/BerDecoder;Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Boolean;>;)Ljavax/naming/directory/Attribute;
    MethodParameters:
             Name  Flags
      ber          
      binaryAttrs  

  private int parseAttributeValue(com.sun.jndi.ldap.BerDecoder, javax.naming.directory.Attribute, boolean);
    descriptor: (Lcom/sun/jndi/ldap/BerDecoder;Ljavax/naming/directory/Attribute;Z)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // com.sun.jndi.ldap.BerDecoder ber
        start local 2 // javax.naming.directory.Attribute la
        start local 3 // boolean hasBinaryValues
         0: .line 738
            iconst_1
            newarray 10
            astore 4 /* len */
        start local 4 // int[] len
         1: .line 740
            iload 3 /* hasBinaryValues */
            ifeq 4
         2: .line 741
            aload 2 /* la */
            aload 1 /* ber */
            aload 1 /* ber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.peekByte:()I
            aload 4 /* len */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseOctetString:(I[I)[B
            invokeinterface javax.naming.directory.Attribute.add:(Ljava/lang/Object;)Z
            pop
         3: .line 742
            goto 7
         4: .line 743
      StackMap locals: int[]
      StackMap stack:
            aload 2 /* la */
            aload 1 /* ber */
         5: .line 744
            iconst_4
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            aload 4 /* len */
         6: .line 743
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseStringWithTag:(IZ[I)Ljava/lang/String;
            invokeinterface javax.naming.directory.Attribute.add:(Ljava/lang/Object;)Z
            pop
         7: .line 746
      StackMap locals:
      StackMap stack:
            aload 4 /* len */
            iconst_0
            iaload
            ireturn
        end local 4 // int[] len
        end local 3 // boolean hasBinaryValues
        end local 2 // javax.naming.directory.Attribute la
        end local 1 // com.sun.jndi.ldap.BerDecoder ber
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Lcom/sun/jndi/ldap/LdapClient;
            0    8     1              ber  Lcom/sun/jndi/ldap/BerDecoder;
            0    8     2               la  Ljavax/naming/directory/Attribute;
            0    8     3  hasBinaryValues  Z
            1    8     4              len  [I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                 Name  Flags
      ber              
      la               
      hasBinaryValues  

  private boolean isBinaryValued(java.lang.String, java.util.Hashtable<java.lang.String, java.lang.Boolean>);
    descriptor: (Ljava/lang/String;Ljava/util/Hashtable;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // java.lang.String attrid
        start local 2 // java.util.Hashtable binaryAttrs
         0: .line 751
            aload 1 /* attrid */
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            astore 3 /* id */
        start local 3 // java.lang.String id
         1: .line 753
            aload 3 /* id */
            ldc ";binary"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            iconst_m1
            if_icmpne 5
         2: .line 754
            getstatic com.sun.jndi.ldap.LdapClient.defaultBinaryAttrs:Ljava/util/Hashtable;
            aload 3 /* id */
            invokevirtual java.util.Hashtable.containsKey:(Ljava/lang/Object;)Z
            ifne 5
         3: .line 755
            aload 2 /* binaryAttrs */
            ifnull 4
            aload 2 /* binaryAttrs */
            aload 3 /* id */
            invokevirtual java.util.Hashtable.containsKey:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 753
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_1
            ireturn
        end local 3 // java.lang.String id
        end local 2 // java.util.Hashtable binaryAttrs
        end local 1 // java.lang.String attrid
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lcom/sun/jndi/ldap/LdapClient;
            0    6     1       attrid  Ljava/lang/String;
            0    6     2  binaryAttrs  Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Boolean;>;
            1    6     3           id  Ljava/lang/String;
    Signature: (Ljava/lang/String;Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Boolean;>;)Z
    MethodParameters:
             Name  Flags
      attrid       
      binaryAttrs  

  static void parseResult(com.sun.jndi.ldap.BerDecoder, com.sun.jndi.ldap.LdapResult, boolean);
    descriptor: (Lcom/sun/jndi/ldap/BerDecoder;Lcom/sun/jndi/ldap/LdapResult;Z)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // com.sun.jndi.ldap.BerDecoder replyBer
        start local 1 // com.sun.jndi.ldap.LdapResult res
        start local 2 // boolean isLdapv3
         0: .line 762
            aload 1 /* res */
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseEnumeration:()I
            putfield com.sun.jndi.ldap.LdapResult.status:I
         1: .line 763
            aload 1 /* res */
            aload 0 /* replyBer */
            iload 2 /* isLdapv3 */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseString:(Z)Ljava/lang/String;
            putfield com.sun.jndi.ldap.LdapResult.matchedDN:Ljava/lang/String;
         2: .line 764
            aload 1 /* res */
            aload 0 /* replyBer */
            iload 2 /* isLdapv3 */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseString:(Z)Ljava/lang/String;
            putfield com.sun.jndi.ldap.LdapResult.errorMessage:Ljava/lang/String;
         3: .line 767
            iload 2 /* isLdapv3 */
            ifeq 18
         4: .line 768
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.bytesLeft:()I
            ifle 18
         5: .line 769
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.peekByte:()I
            sipush 163
            if_icmpne 18
         6: .line 771
            new java.util.Vector
            dup
            iconst_4
            invokespecial java.util.Vector.<init>:(I)V
            astore 3 /* URLs */
        start local 3 // java.util.Vector URLs
         7: .line 772
            iconst_1
            newarray 10
            astore 4 /* seqlen */
        start local 4 // int[] seqlen
         8: .line 774
            aload 0 /* replyBer */
            aload 4 /* seqlen */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            pop
         9: .line 775
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.getParsePosition:()I
            aload 4 /* seqlen */
            iconst_0
            iaload
            iadd
            istore 5 /* endseq */
        start local 5 // int endseq
        10: .line 776
            goto 12
        11: .line 779
      StackMap locals: java.util.Vector int[] int
      StackMap stack:
            aload 3 /* URLs */
            aload 0 /* replyBer */
            iload 2 /* isLdapv3 */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseString:(Z)Ljava/lang/String;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        12: .line 776
      StackMap locals:
      StackMap stack:
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.getParsePosition:()I
            iload 5 /* endseq */
            if_icmpge 15
        13: .line 777
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.bytesLeft:()I
        14: .line 776
            ifgt 11
        15: .line 782
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            ifnonnull 17
        16: .line 783
            aload 1 /* res */
            new java.util.Vector
            dup
            iconst_4
            invokespecial java.util.Vector.<init>:(I)V
            putfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
        17: .line 785
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
            aload 3 /* URLs */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        end local 5 // int endseq
        end local 4 // int[] seqlen
        end local 3 // java.util.Vector URLs
        18: .line 787
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean isLdapv3
        end local 1 // com.sun.jndi.ldap.LdapResult res
        end local 0 // com.sun.jndi.ldap.BerDecoder replyBer
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0  replyBer  Lcom/sun/jndi/ldap/BerDecoder;
            0   19     1       res  Lcom/sun/jndi/ldap/LdapResult;
            0   19     2  isLdapv3  Z
            7   18     3      URLs  Ljava/util/Vector<Ljava/lang/String;>;
            8   18     4    seqlen  [I
           10   18     5    endseq  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      replyBer  
      res       
      isLdapv3  

  static java.util.Vector<javax.naming.ldap.Control> parseControls(com.sun.jndi.ldap.BerDecoder);
    descriptor: (Lcom/sun/jndi/ldap/BerDecoder;)Ljava/util/Vector;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=7, args_size=1
        start local 0 // com.sun.jndi.ldap.BerDecoder replyBer
         0: .line 793
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.bytesLeft:()I
            ifle 25
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.peekByte:()I
            sipush 160
            if_icmpne 25
         1: .line 794
            new java.util.Vector
            dup
            iconst_4
            invokespecial java.util.Vector.<init>:(I)V
            astore 1 /* ctls */
        start local 1 // java.util.Vector ctls
         2: .line 796
            iconst_0
            istore 3 /* criticality */
        start local 3 // boolean criticality
         3: .line 797
            aconst_null
            astore 4 /* controlValue */
        start local 4 // byte[] controlValue
         4: .line 798
            iconst_1
            newarray 10
            astore 5 /* seqlen */
        start local 5 // int[] seqlen
         5: .line 800
            aload 0 /* replyBer */
            aload 5 /* seqlen */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            pop
         6: .line 801
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.getParsePosition:()I
            aload 5 /* seqlen */
            iconst_0
            iaload
            iadd
            istore 6 /* endseq */
        start local 6 // int endseq
         7: .line 802
            goto 21
         8: .line 805
      StackMap locals: com.sun.jndi.ldap.BerDecoder java.util.Vector top int byte[] int[] int
      StackMap stack:
            aload 0 /* replyBer */
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            pop
         9: .line 806
            aload 0 /* replyBer */
            iconst_1
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseString:(Z)Ljava/lang/String;
            astore 2 /* controlOID */
        start local 2 // java.lang.String controlOID
        10: .line 808
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.bytesLeft:()I
            ifle 13
        11: .line 809
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.peekByte:()I
            iconst_1
            if_icmpne 13
        12: .line 810
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseBoolean:()Z
            istore 3 /* criticality */
        13: .line 812
      StackMap locals: com.sun.jndi.ldap.BerDecoder java.util.Vector java.lang.String int byte[] int[] int
      StackMap stack:
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.bytesLeft:()I
            ifle 17
        14: .line 813
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.peekByte:()I
            iconst_4
            if_icmpne 17
        15: .line 815
            aload 0 /* replyBer */
            iconst_4
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseOctetString:(I[I)[B
        16: .line 814
            astore 4 /* controlValue */
        17: .line 817
      StackMap locals:
      StackMap stack:
            aload 2 /* controlOID */
            ifnull 21
        18: .line 818
            aload 1 /* ctls */
        19: .line 819
            new com.sun.jndi.ldap.BasicControl
            dup
            aload 2 /* controlOID */
            iload 3 /* criticality */
            aload 4 /* controlValue */
            invokespecial com.sun.jndi.ldap.BasicControl.<init>:(Ljava/lang/String;Z[B)V
        20: .line 818
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        end local 2 // java.lang.String controlOID
        21: .line 802
      StackMap locals: com.sun.jndi.ldap.BerDecoder java.util.Vector top int byte[] int[] int
      StackMap stack:
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.getParsePosition:()I
            iload 6 /* endseq */
            if_icmpge 24
        22: .line 803
            aload 0 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.bytesLeft:()I
        23: .line 802
            ifgt 8
        24: .line 822
      StackMap locals:
      StackMap stack:
            aload 1 /* ctls */
            areturn
        end local 6 // int endseq
        end local 5 // int[] seqlen
        end local 4 // byte[] controlValue
        end local 3 // boolean criticality
        end local 1 // java.util.Vector ctls
        25: .line 824
      StackMap locals: com.sun.jndi.ldap.BerDecoder
      StackMap stack:
            aconst_null
            areturn
        end local 0 // com.sun.jndi.ldap.BerDecoder replyBer
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   26     0      replyBer  Lcom/sun/jndi/ldap/BerDecoder;
            2   25     1          ctls  Ljava/util/Vector<Ljavax/naming/ldap/Control;>;
           10   21     2    controlOID  Ljava/lang/String;
            3   25     3   criticality  Z
            4   25     4  controlValue  [B
            5   25     5        seqlen  [I
            7   25     6        endseq  I
    Exceptions:
      throws java.io.IOException
    Signature: (Lcom/sun/jndi/ldap/BerDecoder;)Ljava/util/Vector<Ljavax/naming/ldap/Control;>;
    MethodParameters:
          Name  Flags
      replyBer  

  private void parseExtResponse(com.sun.jndi.ldap.BerDecoder, com.sun.jndi.ldap.LdapResult);
    descriptor: (Lcom/sun/jndi/ldap/BerDecoder;Lcom/sun/jndi/ldap/LdapResult;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // com.sun.jndi.ldap.BerDecoder replyBer
        start local 2 // com.sun.jndi.ldap.LdapResult res
         0: .line 831
            aload 1 /* replyBer */
            aload 2 /* res */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokestatic com.sun.jndi.ldap.LdapClient.parseResult:(Lcom/sun/jndi/ldap/BerDecoder;Lcom/sun/jndi/ldap/LdapResult;Z)V
         1: .line 833
            aload 1 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.bytesLeft:()I
            ifle 6
         2: .line 834
            aload 1 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.peekByte:()I
            sipush 138
            if_icmpne 6
         3: .line 835
            aload 2 /* res */
         4: .line 836
            aload 1 /* replyBer */
            sipush 138
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseStringWithTag:(IZ[I)Ljava/lang/String;
         5: .line 835
            putfield com.sun.jndi.ldap.LdapResult.extensionId:Ljava/lang/String;
         6: .line 838
      StackMap locals:
      StackMap stack:
            aload 1 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.bytesLeft:()I
            ifle 11
         7: .line 839
            aload 1 /* replyBer */
            invokevirtual com.sun.jndi.ldap.BerDecoder.peekByte:()I
            sipush 139
            if_icmpne 11
         8: .line 840
            aload 2 /* res */
         9: .line 841
            aload 1 /* replyBer */
            sipush 139
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseOctetString:(I[I)[B
        10: .line 840
            putfield com.sun.jndi.ldap.LdapResult.extensionValue:[B
        11: .line 844
      StackMap locals:
      StackMap stack:
            aload 2 /* res */
            aload 1 /* replyBer */
            invokestatic com.sun.jndi.ldap.LdapClient.parseControls:(Lcom/sun/jndi/ldap/BerDecoder;)Ljava/util/Vector;
            putfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
        12: .line 845
            return
        end local 2 // com.sun.jndi.ldap.LdapResult res
        end local 1 // com.sun.jndi.ldap.BerDecoder replyBer
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lcom/sun/jndi/ldap/LdapClient;
            0   13     1  replyBer  Lcom/sun/jndi/ldap/BerDecoder;
            0   13     2       res  Lcom/sun/jndi/ldap/LdapResult;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      replyBer  
      res       

  static void encodeControls(com.sun.jndi.ldap.BerEncoder, javax.naming.ldap.Control[]);
    descriptor: (Lcom/sun/jndi/ldap/BerEncoder;[Ljavax/naming/ldap/Control;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.sun.jndi.ldap.BerEncoder ber
        start local 1 // javax.naming.ldap.Control[] reqCtls
         0: .line 853
            aload 1 /* reqCtls */
            ifnull 1
            aload 1 /* reqCtls */
            arraylength
            ifne 2
         1: .line 854
      StackMap locals:
      StackMap stack:
            return
         2: .line 859
      StackMap locals:
      StackMap stack:
            aload 0 /* ber */
            sipush 160
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         3: .line 861
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 14
         5: .line 862
      StackMap locals: com.sun.jndi.ldap.BerEncoder javax.naming.ldap.Control[] top int
      StackMap stack:
            aload 0 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         6: .line 863
            aload 0 /* ber */
            aload 1 /* reqCtls */
            iload 3 /* i */
            aaload
            invokeinterface javax.naming.ldap.Control.getID:()Ljava/lang/String;
            iconst_1
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;Z)V
         7: .line 864
            aload 1 /* reqCtls */
            iload 3 /* i */
            aaload
            invokeinterface javax.naming.ldap.Control.isCritical:()Z
            ifeq 9
         8: .line 865
            aload 0 /* ber */
            iconst_1
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeBoolean:(Z)V
         9: .line 867
      StackMap locals:
      StackMap stack:
            aload 1 /* reqCtls */
            iload 3 /* i */
            aaload
            invokeinterface javax.naming.ldap.Control.getEncodedValue:()[B
            dup
            astore 2 /* controlVal */
        start local 2 // byte[] controlVal
        10: ifnull 12
        11: .line 868
            aload 0 /* ber */
            aload 2 /* controlVal */
            iconst_4
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BI)V
        12: .line 870
      StackMap locals: com.sun.jndi.ldap.BerEncoder javax.naming.ldap.Control[] byte[] int
      StackMap stack:
            aload 0 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        13: .line 861
            iinc 3 /* i */ 1
        end local 2 // byte[] controlVal
      StackMap locals: com.sun.jndi.ldap.BerEncoder javax.naming.ldap.Control[] top int
      StackMap stack:
        14: iload 3 /* i */
            aload 1 /* reqCtls */
            arraylength
            if_icmplt 5
        end local 3 // int i
        15: .line 872
            aload 0 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        16: .line 873
            return
        end local 1 // javax.naming.ldap.Control[] reqCtls
        end local 0 // com.sun.jndi.ldap.BerEncoder ber
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0         ber  Lcom/sun/jndi/ldap/BerEncoder;
            0   17     1     reqCtls  [Ljavax/naming/ldap/Control;
           10   14     2  controlVal  [B
            4   15     3           i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      ber      
      reqCtls  

  private com.sun.jndi.ldap.LdapResult processReply(com.sun.jndi.ldap.LdapRequest, com.sun.jndi.ldap.LdapResult, int);
    descriptor: (Lcom/sun/jndi/ldap/LdapRequest;Lcom/sun/jndi/ldap/LdapResult;I)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // com.sun.jndi.ldap.LdapRequest req
        start local 2 // com.sun.jndi.ldap.LdapResult res
        start local 3 // int responseType
         0: .line 882
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 1 /* req */
            invokevirtual com.sun.jndi.ldap.Connection.readReply:(Lcom/sun/jndi/ldap/LdapRequest;)Lcom/sun/jndi/ldap/BerDecoder;
            astore 4 /* rber */
        start local 4 // com.sun.jndi.ldap.BerDecoder rber
         1: .line 884
            aload 4 /* rber */
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            pop
         2: .line 885
            aload 4 /* rber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseInt:()I
            pop
         3: .line 886
            aload 4 /* rber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseByte:()I
            iload 3 /* responseType */
            if_icmpeq 5
         4: .line 887
            aload 2 /* res */
            areturn
         5: .line 890
      StackMap locals: com.sun.jndi.ldap.BerDecoder
      StackMap stack:
            aload 4 /* rber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseLength:()I
            pop
         6: .line 891
            aload 4 /* rber */
            aload 2 /* res */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokestatic com.sun.jndi.ldap.LdapClient.parseResult:(Lcom/sun/jndi/ldap/BerDecoder;Lcom/sun/jndi/ldap/LdapResult;Z)V
         7: .line 892
            aload 2 /* res */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 8
            aload 4 /* rber */
            invokestatic com.sun.jndi.ldap.LdapClient.parseControls:(Lcom/sun/jndi/ldap/BerDecoder;)Ljava/util/Vector;
            goto 9
      StackMap locals:
      StackMap stack: com.sun.jndi.ldap.LdapResult
         8: aconst_null
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapRequest com.sun.jndi.ldap.LdapResult int com.sun.jndi.ldap.BerDecoder
      StackMap stack: com.sun.jndi.ldap.LdapResult java.util.Vector
         9: putfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
        10: .line 894
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 1 /* req */
            invokevirtual com.sun.jndi.ldap.Connection.removeRequest:(Lcom/sun/jndi/ldap/LdapRequest;)V
        11: .line 896
            aload 2 /* res */
            areturn
        end local 4 // com.sun.jndi.ldap.BerDecoder rber
        end local 3 // int responseType
        end local 2 // com.sun.jndi.ldap.LdapResult res
        end local 1 // com.sun.jndi.ldap.LdapRequest req
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   12     0          this  Lcom/sun/jndi/ldap/LdapClient;
            0   12     1           req  Lcom/sun/jndi/ldap/LdapRequest;
            0   12     2           res  Lcom/sun/jndi/ldap/LdapResult;
            0   12     3  responseType  I
            1   12     4          rber  Lcom/sun/jndi/ldap/BerDecoder;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
              Name  Flags
      req           
      res           
      responseType  

  com.sun.jndi.ldap.LdapResult modify(java.lang.String, int[], javax.naming.directory.Attribute[], javax.naming.ldap.Control[]);
    descriptor: (Ljava/lang/String;[I[Ljavax/naming/directory/Attribute;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0000) 
    Code:
      stack=5, locals=9, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // java.lang.String dn
        start local 2 // int[] operations
        start local 3 // javax.naming.directory.Attribute[] attrs
        start local 4 // javax.naming.ldap.Control[] reqCtls
         0: .line 920
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.ensureOpen:()V
         1: .line 922
            new com.sun.jndi.ldap.LdapResult
            dup
            invokespecial com.sun.jndi.ldap.LdapResult.<init>:()V
            astore 5 /* res */
        start local 5 // com.sun.jndi.ldap.LdapResult res
         2: .line 923
            aload 5 /* res */
            iconst_1
            putfield com.sun.jndi.ldap.LdapResult.status:I
         3: .line 925
            aload 1 /* dn */
            ifnull 4
            aload 2 /* operations */
            arraylength
            aload 3 /* attrs */
            arraylength
            if_icmpeq 5
         4: .line 926
      StackMap locals: com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 5 /* res */
            areturn
         5: .line 928
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.BerEncoder
            dup
            invokespecial com.sun.jndi.ldap.BerEncoder.<init>:()V
            astore 6 /* ber */
        start local 6 // com.sun.jndi.ldap.BerEncoder ber
         6: .line 929
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            invokevirtual com.sun.jndi.ldap.Connection.getMsgId:()I
            istore 7 /* curMsgId */
        start local 7 // int curMsgId
         7: .line 931
            aload 6 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         8: .line 932
            aload 6 /* ber */
            iload 7 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
         9: .line 933
            aload 6 /* ber */
            bipush 102
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
        10: .line 934
            aload 6 /* ber */
            aload 1 /* dn */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;Z)V
        11: .line 935
            aload 6 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
        12: .line 936
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        13: goto 23
        14: .line 937
      StackMap locals: com.sun.jndi.ldap.BerEncoder int int
      StackMap stack:
            aload 6 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
        15: .line 938
            aload 6 /* ber */
            aload 2 /* operations */
            iload 8 /* i */
            iaload
            bipush 10
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(II)V
        16: .line 941
            aload 2 /* operations */
            iload 8 /* i */
            iaload
            ifne 20
            aload 3 /* attrs */
            iload 8 /* i */
            aaload
            invokestatic com.sun.jndi.ldap.LdapClient.hasNoValue:(Ljavax/naming/directory/Attribute;)Z
            ifeq 20
        17: .line 942
            new javax.naming.directory.InvalidAttributeValueException
            dup
        18: .line 943
            new java.lang.StringBuilder
            dup
            ldc "'"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* attrs */
            iload 8 /* i */
            aaload
            invokeinterface javax.naming.directory.Attribute.getID:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' has no values."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        19: .line 942
            invokespecial javax.naming.directory.InvalidAttributeValueException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 945
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* ber */
            aload 3 /* attrs */
            iload 8 /* i */
            aaload
            invokevirtual com.sun.jndi.ldap.LdapClient.encodeAttribute:(Lcom/sun/jndi/ldap/BerEncoder;Ljavax/naming/directory/Attribute;)V
        21: .line 947
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        22: .line 936
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 8 /* i */
            aload 2 /* operations */
            arraylength
            if_icmplt 14
        end local 8 // int i
        24: .line 949
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        25: .line 950
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        26: .line 951
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 27
            aload 6 /* ber */
            aload 4 /* reqCtls */
            invokestatic com.sun.jndi.ldap.LdapClient.encodeControls:(Lcom/sun/jndi/ldap/BerEncoder;[Ljavax/naming/ldap/Control;)V
        27: .line 952
      StackMap locals:
      StackMap stack:
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        28: .line 954
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 6 /* ber */
            iload 7 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.Connection.writeRequest:(Lcom/sun/jndi/ldap/BerEncoder;I)Lcom/sun/jndi/ldap/LdapRequest;
            astore 8 /* req */
        start local 8 // com.sun.jndi.ldap.LdapRequest req
        29: .line 956
            aload 0 /* this */
            aload 8 /* req */
            aload 5 /* res */
            bipush 103
            invokevirtual com.sun.jndi.ldap.LdapClient.processReply:(Lcom/sun/jndi/ldap/LdapRequest;Lcom/sun/jndi/ldap/LdapResult;I)Lcom/sun/jndi/ldap/LdapResult;
            areturn
        end local 8 // com.sun.jndi.ldap.LdapRequest req
        end local 7 // int curMsgId
        end local 6 // com.sun.jndi.ldap.BerEncoder ber
        end local 5 // com.sun.jndi.ldap.LdapResult res
        end local 4 // javax.naming.ldap.Control[] reqCtls
        end local 3 // javax.naming.directory.Attribute[] attrs
        end local 2 // int[] operations
        end local 1 // java.lang.String dn
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   30     0        this  Lcom/sun/jndi/ldap/LdapClient;
            0   30     1          dn  Ljava/lang/String;
            0   30     2  operations  [I
            0   30     3       attrs  [Ljavax/naming/directory/Attribute;
            0   30     4     reqCtls  [Ljavax/naming/ldap/Control;
            2   30     5         res  Lcom/sun/jndi/ldap/LdapResult;
            6   30     6         ber  Lcom/sun/jndi/ldap/BerEncoder;
            7   30     7    curMsgId  I
           13   24     8           i  I
           29   30     8         req  Lcom/sun/jndi/ldap/LdapRequest;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
            Name  Flags
      dn          
      operations  
      attrs       
      reqCtls     

  private void encodeAttribute(com.sun.jndi.ldap.BerEncoder, javax.naming.directory.Attribute);
    descriptor: (Lcom/sun/jndi/ldap/BerEncoder;Ljavax/naming/directory/Attribute;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // com.sun.jndi.ldap.BerEncoder ber
        start local 2 // javax.naming.directory.Attribute attr
         0: .line 962
            aload 1 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         1: .line 963
            aload 1 /* ber */
            aload 2 /* attr */
            invokeinterface javax.naming.directory.Attribute.getID:()Ljava/lang/String;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;Z)V
         2: .line 964
            aload 1 /* ber */
            bipush 49
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         3: .line 965
            aload 2 /* attr */
            invokeinterface javax.naming.directory.Attribute.getAll:()Ljavax/naming/NamingEnumeration;
            astore 3 /* enum_ */
        start local 3 // javax.naming.NamingEnumeration enum_
         4: .line 967
            goto 16
         5: .line 968
      StackMap locals: javax.naming.NamingEnumeration
      StackMap stack:
            aload 3 /* enum_ */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            astore 4 /* val */
        start local 4 // java.lang.Object val
         6: .line 969
            aload 4 /* val */
            instanceof java.lang.String
            ifeq 9
         7: .line 970
            aload 1 /* ber */
            aload 4 /* val */
            checkcast java.lang.String
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;Z)V
         8: .line 971
            goto 16
      StackMap locals: java.lang.Object
      StackMap stack:
         9: aload 4 /* val */
            instanceof byte[]
            ifeq 12
        10: .line 972
            aload 1 /* ber */
            aload 4 /* val */
            checkcast byte[]
            iconst_4
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BI)V
        11: .line 973
            goto 16
      StackMap locals:
      StackMap stack:
        12: aload 4 /* val */
            ifnull 16
        13: .line 976
            new javax.naming.directory.InvalidAttributeValueException
            dup
        14: .line 977
            new java.lang.StringBuilder
            dup
            ldc "Malformed '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* attr */
            invokeinterface javax.naming.directory.Attribute.getID:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' attribute value"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 976
            invokespecial javax.naming.directory.InvalidAttributeValueException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.Object val
        16: .line 967
      StackMap locals:
      StackMap stack:
            aload 3 /* enum_ */
            invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
            ifne 5
        17: .line 980
            aload 1 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        18: .line 981
            aload 1 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        19: .line 982
            return
        end local 3 // javax.naming.NamingEnumeration enum_
        end local 2 // javax.naming.directory.Attribute attr
        end local 1 // com.sun.jndi.ldap.BerEncoder ber
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   20     0   this  Lcom/sun/jndi/ldap/LdapClient;
            0   20     1    ber  Lcom/sun/jndi/ldap/BerEncoder;
            0   20     2   attr  Ljavax/naming/directory/Attribute;
            4   20     3  enum_  Ljavax/naming/NamingEnumeration<*>;
            6   16     4    val  Ljava/lang/Object;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
      Name  Flags
      ber   
      attr  

  private static boolean hasNoValue(javax.naming.directory.Attribute);
    descriptor: (Ljavax/naming/directory/Attribute;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.naming.directory.Attribute attr
         0: .line 985
            aload 0 /* attr */
            invokeinterface javax.naming.directory.Attribute.size:()I
            ifeq 2
            aload 0 /* attr */
            invokeinterface javax.naming.directory.Attribute.size:()I
            iconst_1
            if_icmpne 1
            aload 0 /* attr */
            invokeinterface javax.naming.directory.Attribute.get:()Ljava/lang/Object;
            ifnull 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_1
            ireturn
        end local 0 // javax.naming.directory.Attribute attr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  attr  Ljavax/naming/directory/Attribute;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
      Name  Flags
      attr  

  com.sun.jndi.ldap.LdapResult add(com.sun.jndi.ldap.LdapEntry, javax.naming.ldap.Control[]);
    descriptor: (Lcom/sun/jndi/ldap/LdapEntry;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0000) 
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // com.sun.jndi.ldap.LdapEntry entry
        start local 2 // javax.naming.ldap.Control[] reqCtls
         0: .line 998
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.ensureOpen:()V
         1: .line 1000
            new com.sun.jndi.ldap.LdapResult
            dup
            invokespecial com.sun.jndi.ldap.LdapResult.<init>:()V
            astore 3 /* res */
        start local 3 // com.sun.jndi.ldap.LdapResult res
         2: .line 1001
            aload 3 /* res */
            iconst_1
            putfield com.sun.jndi.ldap.LdapResult.status:I
         3: .line 1003
            aload 1 /* entry */
            ifnull 4
            aload 1 /* entry */
            getfield com.sun.jndi.ldap.LdapEntry.DN:Ljava/lang/String;
            ifnonnull 5
         4: .line 1004
      StackMap locals: com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 3 /* res */
            areturn
         5: .line 1006
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.BerEncoder
            dup
            invokespecial com.sun.jndi.ldap.BerEncoder.<init>:()V
            astore 4 /* ber */
        start local 4 // com.sun.jndi.ldap.BerEncoder ber
         6: .line 1007
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            invokevirtual com.sun.jndi.ldap.Connection.getMsgId:()I
            istore 5 /* curMsgId */
        start local 5 // int curMsgId
         7: .line 1010
            aload 4 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         8: .line 1011
            aload 4 /* ber */
            iload 5 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
         9: .line 1012
            aload 4 /* ber */
            bipush 104
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
        10: .line 1013
            aload 4 /* ber */
            aload 1 /* entry */
            getfield com.sun.jndi.ldap.LdapEntry.DN:Ljava/lang/String;
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;Z)V
        11: .line 1014
            aload 4 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
        12: .line 1016
            aload 1 /* entry */
            getfield com.sun.jndi.ldap.LdapEntry.attributes:Ljavax/naming/directory/Attributes;
            invokeinterface javax.naming.directory.Attributes.getAll:()Ljavax/naming/NamingEnumeration;
        13: .line 1015
            astore 7 /* enum_ */
        start local 7 // javax.naming.NamingEnumeration enum_
        14: .line 1017
            goto 21
        15: .line 1018
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapEntry javax.naming.ldap.Control[] com.sun.jndi.ldap.LdapResult com.sun.jndi.ldap.BerEncoder int top javax.naming.NamingEnumeration
      StackMap stack:
            aload 7 /* enum_ */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast javax.naming.directory.Attribute
            astore 6 /* attr */
        start local 6 // javax.naming.directory.Attribute attr
        16: .line 1021
            aload 6 /* attr */
            invokestatic com.sun.jndi.ldap.LdapClient.hasNoValue:(Ljavax/naming/directory/Attribute;)Z
            ifeq 20
        17: .line 1022
            new javax.naming.directory.InvalidAttributeValueException
            dup
        18: .line 1023
            new java.lang.StringBuilder
            dup
            ldc "'"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* attr */
            invokeinterface javax.naming.directory.Attribute.getID:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' has no values."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        19: .line 1022
            invokespecial javax.naming.directory.InvalidAttributeValueException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 1025
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapEntry javax.naming.ldap.Control[] com.sun.jndi.ldap.LdapResult com.sun.jndi.ldap.BerEncoder int javax.naming.directory.Attribute javax.naming.NamingEnumeration
      StackMap stack:
            aload 0 /* this */
            aload 4 /* ber */
            aload 6 /* attr */
            invokevirtual com.sun.jndi.ldap.LdapClient.encodeAttribute:(Lcom/sun/jndi/ldap/BerEncoder;Ljavax/naming/directory/Attribute;)V
        end local 6 // javax.naming.directory.Attribute attr
        21: .line 1017
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.LdapEntry javax.naming.ldap.Control[] com.sun.jndi.ldap.LdapResult com.sun.jndi.ldap.BerEncoder int top javax.naming.NamingEnumeration
      StackMap stack:
            aload 7 /* enum_ */
            invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
            ifne 15
        22: .line 1028
            aload 4 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        23: .line 1029
            aload 4 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        24: .line 1030
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 25
            aload 4 /* ber */
            aload 2 /* reqCtls */
            invokestatic com.sun.jndi.ldap.LdapClient.encodeControls:(Lcom/sun/jndi/ldap/BerEncoder;[Ljavax/naming/ldap/Control;)V
        25: .line 1031
      StackMap locals:
      StackMap stack:
            aload 4 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        26: .line 1033
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 4 /* ber */
            iload 5 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.Connection.writeRequest:(Lcom/sun/jndi/ldap/BerEncoder;I)Lcom/sun/jndi/ldap/LdapRequest;
            astore 8 /* req */
        start local 8 // com.sun.jndi.ldap.LdapRequest req
        27: .line 1034
            aload 0 /* this */
            aload 8 /* req */
            aload 3 /* res */
            bipush 105
            invokevirtual com.sun.jndi.ldap.LdapClient.processReply:(Lcom/sun/jndi/ldap/LdapRequest;Lcom/sun/jndi/ldap/LdapResult;I)Lcom/sun/jndi/ldap/LdapResult;
            areturn
        end local 8 // com.sun.jndi.ldap.LdapRequest req
        end local 7 // javax.naming.NamingEnumeration enum_
        end local 5 // int curMsgId
        end local 4 // com.sun.jndi.ldap.BerEncoder ber
        end local 3 // com.sun.jndi.ldap.LdapResult res
        end local 2 // javax.naming.ldap.Control[] reqCtls
        end local 1 // com.sun.jndi.ldap.LdapEntry entry
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   28     0      this  Lcom/sun/jndi/ldap/LdapClient;
            0   28     1     entry  Lcom/sun/jndi/ldap/LdapEntry;
            0   28     2   reqCtls  [Ljavax/naming/ldap/Control;
            2   28     3       res  Lcom/sun/jndi/ldap/LdapResult;
            6   28     4       ber  Lcom/sun/jndi/ldap/BerEncoder;
            7   28     5  curMsgId  I
           16   21     6      attr  Ljavax/naming/directory/Attribute;
           14   28     7     enum_  Ljavax/naming/NamingEnumeration<+Ljavax/naming/directory/Attribute;>;
           27   28     8       req  Lcom/sun/jndi/ldap/LdapRequest;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
         Name  Flags
      entry    
      reqCtls  

  com.sun.jndi.ldap.LdapResult delete(java.lang.String, javax.naming.ldap.Control[]);
    descriptor: (Ljava/lang/String;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // java.lang.String DN
        start local 2 // javax.naming.ldap.Control[] reqCtls
         0: .line 1047
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.ensureOpen:()V
         1: .line 1049
            new com.sun.jndi.ldap.LdapResult
            dup
            invokespecial com.sun.jndi.ldap.LdapResult.<init>:()V
            astore 3 /* res */
        start local 3 // com.sun.jndi.ldap.LdapResult res
         2: .line 1050
            aload 3 /* res */
            iconst_1
            putfield com.sun.jndi.ldap.LdapResult.status:I
         3: .line 1052
            aload 1 /* DN */
            ifnonnull 5
         4: .line 1053
            aload 3 /* res */
            areturn
         5: .line 1055
      StackMap locals: com.sun.jndi.ldap.LdapResult
      StackMap stack:
            new com.sun.jndi.ldap.BerEncoder
            dup
            invokespecial com.sun.jndi.ldap.BerEncoder.<init>:()V
            astore 4 /* ber */
        start local 4 // com.sun.jndi.ldap.BerEncoder ber
         6: .line 1056
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            invokevirtual com.sun.jndi.ldap.Connection.getMsgId:()I
            istore 5 /* curMsgId */
        start local 5 // int curMsgId
         7: .line 1058
            aload 4 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         8: .line 1059
            aload 4 /* ber */
            iload 5 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
         9: .line 1060
            aload 4 /* ber */
            aload 1 /* DN */
            bipush 74
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;IZ)V
        10: .line 1061
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 11
            aload 4 /* ber */
            aload 2 /* reqCtls */
            invokestatic com.sun.jndi.ldap.LdapClient.encodeControls:(Lcom/sun/jndi/ldap/BerEncoder;[Ljavax/naming/ldap/Control;)V
        11: .line 1062
      StackMap locals: com.sun.jndi.ldap.BerEncoder int
      StackMap stack:
            aload 4 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        12: .line 1064
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 4 /* ber */
            iload 5 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.Connection.writeRequest:(Lcom/sun/jndi/ldap/BerEncoder;I)Lcom/sun/jndi/ldap/LdapRequest;
            astore 6 /* req */
        start local 6 // com.sun.jndi.ldap.LdapRequest req
        13: .line 1066
            aload 0 /* this */
            aload 6 /* req */
            aload 3 /* res */
            bipush 107
            invokevirtual com.sun.jndi.ldap.LdapClient.processReply:(Lcom/sun/jndi/ldap/LdapRequest;Lcom/sun/jndi/ldap/LdapResult;I)Lcom/sun/jndi/ldap/LdapResult;
            areturn
        end local 6 // com.sun.jndi.ldap.LdapRequest req
        end local 5 // int curMsgId
        end local 4 // com.sun.jndi.ldap.BerEncoder ber
        end local 3 // com.sun.jndi.ldap.LdapResult res
        end local 2 // javax.naming.ldap.Control[] reqCtls
        end local 1 // java.lang.String DN
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      this  Lcom/sun/jndi/ldap/LdapClient;
            0   14     1        DN  Ljava/lang/String;
            0   14     2   reqCtls  [Ljavax/naming/ldap/Control;
            2   14     3       res  Lcom/sun/jndi/ldap/LdapResult;
            6   14     4       ber  Lcom/sun/jndi/ldap/BerEncoder;
            7   14     5  curMsgId  I
           13   14     6       req  Lcom/sun/jndi/ldap/LdapRequest;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
         Name  Flags
      DN       
      reqCtls  

  com.sun.jndi.ldap.LdapResult moddn(java.lang.String, java.lang.String, boolean, java.lang.String, javax.naming.ldap.Control[]);
    descriptor: (Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0000) 
    Code:
      stack=4, locals=11, args_size=6
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // java.lang.String DN
        start local 2 // java.lang.String newrdn
        start local 3 // boolean deleteOldRdn
        start local 4 // java.lang.String newSuperior
        start local 5 // javax.naming.ldap.Control[] reqCtls
         0: .line 1086
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.ensureOpen:()V
         1: .line 1088
            aload 4 /* newSuperior */
            ifnull 4
         2: .line 1089
            aload 4 /* newSuperior */
            invokevirtual java.lang.String.length:()I
         3: .line 1088
            ifle 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 6 /* changeSuperior */
        start local 6 // boolean changeSuperior
         6: .line 1091
            new com.sun.jndi.ldap.LdapResult
            dup
            invokespecial com.sun.jndi.ldap.LdapResult.<init>:()V
            astore 7 /* res */
        start local 7 // com.sun.jndi.ldap.LdapResult res
         7: .line 1092
            aload 7 /* res */
            iconst_1
            putfield com.sun.jndi.ldap.LdapResult.status:I
         8: .line 1094
            aload 1 /* DN */
            ifnull 9
            aload 2 /* newrdn */
            ifnonnull 10
         9: .line 1095
      StackMap locals: int com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 7 /* res */
            areturn
        10: .line 1097
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.BerEncoder
            dup
            invokespecial com.sun.jndi.ldap.BerEncoder.<init>:()V
            astore 8 /* ber */
        start local 8 // com.sun.jndi.ldap.BerEncoder ber
        11: .line 1098
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            invokevirtual com.sun.jndi.ldap.Connection.getMsgId:()I
            istore 9 /* curMsgId */
        start local 9 // int curMsgId
        12: .line 1100
            aload 8 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
        13: .line 1101
            aload 8 /* ber */
            iload 9 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
        14: .line 1102
            aload 8 /* ber */
            bipush 108
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
        15: .line 1103
            aload 8 /* ber */
            aload 1 /* DN */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;Z)V
        16: .line 1104
            aload 8 /* ber */
            aload 2 /* newrdn */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;Z)V
        17: .line 1105
            aload 8 /* ber */
            iload 3 /* deleteOldRdn */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeBoolean:(Z)V
        18: .line 1106
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 20
            iload 6 /* changeSuperior */
            ifeq 20
        19: .line 1108
            aload 8 /* ber */
            aload 4 /* newSuperior */
            sipush 128
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;IZ)V
        20: .line 1110
      StackMap locals: com.sun.jndi.ldap.BerEncoder int
      StackMap stack:
            aload 8 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        21: .line 1111
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 22
            aload 8 /* ber */
            aload 5 /* reqCtls */
            invokestatic com.sun.jndi.ldap.LdapClient.encodeControls:(Lcom/sun/jndi/ldap/BerEncoder;[Ljavax/naming/ldap/Control;)V
        22: .line 1112
      StackMap locals:
      StackMap stack:
            aload 8 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        23: .line 1115
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 8 /* ber */
            iload 9 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.Connection.writeRequest:(Lcom/sun/jndi/ldap/BerEncoder;I)Lcom/sun/jndi/ldap/LdapRequest;
            astore 10 /* req */
        start local 10 // com.sun.jndi.ldap.LdapRequest req
        24: .line 1117
            aload 0 /* this */
            aload 10 /* req */
            aload 7 /* res */
            bipush 109
            invokevirtual com.sun.jndi.ldap.LdapClient.processReply:(Lcom/sun/jndi/ldap/LdapRequest;Lcom/sun/jndi/ldap/LdapResult;I)Lcom/sun/jndi/ldap/LdapResult;
            areturn
        end local 10 // com.sun.jndi.ldap.LdapRequest req
        end local 9 // int curMsgId
        end local 8 // com.sun.jndi.ldap.BerEncoder ber
        end local 7 // com.sun.jndi.ldap.LdapResult res
        end local 6 // boolean changeSuperior
        end local 5 // javax.naming.ldap.Control[] reqCtls
        end local 4 // java.lang.String newSuperior
        end local 3 // boolean deleteOldRdn
        end local 2 // java.lang.String newrdn
        end local 1 // java.lang.String DN
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   25     0            this  Lcom/sun/jndi/ldap/LdapClient;
            0   25     1              DN  Ljava/lang/String;
            0   25     2          newrdn  Ljava/lang/String;
            0   25     3    deleteOldRdn  Z
            0   25     4     newSuperior  Ljava/lang/String;
            0   25     5         reqCtls  [Ljavax/naming/ldap/Control;
            6   25     6  changeSuperior  Z
            7   25     7             res  Lcom/sun/jndi/ldap/LdapResult;
           11   25     8             ber  Lcom/sun/jndi/ldap/BerEncoder;
           12   25     9        curMsgId  I
           24   25    10             req  Lcom/sun/jndi/ldap/LdapRequest;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
              Name  Flags
      DN            
      newrdn        
      deleteOldRdn  
      newSuperior   
      reqCtls       

  com.sun.jndi.ldap.LdapResult compare(java.lang.String, java.lang.String, java.lang.String, javax.naming.ldap.Control[]);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljavax/naming/ldap/Control;)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0000) 
    Code:
      stack=4, locals=10, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // java.lang.String DN
        start local 2 // java.lang.String type
        start local 3 // java.lang.String value
        start local 4 // javax.naming.ldap.Control[] reqCtls
         0: .line 1130
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.ensureOpen:()V
         1: .line 1132
            new com.sun.jndi.ldap.LdapResult
            dup
            invokespecial com.sun.jndi.ldap.LdapResult.<init>:()V
            astore 5 /* res */
        start local 5 // com.sun.jndi.ldap.LdapResult res
         2: .line 1133
            aload 5 /* res */
            iconst_1
            putfield com.sun.jndi.ldap.LdapResult.status:I
         3: .line 1135
            aload 1 /* DN */
            ifnull 4
            aload 2 /* type */
            ifnull 4
            aload 3 /* value */
            ifnonnull 5
         4: .line 1136
      StackMap locals: com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 5 /* res */
            areturn
         5: .line 1138
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.BerEncoder
            dup
            invokespecial com.sun.jndi.ldap.BerEncoder.<init>:()V
            astore 6 /* ber */
        start local 6 // com.sun.jndi.ldap.BerEncoder ber
         6: .line 1139
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            invokevirtual com.sun.jndi.ldap.Connection.getMsgId:()I
            istore 7 /* curMsgId */
        start local 7 // int curMsgId
         7: .line 1141
            aload 6 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         8: .line 1142
            aload 6 /* ber */
            iload 7 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
         9: .line 1143
            aload 6 /* ber */
            bipush 110
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
        10: .line 1144
            aload 6 /* ber */
            aload 1 /* DN */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;Z)V
        11: .line 1145
            aload 6 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
        12: .line 1146
            aload 6 /* ber */
            aload 2 /* type */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;Z)V
        13: .line 1149
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 15
        14: .line 1150
            aload 3 /* value */
            ldc "UTF8"
            invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
            goto 16
      StackMap locals: com.sun.jndi.ldap.BerEncoder int
      StackMap stack:
        15: aload 3 /* value */
            ldc "8859_1"
            invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
        16: .line 1149
      StackMap locals:
      StackMap stack: byte[]
            astore 8 /* val */
        start local 8 // byte[] val
        17: .line 1151
            aload 6 /* ber */
        18: .line 1152
            aload 8 /* val */
            iconst_0
            aload 8 /* val */
            arraylength
            invokestatic com.sun.jndi.ldap.Filter.unescapeFilterValue:([BII)[B
        19: .line 1153
            iconst_4
        20: .line 1151
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BI)V
        21: .line 1155
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        22: .line 1156
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        23: .line 1157
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
            ifeq 24
            aload 6 /* ber */
            aload 4 /* reqCtls */
            invokestatic com.sun.jndi.ldap.LdapClient.encodeControls:(Lcom/sun/jndi/ldap/BerEncoder;[Ljavax/naming/ldap/Control;)V
        24: .line 1158
      StackMap locals: byte[]
      StackMap stack:
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        25: .line 1160
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 6 /* ber */
            iload 7 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.Connection.writeRequest:(Lcom/sun/jndi/ldap/BerEncoder;I)Lcom/sun/jndi/ldap/LdapRequest;
            astore 9 /* req */
        start local 9 // com.sun.jndi.ldap.LdapRequest req
        26: .line 1162
            aload 0 /* this */
            aload 9 /* req */
            aload 5 /* res */
            bipush 111
            invokevirtual com.sun.jndi.ldap.LdapClient.processReply:(Lcom/sun/jndi/ldap/LdapRequest;Lcom/sun/jndi/ldap/LdapResult;I)Lcom/sun/jndi/ldap/LdapResult;
            areturn
        end local 9 // com.sun.jndi.ldap.LdapRequest req
        end local 8 // byte[] val
        end local 7 // int curMsgId
        end local 6 // com.sun.jndi.ldap.BerEncoder ber
        end local 5 // com.sun.jndi.ldap.LdapResult res
        end local 4 // javax.naming.ldap.Control[] reqCtls
        end local 3 // java.lang.String value
        end local 2 // java.lang.String type
        end local 1 // java.lang.String DN
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   27     0      this  Lcom/sun/jndi/ldap/LdapClient;
            0   27     1        DN  Ljava/lang/String;
            0   27     2      type  Ljava/lang/String;
            0   27     3     value  Ljava/lang/String;
            0   27     4   reqCtls  [Ljavax/naming/ldap/Control;
            2   27     5       res  Lcom/sun/jndi/ldap/LdapResult;
            6   27     6       ber  Lcom/sun/jndi/ldap/BerEncoder;
            7   27     7  curMsgId  I
           17   27     8       val  [B
           26   27     9       req  Lcom/sun/jndi/ldap/LdapRequest;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
         Name  Flags
      DN       
      type     
      value    
      reqCtls  

  com.sun.jndi.ldap.LdapResult extendedOp(java.lang.String, byte[], javax.naming.ldap.Control[], boolean);
    descriptor: (Ljava/lang/String;[B[Ljavax/naming/ldap/Control;Z)Lcom/sun/jndi/ldap/LdapResult;
    flags: (0x0000) 
    Code:
      stack=4, locals=10, args_size=5
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // java.lang.String id
        start local 2 // byte[] request
        start local 3 // javax.naming.ldap.Control[] reqCtls
        start local 4 // boolean pauseAfterReceipt
         0: .line 1174
            aload 0 /* this */
            invokevirtual com.sun.jndi.ldap.LdapClient.ensureOpen:()V
         1: .line 1176
            new com.sun.jndi.ldap.LdapResult
            dup
            invokespecial com.sun.jndi.ldap.LdapResult.<init>:()V
            astore 5 /* res */
        start local 5 // com.sun.jndi.ldap.LdapResult res
         2: .line 1177
            aload 5 /* res */
            iconst_1
            putfield com.sun.jndi.ldap.LdapResult.status:I
         3: .line 1179
            aload 1 /* id */
            ifnonnull 5
         4: .line 1180
            aload 5 /* res */
            areturn
         5: .line 1182
      StackMap locals: com.sun.jndi.ldap.LdapResult
      StackMap stack:
            new com.sun.jndi.ldap.BerEncoder
            dup
            invokespecial com.sun.jndi.ldap.BerEncoder.<init>:()V
            astore 6 /* ber */
        start local 6 // com.sun.jndi.ldap.BerEncoder ber
         6: .line 1183
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            invokevirtual com.sun.jndi.ldap.Connection.getMsgId:()I
            istore 7 /* curMsgId */
        start local 7 // int curMsgId
         7: .line 1185
            aload 6 /* ber */
            bipush 48
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
         8: .line 1186
            aload 6 /* ber */
            iload 7 /* curMsgId */
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeInt:(I)V
         9: .line 1187
            aload 6 /* ber */
            bipush 119
            invokevirtual com.sun.jndi.ldap.BerEncoder.beginSeq:(I)V
        10: .line 1188
            aload 6 /* ber */
            aload 1 /* id */
        11: .line 1189
            sipush 128
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.isLdapv3:Z
        12: .line 1188
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeString:(Ljava/lang/String;IZ)V
        13: .line 1190
            aload 2 /* request */
            ifnull 17
        14: .line 1191
            aload 6 /* ber */
            aload 2 /* request */
        15: .line 1192
            sipush 129
        16: .line 1191
            invokevirtual com.sun.jndi.ldap.BerEncoder.encodeOctetString:([BI)V
        17: .line 1194
      StackMap locals: com.sun.jndi.ldap.BerEncoder int
      StackMap stack:
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        18: .line 1195
            aload 6 /* ber */
            aload 3 /* reqCtls */
            invokestatic com.sun.jndi.ldap.LdapClient.encodeControls:(Lcom/sun/jndi/ldap/BerEncoder;[Ljavax/naming/ldap/Control;)V
        19: .line 1196
            aload 6 /* ber */
            invokevirtual com.sun.jndi.ldap.BerEncoder.endSeq:()V
        20: .line 1198
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 6 /* ber */
            iload 7 /* curMsgId */
            iload 4 /* pauseAfterReceipt */
            invokevirtual com.sun.jndi.ldap.Connection.writeRequest:(Lcom/sun/jndi/ldap/BerEncoder;IZ)Lcom/sun/jndi/ldap/LdapRequest;
            astore 8 /* req */
        start local 8 // com.sun.jndi.ldap.LdapRequest req
        21: .line 1200
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 8 /* req */
            invokevirtual com.sun.jndi.ldap.Connection.readReply:(Lcom/sun/jndi/ldap/LdapRequest;)Lcom/sun/jndi/ldap/BerDecoder;
            astore 9 /* rber */
        start local 9 // com.sun.jndi.ldap.BerDecoder rber
        22: .line 1202
            aload 9 /* rber */
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            pop
        23: .line 1203
            aload 9 /* rber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseInt:()I
            pop
        24: .line 1204
            aload 9 /* rber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseByte:()I
            bipush 120
            if_icmpeq 26
        25: .line 1205
            aload 5 /* res */
            areturn
        26: .line 1208
      StackMap locals: com.sun.jndi.ldap.LdapRequest com.sun.jndi.ldap.BerDecoder
      StackMap stack:
            aload 9 /* rber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseLength:()I
            pop
        27: .line 1209
            aload 0 /* this */
            aload 9 /* rber */
            aload 5 /* res */
            invokevirtual com.sun.jndi.ldap.LdapClient.parseExtResponse:(Lcom/sun/jndi/ldap/BerDecoder;Lcom/sun/jndi/ldap/LdapResult;)V
        28: .line 1210
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            aload 8 /* req */
            invokevirtual com.sun.jndi.ldap.Connection.removeRequest:(Lcom/sun/jndi/ldap/LdapRequest;)V
        29: .line 1212
            aload 5 /* res */
            areturn
        end local 9 // com.sun.jndi.ldap.BerDecoder rber
        end local 8 // com.sun.jndi.ldap.LdapRequest req
        end local 7 // int curMsgId
        end local 6 // com.sun.jndi.ldap.BerEncoder ber
        end local 5 // com.sun.jndi.ldap.LdapResult res
        end local 4 // boolean pauseAfterReceipt
        end local 3 // javax.naming.ldap.Control[] reqCtls
        end local 2 // byte[] request
        end local 1 // java.lang.String id
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   30     0               this  Lcom/sun/jndi/ldap/LdapClient;
            0   30     1                 id  Ljava/lang/String;
            0   30     2            request  [B
            0   30     3            reqCtls  [Ljavax/naming/ldap/Control;
            0   30     4  pauseAfterReceipt  Z
            2   30     5                res  Lcom/sun/jndi/ldap/LdapResult;
            6   30     6                ber  Lcom/sun/jndi/ldap/BerEncoder;
            7   30     7           curMsgId  I
           21   30     8                req  Lcom/sun/jndi/ldap/LdapRequest;
           22   30     9               rber  Lcom/sun/jndi/ldap/BerDecoder;
    Exceptions:
      throws java.io.IOException, javax.naming.NamingException
    MethodParameters:
                   Name  Flags
      id                 
      request            
      reqCtls            
      pauseAfterReceipt  

  static java.lang.String getErrorMessage(int, java.lang.String);
    descriptor: (ILjava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // int errorCode
        start local 1 // java.lang.String errorMessage
         0: .line 1437
            new java.lang.StringBuilder
            dup
            ldc "[LDAP: error code "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* errorCode */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* message */
        start local 2 // java.lang.String message
         1: .line 1439
            aload 1 /* errorMessage */
            ifnull 4
            aload 1 /* errorMessage */
            invokevirtual java.lang.String.length:()I
            ifeq 4
         2: .line 1442
            new java.lang.StringBuilder
            dup
            aload 2 /* message */
            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 /* errorMessage */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* message */
         3: .line 1444
            goto 11
         4: .line 1448
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic com.sun.jndi.ldap.LdapClient.ldap_error_message:[Ljava/lang/String;
            iload 0 /* errorCode */
            aaload
            ifnull 11
         5: .line 1449
            new java.lang.StringBuilder
            dup
            aload 2 /* message */
            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;
            getstatic com.sun.jndi.ldap.LdapClient.ldap_error_message:[Ljava/lang/String;
            iload 0 /* errorCode */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 1450
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 1449
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* message */
         8: .line 1452
            goto 11
      StackMap locals:
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
         9: pop
        10: .line 1453
            new java.lang.StringBuilder
            dup
            aload 2 /* message */
            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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* message */
        11: .line 1456
      StackMap locals:
      StackMap stack:
            aload 2 /* message */
            areturn
        end local 2 // java.lang.String message
        end local 1 // java.lang.String errorMessage
        end local 0 // int errorCode
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   12     0     errorCode  I
            0   12     1  errorMessage  Ljava/lang/String;
            1   12     2       message  Ljava/lang/String;
      Exception table:
        from    to  target  type
           4     8       9  Class java.lang.ArrayIndexOutOfBoundsException
    MethodParameters:
              Name  Flags
      errorCode     
      errorMessage  

  void addUnsolicited(com.sun.jndi.ldap.LdapCtx);
    descriptor: (Lcom/sun/jndi/ldap/LdapCtx;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // com.sun.jndi.ldap.LdapCtx ctx
         0: .line 1489
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.unsolicited:Ljava/util/Vector;
            aload 1 /* ctx */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
         1: .line 1490
            return
        end local 1 // com.sun.jndi.ldap.LdapCtx ctx
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/LdapClient;
            0    2     1   ctx  Lcom/sun/jndi/ldap/LdapCtx;
    MethodParameters:
      Name  Flags
      ctx   

  void removeUnsolicited(com.sun.jndi.ldap.LdapCtx);
    descriptor: (Lcom/sun/jndi/ldap/LdapCtx;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // com.sun.jndi.ldap.LdapCtx ctx
         0: .line 1496
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.unsolicited:Ljava/util/Vector;
            aload 1 /* ctx */
            invokevirtual java.util.Vector.removeElement:(Ljava/lang/Object;)Z
            pop
         1: .line 1497
            return
        end local 1 // com.sun.jndi.ldap.LdapCtx ctx
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/jndi/ldap/LdapClient;
            0    2     1   ctx  Lcom/sun/jndi/ldap/LdapCtx;
    MethodParameters:
      Name  Flags
      ctx   

  void processUnsolicited(com.sun.jndi.ldap.BerDecoder);
    descriptor: (Lcom/sun/jndi/ldap/BerDecoder;)V
    flags: (0x0000) 
    Code:
      stack=10, locals=6, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // com.sun.jndi.ldap.BerDecoder ber
         0: .line 1507
            new com.sun.jndi.ldap.LdapResult
            dup
            invokespecial com.sun.jndi.ldap.LdapResult.<init>:()V
            astore 2 /* res */
        start local 2 // com.sun.jndi.ldap.LdapResult res
         1: .line 1509
            aload 1 /* ber */
            aconst_null
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseSeq:([I)I
            pop
         2: .line 1510
            aload 1 /* ber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseInt:()I
            pop
         3: .line 1511
            aload 1 /* ber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseByte:()I
            bipush 120
            if_icmpeq 7
         4: .line 1512
            new java.io.IOException
            dup
         5: .line 1513
            ldc "Unsolicited Notification must be an Extended Response"
         6: .line 1512
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 1515
      StackMap locals: com.sun.jndi.ldap.LdapResult
      StackMap stack:
            aload 1 /* ber */
            invokevirtual com.sun.jndi.ldap.BerDecoder.parseLength:()I
            pop
         8: .line 1516
            aload 0 /* this */
            aload 1 /* ber */
            aload 2 /* res */
            invokevirtual com.sun.jndi.ldap.LdapClient.parseExtResponse:(Lcom/sun/jndi/ldap/BerDecoder;Lcom/sun/jndi/ldap/LdapResult;)V
         9: .line 1518
            ldc "1.3.6.1.4.1.1466.20036"
            aload 2 /* res */
            getfield com.sun.jndi.ldap.LdapResult.extensionId:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 1520
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.pooled:Z
            invokevirtual com.sun.jndi.ldap.LdapClient.forceClose:(Z)V
        11: .line 1523
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3 /* first */
        start local 3 // com.sun.jndi.ldap.LdapCtx first
        12: .line 1524
            aconst_null
            astore 4 /* notice */
        start local 4 // javax.naming.ldap.UnsolicitedNotification notice
        13: .line 1526
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.unsolicited:Ljava/util/Vector;
            dup
            astore 5
            monitorenter
        14: .line 1527
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.unsolicited:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            ifle 27
        15: .line 1528
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.unsolicited:Ljava/util/Vector;
            iconst_0
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast com.sun.jndi.ldap.LdapCtx
            astore 3 /* first */
        16: .line 1533
            new com.sun.jndi.ldap.UnsolicitedResponseImpl
            dup
        17: .line 1534
            aload 2 /* res */
            getfield com.sun.jndi.ldap.LdapResult.extensionId:Ljava/lang/String;
        18: .line 1535
            aload 2 /* res */
            getfield com.sun.jndi.ldap.LdapResult.extensionValue:[B
        19: .line 1536
            aload 2 /* res */
            getfield com.sun.jndi.ldap.LdapResult.referrals:Ljava/util/Vector;
        20: .line 1537
            aload 2 /* res */
            getfield com.sun.jndi.ldap.LdapResult.status:I
        21: .line 1538
            aload 2 /* res */
            getfield com.sun.jndi.ldap.LdapResult.errorMessage:Ljava/lang/String;
        22: .line 1539
            aload 2 /* res */
            getfield com.sun.jndi.ldap.LdapResult.matchedDN:Ljava/lang/String;
        23: .line 1540
            aload 2 /* res */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            ifnull 25
        24: .line 1541
            aload 3 /* first */
            aload 2 /* res */
            getfield com.sun.jndi.ldap.LdapResult.resControls:Ljava/util/Vector;
            invokevirtual com.sun.jndi.ldap.LdapCtx.convertControls:(Ljava/util/Vector;)[Ljavax/naming/ldap/Control;
            goto 26
        25: .line 1542
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.BerDecoder com.sun.jndi.ldap.LdapResult com.sun.jndi.ldap.LdapCtx javax.naming.ldap.UnsolicitedNotification java.util.Vector
      StackMap stack: new 16 new 16 java.lang.String byte[] java.util.Vector int java.lang.String java.lang.String
            aconst_null
        26: .line 1533
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.BerDecoder com.sun.jndi.ldap.LdapResult com.sun.jndi.ldap.LdapCtx javax.naming.ldap.UnsolicitedNotification java.util.Vector
      StackMap stack: new 16 new 16 java.lang.String byte[] java.util.Vector int java.lang.String java.lang.String javax.naming.ldap.Control[]
            invokespecial com.sun.jndi.ldap.UnsolicitedResponseImpl.<init>:(Ljava/lang/String;[BLjava/util/Vector;ILjava/lang/String;Ljava/lang/String;[Ljavax/naming/ldap/Control;)V
            astore 4 /* notice */
        27: .line 1526
      StackMap locals:
      StackMap stack:
            aload 5
            monitorexit
        28: goto 31
      StackMap locals:
      StackMap stack: java.lang.Throwable
        29: aload 5
            monitorexit
        30: athrow
        31: .line 1546
      StackMap locals:
      StackMap stack:
            aload 4 /* notice */
            ifnull 47
        32: .line 1548
            aload 0 /* this */
            aload 4 /* notice */
            invokevirtual com.sun.jndi.ldap.LdapClient.notifyUnsolicited:(Ljava/lang/Object;)V
        33: .line 1552
            ldc "1.3.6.1.4.1.1466.20036"
            aload 2 /* res */
            getfield com.sun.jndi.ldap.LdapResult.extensionId:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 47
        34: .line 1553
            aload 0 /* this */
        35: .line 1554
            new javax.naming.CommunicationException
            dup
            ldc "Connection closed"
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
        36: .line 1553
            invokevirtual com.sun.jndi.ldap.LdapClient.notifyUnsolicited:(Ljava/lang/Object;)V
        end local 4 // javax.naming.ldap.UnsolicitedNotification notice
        end local 3 // com.sun.jndi.ldap.LdapCtx first
        end local 2 // com.sun.jndi.ldap.LdapResult res
        37: .line 1557
            goto 47
      StackMap locals: com.sun.jndi.ldap.LdapClient com.sun.jndi.ldap.BerDecoder
      StackMap stack: java.io.IOException
        38: astore 2 /* e */
        start local 2 // java.io.IOException e
        39: .line 1558
            new javax.naming.CommunicationException
            dup
        40: .line 1559
            ldc "Problem parsing unsolicited notification"
        41: .line 1558
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            astore 3 /* ne */
        start local 3 // javax.naming.NamingException ne
        42: .line 1560
            aload 3 /* ne */
            aload 2 /* e */
            invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
        43: .line 1562
            aload 0 /* this */
            aload 3 /* ne */
            invokevirtual com.sun.jndi.ldap.LdapClient.notifyUnsolicited:(Ljava/lang/Object;)V
        end local 3 // javax.naming.NamingException ne
        end local 2 // java.io.IOException e
        44: goto 47
        45: .line 1564
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            astore 2 /* e */
        start local 2 // javax.naming.NamingException e
        46: .line 1565
            aload 0 /* this */
            aload 2 /* e */
            invokevirtual com.sun.jndi.ldap.LdapClient.notifyUnsolicited:(Ljava/lang/Object;)V
        end local 2 // javax.naming.NamingException e
        47: .line 1567
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.jndi.ldap.BerDecoder ber
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   48     0    this  Lcom/sun/jndi/ldap/LdapClient;
            0   48     1     ber  Lcom/sun/jndi/ldap/BerDecoder;
            1   37     2     res  Lcom/sun/jndi/ldap/LdapResult;
           12   37     3   first  Lcom/sun/jndi/ldap/LdapCtx;
           13   37     4  notice  Ljavax/naming/ldap/UnsolicitedNotification;
           39   44     2       e  Ljava/io/IOException;
           42   44     3      ne  Ljavax/naming/NamingException;
           46   47     2       e  Ljavax/naming/NamingException;
      Exception table:
        from    to  target  type
          14    28      29  any
          29    30      29  any
           0    37      38  Class java.io.IOException
           0    37      45  Class javax.naming.NamingException
    MethodParameters:
      Name  Flags
      ber   

  private void notifyUnsolicited(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.sun.jndi.ldap.LdapClient this
        start local 1 // java.lang.Object e
         0: .line 1572
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.unsolicited:Ljava/util/Vector;
            dup
            astore 3
            monitorenter
         1: .line 1573
            new java.util.Vector
            dup
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.unsolicited:Ljava/util/Vector;
            invokespecial java.util.Vector.<init>:(Ljava/util/Collection;)V
            astore 2 /* unsolicitedCopy */
        start local 2 // java.util.Vector unsolicitedCopy
         2: .line 1574
            aload 1 /* e */
            instanceof javax.naming.NamingException
            ifeq 4
         3: .line 1575
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.unsolicited:Ljava/util/Vector;
            iconst_0
            invokevirtual java.util.Vector.setSize:(I)V
         4: .line 1572
      StackMap locals: java.util.Vector java.util.Vector
      StackMap stack:
            aload 3
            monitorexit
         5: goto 8
        end local 2 // java.util.Vector unsolicitedCopy
      StackMap locals: com.sun.jndi.ldap.LdapClient java.lang.Object top java.util.Vector
      StackMap stack: java.lang.Throwable
         6: aload 3
            monitorexit
         7: athrow
        start local 2 // java.util.Vector unsolicitedCopy
         8: .line 1578
      StackMap locals: com.sun.jndi.ldap.LdapClient java.lang.Object java.util.Vector
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         9: goto 12
        10: .line 1579
      StackMap locals: int
      StackMap stack:
            aload 2 /* unsolicitedCopy */
            iload 3 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast com.sun.jndi.ldap.LdapCtx
            aload 1 /* e */
            invokevirtual com.sun.jndi.ldap.LdapCtx.fireUnsolicited:(Ljava/lang/Object;)V
        11: .line 1578
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 3 /* i */
            aload 2 /* unsolicitedCopy */
            invokevirtual java.util.Vector.size:()I
            if_icmplt 10
        end local 3 // int i
        13: .line 1581
            return
        end local 2 // java.util.Vector unsolicitedCopy
        end local 1 // java.lang.Object e
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   14     0             this  Lcom/sun/jndi/ldap/LdapClient;
            0   14     1                e  Ljava/lang/Object;
            2    6     2  unsolicitedCopy  Ljava/util/Vector<Lcom/sun/jndi/ldap/LdapCtx;>;
            8   14     2  unsolicitedCopy  Ljava/util/Vector<Lcom/sun/jndi/ldap/LdapCtx;>;
            9   13     3                i  I
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any
    MethodParameters:
      Name  Flags
      e     

  private void ensureOpen();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.jndi.ldap.LdapClient this
         0: .line 1584
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            ifnull 1
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.useable:Z
            ifne 4
         1: .line 1585
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            ifnull 3
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.closureReason:Ljava/io/IOException;
            ifnull 3
         2: .line 1586
            aload 0 /* this */
            getfield com.sun.jndi.ldap.LdapClient.conn:Lcom/sun/jndi/ldap/Connection;
            getfield com.sun.jndi.ldap.Connection.closureReason:Ljava/io/IOException;
            athrow
         3: .line 1588
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            ldc "connection closed"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1591
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.jndi.ldap.LdapClient this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/jndi/ldap/LdapClient;
    Exceptions:
      throws java.io.IOException

  static com.sun.jndi.ldap.LdapClient getInstance(boolean, java.lang.String, int, java.lang.String, int, int, java.io.OutputStream, int, java.lang.String, javax.naming.ldap.Control[], java.lang.String, java.lang.String, , java.util.Hashtable<?, ?>);
    descriptor: (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;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=13, locals=15, args_size=14
        start local 0 // boolean usePool
        start local 1 // java.lang.String hostname
        start local 2 // int port
        start local 3 // java.lang.String factory
        start local 4 // int connectTimeout
        start local 5 // int readTimeout
        start local 6 // java.io.OutputStream trace
        start local 7 // int version
        start local 8 // java.lang.String authMechanism
        start local 9 // javax.naming.ldap.Control[] ctls
        start local 10 // java.lang.String protocol
        start local 11 // java.lang.String user
        start local 12 // java.lang.Object passwd
        start local 13 // java.util.Hashtable env
         0: .line 1599
            iload 0 /* usePool */
            ifeq 11
         1: .line 1600
            aload 3 /* factory */
            aload 6 /* trace */
         2: .line 1601
            aload 8 /* authMechanism */
            aload 10 /* protocol */
            aload 13 /* env */
         3: .line 1600
            invokestatic com.sun.jndi.ldap.LdapPoolManager.isPoolingAllowed:(Ljava/lang/String;Ljava/io/OutputStream;Ljava/lang/String;Ljava/lang/String;Ljava/util/Hashtable;)Z
         4: .line 1601
            ifeq 11
         5: .line 1603
            aload 1 /* hostname */
            iload 2 /* port */
            aload 3 /* factory */
            iload 4 /* connectTimeout */
            iload 5 /* readTimeout */
         6: .line 1604
            aload 6 /* trace */
            iload 7 /* version */
            aload 8 /* authMechanism */
            aload 9 /* ctls */
            aload 10 /* protocol */
            aload 11 /* user */
         7: .line 1605
            aload 12 /* passwd */
            aload 13 /* env */
         8: .line 1602
            invokestatic com.sun.jndi.ldap.LdapPoolManager.getLdapClient:(Ljava/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;
            astore 14 /* answer */
        start local 14 // com.sun.jndi.ldap.LdapClient answer
         9: .line 1606
            aload 14 /* answer */
            iconst_1
            putfield com.sun.jndi.ldap.LdapClient.referenceCount:I
        10: .line 1607
            aload 14 /* answer */
            areturn
        end local 14 // com.sun.jndi.ldap.LdapClient answer
        11: .line 1610
      StackMap locals:
      StackMap stack:
            new com.sun.jndi.ldap.LdapClient
            dup
            aload 1 /* hostname */
            iload 2 /* port */
            aload 3 /* factory */
            iload 4 /* connectTimeout */
        12: .line 1611
            iload 5 /* readTimeout */
            aload 6 /* trace */
            aconst_null
        13: .line 1610
            invokespecial com.sun.jndi.ldap.LdapClient.<init>:(Ljava/lang/String;ILjava/lang/String;IILjava/io/OutputStream;Lcom/sun/jndi/ldap/pool/PoolCallback;)V
            areturn
        end local 13 // java.util.Hashtable env
        end local 12 // java.lang.Object passwd
        end local 11 // java.lang.String user
        end local 10 // java.lang.String protocol
        end local 9 // javax.naming.ldap.Control[] ctls
        end local 8 // java.lang.String authMechanism
        end local 7 // int version
        end local 6 // java.io.OutputStream trace
        end local 5 // int readTimeout
        end local 4 // int connectTimeout
        end local 3 // java.lang.String factory
        end local 2 // int port
        end local 1 // java.lang.String hostname
        end local 0 // boolean usePool
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   14     0         usePool  Z
            0   14     1        hostname  Ljava/lang/String;
            0   14     2            port  I
            0   14     3         factory  Ljava/lang/String;
            0   14     4  connectTimeout  I
            0   14     5     readTimeout  I
            0   14     6           trace  Ljava/io/OutputStream;
            0   14     7         version  I
            0   14     8   authMechanism  Ljava/lang/String;
            0   14     9            ctls  [Ljavax/naming/ldap/Control;
            0   14    10        protocol  Ljava/lang/String;
            0   14    11            user  Ljava/lang/String;
            0   14    12          passwd  Ljava/lang/Object;
            0   14    13             env  Ljava/util/Hashtable<**>;
            9   11    14          answer  Lcom/sun/jndi/ldap/LdapClient;
    Exceptions:
      throws javax.naming.NamingException
    Signature: (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;
    MethodParameters:
                Name  Flags
      usePool         
      hostname        
      port            
      factory         
      connectTimeout  
      readTimeout     
      trace           
      version         
      authMechanism   
      ctls            
      protocol        
      user            
      passwd          
      env             
}
SourceFile: "LdapClient.java"