public class org.mongodb.morphia.query.QueryImpl<T> extends org.mongodb.morphia.query.CriteriaContainerImpl implements org.mongodb.morphia.query.Query<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.mongodb.morphia.query.QueryImpl
  super_class: org.mongodb.morphia.query.CriteriaContainerImpl
{
  private static final org.mongodb.morphia.logging.Logger LOG;
    descriptor: Lorg/mongodb/morphia/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final org.mongodb.morphia.DatastoreImpl ds;
    descriptor: Lorg/mongodb/morphia/DatastoreImpl;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.DBCollection dbColl;
    descriptor: Lcom/mongodb/DBCollection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Class<T> clazz;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<TT;>;

  private org.mongodb.morphia.mapping.cache.EntityCache cache;
    descriptor: Lorg/mongodb/morphia/mapping/cache/EntityCache;
    flags: (0x0002) ACC_PRIVATE

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

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

  private java.lang.Boolean includeFields;
    descriptor: Ljava/lang/Boolean;
    flags: (0x0002) ACC_PRIVATE

  private com.mongodb.BasicDBObject baseQuery;
    descriptor: Lcom/mongodb/BasicDBObject;
    flags: (0x0002) ACC_PRIVATE

  private org.mongodb.morphia.query.FindOptions options;
    descriptor: Lorg/mongodb/morphia/query/FindOptions;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 44
            ldc Lorg/mongodb/morphia/query/QueryImpl;
            invokestatic org.mongodb.morphia.logging.MorphiaLoggerFactory.get:(Ljava/lang/Class;)Lorg/mongodb/morphia/logging/Logger;
            putstatic org.mongodb.morphia.query.QueryImpl.LOG:Lorg/mongodb/morphia/logging/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  org.mongodb.morphia.query.FindOptions getOptions();
    descriptor: ()Lorg/mongodb/morphia/query/FindOptions;
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 56
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.options:Lorg/mongodb/morphia/query/FindOptions;
            ifnonnull 2
         1: .line 57
            aload 0 /* this */
            new org.mongodb.morphia.query.FindOptions
            dup
            invokespecial org.mongodb.morphia.query.FindOptions.<init>:()V
            putfield org.mongodb.morphia.query.QueryImpl.options:Lorg/mongodb/morphia/query/FindOptions;
         2: .line 59
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.options:Lorg/mongodb/morphia/query/FindOptions;
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;

  public void <init>(java.lang.Class<T>, com.mongodb.DBCollection, org.mongodb.morphia.Datastore);
    descriptor: (Ljava/lang/Class;Lcom/mongodb/DBCollection;Lorg/mongodb/morphia/Datastore;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // java.lang.Class clazz
        start local 2 // com.mongodb.DBCollection coll
        start local 3 // org.mongodb.morphia.Datastore ds
         0: .line 70
            aload 0 /* this */
            getstatic org.mongodb.morphia.query.CriteriaJoin.AND:Lorg/mongodb/morphia/query/CriteriaJoin;
            invokespecial org.mongodb.morphia.query.CriteriaContainerImpl.<init>:(Lorg/mongodb/morphia/query/CriteriaJoin;)V
         1: .line 49
            aload 0 /* this */
            iconst_1
            putfield org.mongodb.morphia.query.QueryImpl.validateName:Z
         2: .line 50
            aload 0 /* this */
            iconst_1
            putfield org.mongodb.morphia.query.QueryImpl.validateType:Z
         3: .line 72
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.setQuery:(Lorg/mongodb/morphia/query/QueryImpl;)V
         4: .line 73
            aload 0 /* this */
            aload 1 /* clazz */
            putfield org.mongodb.morphia.query.QueryImpl.clazz:Ljava/lang/Class;
         5: .line 74
            aload 0 /* this */
            aload 3 /* ds */
            checkcast org.mongodb.morphia.DatastoreImpl
            putfield org.mongodb.morphia.query.QueryImpl.ds:Lorg/mongodb/morphia/DatastoreImpl;
         6: .line 75
            aload 0 /* this */
            aload 2 /* coll */
            putfield org.mongodb.morphia.query.QueryImpl.dbColl:Lcom/mongodb/DBCollection;
         7: .line 76
            aload 0 /* this */
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.ds:Lorg/mongodb/morphia/DatastoreImpl;
            invokevirtual org.mongodb.morphia.DatastoreImpl.getMapper:()Lorg/mongodb/morphia/mapping/Mapper;
            invokevirtual org.mongodb.morphia.mapping.Mapper.createEntityCache:()Lorg/mongodb/morphia/mapping/cache/EntityCache;
            putfield org.mongodb.morphia.query.QueryImpl.cache:Lorg/mongodb/morphia/mapping/cache/EntityCache;
         8: .line 78
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.ds:Lorg/mongodb/morphia/DatastoreImpl;
            invokevirtual org.mongodb.morphia.DatastoreImpl.getMapper:()Lorg/mongodb/morphia/mapping/Mapper;
            aload 1 /* clazz */
            invokevirtual org.mongodb.morphia.mapping.Mapper.getMappedClass:(Ljava/lang/Object;)Lorg/mongodb/morphia/mapping/MappedClass;
            astore 4 /* mc */
        start local 4 // org.mongodb.morphia.mapping.MappedClass mc
         9: .line 79
            aload 4 /* mc */
            ifnonnull 10
            aconst_null
            goto 11
      StackMap locals: org.mongodb.morphia.query.QueryImpl java.lang.Class com.mongodb.DBCollection org.mongodb.morphia.Datastore org.mongodb.morphia.mapping.MappedClass
      StackMap stack:
        10: aload 4 /* mc */
            invokevirtual org.mongodb.morphia.mapping.MappedClass.getEntityAnnotation:()Lorg/mongodb/morphia/annotations/Entity;
      StackMap locals:
      StackMap stack: org.mongodb.morphia.annotations.Entity
        11: astore 5 /* entAn */
        start local 5 // org.mongodb.morphia.annotations.Entity entAn
        12: .line 80
            aload 5 /* entAn */
            ifnull 17
        13: .line 81
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.ds:Lorg/mongodb/morphia/DatastoreImpl;
            invokevirtual org.mongodb.morphia.DatastoreImpl.getMapper:()Lorg/mongodb/morphia/mapping/Mapper;
            aload 1 /* clazz */
            invokevirtual org.mongodb.morphia.mapping.Mapper.getMappedClass:(Ljava/lang/Object;)Lorg/mongodb/morphia/mapping/MappedClass;
            invokevirtual org.mongodb.morphia.mapping.MappedClass.getEntityAnnotation:()Lorg/mongodb/morphia/annotations/Entity;
            invokeinterface org.mongodb.morphia.annotations.Entity.queryNonPrimary:()Z
            ifeq 15
        14: .line 82
            invokestatic com.mongodb.ReadPreference.secondaryPreferred:()Lcom/mongodb/ReadPreference;
            goto 16
        15: .line 83
      StackMap locals: org.mongodb.morphia.query.QueryImpl java.lang.Class com.mongodb.DBCollection org.mongodb.morphia.Datastore org.mongodb.morphia.mapping.MappedClass org.mongodb.morphia.annotations.Entity
      StackMap stack: org.mongodb.morphia.query.FindOptions
            aconst_null
        16: .line 81
      StackMap locals: org.mongodb.morphia.query.QueryImpl java.lang.Class com.mongodb.DBCollection org.mongodb.morphia.Datastore org.mongodb.morphia.mapping.MappedClass org.mongodb.morphia.annotations.Entity
      StackMap stack: org.mongodb.morphia.query.FindOptions com.mongodb.ReadPreference
            invokevirtual org.mongodb.morphia.query.FindOptions.readPreference:(Lcom/mongodb/ReadPreference;)Lorg/mongodb/morphia/query/FindOptions;
            pop
        17: .line 85
      StackMap locals:
      StackMap stack:
            return
        end local 5 // org.mongodb.morphia.annotations.Entity entAn
        end local 4 // org.mongodb.morphia.mapping.MappedClass mc
        end local 3 // org.mongodb.morphia.Datastore ds
        end local 2 // com.mongodb.DBCollection coll
        end local 1 // java.lang.Class clazz
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   18     0   this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0   18     1  clazz  Ljava/lang/Class<TT;>;
            0   18     2   coll  Lcom/mongodb/DBCollection;
            0   18     3     ds  Lorg/mongodb/morphia/Datastore;
            9   18     4     mc  Lorg/mongodb/morphia/mapping/MappedClass;
           12   18     5  entAn  Lorg/mongodb/morphia/annotations/Entity;
    Signature: (Ljava/lang/Class<TT;>;Lcom/mongodb/DBCollection;Lorg/mongodb/morphia/Datastore;)V
    MethodParameters:
       Name  Flags
      clazz  final
      coll   final
      ds     final

  public static com.mongodb.BasicDBObject parseFieldsString(java.lang.String, java.lang.Class, org.mongodb.morphia.mapping.Mapper, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;Lorg/mongodb/morphia/mapping/Mapper;Z)Lcom/mongodb/BasicDBObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=12, args_size=4
        start local 0 // java.lang.String str
        start local 1 // java.lang.Class clazz
        start local 2 // org.mongodb.morphia.mapping.Mapper mapper
        start local 3 // boolean validate
         0: .line 97
            new com.mongodb.BasicDBObject
            dup
            invokespecial com.mongodb.BasicDBObject.<init>:()V
            astore 4 /* ret */
        start local 4 // com.mongodb.BasicDBObject ret
         1: .line 98
            aload 0 /* str */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 5 /* parts */
        start local 5 // java.lang.String[] parts
         2: .line 99
            aload 5 /* parts */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 15
      StackMap locals: java.lang.String java.lang.Class org.mongodb.morphia.mapping.Mapper int com.mongodb.BasicDBObject java.lang.String[] top int int java.lang.String[]
      StackMap stack:
         3: aload 9
            iload 7
            aaload
            astore 6 /* s */
        start local 6 // java.lang.String s
         4: .line 100
            aload 6 /* s */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 6 /* s */
         5: .line 101
            iconst_1
            istore 10 /* dir */
        start local 10 // int dir
         6: .line 103
            aload 6 /* s */
            ldc "-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 9
         7: .line 104
            iconst_m1
            istore 10 /* dir */
         8: .line 105
            aload 6 /* s */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 6 /* s */
         9: .line 108
      StackMap locals: java.lang.String java.lang.Class org.mongodb.morphia.mapping.Mapper int com.mongodb.BasicDBObject java.lang.String[] java.lang.String int int java.lang.String[] int
      StackMap stack:
            iload 3 /* validate */
            ifeq 13
        10: .line 109
            new java.lang.StringBuilder
            dup
            aload 6 /* s */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 11 /* sb */
        start local 11 // java.lang.StringBuilder sb
        11: .line 110
            aload 1 /* clazz */
            aload 2 /* mapper */
            aload 11 /* sb */
            getstatic org.mongodb.morphia.query.FilterOperator.IN:Lorg/mongodb/morphia/query/FilterOperator;
            ldc ""
            iconst_1
            iconst_0
            invokestatic org.mongodb.morphia.query.QueryValidator.validateQuery:(Ljava/lang/Class;Lorg/mongodb/morphia/mapping/Mapper;Ljava/lang/StringBuilder;Lorg/mongodb/morphia/query/FilterOperator;Ljava/lang/Object;ZZ)Lorg/mongodb/morphia/mapping/MappedField;
            pop
        12: .line 111
            aload 11 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* s */
        end local 11 // java.lang.StringBuilder sb
        13: .line 113
      StackMap locals:
      StackMap stack:
            aload 4 /* ret */
            aload 6 /* s */
            iload 10 /* dir */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.mongodb.BasicDBObject.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 10 // int dir
        end local 6 // java.lang.String s
        14: .line 99
            iinc 7 1
      StackMap locals: java.lang.String java.lang.Class org.mongodb.morphia.mapping.Mapper int com.mongodb.BasicDBObject java.lang.String[] top int int java.lang.String[]
      StackMap stack:
        15: iload 7
            iload 8
            if_icmplt 3
        16: .line 115
            aload 4 /* ret */
            areturn
        end local 5 // java.lang.String[] parts
        end local 4 // com.mongodb.BasicDBObject ret
        end local 3 // boolean validate
        end local 2 // org.mongodb.morphia.mapping.Mapper mapper
        end local 1 // java.lang.Class clazz
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0       str  Ljava/lang/String;
            0   17     1     clazz  Ljava/lang/Class;
            0   17     2    mapper  Lorg/mongodb/morphia/mapping/Mapper;
            0   17     3  validate  Z
            1   17     4       ret  Lcom/mongodb/BasicDBObject;
            2   17     5     parts  [Ljava/lang/String;
            4   14     6         s  Ljava/lang/String;
            6   14    10       dir  I
           11   13    11        sb  Ljava/lang/StringBuilder;
    MethodParameters:
          Name  Flags
      str       final
      clazz     final
      mapper    final
      validate  final

  public java.util.List<org.mongodb.morphia.Key<T>> asKeyList();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 120
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            invokevirtual org.mongodb.morphia.query.QueryImpl.asKeyList:(Lorg/mongodb/morphia/query/FindOptions;)Ljava/util/List;
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    Signature: ()Ljava/util/List<Lorg/mongodb/morphia/Key<TT;>;>;

  public java.util.List<org.mongodb.morphia.Key<T>> asKeyList(org.mongodb.morphia.query.FindOptions);
    descriptor: (Lorg/mongodb/morphia/query/FindOptions;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // org.mongodb.morphia.query.FindOptions options
         0: .line 125
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* results */
        start local 2 // java.util.List results
         1: .line 126
            aload 0 /* this */
            aload 1 /* options */
            invokevirtual org.mongodb.morphia.query.QueryImpl.fetchKeys:(Lorg/mongodb/morphia/query/FindOptions;)Lorg/mongodb/morphia/query/MorphiaKeyIterator;
            astore 3 /* keys */
        start local 3 // org.mongodb.morphia.query.MorphiaKeyIterator keys
         2: .line 128
            aload 3 /* keys */
            invokevirtual org.mongodb.morphia.query.MorphiaKeyIterator.iterator:()Ljava/util/Iterator;
            astore 5
            goto 5
      StackMap locals: org.mongodb.morphia.query.QueryImpl org.mongodb.morphia.query.FindOptions java.util.List org.mongodb.morphia.query.MorphiaKeyIterator top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.mongodb.morphia.Key
            astore 4 /* key */
        start local 4 // org.mongodb.morphia.Key key
         4: .line 129
            aload 2 /* results */
            aload 4 /* key */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.mongodb.morphia.Key key
         5: .line 128
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 131
            goto 10
      StackMap locals: org.mongodb.morphia.query.QueryImpl org.mongodb.morphia.query.FindOptions java.util.List org.mongodb.morphia.query.MorphiaKeyIterator
      StackMap stack: java.lang.Throwable
         7: astore 6
         8: .line 132
            aload 3 /* keys */
            invokevirtual org.mongodb.morphia.query.MorphiaKeyIterator.close:()V
         9: .line 133
            aload 6
            athrow
        10: .line 132
      StackMap locals:
      StackMap stack:
            aload 3 /* keys */
            invokevirtual org.mongodb.morphia.query.MorphiaKeyIterator.close:()V
        11: .line 134
            aload 2 /* results */
            areturn
        end local 3 // org.mongodb.morphia.query.MorphiaKeyIterator keys
        end local 2 // java.util.List results
        end local 1 // org.mongodb.morphia.query.FindOptions options
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0   12     1  options  Lorg/mongodb/morphia/query/FindOptions;
            1   12     2  results  Ljava/util/List<Lorg/mongodb/morphia/Key<TT;>;>;
            2   12     3     keys  Lorg/mongodb/morphia/query/MorphiaKeyIterator<TT;>;
            4    5     4      key  Lorg/mongodb/morphia/Key<TT;>;
      Exception table:
        from    to  target  type
           2     7       7  any
    Signature: (Lorg/mongodb/morphia/query/FindOptions;)Ljava/util/List<Lorg/mongodb/morphia/Key<TT;>;>;
    MethodParameters:
         Name  Flags
      options  final

  public java.util.List<T> asList();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 139
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            invokevirtual org.mongodb.morphia.query.QueryImpl.asList:(Lorg/mongodb/morphia/query/FindOptions;)Ljava/util/List;
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    Signature: ()Ljava/util/List<TT;>;

  public java.util.List<T> asList(org.mongodb.morphia.query.FindOptions);
    descriptor: (Lorg/mongodb/morphia/query/FindOptions;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // org.mongodb.morphia.query.FindOptions options
         0: .line 144
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* results */
        start local 2 // java.util.List results
         1: .line 145
            aload 0 /* this */
            aload 1 /* options */
            invokevirtual org.mongodb.morphia.query.QueryImpl.fetch:(Lorg/mongodb/morphia/query/FindOptions;)Lorg/mongodb/morphia/query/MorphiaIterator;
            astore 3 /* iter */
        start local 3 // org.mongodb.morphia.query.MorphiaIterator iter
         2: .line 147
            aload 3 /* iter */
            invokevirtual org.mongodb.morphia.query.MorphiaIterator.iterator:()Ljava/util/Iterator;
            astore 5
            goto 5
      StackMap locals: org.mongodb.morphia.query.QueryImpl org.mongodb.morphia.query.FindOptions java.util.List org.mongodb.morphia.query.MorphiaIterator top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Object
            astore 4 /* ent */
        start local 4 // java.lang.Object ent
         4: .line 148
            aload 2 /* results */
            aload 4 /* ent */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // java.lang.Object ent
         5: .line 147
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 150
            goto 10
      StackMap locals: org.mongodb.morphia.query.QueryImpl org.mongodb.morphia.query.FindOptions java.util.List org.mongodb.morphia.query.MorphiaIterator
      StackMap stack: java.lang.Throwable
         7: astore 6
         8: .line 151
            aload 3 /* iter */
            invokevirtual org.mongodb.morphia.query.MorphiaIterator.close:()V
         9: .line 152
            aload 6
            athrow
        10: .line 151
      StackMap locals:
      StackMap stack:
            aload 3 /* iter */
            invokevirtual org.mongodb.morphia.query.MorphiaIterator.close:()V
        11: .line 154
            getstatic org.mongodb.morphia.query.QueryImpl.LOG:Lorg/mongodb/morphia/logging/Logger;
            invokeinterface org.mongodb.morphia.logging.Logger.isTraceEnabled:()Z
            ifeq 16
        12: .line 155
            getstatic org.mongodb.morphia.query.QueryImpl.LOG:Lorg/mongodb/morphia/logging/Logger;
            ldc "asList: %s \t %d entities, iterator time: driver %d ms, mapper %d ms %n\t cache: %s %n\t for %s"
            bipush 6
            anewarray java.lang.Object
            dup
            iconst_0
        13: .line 156
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.dbColl:Lcom/mongodb/DBCollection;
            invokevirtual com.mongodb.DBCollection.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 2 /* results */
            invokeinterface java.util.List.size:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 3 /* iter */
            invokevirtual org.mongodb.morphia.query.MorphiaIterator.getDriverTime:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_3
            aload 3 /* iter */
            invokevirtual org.mongodb.morphia.query.MorphiaIterator.getMapperTime:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_4
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.cache:Lorg/mongodb/morphia/mapping/cache/EntityCache;
            invokeinterface org.mongodb.morphia.mapping.cache.EntityCache.stats:()Lorg/mongodb/morphia/mapping/cache/EntityCacheStatistics;
            aastore
            dup
            iconst_5
        14: .line 157
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getQueryObject:()Lcom/mongodb/DBObject;
            aastore
        15: .line 155
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.mongodb.morphia.logging.Logger.trace:(Ljava/lang/String;)V
        16: .line 160
      StackMap locals:
      StackMap stack:
            aload 2 /* results */
            areturn
        end local 3 // org.mongodb.morphia.query.MorphiaIterator iter
        end local 2 // java.util.List results
        end local 1 // org.mongodb.morphia.query.FindOptions options
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0     this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0   17     1  options  Lorg/mongodb/morphia/query/FindOptions;
            1   17     2  results  Ljava/util/List<TT;>;
            2   17     3     iter  Lorg/mongodb/morphia/query/MorphiaIterator<TT;TT;>;
            4    5     4      ent  TT;
      Exception table:
        from    to  target  type
           2     7       7  any
    Signature: (Lorg/mongodb/morphia/query/FindOptions;)Ljava/util/List<TT;>;
    MethodParameters:
         Name  Flags
      options  final

  public long countAll();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 166
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getQueryObject:()Lcom/mongodb/DBObject;
            astore 1 /* query */
        start local 1 // com.mongodb.DBObject query
         1: .line 167
            getstatic org.mongodb.morphia.query.QueryImpl.LOG:Lorg/mongodb/morphia/logging/Logger;
            invokeinterface org.mongodb.morphia.logging.Logger.isTraceEnabled:()Z
            ifeq 3
         2: .line 168
            getstatic org.mongodb.morphia.query.QueryImpl.LOG:Lorg/mongodb/morphia/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Executing count("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.dbColl:Lcom/mongodb/DBCollection;
            invokevirtual com.mongodb.DBCollection.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ") for query: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* query */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.mongodb.morphia.logging.Logger.trace:(Ljava/lang/String;)V
         3: .line 170
      StackMap locals: com.mongodb.DBObject
      StackMap stack:
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.dbColl:Lcom/mongodb/DBCollection;
            aload 1 /* query */
            invokevirtual com.mongodb.DBCollection.getCount:(Lcom/mongodb/DBObject;)J
            lreturn
        end local 1 // com.mongodb.DBObject query
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            1    4     1  query  Lcom/mongodb/DBObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public long count();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 175
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.dbColl:Lcom/mongodb/DBCollection;
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getQueryObject:()Lcom/mongodb/DBObject;
            invokevirtual com.mongodb.DBCollection.getCount:(Lcom/mongodb/DBObject;)J
            lreturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;

  public long count(org.mongodb.morphia.query.CountOptions);
    descriptor: (Lorg/mongodb/morphia/query/CountOptions;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // org.mongodb.morphia.query.CountOptions options
         0: .line 180
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.dbColl:Lcom/mongodb/DBCollection;
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getQueryObject:()Lcom/mongodb/DBObject;
            aload 1 /* options */
            invokevirtual org.mongodb.morphia.query.CountOptions.getOptions:()Lcom/mongodb/client/model/DBCollectionCountOptions;
            invokevirtual com.mongodb.DBCollection.getCount:(Lcom/mongodb/DBObject;Lcom/mongodb/client/model/DBCollectionCountOptions;)J
            lreturn
        end local 1 // org.mongodb.morphia.query.CountOptions options
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    1     1  options  Lorg/mongodb/morphia/query/CountOptions;
    MethodParameters:
         Name  Flags
      options  final

  public org.mongodb.morphia.query.MorphiaIterator<T, T> fetch();
    descriptor: ()Lorg/mongodb/morphia/query/MorphiaIterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 185
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            invokevirtual org.mongodb.morphia.query.QueryImpl.fetch:(Lorg/mongodb/morphia/query/FindOptions;)Lorg/mongodb/morphia/query/MorphiaIterator;
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    Signature: ()Lorg/mongodb/morphia/query/MorphiaIterator<TT;TT;>;

  public org.mongodb.morphia.query.MorphiaIterator<T, T> fetch(org.mongodb.morphia.query.FindOptions);
    descriptor: (Lorg/mongodb/morphia/query/FindOptions;)Lorg/mongodb/morphia/query/MorphiaIterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=3, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // org.mongodb.morphia.query.FindOptions options
         0: .line 190
            aload 0 /* this */
            aload 1 /* options */
            invokevirtual org.mongodb.morphia.query.QueryImpl.prepareCursor:(Lorg/mongodb/morphia/query/FindOptions;)Lcom/mongodb/DBCursor;
            astore 2 /* cursor */
        start local 2 // com.mongodb.DBCursor cursor
         1: .line 191
            getstatic org.mongodb.morphia.query.QueryImpl.LOG:Lorg/mongodb/morphia/logging/Logger;
            invokeinterface org.mongodb.morphia.logging.Logger.isTraceEnabled:()Z
            ifeq 3
         2: .line 192
            getstatic org.mongodb.morphia.query.QueryImpl.LOG:Lorg/mongodb/morphia/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Getting cursor("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.dbColl:Lcom/mongodb/DBCollection;
            invokevirtual com.mongodb.DBCollection.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")  for query:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* cursor */
            invokevirtual com.mongodb.DBCursor.getQuery:()Lcom/mongodb/DBObject;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.mongodb.morphia.logging.Logger.trace:(Ljava/lang/String;)V
         3: .line 195
      StackMap locals: com.mongodb.DBCursor
      StackMap stack:
            new org.mongodb.morphia.query.MorphiaIterator
            dup
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.ds:Lorg/mongodb/morphia/DatastoreImpl;
            aload 2 /* cursor */
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.ds:Lorg/mongodb/morphia/DatastoreImpl;
            invokevirtual org.mongodb.morphia.DatastoreImpl.getMapper:()Lorg/mongodb/morphia/mapping/Mapper;
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.clazz:Ljava/lang/Class;
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.dbColl:Lcom/mongodb/DBCollection;
            invokevirtual com.mongodb.DBCollection.getName:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.cache:Lorg/mongodb/morphia/mapping/cache/EntityCache;
            invokespecial org.mongodb.morphia.query.MorphiaIterator.<init>:(Lorg/mongodb/morphia/Datastore;Ljava/util/Iterator;Lorg/mongodb/morphia/mapping/Mapper;Ljava/lang/Class;Ljava/lang/String;Lorg/mongodb/morphia/mapping/cache/EntityCache;)V
            areturn
        end local 2 // com.mongodb.DBCursor cursor
        end local 1 // org.mongodb.morphia.query.FindOptions options
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    4     1  options  Lorg/mongodb/morphia/query/FindOptions;
            1    4     2   cursor  Lcom/mongodb/DBCursor;
    Signature: (Lorg/mongodb/morphia/query/FindOptions;)Lorg/mongodb/morphia/query/MorphiaIterator<TT;TT;>;
    MethodParameters:
         Name  Flags
      options  final

  public org.mongodb.morphia.query.MorphiaIterator<T, T> fetchEmptyEntities();
    descriptor: ()Lorg/mongodb/morphia/query/MorphiaIterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 200
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            invokevirtual org.mongodb.morphia.query.QueryImpl.fetchEmptyEntities:(Lorg/mongodb/morphia/query/FindOptions;)Lorg/mongodb/morphia/query/MorphiaIterator;
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    Signature: ()Lorg/mongodb/morphia/query/MorphiaIterator<TT;TT;>;

  public org.mongodb.morphia.query.MorphiaIterator<T, T> fetchEmptyEntities(org.mongodb.morphia.query.FindOptions);
    descriptor: (Lorg/mongodb/morphia/query/FindOptions;)Lorg/mongodb/morphia/query/MorphiaIterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // org.mongodb.morphia.query.FindOptions options
         0: .line 205
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.cloneQuery:()Lorg/mongodb/morphia/query/QueryImpl;
            astore 2 /* cloned */
        start local 2 // org.mongodb.morphia.query.QueryImpl cloned
         1: .line 206
            aload 2 /* cloned */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            new com.mongodb.BasicDBObject
            dup
            ldc "_id"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokespecial com.mongodb.BasicDBObject.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            invokevirtual org.mongodb.morphia.query.FindOptions.projection:(Lcom/mongodb/DBObject;)Lorg/mongodb/morphia/query/FindOptions;
            pop
         2: .line 207
            aload 2 /* cloned */
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            putfield org.mongodb.morphia.query.QueryImpl.includeFields:Ljava/lang/Boolean;
         3: .line 208
            aload 2 /* cloned */
            invokevirtual org.mongodb.morphia.query.QueryImpl.fetch:()Lorg/mongodb/morphia/query/MorphiaIterator;
            areturn
        end local 2 // org.mongodb.morphia.query.QueryImpl cloned
        end local 1 // org.mongodb.morphia.query.FindOptions options
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    4     1  options  Lorg/mongodb/morphia/query/FindOptions;
            1    4     2   cloned  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    Signature: (Lorg/mongodb/morphia/query/FindOptions;)Lorg/mongodb/morphia/query/MorphiaIterator<TT;TT;>;
    MethodParameters:
         Name  Flags
      options  final

  public org.mongodb.morphia.query.MorphiaKeyIterator<T> fetchKeys();
    descriptor: ()Lorg/mongodb/morphia/query/MorphiaKeyIterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 213
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            invokevirtual org.mongodb.morphia.query.QueryImpl.fetchKeys:(Lorg/mongodb/morphia/query/FindOptions;)Lorg/mongodb/morphia/query/MorphiaKeyIterator;
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    Signature: ()Lorg/mongodb/morphia/query/MorphiaKeyIterator<TT;>;

  public org.mongodb.morphia.query.MorphiaKeyIterator<T> fetchKeys(org.mongodb.morphia.query.FindOptions);
    descriptor: (Lorg/mongodb/morphia/query/FindOptions;)Lorg/mongodb/morphia/query/MorphiaKeyIterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // org.mongodb.morphia.query.FindOptions options
         0: .line 218
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.cloneQuery:()Lorg/mongodb/morphia/query/QueryImpl;
            astore 2 /* cloned */
        start local 2 // org.mongodb.morphia.query.QueryImpl cloned
         1: .line 219
            aload 2 /* cloned */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            new com.mongodb.BasicDBObject
            dup
            ldc "_id"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokespecial com.mongodb.BasicDBObject.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            invokevirtual org.mongodb.morphia.query.FindOptions.projection:(Lcom/mongodb/DBObject;)Lorg/mongodb/morphia/query/FindOptions;
            pop
         2: .line 220
            aload 2 /* cloned */
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            putfield org.mongodb.morphia.query.QueryImpl.includeFields:Ljava/lang/Boolean;
         3: .line 222
            new org.mongodb.morphia.query.MorphiaKeyIterator
            dup
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.ds:Lorg/mongodb/morphia/DatastoreImpl;
            aload 2 /* cloned */
            aload 1 /* options */
            invokevirtual org.mongodb.morphia.query.QueryImpl.prepareCursor:(Lorg/mongodb/morphia/query/FindOptions;)Lcom/mongodb/DBCursor;
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.ds:Lorg/mongodb/morphia/DatastoreImpl;
            invokevirtual org.mongodb.morphia.DatastoreImpl.getMapper:()Lorg/mongodb/morphia/mapping/Mapper;
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.clazz:Ljava/lang/Class;
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.dbColl:Lcom/mongodb/DBCollection;
            invokevirtual com.mongodb.DBCollection.getName:()Ljava/lang/String;
            invokespecial org.mongodb.morphia.query.MorphiaKeyIterator.<init>:(Lorg/mongodb/morphia/Datastore;Lcom/mongodb/DBCursor;Lorg/mongodb/morphia/mapping/Mapper;Ljava/lang/Class;Ljava/lang/String;)V
            areturn
        end local 2 // org.mongodb.morphia.query.QueryImpl cloned
        end local 1 // org.mongodb.morphia.query.FindOptions options
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    4     1  options  Lorg/mongodb/morphia/query/FindOptions;
            1    4     2   cloned  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    Signature: (Lorg/mongodb/morphia/query/FindOptions;)Lorg/mongodb/morphia/query/MorphiaKeyIterator<TT;>;
    MethodParameters:
         Name  Flags
      options  final

  public T get();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 227
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            invokevirtual org.mongodb.morphia.query.QueryImpl.get:(Lorg/mongodb/morphia/query/FindOptions;)Ljava/lang/Object;
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    Signature: ()TT;

  public T get(org.mongodb.morphia.query.FindOptions);
    descriptor: (Lorg/mongodb/morphia/query/FindOptions;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // org.mongodb.morphia.query.FindOptions options
         0: .line 232
            aload 0 /* this */
            aload 1 /* options */
         1: .line 233
            invokevirtual org.mongodb.morphia.query.FindOptions.copy:()Lorg/mongodb/morphia/query/FindOptions;
         2: .line 234
            iconst_1
            invokevirtual org.mongodb.morphia.query.FindOptions.limit:(I)Lorg/mongodb/morphia/query/FindOptions;
         3: .line 232
            invokevirtual org.mongodb.morphia.query.QueryImpl.fetch:(Lorg/mongodb/morphia/query/FindOptions;)Lorg/mongodb/morphia/query/MorphiaIterator;
            astore 2 /* it */
        start local 2 // org.mongodb.morphia.query.MorphiaIterator it
         4: .line 236
            aload 2 /* it */
            invokevirtual org.mongodb.morphia.query.MorphiaIterator.hasNext:()Z
            ifeq 5
            aload 2 /* it */
            invokevirtual org.mongodb.morphia.query.MorphiaIterator.next:()Ljava/lang/Object;
            goto 6
      StackMap locals: org.mongodb.morphia.query.MorphiaIterator
      StackMap stack:
         5: aconst_null
      StackMap locals:
      StackMap stack: java.lang.Object
         6: astore 4
         7: .line 238
            aload 2 /* it */
            invokevirtual org.mongodb.morphia.query.MorphiaIterator.close:()V
         8: .line 236
            aload 4
            areturn
         9: .line 237
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
        10: .line 238
            aload 2 /* it */
            invokevirtual org.mongodb.morphia.query.MorphiaIterator.close:()V
        11: .line 239
            aload 3
            athrow
        end local 2 // org.mongodb.morphia.query.MorphiaIterator it
        end local 1 // org.mongodb.morphia.query.FindOptions options
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0   12     1  options  Lorg/mongodb/morphia/query/FindOptions;
            4   12     2       it  Lorg/mongodb/morphia/query/MorphiaIterator<TT;TT;>;
      Exception table:
        from    to  target  type
           4     7       9  any
    Signature: (Lorg/mongodb/morphia/query/FindOptions;)TT;
    MethodParameters:
         Name  Flags
      options  final

  public org.mongodb.morphia.Key<T> getKey();
    descriptor: ()Lorg/mongodb/morphia/Key;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 244
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            invokevirtual org.mongodb.morphia.query.QueryImpl.getKey:(Lorg/mongodb/morphia/query/FindOptions;)Lorg/mongodb/morphia/Key;
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    Signature: ()Lorg/mongodb/morphia/Key<TT;>;

  public org.mongodb.morphia.Key<T> getKey(org.mongodb.morphia.query.FindOptions);
    descriptor: (Lorg/mongodb/morphia/query/FindOptions;)Lorg/mongodb/morphia/Key;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // org.mongodb.morphia.query.FindOptions options
         0: .line 249
            aload 0 /* this */
            aload 1 /* options */
         1: .line 250
            invokevirtual org.mongodb.morphia.query.FindOptions.copy:()Lorg/mongodb/morphia/query/FindOptions;
         2: .line 251
            iconst_1
            invokevirtual org.mongodb.morphia.query.FindOptions.limit:(I)Lorg/mongodb/morphia/query/FindOptions;
         3: .line 249
            invokevirtual org.mongodb.morphia.query.QueryImpl.fetchKeys:(Lorg/mongodb/morphia/query/FindOptions;)Lorg/mongodb/morphia/query/MorphiaKeyIterator;
            astore 2 /* it */
        start local 2 // org.mongodb.morphia.query.MorphiaIterator it
         4: .line 252
            aload 2 /* it */
            invokevirtual org.mongodb.morphia.query.MorphiaIterator.hasNext:()Z
            ifeq 5
            aload 2 /* it */
            invokevirtual org.mongodb.morphia.query.MorphiaIterator.next:()Ljava/lang/Object;
            checkcast org.mongodb.morphia.Key
            goto 6
      StackMap locals: org.mongodb.morphia.query.MorphiaIterator
      StackMap stack:
         5: aconst_null
      StackMap locals:
      StackMap stack: org.mongodb.morphia.Key
         6: astore 3 /* key */
        start local 3 // org.mongodb.morphia.Key key
         7: .line 253
            aload 2 /* it */
            invokevirtual org.mongodb.morphia.query.MorphiaIterator.close:()V
         8: .line 254
            aload 3 /* key */
            areturn
        end local 3 // org.mongodb.morphia.Key key
        end local 2 // org.mongodb.morphia.query.MorphiaIterator it
        end local 1 // org.mongodb.morphia.query.FindOptions options
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    9     1  options  Lorg/mongodb/morphia/query/FindOptions;
            4    9     2       it  Lorg/mongodb/morphia/query/MorphiaIterator<TT;Lorg/mongodb/morphia/Key<TT;>;>;
            7    9     3      key  Lorg/mongodb/morphia/Key<TT;>;
    Signature: (Lorg/mongodb/morphia/query/FindOptions;)Lorg/mongodb/morphia/Key<TT;>;
    MethodParameters:
         Name  Flags
      options  final

  public org.mongodb.morphia.query.MorphiaIterator<T, T> tail();
    descriptor: ()Lorg/mongodb/morphia/query/MorphiaIterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 260
            aload 0 /* this */
            iconst_1
            invokevirtual org.mongodb.morphia.query.QueryImpl.tail:(Z)Lorg/mongodb/morphia/query/MorphiaIterator;
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    Signature: ()Lorg/mongodb/morphia/query/MorphiaIterator<TT;TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public org.mongodb.morphia.query.MorphiaIterator<T, T> tail(boolean);
    descriptor: (Z)Lorg/mongodb/morphia/query/MorphiaIterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // boolean awaitData
         0: .line 266
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
         1: .line 267
            invokevirtual org.mongodb.morphia.query.FindOptions.copy:()Lorg/mongodb/morphia/query/FindOptions;
         2: .line 268
            iload 1 /* awaitData */
            ifeq 3
            getstatic com.mongodb.CursorType.TailableAwait:Lcom/mongodb/CursorType;
            goto 4
      StackMap locals: org.mongodb.morphia.query.QueryImpl int
      StackMap stack: org.mongodb.morphia.query.QueryImpl org.mongodb.morphia.query.FindOptions
         3: getstatic com.mongodb.CursorType.Tailable:Lcom/mongodb/CursorType;
      StackMap locals: org.mongodb.morphia.query.QueryImpl int
      StackMap stack: org.mongodb.morphia.query.QueryImpl org.mongodb.morphia.query.FindOptions com.mongodb.CursorType
         4: invokevirtual org.mongodb.morphia.query.FindOptions.cursorType:(Lcom/mongodb/CursorType;)Lorg/mongodb/morphia/query/FindOptions;
         5: .line 266
            invokevirtual org.mongodb.morphia.query.QueryImpl.fetch:(Lorg/mongodb/morphia/query/FindOptions;)Lorg/mongodb/morphia/query/MorphiaIterator;
            areturn
        end local 1 // boolean awaitData
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    6     1  awaitData  Z
    Signature: (Z)Lorg/mongodb/morphia/query/MorphiaIterator<TT;TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
           Name  Flags
      awaitData  final

  public org.mongodb.morphia.query.Query<T> batchSize(int);
    descriptor: (I)Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // int value
         0: .line 274
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            iload 1 /* value */
            invokevirtual org.mongodb.morphia.query.FindOptions.batchSize:(I)Lorg/mongodb/morphia/query/FindOptions;
            pop
         1: .line 275
            aload 0 /* this */
            areturn
        end local 1 // int value
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    2     1  value  I
    Signature: (I)Lorg/mongodb/morphia/query/Query<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      value  final

  public org.mongodb.morphia.query.QueryImpl<T> cloneQuery();
    descriptor: ()Lorg/mongodb/morphia/query/QueryImpl;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 280
            new org.mongodb.morphia.query.QueryImpl
            dup
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.clazz:Ljava/lang/Class;
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.dbColl:Lcom/mongodb/DBCollection;
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.ds:Lorg/mongodb/morphia/DatastoreImpl;
            invokespecial org.mongodb.morphia.query.QueryImpl.<init>:(Ljava/lang/Class;Lcom/mongodb/DBCollection;Lorg/mongodb/morphia/Datastore;)V
            astore 1 /* n */
        start local 1 // org.mongodb.morphia.query.QueryImpl n
         1: .line 281
            aload 1 /* n */
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.ds:Lorg/mongodb/morphia/DatastoreImpl;
            invokevirtual org.mongodb.morphia.DatastoreImpl.getMapper:()Lorg/mongodb/morphia/mapping/Mapper;
            invokevirtual org.mongodb.morphia.mapping.Mapper.createEntityCache:()Lorg/mongodb/morphia/mapping/cache/EntityCache;
            putfield org.mongodb.morphia.query.QueryImpl.cache:Lorg/mongodb/morphia/mapping/cache/EntityCache;
         2: .line 282
            aload 1 /* n */
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.includeFields:Ljava/lang/Boolean;
            putfield org.mongodb.morphia.query.QueryImpl.includeFields:Ljava/lang/Boolean;
         3: .line 283
            aload 1 /* n */
            aload 1 /* n */
            invokevirtual org.mongodb.morphia.query.QueryImpl.setQuery:(Lorg/mongodb/morphia/query/QueryImpl;)V
         4: .line 284
            aload 1 /* n */
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.validateName:Z
            putfield org.mongodb.morphia.query.QueryImpl.validateName:Z
         5: .line 285
            aload 1 /* n */
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.validateType:Z
            putfield org.mongodb.morphia.query.QueryImpl.validateType:Z
         6: .line 286
            aload 1 /* n */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.baseQuery:Lcom/mongodb/BasicDBObject;
            invokevirtual org.mongodb.morphia.query.QueryImpl.copy:(Lcom/mongodb/DBObject;)Lcom/mongodb/BasicDBObject;
            putfield org.mongodb.morphia.query.QueryImpl.baseQuery:Lcom/mongodb/BasicDBObject;
         7: .line 287
            aload 1 /* n */
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.options:Lorg/mongodb/morphia/query/FindOptions;
            ifnull 8
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.options:Lorg/mongodb/morphia/query/FindOptions;
            invokevirtual org.mongodb.morphia.query.FindOptions.copy:()Lorg/mongodb/morphia/query/FindOptions;
            goto 9
      StackMap locals: org.mongodb.morphia.query.QueryImpl org.mongodb.morphia.query.QueryImpl
      StackMap stack: org.mongodb.morphia.query.QueryImpl
         8: aconst_null
      StackMap locals: org.mongodb.morphia.query.QueryImpl org.mongodb.morphia.query.QueryImpl
      StackMap stack: org.mongodb.morphia.query.QueryImpl org.mongodb.morphia.query.FindOptions
         9: putfield org.mongodb.morphia.query.QueryImpl.options:Lorg/mongodb/morphia/query/FindOptions;
        10: .line 290
            aload 1 /* n */
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getAttachedTo:()Lorg/mongodb/morphia/query/CriteriaContainer;
            invokevirtual org.mongodb.morphia.query.QueryImpl.setAttachedTo:(Lorg/mongodb/morphia/query/CriteriaContainer;)V
        11: .line 291
            aload 1 /* n */
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getChildren:()Ljava/util/List;
            ifnonnull 12
            aconst_null
            goto 13
      StackMap locals:
      StackMap stack: org.mongodb.morphia.query.QueryImpl
        12: new java.util.ArrayList
            dup
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getChildren:()Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
      StackMap locals: org.mongodb.morphia.query.QueryImpl org.mongodb.morphia.query.QueryImpl
      StackMap stack: org.mongodb.morphia.query.QueryImpl java.util.ArrayList
        13: invokevirtual org.mongodb.morphia.query.QueryImpl.setChildren:(Ljava/util/List;)V
        14: .line 292
            aload 1 /* n */
            areturn
        end local 1 // org.mongodb.morphia.query.QueryImpl n
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            1   15     1     n  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    Signature: ()Lorg/mongodb/morphia/query/QueryImpl<TT;>;

  protected com.mongodb.BasicDBObject copy(com.mongodb.DBObject);
    descriptor: (Lcom/mongodb/DBObject;)Lcom/mongodb/BasicDBObject;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // com.mongodb.DBObject dbObject
         0: .line 296
            aload 1 /* dbObject */
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: new com.mongodb.BasicDBObject
            dup
            aload 1 /* dbObject */
            invokeinterface com.mongodb.DBObject.toMap:()Ljava/util/Map;
            invokespecial com.mongodb.BasicDBObject.<init>:(Ljava/util/Map;)V
      StackMap locals:
      StackMap stack: com.mongodb.BasicDBObject
         2: areturn
        end local 1 // com.mongodb.DBObject dbObject
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    3     1  dbObject  Lcom/mongodb/DBObject;
    MethodParameters:
          Name  Flags
      dbObject  final

  public org.mongodb.morphia.query.Query<T> comment(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // java.lang.String comment
         0: .line 302
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            ldc "$comment"
            aload 1 /* comment */
            invokevirtual org.mongodb.morphia.query.FindOptions.modifier:(Ljava/lang/String;Ljava/lang/Object;)Lorg/mongodb/morphia/query/FindOptions;
            pop
         1: .line 303
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String comment
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    2     1  comment  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Lorg/mongodb/morphia/query/Query<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      comment  final

  public org.mongodb.morphia.query.FieldEnd<? extends org.mongodb.morphia.query.CriteriaContainerImpl> criteria(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/mongodb/morphia/query/FieldEnd;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // java.lang.String field
         0: .line 308
            new org.mongodb.morphia.query.CriteriaContainerImpl
            dup
            aload 0 /* this */
            getstatic org.mongodb.morphia.query.CriteriaJoin.AND:Lorg/mongodb/morphia/query/CriteriaJoin;
            invokespecial org.mongodb.morphia.query.CriteriaContainerImpl.<init>:(Lorg/mongodb/morphia/query/QueryImpl;Lorg/mongodb/morphia/query/CriteriaJoin;)V
            astore 2 /* container */
        start local 2 // org.mongodb.morphia.query.CriteriaContainerImpl container
         1: .line 309
            aload 0 /* this */
            iconst_1
            anewarray org.mongodb.morphia.query.Criteria
            dup
            iconst_0
            aload 2 /* container */
            aastore
            invokevirtual org.mongodb.morphia.query.QueryImpl.add:([Lorg/mongodb/morphia/query/Criteria;)V
         2: .line 311
            new org.mongodb.morphia.query.FieldEndImpl
            dup
            aload 0 /* this */
            aload 1 /* field */
            aload 2 /* container */
            invokespecial org.mongodb.morphia.query.FieldEndImpl.<init>:(Lorg/mongodb/morphia/query/QueryImpl;Ljava/lang/String;Lorg/mongodb/morphia/query/CriteriaContainerImpl;)V
            areturn
        end local 2 // org.mongodb.morphia.query.CriteriaContainerImpl container
        end local 1 // java.lang.String field
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    3     1      field  Ljava/lang/String;
            1    3     2  container  Lorg/mongodb/morphia/query/CriteriaContainerImpl;
    Signature: (Ljava/lang/String;)Lorg/mongodb/morphia/query/FieldEnd<+Lorg/mongodb/morphia/query/CriteriaContainerImpl;>;
    MethodParameters:
       Name  Flags
      field  final

  public org.mongodb.morphia.query.Query<T> disableCursorTimeout();
    descriptor: ()Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 317
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            iconst_1
            invokevirtual org.mongodb.morphia.query.FindOptions.noCursorTimeout:(Z)Lorg/mongodb/morphia/query/FindOptions;
            pop
         1: .line 318
            aload 0 /* this */
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    Signature: ()Lorg/mongodb/morphia/query/Query<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public org.mongodb.morphia.query.Query<T> disableSnapshotMode();
    descriptor: ()Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 324
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            invokevirtual org.mongodb.morphia.query.FindOptions.getModifiers:()Lcom/mongodb/DBObject;
            ldc "$snapshot"
            invokeinterface com.mongodb.DBObject.removeField:(Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 326
            aload 0 /* this */
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    Signature: ()Lorg/mongodb/morphia/query/Query<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public org.mongodb.morphia.query.Query<T> disableValidation();
    descriptor: ()Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 331
            aload 0 /* this */
            iconst_0
            putfield org.mongodb.morphia.query.QueryImpl.validateName:Z
         1: .line 332
            aload 0 /* this */
            iconst_0
            putfield org.mongodb.morphia.query.QueryImpl.validateType:Z
         2: .line 333
            aload 0 /* this */
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    Signature: ()Lorg/mongodb/morphia/query/Query<TT;>;

  public org.mongodb.morphia.query.Query<T> enableCursorTimeout();
    descriptor: ()Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 339
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            iconst_0
            invokevirtual org.mongodb.morphia.query.FindOptions.noCursorTimeout:(Z)Lorg/mongodb/morphia/query/FindOptions;
            pop
         1: .line 340
            aload 0 /* this */
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    Signature: ()Lorg/mongodb/morphia/query/Query<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public org.mongodb.morphia.query.Query<T> enableSnapshotMode();
    descriptor: ()Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 346
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            ldc "$snapshot"
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual org.mongodb.morphia.query.FindOptions.modifier:(Ljava/lang/String;Ljava/lang/Object;)Lorg/mongodb/morphia/query/FindOptions;
            pop
         1: .line 347
            aload 0 /* this */
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    Signature: ()Lorg/mongodb/morphia/query/Query<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public org.mongodb.morphia.query.Query<T> enableValidation();
    descriptor: ()Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 352
            aload 0 /* this */
            iconst_1
            putfield org.mongodb.morphia.query.QueryImpl.validateName:Z
         1: .line 353
            aload 0 /* this */
            iconst_1
            putfield org.mongodb.morphia.query.QueryImpl.validateType:Z
         2: .line 354
            aload 0 /* this */
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    Signature: ()Lorg/mongodb/morphia/query/Query<TT;>;

  public java.util.Map<java.lang.String, java.lang.Object> explain();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 360
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            invokevirtual org.mongodb.morphia.query.QueryImpl.explain:(Lorg/mongodb/morphia/query/FindOptions;)Ljava/util/Map;
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;

  public java.util.Map<java.lang.String, java.lang.Object> explain(org.mongodb.morphia.query.FindOptions);
    descriptor: (Lorg/mongodb/morphia/query/FindOptions;)Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // org.mongodb.morphia.query.FindOptions options
         0: .line 366
            aload 0 /* this */
            aload 1 /* options */
            invokevirtual org.mongodb.morphia.query.QueryImpl.prepareCursor:(Lorg/mongodb/morphia/query/FindOptions;)Lcom/mongodb/DBCursor;
            invokevirtual com.mongodb.DBCursor.explain:()Lcom/mongodb/DBObject;
            invokeinterface com.mongodb.DBObject.toMap:()Ljava/util/Map;
            areturn
        end local 1 // org.mongodb.morphia.query.FindOptions options
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    1     1  options  Lorg/mongodb/morphia/query/FindOptions;
    Signature: (Lorg/mongodb/morphia/query/FindOptions;)Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    MethodParameters:
         Name  Flags
      options  final

  public org.mongodb.morphia.query.FieldEnd<? extends org.mongodb.morphia.query.Query<T>> field(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/mongodb/morphia/query/FieldEnd;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // java.lang.String name
         0: .line 371
            new org.mongodb.morphia.query.FieldEndImpl
            dup
            aload 0 /* this */
            aload 1 /* name */
            aload 0 /* this */
            invokespecial org.mongodb.morphia.query.FieldEndImpl.<init>:(Lorg/mongodb/morphia/query/QueryImpl;Ljava/lang/String;Lorg/mongodb/morphia/query/CriteriaContainerImpl;)V
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    1     1  name  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Lorg/mongodb/morphia/query/FieldEnd<+Lorg/mongodb/morphia/query/Query<TT;>;>;
    MethodParameters:
      Name  Flags
      name  final

  public org.mongodb.morphia.query.Query<T> filter(java.lang.String, );
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=6, args_size=3
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // java.lang.String condition
        start local 2 // java.lang.Object value
         0: .line 376
            aload 1 /* condition */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            ldc " "
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 3 /* parts */
        start local 3 // java.lang.String[] parts
         1: .line 377
            aload 3 /* parts */
            arraylength
            iconst_1
            if_icmplt 2
            aload 3 /* parts */
            arraylength
            bipush 6
            if_icmple 3
         2: .line 378
      StackMap locals: java.lang.String[]
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "'"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* condition */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' is not a legal filter condition"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 381
      StackMap locals:
      StackMap stack:
            aload 3 /* parts */
            iconst_0
            aaload
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 4 /* prop */
        start local 4 // java.lang.String prop
         4: .line 382
            aload 3 /* parts */
            arraylength
            iconst_2
            if_icmpne 5
            aload 0 /* this */
            aload 3 /* parts */
            iconst_1
            aaload
            invokevirtual org.mongodb.morphia.query.QueryImpl.translate:(Ljava/lang/String;)Lorg/mongodb/morphia/query/FilterOperator;
            goto 6
      StackMap locals: java.lang.String
      StackMap stack:
         5: getstatic org.mongodb.morphia.query.FilterOperator.EQUAL:Lorg/mongodb/morphia/query/FilterOperator;
      StackMap locals:
      StackMap stack: org.mongodb.morphia.query.FilterOperator
         6: astore 5 /* op */
        start local 5 // org.mongodb.morphia.query.FilterOperator op
         7: .line 384
            aload 0 /* this */
            iconst_1
            anewarray org.mongodb.morphia.query.Criteria
            dup
            iconst_0
            new org.mongodb.morphia.query.FieldCriteria
            dup
            aload 0 /* this */
            aload 4 /* prop */
            aload 5 /* op */
            aload 2 /* value */
            invokespecial org.mongodb.morphia.query.FieldCriteria.<init>:(Lorg/mongodb/morphia/query/QueryImpl;Ljava/lang/String;Lorg/mongodb/morphia/query/FilterOperator;Ljava/lang/Object;)V
            aastore
            invokevirtual org.mongodb.morphia.query.QueryImpl.add:([Lorg/mongodb/morphia/query/Criteria;)V
         8: .line 386
            aload 0 /* this */
            areturn
        end local 5 // org.mongodb.morphia.query.FilterOperator op
        end local 4 // java.lang.String prop
        end local 3 // java.lang.String[] parts
        end local 2 // java.lang.Object value
        end local 1 // java.lang.String condition
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    9     1  condition  Ljava/lang/String;
            0    9     2      value  Ljava/lang/Object;
            1    9     3      parts  [Ljava/lang/String;
            4    9     4       prop  Ljava/lang/String;
            7    9     5         op  Lorg/mongodb/morphia/query/FilterOperator;
    Signature: (Ljava/lang/String;Ljava/lang/Object;)Lorg/mongodb/morphia/query/Query<TT;>;
    MethodParameters:
           Name  Flags
      condition  final
      value      final

  public int getBatchSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 392
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            invokevirtual org.mongodb.morphia.query.FindOptions.getBatchSize:()I
            ireturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public com.mongodb.DBCollection getCollection();
    descriptor: ()Lcom/mongodb/DBCollection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 398
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.dbColl:Lcom/mongodb/DBCollection;
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public java.lang.Class<T> getEntityClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 403
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.clazz:Ljava/lang/Class;
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    Signature: ()Ljava/lang/Class<TT;>;

  public com.mongodb.DBObject getFieldsObject();
    descriptor: ()Lcom/mongodb/DBObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 409
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            invokevirtual org.mongodb.morphia.query.FindOptions.getProjection:()Lcom/mongodb/DBObject;
            astore 1 /* projection */
        start local 1 // com.mongodb.DBObject projection
         1: .line 410
            aload 1 /* projection */
            ifnull 2
            aload 1 /* projection */
            invokeinterface com.mongodb.DBObject.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            ifne 3
         2: .line 411
      StackMap locals: com.mongodb.DBObject
      StackMap stack:
            aconst_null
            areturn
         3: .line 414
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.ds:Lorg/mongodb/morphia/DatastoreImpl;
            invokevirtual org.mongodb.morphia.DatastoreImpl.getMapper:()Lorg/mongodb/morphia/mapping/Mapper;
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.clazz:Ljava/lang/Class;
            invokevirtual org.mongodb.morphia.mapping.Mapper.getMappedClass:(Ljava/lang/Object;)Lorg/mongodb/morphia/mapping/MappedClass;
            astore 2 /* mc */
        start local 2 // org.mongodb.morphia.mapping.MappedClass mc
         4: .line 416
            aload 2 /* mc */
            invokevirtual org.mongodb.morphia.mapping.MappedClass.getEntityAnnotation:()Lorg/mongodb/morphia/annotations/Entity;
            astore 3 /* entityAnnotation */
        start local 3 // org.mongodb.morphia.annotations.Entity entityAnnotation
         5: .line 417
            aload 0 /* this */
            aload 1 /* projection */
            invokevirtual org.mongodb.morphia.query.QueryImpl.copy:(Lcom/mongodb/DBObject;)Lcom/mongodb/BasicDBObject;
            astore 4 /* fieldsFilter */
        start local 4 // com.mongodb.BasicDBObject fieldsFilter
         6: .line 419
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.includeFields:Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 8
            aload 3 /* entityAnnotation */
            ifnull 8
            aload 3 /* entityAnnotation */
            invokeinterface org.mongodb.morphia.annotations.Entity.noClassnameStored:()Z
            ifne 8
         7: .line 420
            aload 4 /* fieldsFilter */
            ldc "className"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.mongodb.BasicDBObject.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 423
      StackMap locals: org.mongodb.morphia.mapping.MappedClass org.mongodb.morphia.annotations.Entity com.mongodb.BasicDBObject
      StackMap stack:
            aload 4 /* fieldsFilter */
            areturn
        end local 4 // com.mongodb.BasicDBObject fieldsFilter
        end local 3 // org.mongodb.morphia.annotations.Entity entityAnnotation
        end local 2 // org.mongodb.morphia.mapping.MappedClass mc
        end local 1 // com.mongodb.DBObject projection
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            1    9     1        projection  Lcom/mongodb/DBObject;
            4    9     2                mc  Lorg/mongodb/morphia/mapping/MappedClass;
            5    9     3  entityAnnotation  Lorg/mongodb/morphia/annotations/Entity;
            6    9     4      fieldsFilter  Lcom/mongodb/BasicDBObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public int getLimit();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 429
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            invokevirtual org.mongodb.morphia.query.FindOptions.getLimit:()I
            ireturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public int getOffset();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 435
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            invokevirtual org.mongodb.morphia.query.FindOptions.getSkip:()I
            ireturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public com.mongodb.DBObject getQueryObject();
    descriptor: ()Lcom/mongodb/DBObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 441
            new com.mongodb.BasicDBObject
            dup
            invokespecial com.mongodb.BasicDBObject.<init>:()V
            astore 1 /* obj */
        start local 1 // com.mongodb.DBObject obj
         1: .line 443
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.baseQuery:Lcom/mongodb/BasicDBObject;
            ifnull 3
         2: .line 444
            aload 1 /* obj */
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.baseQuery:Lcom/mongodb/BasicDBObject;
            invokeinterface com.mongodb.DBObject.putAll:(Lorg/bson/BSONObject;)V
         3: .line 447
      StackMap locals: com.mongodb.DBObject
      StackMap stack:
            aload 0 /* this */
            aload 1 /* obj */
            invokevirtual org.mongodb.morphia.query.QueryImpl.addTo:(Lcom/mongodb/DBObject;)V
         4: .line 449
            aload 1 /* obj */
            areturn
        end local 1 // com.mongodb.DBObject obj
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            1    5     1   obj  Lcom/mongodb/DBObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public void setQueryObject(com.mongodb.DBObject);
    descriptor: (Lcom/mongodb/DBObject;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // com.mongodb.DBObject query
         0: .line 458
            aload 0 /* this */
            new com.mongodb.BasicDBObject
            dup
            aload 1 /* query */
            invokeinterface com.mongodb.DBObject.toMap:()Ljava/util/Map;
            invokespecial com.mongodb.BasicDBObject.<init>:(Ljava/util/Map;)V
            putfield org.mongodb.morphia.query.QueryImpl.baseQuery:Lcom/mongodb/BasicDBObject;
         1: .line 459
            return
        end local 1 // com.mongodb.DBObject query
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    2     1  query  Lcom/mongodb/DBObject;
    MethodParameters:
       Name  Flags
      query  final

  public com.mongodb.DBObject getSortObject();
    descriptor: ()Lcom/mongodb/DBObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 464
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            invokevirtual org.mongodb.morphia.query.FindOptions.getSortDBObject:()Lcom/mongodb/DBObject;
            astore 1 /* sort */
        start local 1 // com.mongodb.DBObject sort
         1: .line 465
            aload 1 /* sort */
            ifnonnull 2
            aconst_null
            goto 3
      StackMap locals: com.mongodb.DBObject
      StackMap stack:
         2: new com.mongodb.BasicDBObject
            dup
            aload 1 /* sort */
            invokeinterface com.mongodb.DBObject.toMap:()Ljava/util/Map;
            invokespecial com.mongodb.BasicDBObject.<init>:(Ljava/util/Map;)V
      StackMap locals:
      StackMap stack: com.mongodb.BasicDBObject
         3: areturn
        end local 1 // com.mongodb.DBObject sort
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            1    4     1  sort  Lcom/mongodb/DBObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public org.mongodb.morphia.query.Query<T> hintIndex(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // java.lang.String idxName
         0: .line 471
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            ldc "$hint"
            aload 1 /* idxName */
            invokevirtual org.mongodb.morphia.query.FindOptions.modifier:(Ljava/lang/String;Ljava/lang/Object;)Lorg/mongodb/morphia/query/FindOptions;
            pop
         1: .line 472
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String idxName
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    2     1  idxName  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Lorg/mongodb/morphia/query/Query<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      idxName  final

  public org.mongodb.morphia.query.Query<T> limit(int);
    descriptor: (I)Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // int value
         0: .line 478
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            iload 1 /* value */
            invokevirtual org.mongodb.morphia.query.FindOptions.limit:(I)Lorg/mongodb/morphia/query/FindOptions;
            pop
         1: .line 479
            aload 0 /* this */
            areturn
        end local 1 // int value
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    2     1  value  I
    Signature: (I)Lorg/mongodb/morphia/query/Query<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      value  final

  public org.mongodb.morphia.query.Query<T> lowerIndexBound(com.mongodb.DBObject);
    descriptor: (Lcom/mongodb/DBObject;)Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // com.mongodb.DBObject lowerBound
         0: .line 486
            aload 1 /* lowerBound */
            ifnull 2
         1: .line 487
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            ldc "$min"
            new org.bson.Document
            dup
            aload 1 /* lowerBound */
            invokeinterface com.mongodb.DBObject.toMap:()Ljava/util/Map;
            invokespecial org.bson.Document.<init>:(Ljava/util/Map;)V
            invokevirtual org.mongodb.morphia.query.FindOptions.modifier:(Ljava/lang/String;Ljava/lang/Object;)Lorg/mongodb/morphia/query/FindOptions;
            pop
         2: .line 489
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // com.mongodb.DBObject lowerBound
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    3     1  lowerBound  Lcom/mongodb/DBObject;
    Signature: (Lcom/mongodb/DBObject;)Lorg/mongodb/morphia/query/Query<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
            Name  Flags
      lowerBound  final

  public org.mongodb.morphia.query.Query<T> maxScan(int);
    descriptor: (I)Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // int value
         0: .line 495
            iload 1 /* value */
            ifle 2
         1: .line 496
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            ldc "$maxScan"
            iload 1 /* value */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.mongodb.morphia.query.FindOptions.modifier:(Ljava/lang/String;Ljava/lang/Object;)Lorg/mongodb/morphia/query/FindOptions;
            pop
         2: .line 498
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // int value
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    3     1  value  I
    Signature: (I)Lorg/mongodb/morphia/query/Query<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      value  final

  public org.mongodb.morphia.query.Query<T> maxTime(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // long value
        start local 3 // java.util.concurrent.TimeUnit unit
         0: .line 504
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            ldc "$maxTimeMS"
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            lload 1 /* value */
            aload 3 /* unit */
            invokevirtual java.util.concurrent.TimeUnit.convert:(JLjava/util/concurrent/TimeUnit;)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual org.mongodb.morphia.query.FindOptions.modifier:(Ljava/lang/String;Ljava/lang/Object;)Lorg/mongodb/morphia/query/FindOptions;
            pop
         1: .line 505
            aload 0 /* this */
            areturn
        end local 3 // java.util.concurrent.TimeUnit unit
        end local 1 // long value
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    2     1  value  J
            0    2     3   unit  Ljava/util/concurrent/TimeUnit;
    Signature: (JLjava/util/concurrent/TimeUnit;)Lorg/mongodb/morphia/query/Query<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      value  final
      unit   final

  long getMaxTime(java.util.concurrent.TimeUnit);
    descriptor: (Ljava/util/concurrent/TimeUnit;)J
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // java.util.concurrent.TimeUnit unit
         0: .line 509
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            invokevirtual org.mongodb.morphia.query.FindOptions.getModifiers:()Lcom/mongodb/DBObject;
            ldc "$maxTimeMS"
            invokeinterface com.mongodb.DBObject.get:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.Long
            astore 2 /* maxTime */
        start local 2 // java.lang.Long maxTime
         1: .line 510
            aload 1 /* unit */
            aload 2 /* maxTime */
            ifnull 2
            aload 2 /* maxTime */
            invokevirtual java.lang.Long.longValue:()J
            goto 3
      StackMap locals: org.mongodb.morphia.query.QueryImpl java.util.concurrent.TimeUnit java.lang.Long
      StackMap stack: java.util.concurrent.TimeUnit
         2: lconst_0
      StackMap locals: org.mongodb.morphia.query.QueryImpl java.util.concurrent.TimeUnit java.lang.Long
      StackMap stack: java.util.concurrent.TimeUnit long
         3: getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual java.util.concurrent.TimeUnit.convert:(JLjava/util/concurrent/TimeUnit;)J
            lreturn
        end local 2 // java.lang.Long maxTime
        end local 1 // java.util.concurrent.TimeUnit unit
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    4     1     unit  Ljava/util/concurrent/TimeUnit;
            1    4     2  maxTime  Ljava/lang/Long;
    MethodParameters:
      Name  Flags
      unit  final

  public org.mongodb.morphia.query.Query<T> offset(int);
    descriptor: (I)Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // int value
         0: .line 516
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            iload 1 /* value */
            invokevirtual org.mongodb.morphia.query.FindOptions.skip:(I)Lorg/mongodb/morphia/query/FindOptions;
            pop
         1: .line 517
            aload 0 /* this */
            areturn
        end local 1 // int value
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    2     1  value  I
    Signature: (I)Lorg/mongodb/morphia/query/Query<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      value  final

  public org.mongodb.morphia.query.Query<T> order(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // java.lang.String sort
         0: .line 522
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            aload 1 /* sort */
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.clazz:Ljava/lang/Class;
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.ds:Lorg/mongodb/morphia/DatastoreImpl;
            invokevirtual org.mongodb.morphia.DatastoreImpl.getMapper:()Lorg/mongodb/morphia/mapping/Mapper;
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.validateName:Z
            invokestatic org.mongodb.morphia.query.QueryImpl.parseFieldsString:(Ljava/lang/String;Ljava/lang/Class;Lorg/mongodb/morphia/mapping/Mapper;Z)Lcom/mongodb/BasicDBObject;
            invokevirtual org.mongodb.morphia.query.FindOptions.sort:(Lcom/mongodb/DBObject;)Lorg/mongodb/morphia/query/FindOptions;
            pop
         1: .line 523
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String sort
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    2     1  sort  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Lorg/mongodb/morphia/query/Query<TT;>;
    MethodParameters:
      Name  Flags
      sort  final

  public org.mongodb.morphia.query.Query<T> order(org.mongodb.morphia.query.Meta);
    descriptor: (Lorg/mongodb/morphia/query/Meta;)Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // org.mongodb.morphia.query.Meta sort
         0: .line 528
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.clazz:Ljava/lang/Class;
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.ds:Lorg/mongodb/morphia/DatastoreImpl;
            invokevirtual org.mongodb.morphia.DatastoreImpl.getMapper:()Lorg/mongodb/morphia/mapping/Mapper;
            new java.lang.StringBuilder
            dup
            aload 1 /* sort */
            invokevirtual org.mongodb.morphia.query.Meta.getField:()Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic org.mongodb.morphia.query.FilterOperator.IN:Lorg/mongodb/morphia/query/FilterOperator;
            ldc ""
            iconst_0
            iconst_0
            invokestatic org.mongodb.morphia.query.QueryValidator.validateQuery:(Ljava/lang/Class;Lorg/mongodb/morphia/mapping/Mapper;Ljava/lang/StringBuilder;Lorg/mongodb/morphia/query/FilterOperator;Ljava/lang/Object;ZZ)Lorg/mongodb/morphia/mapping/MappedField;
            pop
         1: .line 530
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            aload 1 /* sort */
            invokevirtual org.mongodb.morphia.query.Meta.toDatabase:()Lcom/mongodb/DBObject;
            invokevirtual org.mongodb.morphia.query.FindOptions.sort:(Lcom/mongodb/DBObject;)Lorg/mongodb/morphia/query/FindOptions;
            pop
         2: .line 532
            aload 0 /* this */
            areturn
        end local 1 // org.mongodb.morphia.query.Meta sort
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    3     1  sort  Lorg/mongodb/morphia/query/Meta;
    Signature: (Lorg/mongodb/morphia/query/Meta;)Lorg/mongodb/morphia/query/Query<TT;>;
    MethodParameters:
      Name  Flags
      sort  final

  public org.mongodb.morphia.query.Query<T> order(org.mongodb.morphia.query.Sort[]);
    descriptor: ([Lorg/mongodb/morphia/query/Sort;)Lorg/mongodb/morphia/query/Query;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=7, locals=9, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // org.mongodb.morphia.query.Sort[] sorts
         0: .line 537
            new com.mongodb.BasicDBObject
            dup
            invokespecial com.mongodb.BasicDBObject.<init>:()V
            astore 2 /* sortList */
        start local 2 // com.mongodb.BasicDBObject sortList
         1: .line 538
            aload 1 /* sorts */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 10
      StackMap locals: org.mongodb.morphia.query.QueryImpl org.mongodb.morphia.query.Sort[] com.mongodb.BasicDBObject top int int org.mongodb.morphia.query.Sort[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* sort */
        start local 3 // org.mongodb.morphia.query.Sort sort
         3: .line 539
            aload 3 /* sort */
            invokevirtual org.mongodb.morphia.query.Sort.getField:()Ljava/lang/String;
            astore 7 /* s */
        start local 7 // java.lang.String s
         4: .line 540
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.validateName:Z
            ifeq 8
         5: .line 541
            new java.lang.StringBuilder
            dup
            aload 7 /* s */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 8 /* sb */
        start local 8 // java.lang.StringBuilder sb
         6: .line 542
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.clazz:Ljava/lang/Class;
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.ds:Lorg/mongodb/morphia/DatastoreImpl;
            invokevirtual org.mongodb.morphia.DatastoreImpl.getMapper:()Lorg/mongodb/morphia/mapping/Mapper;
            aload 8 /* sb */
            getstatic org.mongodb.morphia.query.FilterOperator.IN:Lorg/mongodb/morphia/query/FilterOperator;
            ldc ""
            iconst_1
            iconst_0
            invokestatic org.mongodb.morphia.query.QueryValidator.validateQuery:(Ljava/lang/Class;Lorg/mongodb/morphia/mapping/Mapper;Ljava/lang/StringBuilder;Lorg/mongodb/morphia/query/FilterOperator;Ljava/lang/Object;ZZ)Lorg/mongodb/morphia/mapping/MappedField;
            pop
         7: .line 543
            aload 8 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* s */
        end local 8 // java.lang.StringBuilder sb
         8: .line 545
      StackMap locals: org.mongodb.morphia.query.QueryImpl org.mongodb.morphia.query.Sort[] com.mongodb.BasicDBObject org.mongodb.morphia.query.Sort int int org.mongodb.morphia.query.Sort[] java.lang.String
      StackMap stack:
            aload 2 /* sortList */
            aload 7 /* s */
            aload 3 /* sort */
            invokevirtual org.mongodb.morphia.query.Sort.getOrder:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual com.mongodb.BasicDBObject.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // java.lang.String s
        end local 3 // org.mongodb.morphia.query.Sort sort
         9: .line 538
            iinc 4 1
      StackMap locals: org.mongodb.morphia.query.QueryImpl org.mongodb.morphia.query.Sort[] com.mongodb.BasicDBObject top int int org.mongodb.morphia.query.Sort[]
      StackMap stack:
        10: iload 4
            iload 5
            if_icmplt 2
        11: .line 547
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            aload 2 /* sortList */
            invokevirtual org.mongodb.morphia.query.FindOptions.sort:(Lcom/mongodb/DBObject;)Lorg/mongodb/morphia/query/FindOptions;
            pop
        12: .line 548
            aload 0 /* this */
            areturn
        end local 2 // com.mongodb.BasicDBObject sortList
        end local 1 // org.mongodb.morphia.query.Sort[] sorts
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0   13     1     sorts  [Lorg/mongodb/morphia/query/Sort;
            1   13     2  sortList  Lcom/mongodb/BasicDBObject;
            3    9     3      sort  Lorg/mongodb/morphia/query/Sort;
            4    9     7         s  Ljava/lang/String;
            6    8     8        sb  Ljava/lang/StringBuilder;
    Signature: ([Lorg/mongodb/morphia/query/Sort;)Lorg/mongodb/morphia/query/Query<TT;>;
    MethodParameters:
       Name  Flags
      sorts  final

  public org.mongodb.morphia.query.Query<T> queryNonPrimary();
    descriptor: ()Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 554
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            invokestatic com.mongodb.ReadPreference.secondaryPreferred:()Lcom/mongodb/ReadPreference;
            invokevirtual org.mongodb.morphia.query.FindOptions.readPreference:(Lcom/mongodb/ReadPreference;)Lorg/mongodb/morphia/query/FindOptions;
            pop
         1: .line 555
            aload 0 /* this */
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    Signature: ()Lorg/mongodb/morphia/query/Query<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public org.mongodb.morphia.query.Query<T> queryPrimaryOnly();
    descriptor: ()Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 561
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
            invokevirtual org.mongodb.morphia.query.FindOptions.readPreference:(Lcom/mongodb/ReadPreference;)Lorg/mongodb/morphia/query/FindOptions;
            pop
         1: .line 562
            aload 0 /* this */
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    Signature: ()Lorg/mongodb/morphia/query/Query<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public org.mongodb.morphia.query.Query<T> retrieveKnownFields();
    descriptor: ()Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 567
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.ds:Lorg/mongodb/morphia/DatastoreImpl;
            invokevirtual org.mongodb.morphia.DatastoreImpl.getMapper:()Lorg/mongodb/morphia/mapping/Mapper;
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.clazz:Ljava/lang/Class;
            invokevirtual org.mongodb.morphia.mapping.Mapper.getMappedClass:(Ljava/lang/Object;)Lorg/mongodb/morphia/mapping/MappedClass;
            astore 1 /* mc */
        start local 1 // org.mongodb.morphia.mapping.MappedClass mc
         1: .line 568
            new java.util.ArrayList
            dup
            aload 1 /* mc */
            invokevirtual org.mongodb.morphia.mapping.MappedClass.getPersistenceFields:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            iadd
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* fields */
        start local 2 // java.util.List fields
         2: .line 569
            aload 1 /* mc */
            invokevirtual org.mongodb.morphia.mapping.MappedClass.getPersistenceFields:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: org.mongodb.morphia.query.QueryImpl org.mongodb.morphia.mapping.MappedClass java.util.List top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.mongodb.morphia.mapping.MappedField
            astore 3 /* mf */
        start local 3 // org.mongodb.morphia.mapping.MappedField mf
         4: .line 570
            aload 2 /* fields */
            aload 3 /* mf */
            invokevirtual org.mongodb.morphia.mapping.MappedField.getNameToStore:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // org.mongodb.morphia.mapping.MappedField mf
         5: .line 569
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 572
            aload 0 /* this */
            iconst_1
            aload 2 /* fields */
            aload 2 /* fields */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.String
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            invokevirtual org.mongodb.morphia.query.QueryImpl.retrievedFields:(Z[Ljava/lang/String;)Lorg/mongodb/morphia/query/Query;
            pop
         7: .line 573
            aload 0 /* this */
            areturn
        end local 2 // java.util.List fields
        end local 1 // org.mongodb.morphia.mapping.MappedClass mc
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            1    8     1      mc  Lorg/mongodb/morphia/mapping/MappedClass;
            2    8     2  fields  Ljava/util/List<Ljava/lang/String;>;
            4    5     3      mf  Lorg/mongodb/morphia/mapping/MappedField;
    Signature: ()Lorg/mongodb/morphia/query/Query<TT;>;

  public org.mongodb.morphia.query.Query<T> project(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // java.lang.String field
        start local 2 // boolean include
         0: .line 578
            new java.lang.StringBuilder
            dup
            aload 1 /* field */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 3 /* sb */
        start local 3 // java.lang.StringBuilder sb
         1: .line 579
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.clazz:Ljava/lang/Class;
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.ds:Lorg/mongodb/morphia/DatastoreImpl;
            invokevirtual org.mongodb.morphia.DatastoreImpl.getMapper:()Lorg/mongodb/morphia/mapping/Mapper;
            aload 3 /* sb */
            getstatic org.mongodb.morphia.query.FilterOperator.EQUAL:Lorg/mongodb/morphia/query/FilterOperator;
            aconst_null
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.validateName:Z
            iconst_0
            invokestatic org.mongodb.morphia.query.QueryValidator.validateQuery:(Ljava/lang/Class;Lorg/mongodb/morphia/mapping/Mapper;Ljava/lang/StringBuilder;Lorg/mongodb/morphia/query/FilterOperator;Ljava/lang/Object;ZZ)Lorg/mongodb/morphia/mapping/MappedField;
            pop
         2: .line 580
            aload 3 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* fieldName */
        start local 4 // java.lang.String fieldName
         3: .line 581
            aload 0 /* this */
            aload 4 /* fieldName */
            iload 2 /* include */
            invokevirtual org.mongodb.morphia.query.QueryImpl.validateProjections:(Ljava/lang/String;Z)V
         4: .line 582
            aload 0 /* this */
            aload 4 /* fieldName */
            iload 2 /* include */
            ifeq 5
            iconst_1
            goto 6
      StackMap locals: org.mongodb.morphia.query.QueryImpl java.lang.String int java.lang.StringBuilder java.lang.String
      StackMap stack: org.mongodb.morphia.query.QueryImpl java.lang.String
         5: iconst_0
      StackMap locals: org.mongodb.morphia.query.QueryImpl java.lang.String int java.lang.StringBuilder java.lang.String
      StackMap stack: org.mongodb.morphia.query.QueryImpl java.lang.String int
         6: invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.mongodb.morphia.query.QueryImpl.project:(Ljava/lang/String;Ljava/lang/Object;)V
         7: .line 583
            aload 0 /* this */
            areturn
        end local 4 // java.lang.String fieldName
        end local 3 // java.lang.StringBuilder sb
        end local 2 // boolean include
        end local 1 // java.lang.String field
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    8     1      field  Ljava/lang/String;
            0    8     2    include  Z
            1    8     3         sb  Ljava/lang/StringBuilder;
            3    8     4  fieldName  Ljava/lang/String;
    Signature: (Ljava/lang/String;Z)Lorg/mongodb/morphia/query/Query<TT;>;
    MethodParameters:
         Name  Flags
      field    final
      include  final

  private void project(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // java.lang.String fieldName
        start local 2 // java.lang.Object value
         0: .line 587
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            invokevirtual org.mongodb.morphia.query.FindOptions.getProjection:()Lcom/mongodb/DBObject;
            astore 3 /* projection */
        start local 3 // com.mongodb.DBObject projection
         1: .line 588
            aload 3 /* projection */
            ifnonnull 4
         2: .line 589
            new com.mongodb.BasicDBObject
            dup
            invokespecial com.mongodb.BasicDBObject.<init>:()V
            astore 3 /* projection */
         3: .line 590
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            aload 3 /* projection */
            invokevirtual org.mongodb.morphia.query.FindOptions.projection:(Lcom/mongodb/DBObject;)Lorg/mongodb/morphia/query/FindOptions;
            pop
         4: .line 592
      StackMap locals: com.mongodb.DBObject
      StackMap stack:
            aload 3 /* projection */
            aload 1 /* fieldName */
            aload 2 /* value */
            invokeinterface com.mongodb.DBObject.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 593
            return
        end local 3 // com.mongodb.DBObject projection
        end local 2 // java.lang.Object value
        end local 1 // java.lang.String fieldName
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    6     1   fieldName  Ljava/lang/String;
            0    6     2       value  Ljava/lang/Object;
            1    6     3  projection  Lcom/mongodb/DBObject;
    MethodParameters:
           Name  Flags
      fieldName  final
      value      final

  private void project(com.mongodb.DBObject);
    descriptor: (Lcom/mongodb/DBObject;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // com.mongodb.DBObject value
         0: .line 596
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            invokevirtual org.mongodb.morphia.query.FindOptions.getProjection:()Lcom/mongodb/DBObject;
            astore 2 /* projection */
        start local 2 // com.mongodb.DBObject projection
         1: .line 597
            aload 2 /* projection */
            ifnonnull 4
         2: .line 598
            new com.mongodb.BasicDBObject
            dup
            invokespecial com.mongodb.BasicDBObject.<init>:()V
            astore 2 /* projection */
         3: .line 599
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            aload 2 /* projection */
            invokevirtual org.mongodb.morphia.query.FindOptions.projection:(Lcom/mongodb/DBObject;)Lorg/mongodb/morphia/query/FindOptions;
            pop
         4: .line 601
      StackMap locals: com.mongodb.DBObject
      StackMap stack:
            aload 2 /* projection */
            aload 1 /* value */
            invokeinterface com.mongodb.DBObject.putAll:(Lorg/bson/BSONObject;)V
         5: .line 602
            return
        end local 2 // com.mongodb.DBObject projection
        end local 1 // com.mongodb.DBObject value
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    6     1       value  Lcom/mongodb/DBObject;
            1    6     2  projection  Lcom/mongodb/DBObject;
    MethodParameters:
       Name  Flags
      value  final

  public org.mongodb.morphia.query.Query<T> project(java.lang.String, org.mongodb.morphia.query.ArraySlice);
    descriptor: (Ljava/lang/String;Lorg/mongodb/morphia/query/ArraySlice;)Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // java.lang.String field
        start local 2 // org.mongodb.morphia.query.ArraySlice slice
         0: .line 606
            new java.lang.StringBuilder
            dup
            aload 1 /* field */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 3 /* sb */
        start local 3 // java.lang.StringBuilder sb
         1: .line 607
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.clazz:Ljava/lang/Class;
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.ds:Lorg/mongodb/morphia/DatastoreImpl;
            invokevirtual org.mongodb.morphia.DatastoreImpl.getMapper:()Lorg/mongodb/morphia/mapping/Mapper;
            aload 3 /* sb */
            getstatic org.mongodb.morphia.query.FilterOperator.EQUAL:Lorg/mongodb/morphia/query/FilterOperator;
            aconst_null
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.validateName:Z
            iconst_0
            invokestatic org.mongodb.morphia.query.QueryValidator.validateQuery:(Ljava/lang/Class;Lorg/mongodb/morphia/mapping/Mapper;Ljava/lang/StringBuilder;Lorg/mongodb/morphia/query/FilterOperator;Ljava/lang/Object;ZZ)Lorg/mongodb/morphia/mapping/MappedField;
            pop
         2: .line 608
            aload 3 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* fieldName */
        start local 4 // java.lang.String fieldName
         3: .line 609
            aload 0 /* this */
            aload 4 /* fieldName */
            iconst_1
            invokevirtual org.mongodb.morphia.query.QueryImpl.validateProjections:(Ljava/lang/String;Z)V
         4: .line 610
            aload 0 /* this */
            aload 4 /* fieldName */
            aload 2 /* slice */
            invokevirtual org.mongodb.morphia.query.ArraySlice.toDatabase:()Lcom/mongodb/DBObject;
            invokevirtual org.mongodb.morphia.query.QueryImpl.project:(Ljava/lang/String;Ljava/lang/Object;)V
         5: .line 611
            aload 0 /* this */
            areturn
        end local 4 // java.lang.String fieldName
        end local 3 // java.lang.StringBuilder sb
        end local 2 // org.mongodb.morphia.query.ArraySlice slice
        end local 1 // java.lang.String field
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    6     1      field  Ljava/lang/String;
            0    6     2      slice  Lorg/mongodb/morphia/query/ArraySlice;
            1    6     3         sb  Ljava/lang/StringBuilder;
            3    6     4  fieldName  Ljava/lang/String;
    Signature: (Ljava/lang/String;Lorg/mongodb/morphia/query/ArraySlice;)Lorg/mongodb/morphia/query/Query<TT;>;
    MethodParameters:
       Name  Flags
      field  final
      slice  final

  public org.mongodb.morphia.query.Query<T> project(org.mongodb.morphia.query.Meta);
    descriptor: (Lorg/mongodb/morphia/query/Meta;)Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // org.mongodb.morphia.query.Meta meta
         0: .line 616
            new java.lang.StringBuilder
            dup
            aload 1 /* meta */
            invokevirtual org.mongodb.morphia.query.Meta.getField:()Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         1: .line 617
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.clazz:Ljava/lang/Class;
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.ds:Lorg/mongodb/morphia/DatastoreImpl;
            invokevirtual org.mongodb.morphia.DatastoreImpl.getMapper:()Lorg/mongodb/morphia/mapping/Mapper;
            aload 2 /* sb */
            getstatic org.mongodb.morphia.query.FilterOperator.EQUAL:Lorg/mongodb/morphia/query/FilterOperator;
            aconst_null
            iconst_0
            iconst_0
            invokestatic org.mongodb.morphia.query.QueryValidator.validateQuery:(Ljava/lang/Class;Lorg/mongodb/morphia/mapping/Mapper;Ljava/lang/StringBuilder;Lorg/mongodb/morphia/query/FilterOperator;Ljava/lang/Object;ZZ)Lorg/mongodb/morphia/mapping/MappedField;
            pop
         2: .line 618
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* fieldName */
        start local 3 // java.lang.String fieldName
         3: .line 619
            aload 0 /* this */
            aload 3 /* fieldName */
            iconst_1
            invokevirtual org.mongodb.morphia.query.QueryImpl.validateProjections:(Ljava/lang/String;Z)V
         4: .line 620
            aload 0 /* this */
            aload 1 /* meta */
            invokevirtual org.mongodb.morphia.query.Meta.toDatabase:()Lcom/mongodb/DBObject;
            invokevirtual org.mongodb.morphia.query.QueryImpl.project:(Lcom/mongodb/DBObject;)V
         5: .line 621
            aload 0 /* this */
            areturn
        end local 3 // java.lang.String fieldName
        end local 2 // java.lang.StringBuilder sb
        end local 1 // org.mongodb.morphia.query.Meta meta
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    6     1       meta  Lorg/mongodb/morphia/query/Meta;
            1    6     2         sb  Ljava/lang/StringBuilder;
            3    6     3  fieldName  Ljava/lang/String;
    Signature: (Lorg/mongodb/morphia/query/Meta;)Lorg/mongodb/morphia/query/Query<TT;>;
    MethodParameters:
      Name  Flags
      meta  final

  private void validateProjections(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // java.lang.String field
        start local 2 // boolean include
         0: .line 626
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.includeFields:Ljava/lang/Boolean;
            ifnull 3
            iload 2 /* include */
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.includeFields:Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            if_icmpeq 3
         1: .line 627
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.includeFields:Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 2
            ldc "_id"
            aload 1 /* field */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 628
      StackMap locals:
      StackMap stack:
            new org.mongodb.morphia.query.ValidationException
            dup
            ldc "You cannot mix included and excluded fields together"
            invokespecial org.mongodb.morphia.query.ValidationException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 631
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.includeFields:Ljava/lang/Boolean;
            ifnonnull 5
         4: .line 632
            aload 0 /* this */
            iload 2 /* include */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            putfield org.mongodb.morphia.query.QueryImpl.includeFields:Ljava/lang/Boolean;
         5: .line 634
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean include
        end local 1 // java.lang.String field
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    6     1    field  Ljava/lang/String;
            0    6     2  include  Z
    MethodParameters:
         Name  Flags
      field    final
      include  final

  public org.mongodb.morphia.query.Query<T> retrievedFields(boolean, java.lang.String[]);
    descriptor: (Z[Ljava/lang/String;)Lorg/mongodb/morphia/query/Query;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // boolean include
        start local 2 // java.lang.String[] list
         0: .line 639
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.includeFields:Ljava/lang/Boolean;
            ifnull 2
            iload 1 /* include */
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.includeFields:Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            if_icmpeq 2
         1: .line 640
            new java.lang.IllegalStateException
            dup
            ldc "You cannot mix included and excluded fields together"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 642
      StackMap locals:
      StackMap stack:
            aload 2 /* list */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 6
      StackMap locals: org.mongodb.morphia.query.QueryImpl int java.lang.String[] top int int java.lang.String[]
      StackMap stack:
         3: aload 6
            iload 4
            aaload
            astore 3 /* field */
        start local 3 // java.lang.String field
         4: .line 643
            aload 0 /* this */
            aload 3 /* field */
            iload 1 /* include */
            invokevirtual org.mongodb.morphia.query.QueryImpl.project:(Ljava/lang/String;Z)Lorg/mongodb/morphia/query/Query;
            pop
        end local 3 // java.lang.String field
         5: .line 642
            iinc 4 1
      StackMap locals:
      StackMap stack:
         6: iload 4
            iload 5
            if_icmplt 3
         7: .line 645
            aload 0 /* this */
            areturn
        end local 2 // java.lang.String[] list
        end local 1 // boolean include
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    8     1  include  Z
            0    8     2     list  [Ljava/lang/String;
            4    5     3    field  Ljava/lang/String;
    Signature: (Z[Ljava/lang/String;)Lorg/mongodb/morphia/query/Query<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      include  final
      list     final

  public org.mongodb.morphia.query.Query<T> returnKey();
    descriptor: ()Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 651
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            invokevirtual org.mongodb.morphia.query.FindOptions.getModifiers:()Lcom/mongodb/DBObject;
            ldc "$returnKey"
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface com.mongodb.DBObject.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 652
            aload 0 /* this */
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    Signature: ()Lorg/mongodb/morphia/query/Query<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public org.mongodb.morphia.query.Query<T> search(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // java.lang.String search
         0: .line 658
            new com.mongodb.BasicDBObject
            dup
            ldc "$search"
            aload 1 /* search */
            invokespecial com.mongodb.BasicDBObject.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            astore 2 /* op */
        start local 2 // com.mongodb.BasicDBObject op
         1: .line 660
            aload 0 /* this */
            ldc "$text"
            invokevirtual org.mongodb.morphia.query.QueryImpl.criteria:(Ljava/lang/String;)Lorg/mongodb/morphia/query/FieldEnd;
            aload 2 /* op */
            invokeinterface org.mongodb.morphia.query.FieldEnd.equal:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 662
            aload 0 /* this */
            areturn
        end local 2 // com.mongodb.BasicDBObject op
        end local 1 // java.lang.String search
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    3     1  search  Ljava/lang/String;
            1    3     2      op  Lcom/mongodb/BasicDBObject;
    Signature: (Ljava/lang/String;)Lorg/mongodb/morphia/query/Query<TT;>;
    MethodParameters:
        Name  Flags
      search  final

  public org.mongodb.morphia.query.Query<T> search(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // java.lang.String search
        start local 2 // java.lang.String language
         0: .line 668
            new com.mongodb.BasicDBObject
            dup
            ldc "$search"
            aload 1 /* search */
            invokespecial com.mongodb.BasicDBObject.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 669
            ldc "$language"
            aload 2 /* language */
            invokevirtual com.mongodb.BasicDBObject.append:(Ljava/lang/String;Ljava/lang/Object;)Lcom/mongodb/BasicDBObject;
         2: .line 668
            astore 3 /* op */
        start local 3 // com.mongodb.BasicDBObject op
         3: .line 671
            aload 0 /* this */
            ldc "$text"
            invokevirtual org.mongodb.morphia.query.QueryImpl.criteria:(Ljava/lang/String;)Lorg/mongodb/morphia/query/FieldEnd;
            aload 3 /* op */
            invokeinterface org.mongodb.morphia.query.FieldEnd.equal:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 673
            aload 0 /* this */
            areturn
        end local 3 // com.mongodb.BasicDBObject op
        end local 2 // java.lang.String language
        end local 1 // java.lang.String search
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    5     1    search  Ljava/lang/String;
            0    5     2  language  Ljava/lang/String;
            3    5     3        op  Lcom/mongodb/BasicDBObject;
    Signature: (Ljava/lang/String;Ljava/lang/String;)Lorg/mongodb/morphia/query/Query<TT;>;
    MethodParameters:
          Name  Flags
      search    final
      language  final

  public org.mongodb.morphia.query.Query<T> upperIndexBound(com.mongodb.DBObject);
    descriptor: (Lcom/mongodb/DBObject;)Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // com.mongodb.DBObject upperBound
         0: .line 679
            aload 1 /* upperBound */
            ifnull 2
         1: .line 680
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            invokevirtual org.mongodb.morphia.query.FindOptions.getModifiers:()Lcom/mongodb/DBObject;
            ldc "$max"
            new com.mongodb.BasicDBObject
            dup
            aload 1 /* upperBound */
            invokeinterface com.mongodb.DBObject.toMap:()Ljava/util/Map;
            invokespecial com.mongodb.BasicDBObject.<init>:(Ljava/util/Map;)V
            invokeinterface com.mongodb.DBObject.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 683
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // com.mongodb.DBObject upperBound
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    3     1  upperBound  Lcom/mongodb/DBObject;
    Signature: (Lcom/mongodb/DBObject;)Lorg/mongodb/morphia/query/Query<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
            Name  Flags
      upperBound  final

  public org.mongodb.morphia.query.Query<T> useReadPreference(com.mongodb.ReadPreference);
    descriptor: (Lcom/mongodb/ReadPreference;)Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // com.mongodb.ReadPreference readPref
         0: .line 689
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            aload 1 /* readPref */
            invokevirtual org.mongodb.morphia.query.FindOptions.readPreference:(Lcom/mongodb/ReadPreference;)Lorg/mongodb/morphia/query/FindOptions;
            pop
         1: .line 690
            aload 0 /* this */
            areturn
        end local 1 // com.mongodb.ReadPreference readPref
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    2     1  readPref  Lcom/mongodb/ReadPreference;
    Signature: (Lcom/mongodb/ReadPreference;)Lorg/mongodb/morphia/query/Query<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
          Name  Flags
      readPref  final

  public org.mongodb.morphia.query.Query<T> where(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // java.lang.String js
         0: .line 695
            aload 0 /* this */
            iconst_1
            anewarray org.mongodb.morphia.query.Criteria
            dup
            iconst_0
            new org.mongodb.morphia.query.WhereCriteria
            dup
            aload 1 /* js */
            invokespecial org.mongodb.morphia.query.WhereCriteria.<init>:(Ljava/lang/String;)V
            aastore
            invokevirtual org.mongodb.morphia.query.QueryImpl.add:([Lorg/mongodb/morphia/query/Criteria;)V
         1: .line 696
            aload 0 /* this */
            areturn
        end local 1 // java.lang.String js
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    2     1    js  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Lorg/mongodb/morphia/query/Query<TT;>;
    MethodParameters:
      Name  Flags
      js    final

  public org.mongodb.morphia.query.Query<T> where(org.bson.types.CodeWScope);
    descriptor: (Lorg/bson/types/CodeWScope;)Lorg/mongodb/morphia/query/Query;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // org.bson.types.CodeWScope js
         0: .line 701
            aload 0 /* this */
            iconst_1
            anewarray org.mongodb.morphia.query.Criteria
            dup
            iconst_0
            new org.mongodb.morphia.query.WhereCriteria
            dup
            aload 1 /* js */
            invokespecial org.mongodb.morphia.query.WhereCriteria.<init>:(Lorg/bson/types/CodeWScope;)V
            aastore
            invokevirtual org.mongodb.morphia.query.QueryImpl.add:([Lorg/mongodb/morphia/query/Criteria;)V
         1: .line 702
            aload 0 /* this */
            areturn
        end local 1 // org.bson.types.CodeWScope js
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    2     1    js  Lorg/bson/types/CodeWScope;
    Signature: (Lorg/bson/types/CodeWScope;)Lorg/mongodb/morphia/query/Query<TT;>;
    MethodParameters:
      Name  Flags
      js    final

  public java.lang.String getFieldName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 707
            aconst_null
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;

  public org.mongodb.morphia.DatastoreImpl getDatastore();
    descriptor: ()Lorg/mongodb/morphia/DatastoreImpl;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 716
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.ds:Lorg/mongodb/morphia/DatastoreImpl;
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public boolean isValidatingNames();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 723
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.validateName:Z
            ireturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;

  public boolean isValidatingTypes();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 730
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.validateType:Z
            ireturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;

  public org.mongodb.morphia.query.MorphiaIterator<T, T> iterator();
    descriptor: ()Lorg/mongodb/morphia/query/MorphiaIterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 735
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.fetch:()Lorg/mongodb/morphia/query/MorphiaIterator;
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    Signature: ()Lorg/mongodb/morphia/query/MorphiaIterator<TT;TT;>;

  public com.mongodb.DBCursor prepareCursor();
    descriptor: ()Lcom/mongodb/DBCursor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 746
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            invokevirtual org.mongodb.morphia.query.QueryImpl.prepareCursor:(Lorg/mongodb/morphia/query/FindOptions;)Lcom/mongodb/DBCursor;
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  private com.mongodb.DBCursor prepareCursor(org.mongodb.morphia.query.FindOptions);
    descriptor: (Lorg/mongodb/morphia/query/FindOptions;)Lcom/mongodb/DBCursor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // org.mongodb.morphia.query.FindOptions findOptions
         0: .line 750
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getQueryObject:()Lcom/mongodb/DBObject;
            astore 2 /* query */
        start local 2 // com.mongodb.DBObject query
         1: .line 752
            getstatic org.mongodb.morphia.query.QueryImpl.LOG:Lorg/mongodb/morphia/logging/Logger;
            invokeinterface org.mongodb.morphia.logging.Logger.isTraceEnabled:()Z
            ifeq 3
         2: .line 753
            getstatic org.mongodb.morphia.query.QueryImpl.LOG:Lorg/mongodb/morphia/logging/Logger;
            ldc "Running query(%s) : %s, options: %s,"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.dbColl:Lcom/mongodb/DBCollection;
            invokevirtual com.mongodb.DBCollection.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 2 /* query */
            aastore
            dup
            iconst_2
            aload 1 /* findOptions */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.mongodb.morphia.logging.Logger.trace:(Ljava/lang/String;)V
         3: .line 756
      StackMap locals: com.mongodb.DBObject
      StackMap stack:
            aload 1 /* findOptions */
            invokevirtual org.mongodb.morphia.query.FindOptions.isSnapshot:()Z
            ifeq 5
            aload 1 /* findOptions */
            invokevirtual org.mongodb.morphia.query.FindOptions.getSortDBObject:()Lcom/mongodb/DBObject;
            ifnonnull 4
            aload 1 /* findOptions */
            invokevirtual org.mongodb.morphia.query.FindOptions.hasHint:()Z
            ifeq 5
         4: .line 757
      StackMap locals:
      StackMap stack:
            getstatic org.mongodb.morphia.query.QueryImpl.LOG:Lorg/mongodb/morphia/logging/Logger;
            ldc "Snapshotted query should not have hint/sort."
            invokeinterface org.mongodb.morphia.logging.Logger.warning:(Ljava/lang/String;)V
         5: .line 760
      StackMap locals:
      StackMap stack:
            aload 1 /* findOptions */
            invokevirtual org.mongodb.morphia.query.FindOptions.getCursorType:()Lcom/mongodb/CursorType;
            getstatic com.mongodb.CursorType.NonTailable:Lcom/mongodb/CursorType;
            if_acmpeq 7
            aload 1 /* findOptions */
            invokevirtual org.mongodb.morphia.query.FindOptions.getSortDBObject:()Lcom/mongodb/DBObject;
            ifnull 7
         6: .line 761
            getstatic org.mongodb.morphia.query.QueryImpl.LOG:Lorg/mongodb/morphia/logging/Logger;
            ldc "Sorting on tail is not allowed."
            invokeinterface org.mongodb.morphia.logging.Logger.warning:(Ljava/lang/String;)V
         7: .line 764
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.dbColl:Lcom/mongodb/DBCollection;
            aload 2 /* query */
            aload 1 /* findOptions */
            invokevirtual org.mongodb.morphia.query.FindOptions.getOptions:()Lcom/mongodb/client/model/DBCollectionFindOptions;
         8: .line 765
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.copy:()Lcom/mongodb/client/model/DBCollectionFindOptions;
         9: .line 766
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getSortObject:()Lcom/mongodb/DBObject;
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.sort:(Lcom/mongodb/DBObject;)Lcom/mongodb/client/model/DBCollectionFindOptions;
        10: .line 767
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getFieldsObject:()Lcom/mongodb/DBObject;
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.projection:(Lcom/mongodb/DBObject;)Lcom/mongodb/client/model/DBCollectionFindOptions;
        11: .line 764
            invokevirtual com.mongodb.DBCollection.find:(Lcom/mongodb/DBObject;Lcom/mongodb/client/model/DBCollectionFindOptions;)Lcom/mongodb/DBCursor;
        12: .line 768
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.ds:Lorg/mongodb/morphia/DatastoreImpl;
            invokevirtual org.mongodb.morphia.DatastoreImpl.getDecoderFact:()Lcom/mongodb/DBDecoderFactory;
            invokevirtual com.mongodb.DBCursor.setDecoderFactory:(Lcom/mongodb/DBDecoderFactory;)Lcom/mongodb/DBCursor;
        13: .line 764
            areturn
        end local 2 // com.mongodb.DBObject query
        end local 1 // org.mongodb.morphia.query.FindOptions findOptions
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0         this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0   14     1  findOptions  Lorg/mongodb/morphia/query/FindOptions;
            1   14     2        query  Lcom/mongodb/DBObject;
    MethodParameters:
             Name  Flags
      findOptions  final

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 773
            ldc "{ query: %s %s }"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getQueryObject:()Lcom/mongodb/DBObject;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getOptions:()Lorg/mongodb/morphia/query/FindOptions;
            invokevirtual org.mongodb.morphia.query.FindOptions.getProjection:()Lcom/mongodb/DBObject;
            ifnonnull 2
         1: .line 774
            ldc ""
            goto 3
         2: .line 775
      StackMap locals: org.mongodb.morphia.query.QueryImpl
      StackMap stack: java.lang.String java.lang.Object[] java.lang.Object[] int
            new java.lang.StringBuilder
            dup
            ldc ", projection: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getFieldsObject:()Lcom/mongodb/DBObject;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals: org.mongodb.morphia.query.QueryImpl
      StackMap stack: java.lang.String java.lang.Object[] java.lang.Object[] int java.lang.String
         3: aastore
         4: .line 773
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;

  protected org.mongodb.morphia.query.FilterOperator translate(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/mongodb/morphia/query/FilterOperator;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // java.lang.String operator
         0: .line 783
            aload 1 /* operator */
            invokestatic org.mongodb.morphia.query.FilterOperator.fromString:(Ljava/lang/String;)Lorg/mongodb/morphia/query/FilterOperator;
            areturn
        end local 1 // java.lang.String operator
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0    1     1  operator  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      operator  final

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // java.lang.Object o
         0: .line 788
            aload 0 /* this */
            aload 1 /* o */
            if_acmpne 2
         1: .line 789
            iconst_1
            ireturn
         2: .line 791
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof org.mongodb.morphia.query.QueryImpl
            ifne 4
         3: .line 792
            iconst_0
            ireturn
         4: .line 795
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            checkcast org.mongodb.morphia.query.QueryImpl
            astore 2 /* query */
        start local 2 // org.mongodb.morphia.query.QueryImpl query
         5: .line 797
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.validateName:Z
            aload 2 /* query */
            getfield org.mongodb.morphia.query.QueryImpl.validateName:Z
            if_icmpeq 7
         6: .line 798
            iconst_0
            ireturn
         7: .line 800
      StackMap locals: org.mongodb.morphia.query.QueryImpl
      StackMap stack:
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.validateType:Z
            aload 2 /* query */
            getfield org.mongodb.morphia.query.QueryImpl.validateType:Z
            if_icmpeq 9
         8: .line 801
            iconst_0
            ireturn
         9: .line 803
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.dbColl:Lcom/mongodb/DBCollection;
            aload 2 /* query */
            getfield org.mongodb.morphia.query.QueryImpl.dbColl:Lcom/mongodb/DBCollection;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 11
        10: .line 804
            iconst_0
            ireturn
        11: .line 806
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.clazz:Ljava/lang/Class;
            aload 2 /* query */
            getfield org.mongodb.morphia.query.QueryImpl.clazz:Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 13
        12: .line 807
            iconst_0
            ireturn
        13: .line 809
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.includeFields:Ljava/lang/Boolean;
            ifnull 14
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.includeFields:Ljava/lang/Boolean;
            aload 2 /* query */
            getfield org.mongodb.morphia.query.QueryImpl.includeFields:Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.equals:(Ljava/lang/Object;)Z
            ifne 16
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 2 /* query */
            getfield org.mongodb.morphia.query.QueryImpl.includeFields:Ljava/lang/Boolean;
            ifnull 16
        15: .line 810
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        16: .line 812
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.baseQuery:Lcom/mongodb/BasicDBObject;
            ifnull 17
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.baseQuery:Lcom/mongodb/BasicDBObject;
            aload 2 /* query */
            getfield org.mongodb.morphia.query.QueryImpl.baseQuery:Lcom/mongodb/BasicDBObject;
            invokevirtual com.mongodb.BasicDBObject.equals:(Ljava/lang/Object;)Z
            ifne 19
            goto 18
      StackMap locals:
      StackMap stack:
        17: aload 2 /* query */
            getfield org.mongodb.morphia.query.QueryImpl.baseQuery:Lcom/mongodb/BasicDBObject;
            ifnull 19
        18: .line 813
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        19: .line 815
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.options:Lorg/mongodb/morphia/query/FindOptions;
            aload 2 /* query */
            getfield org.mongodb.morphia.query.QueryImpl.options:Lorg/mongodb/morphia/query/FindOptions;
            invokevirtual org.mongodb.morphia.query.QueryImpl.compare:(Lorg/mongodb/morphia/query/FindOptions;Lorg/mongodb/morphia/query/FindOptions;)Z
            ireturn
        end local 2 // org.mongodb.morphia.query.QueryImpl query
        end local 1 // java.lang.Object o
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   20     0   this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0   20     1      o  Ljava/lang/Object;
            5   20     2  query  Lorg/mongodb/morphia/query/QueryImpl<*>;
    MethodParameters:
      Name  Flags
      o     final

  private boolean compare(org.mongodb.morphia.query.FindOptions, org.mongodb.morphia.query.FindOptions);
    descriptor: (Lorg/mongodb/morphia/query/FindOptions;Lorg/mongodb/morphia/query/FindOptions;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // org.mongodb.morphia.query.FindOptions these
        start local 2 // org.mongodb.morphia.query.FindOptions those
         0: .line 820
            aload 1 /* these */
            ifnonnull 1
            aload 2 /* those */
            ifnonnull 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* these */
            ifnull 3
            aload 2 /* those */
            ifnonnull 3
         2: .line 821
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         3: .line 823
      StackMap locals:
      StackMap stack:
            aload 1 /* these */
            ifnonnull 5
         4: .line 824
            iconst_1
            ireturn
         5: .line 827
      StackMap locals:
      StackMap stack:
            aload 1 /* these */
            invokevirtual org.mongodb.morphia.query.FindOptions.getOptions:()Lcom/mongodb/client/model/DBCollectionFindOptions;
            astore 3 /* dbOptions */
        start local 3 // com.mongodb.client.model.DBCollectionFindOptions dbOptions
         6: .line 828
            aload 2 /* those */
            invokevirtual org.mongodb.morphia.query.FindOptions.getOptions:()Lcom/mongodb/client/model/DBCollectionFindOptions;
            astore 4 /* that */
        start local 4 // com.mongodb.client.model.DBCollectionFindOptions that
         7: .line 830
            aload 3 /* dbOptions */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getBatchSize:()I
            aload 4 /* that */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getBatchSize:()I
            if_icmpeq 9
         8: .line 831
            iconst_0
            ireturn
         9: .line 833
      StackMap locals: com.mongodb.client.model.DBCollectionFindOptions com.mongodb.client.model.DBCollectionFindOptions
      StackMap stack:
            aload 3 /* dbOptions */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getLimit:()I
            aload 4 /* that */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getLimit:()I
            if_icmpeq 11
        10: .line 834
            iconst_0
            ireturn
        11: .line 836
      StackMap locals:
      StackMap stack:
            aload 3 /* dbOptions */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getMaxTime:(Ljava/util/concurrent/TimeUnit;)J
            aload 4 /* that */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getMaxTime:(Ljava/util/concurrent/TimeUnit;)J
            lcmp
            ifeq 13
        12: .line 837
            iconst_0
            ireturn
        13: .line 839
      StackMap locals:
      StackMap stack:
            aload 3 /* dbOptions */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getMaxAwaitTime:(Ljava/util/concurrent/TimeUnit;)J
            aload 4 /* that */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getMaxAwaitTime:(Ljava/util/concurrent/TimeUnit;)J
            lcmp
            ifeq 15
        14: .line 840
            iconst_0
            ireturn
        15: .line 842
      StackMap locals:
      StackMap stack:
            aload 3 /* dbOptions */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getSkip:()I
            aload 4 /* that */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getSkip:()I
            if_icmpeq 17
        16: .line 843
            iconst_0
            ireturn
        17: .line 845
      StackMap locals:
      StackMap stack:
            aload 3 /* dbOptions */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.isNoCursorTimeout:()Z
            aload 4 /* that */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.isNoCursorTimeout:()Z
            if_icmpeq 19
        18: .line 846
            iconst_0
            ireturn
        19: .line 848
      StackMap locals:
      StackMap stack:
            aload 3 /* dbOptions */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.isOplogReplay:()Z
            aload 4 /* that */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.isOplogReplay:()Z
            if_icmpeq 21
        20: .line 849
            iconst_0
            ireturn
        21: .line 851
      StackMap locals:
      StackMap stack:
            aload 3 /* dbOptions */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.isPartial:()Z
            aload 4 /* that */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.isPartial:()Z
            if_icmpeq 23
        22: .line 852
            iconst_0
            ireturn
        23: .line 854
      StackMap locals:
      StackMap stack:
            aload 3 /* dbOptions */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getModifiers:()Lcom/mongodb/DBObject;
            ifnull 24
            aload 3 /* dbOptions */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getModifiers:()Lcom/mongodb/DBObject;
            aload 4 /* that */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getModifiers:()Lcom/mongodb/DBObject;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 26
            goto 25
      StackMap locals:
      StackMap stack:
        24: aload 4 /* that */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getModifiers:()Lcom/mongodb/DBObject;
            ifnull 26
        25: .line 855
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        26: .line 857
      StackMap locals:
      StackMap stack:
            aload 3 /* dbOptions */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getProjection:()Lcom/mongodb/DBObject;
            ifnull 27
            aload 3 /* dbOptions */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getProjection:()Lcom/mongodb/DBObject;
            aload 4 /* that */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getProjection:()Lcom/mongodb/DBObject;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 29
            goto 28
      StackMap locals:
      StackMap stack:
        27: aload 4 /* that */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getProjection:()Lcom/mongodb/DBObject;
            ifnull 29
        28: .line 858
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        29: .line 860
      StackMap locals:
      StackMap stack:
            aload 3 /* dbOptions */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getSort:()Lcom/mongodb/DBObject;
            ifnull 30
            aload 3 /* dbOptions */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getSort:()Lcom/mongodb/DBObject;
            aload 4 /* that */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getSort:()Lcom/mongodb/DBObject;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 32
            goto 31
      StackMap locals:
      StackMap stack:
        30: aload 4 /* that */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getSort:()Lcom/mongodb/DBObject;
            ifnull 32
        31: .line 861
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        32: .line 863
      StackMap locals:
      StackMap stack:
            aload 3 /* dbOptions */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getCursorType:()Lcom/mongodb/CursorType;
            aload 4 /* that */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getCursorType:()Lcom/mongodb/CursorType;
            if_acmpeq 34
        33: .line 864
            iconst_0
            ireturn
        34: .line 866
      StackMap locals:
      StackMap stack:
            aload 3 /* dbOptions */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getReadPreference:()Lcom/mongodb/ReadPreference;
            ifnull 35
            aload 3 /* dbOptions */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getReadPreference:()Lcom/mongodb/ReadPreference;
            aload 4 /* that */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getReadPreference:()Lcom/mongodb/ReadPreference;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 37
            goto 36
        35: .line 867
      StackMap locals:
      StackMap stack:
            aload 4 /* that */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getReadPreference:()Lcom/mongodb/ReadPreference;
            ifnull 37
        36: .line 868
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        37: .line 870
      StackMap locals:
      StackMap stack:
            aload 3 /* dbOptions */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getReadConcern:()Lcom/mongodb/ReadConcern;
            ifnull 38
            aload 3 /* dbOptions */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getReadConcern:()Lcom/mongodb/ReadConcern;
            aload 4 /* that */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getReadConcern:()Lcom/mongodb/ReadConcern;
            invokevirtual com.mongodb.ReadConcern.equals:(Ljava/lang/Object;)Z
            ifne 40
            goto 39
        38: .line 871
      StackMap locals:
      StackMap stack:
            aload 4 /* that */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getReadConcern:()Lcom/mongodb/ReadConcern;
            ifnull 40
        39: .line 872
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        40: .line 874
      StackMap locals:
      StackMap stack:
            aload 3 /* dbOptions */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getCollation:()Lcom/mongodb/client/model/Collation;
            ifnull 41
            aload 3 /* dbOptions */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getCollation:()Lcom/mongodb/client/model/Collation;
            aload 4 /* that */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getCollation:()Lcom/mongodb/client/model/Collation;
            invokevirtual com.mongodb.client.model.Collation.equals:(Ljava/lang/Object;)Z
            goto 43
      StackMap locals:
      StackMap stack:
        41: aload 4 /* that */
            invokevirtual com.mongodb.client.model.DBCollectionFindOptions.getCollation:()Lcom/mongodb/client/model/Collation;
            ifnonnull 42
            iconst_1
            goto 43
      StackMap locals:
      StackMap stack:
        42: iconst_0
      StackMap locals:
      StackMap stack: int
        43: ireturn
        end local 4 // com.mongodb.client.model.DBCollectionFindOptions that
        end local 3 // com.mongodb.client.model.DBCollectionFindOptions dbOptions
        end local 2 // org.mongodb.morphia.query.FindOptions those
        end local 1 // org.mongodb.morphia.query.FindOptions these
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   44     0       this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0   44     1      these  Lorg/mongodb/morphia/query/FindOptions;
            0   44     2      those  Lorg/mongodb/morphia/query/FindOptions;
            6   44     3  dbOptions  Lcom/mongodb/client/model/DBCollectionFindOptions;
            7   44     4       that  Lcom/mongodb/client/model/DBCollectionFindOptions;
    MethodParameters:
       Name  Flags
      these  final
      those  final

  private int hash(org.mongodb.morphia.query.FindOptions);
    descriptor: (Lorg/mongodb/morphia/query/FindOptions;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // org.mongodb.morphia.query.QueryImpl this
        start local 1 // org.mongodb.morphia.query.FindOptions options
         0: .line 879
            aload 1 /* options */
            ifnonnull 2
         1: .line 880
            iconst_0
            ireturn
         2: .line 882
      StackMap locals:
      StackMap stack:
            aload 1 /* options */
            invokevirtual org.mongodb.morphia.query.FindOptions.getBatchSize:()I
            istore 2 /* result */
        start local 2 // int result
         3: .line 883
            bipush 31
            iload 2 /* result */
            imul
            aload 0 /* this */
            invokevirtual org.mongodb.morphia.query.QueryImpl.getLimit:()I
            iadd
            istore 2 /* result */
         4: .line 884
            bipush 31
            iload 2 /* result */
            imul
            aload 1 /* options */
            invokevirtual org.mongodb.morphia.query.FindOptions.getModifiers:()Lcom/mongodb/DBObject;
            ifnull 5
            aload 1 /* options */
            invokevirtual org.mongodb.morphia.query.FindOptions.getModifiers:()Lcom/mongodb/DBObject;
            invokevirtual java.lang.Object.hashCode:()I
            goto 6
      StackMap locals: org.mongodb.morphia.query.QueryImpl org.mongodb.morphia.query.FindOptions int
      StackMap stack: int
         5: iconst_0
      StackMap locals: org.mongodb.morphia.query.QueryImpl org.mongodb.morphia.query.FindOptions int
      StackMap stack: int int
         6: iadd
            istore 2 /* result */
         7: .line 885
            bipush 31
            iload 2 /* result */
            imul
            aload 1 /* options */
            invokevirtual org.mongodb.morphia.query.FindOptions.getProjection:()Lcom/mongodb/DBObject;
            ifnull 8
            aload 1 /* options */
            invokevirtual org.mongodb.morphia.query.FindOptions.getProjection:()Lcom/mongodb/DBObject;
            invokevirtual java.lang.Object.hashCode:()I
            goto 9
      StackMap locals:
      StackMap stack: int
         8: iconst_0
      StackMap locals: org.mongodb.morphia.query.QueryImpl org.mongodb.morphia.query.FindOptions int
      StackMap stack: int int
         9: iadd
            istore 2 /* result */
        10: .line 886
            bipush 31
            iload 2 /* result */
            imul
            aload 1 /* options */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual org.mongodb.morphia.query.FindOptions.getMaxTime:(Ljava/util/concurrent/TimeUnit;)J
            aload 1 /* options */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual org.mongodb.morphia.query.FindOptions.getMaxTime:(Ljava/util/concurrent/TimeUnit;)J
            bipush 32
            lushr
            lxor
            l2i
            iadd
            istore 2 /* result */
        11: .line 887
            bipush 31
            iload 2 /* result */
            imul
            aload 1 /* options */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual org.mongodb.morphia.query.FindOptions.getMaxAwaitTime:(Ljava/util/concurrent/TimeUnit;)J
            aload 1 /* options */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual org.mongodb.morphia.query.FindOptions.getMaxAwaitTime:(Ljava/util/concurrent/TimeUnit;)J
            bipush 32
            lushr
            lxor
            l2i
            iadd
            istore 2 /* result */
        12: .line 888
            bipush 31
            iload 2 /* result */
            imul
            aload 1 /* options */
            invokevirtual org.mongodb.morphia.query.FindOptions.getSkip:()I
            iadd
            istore 2 /* result */
        13: .line 889
            bipush 31
            iload 2 /* result */
            imul
            aload 1 /* options */
            invokevirtual org.mongodb.morphia.query.FindOptions.getSortDBObject:()Lcom/mongodb/DBObject;
            ifnull 14
            aload 1 /* options */
            invokevirtual org.mongodb.morphia.query.FindOptions.getSortDBObject:()Lcom/mongodb/DBObject;
            invokevirtual java.lang.Object.hashCode:()I
            goto 15
      StackMap locals:
      StackMap stack: int
        14: iconst_0
      StackMap locals: org.mongodb.morphia.query.QueryImpl org.mongodb.morphia.query.FindOptions int
      StackMap stack: int int
        15: iadd
            istore 2 /* result */
        16: .line 890
            bipush 31
            iload 2 /* result */
            imul
            aload 1 /* options */
            invokevirtual org.mongodb.morphia.query.FindOptions.getCursorType:()Lcom/mongodb/CursorType;
            ifnull 17
            aload 1 /* options */
            invokevirtual org.mongodb.morphia.query.FindOptions.getCursorType:()Lcom/mongodb/CursorType;
            invokevirtual com.mongodb.CursorType.hashCode:()I
            goto 18
      StackMap locals:
      StackMap stack: int
        17: iconst_0
      StackMap locals: org.mongodb.morphia.query.QueryImpl org.mongodb.morphia.query.FindOptions int
      StackMap stack: int int
        18: iadd
            istore 2 /* result */
        19: .line 891
            bipush 31
            iload 2 /* result */
            imul
            aload 1 /* options */
            invokevirtual org.mongodb.morphia.query.FindOptions.isNoCursorTimeout:()Z
            ifeq 20
            iconst_1
            goto 21
      StackMap locals:
      StackMap stack: int
        20: iconst_0
      StackMap locals: org.mongodb.morphia.query.QueryImpl org.mongodb.morphia.query.FindOptions int
      StackMap stack: int int
        21: iadd
            istore 2 /* result */
        22: .line 892
            bipush 31
            iload 2 /* result */
            imul
            aload 1 /* options */
            invokevirtual org.mongodb.morphia.query.FindOptions.isOplogReplay:()Z
            ifeq 23
            iconst_1
            goto 24
      StackMap locals:
      StackMap stack: int
        23: iconst_0
      StackMap locals: org.mongodb.morphia.query.QueryImpl org.mongodb.morphia.query.FindOptions int
      StackMap stack: int int
        24: iadd
            istore 2 /* result */
        25: .line 893
            bipush 31
            iload 2 /* result */
            imul
            aload 1 /* options */
            invokevirtual org.mongodb.morphia.query.FindOptions.isPartial:()Z
            ifeq 26
            iconst_1
            goto 27
      StackMap locals:
      StackMap stack: int
        26: iconst_0
      StackMap locals: org.mongodb.morphia.query.QueryImpl org.mongodb.morphia.query.FindOptions int
      StackMap stack: int int
        27: iadd
            istore 2 /* result */
        28: .line 894
            bipush 31
            iload 2 /* result */
            imul
            aload 1 /* options */
            invokevirtual org.mongodb.morphia.query.FindOptions.getReadPreference:()Lcom/mongodb/ReadPreference;
            ifnull 29
            aload 1 /* options */
            invokevirtual org.mongodb.morphia.query.FindOptions.getReadPreference:()Lcom/mongodb/ReadPreference;
            invokevirtual java.lang.Object.hashCode:()I
            goto 30
      StackMap locals:
      StackMap stack: int
        29: iconst_0
      StackMap locals: org.mongodb.morphia.query.QueryImpl org.mongodb.morphia.query.FindOptions int
      StackMap stack: int int
        30: iadd
            istore 2 /* result */
        31: .line 895
            bipush 31
            iload 2 /* result */
            imul
            aload 1 /* options */
            invokevirtual org.mongodb.morphia.query.FindOptions.getReadConcern:()Lcom/mongodb/ReadConcern;
            ifnull 32
            aload 1 /* options */
            invokevirtual org.mongodb.morphia.query.FindOptions.getReadConcern:()Lcom/mongodb/ReadConcern;
            invokevirtual com.mongodb.ReadConcern.hashCode:()I
            goto 33
      StackMap locals:
      StackMap stack: int
        32: iconst_0
      StackMap locals: org.mongodb.morphia.query.QueryImpl org.mongodb.morphia.query.FindOptions int
      StackMap stack: int int
        33: iadd
            istore 2 /* result */
        34: .line 896
            bipush 31
            iload 2 /* result */
            imul
            aload 1 /* options */
            invokevirtual org.mongodb.morphia.query.FindOptions.getCollation:()Lcom/mongodb/client/model/Collation;
            ifnull 35
            aload 1 /* options */
            invokevirtual org.mongodb.morphia.query.FindOptions.getCollation:()Lcom/mongodb/client/model/Collation;
            invokevirtual com.mongodb.client.model.Collation.hashCode:()I
            goto 36
      StackMap locals:
      StackMap stack: int
        35: iconst_0
      StackMap locals: org.mongodb.morphia.query.QueryImpl org.mongodb.morphia.query.FindOptions int
      StackMap stack: int int
        36: iadd
            istore 2 /* result */
        37: .line 897
            iload 2 /* result */
            ireturn
        end local 2 // int result
        end local 1 // org.mongodb.morphia.query.FindOptions options
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   38     0     this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            0   38     1  options  Lorg/mongodb/morphia/query/FindOptions;
            3   38     2   result  I
    MethodParameters:
         Name  Flags
      options  final

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.mongodb.morphia.query.QueryImpl this
         0: .line 902
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.dbColl:Lcom/mongodb/DBCollection;
            invokevirtual java.lang.Object.hashCode:()I
            istore 1 /* result */
        start local 1 // int result
         1: .line 903
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.clazz:Ljava/lang/Class;
            invokevirtual java.lang.Object.hashCode:()I
            iadd
            istore 1 /* result */
         2: .line 904
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.validateName:Z
            ifeq 3
            iconst_1
            goto 4
      StackMap locals: org.mongodb.morphia.query.QueryImpl int
      StackMap stack: int
         3: iconst_0
      StackMap locals: org.mongodb.morphia.query.QueryImpl int
      StackMap stack: int int
         4: iadd
            istore 1 /* result */
         5: .line 905
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.validateType:Z
            ifeq 6
            iconst_1
            goto 7
      StackMap locals:
      StackMap stack: int
         6: iconst_0
      StackMap locals: org.mongodb.morphia.query.QueryImpl int
      StackMap stack: int int
         7: iadd
            istore 1 /* result */
         8: .line 906
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.includeFields:Ljava/lang/Boolean;
            ifnull 9
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.includeFields:Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.hashCode:()I
            goto 10
      StackMap locals:
      StackMap stack: int
         9: iconst_0
      StackMap locals: org.mongodb.morphia.query.QueryImpl int
      StackMap stack: int int
        10: iadd
            istore 1 /* result */
        11: .line 907
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.baseQuery:Lcom/mongodb/BasicDBObject;
            ifnull 12
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.baseQuery:Lcom/mongodb/BasicDBObject;
            invokevirtual com.mongodb.BasicDBObject.hashCode:()I
            goto 13
      StackMap locals:
      StackMap stack: int
        12: iconst_0
      StackMap locals: org.mongodb.morphia.query.QueryImpl int
      StackMap stack: int int
        13: iadd
            istore 1 /* result */
        14: .line 908
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            aload 0 /* this */
            getfield org.mongodb.morphia.query.QueryImpl.options:Lorg/mongodb/morphia/query/FindOptions;
            invokevirtual org.mongodb.morphia.query.QueryImpl.hash:(Lorg/mongodb/morphia/query/FindOptions;)I
            iadd
            istore 1 /* result */
        15: .line 909
            iload 1 /* result */
            ireturn
        end local 1 // int result
        end local 0 // org.mongodb.morphia.query.QueryImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0    this  Lorg/mongodb/morphia/query/QueryImpl<TT;>;
            1   16     1  result  I

  public org.mongodb.morphia.query.Query cloneQuery();
    descriptor: ()Lorg/mongodb/morphia/query/Query;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.mongodb.morphia.query.QueryImpl.cloneQuery:()Lorg/mongodb/morphia/query/QueryImpl;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.util.Iterator iterator();
    descriptor: ()Ljava/util/Iterator;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.mongodb.morphia.query.QueryImpl.iterator:()Lorg/mongodb/morphia/query/MorphiaIterator;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: <T:Ljava/lang/Object;>Lorg/mongodb/morphia/query/CriteriaContainerImpl;Lorg/mongodb/morphia/query/Query<TT;>;
SourceFile: "QueryImpl.java"