class android.util.RecurrenceRule$RecurringIterator implements java.util.Iterator<android.util.Range<java.time.ZonedDateTime>>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: android.util.RecurrenceRule$RecurringIterator
  super_class: java.lang.Object
{
  int i;
    descriptor: I
    flags: (0x0000) 

  java.time.ZonedDateTime cycleStart;
    descriptor: Ljava/time/ZonedDateTime;
    flags: (0x0000) 

  java.time.ZonedDateTime cycleEnd;
    descriptor: Ljava/time/ZonedDateTime;
    flags: (0x0000) 

  final android.util.RecurrenceRule this$0;
    descriptor: Landroid/util/RecurrenceRule;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  public void <init>(android.util.RecurrenceRule);
    descriptor: (Landroid/util/RecurrenceRule;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.util.RecurrenceRule$RecurringIterator this
         0: .line 197
            aload 0 /* this */
            aload 1
            putfield android.util.RecurrenceRule$RecurringIterator.this$0:Landroid/util/RecurrenceRule;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 198
            aload 1
            getfield android.util.RecurrenceRule.end:Ljava/time/ZonedDateTime;
            ifnull 2
            aload 1
            getfield android.util.RecurrenceRule.end:Ljava/time/ZonedDateTime;
            goto 3
         2: .line 199
      StackMap locals: android.util.RecurrenceRule$RecurringIterator android.util.RecurrenceRule
      StackMap stack:
            getstatic android.util.RecurrenceRule.sClock:Ljava/time/Clock;
            invokestatic java.time.ZonedDateTime.now:(Ljava/time/Clock;)Ljava/time/ZonedDateTime;
            aload 1
            getfield android.util.RecurrenceRule.start:Ljava/time/ZonedDateTime;
            invokevirtual java.time.ZonedDateTime.getZone:()Ljava/time/ZoneId;
            invokevirtual java.time.ZonedDateTime.withZoneSameInstant:(Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;
         3: .line 198
      StackMap locals:
      StackMap stack: java.time.ZonedDateTime
            astore 2 /* anchor */
        start local 2 // java.time.ZonedDateTime anchor
         4: .line 200
            getstatic android.util.RecurrenceRule.LOGD:Z
            ifeq 5
            ldc "RecurrenceRule"
            new java.lang.StringBuilder
            dup
            ldc "Resolving using anchor "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* anchor */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         5: .line 202
      StackMap locals: java.time.ZonedDateTime
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.util.RecurrenceRule$RecurringIterator.updateCycle:()V
         6: .line 205
            goto 9
         7: .line 206
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield android.util.RecurrenceRule$RecurringIterator.i:I
            iconst_1
            iadd
            putfield android.util.RecurrenceRule$RecurringIterator.i:I
         8: .line 207
            aload 0 /* this */
            invokevirtual android.util.RecurrenceRule$RecurringIterator.updateCycle:()V
         9: .line 205
      StackMap locals:
      StackMap stack:
            aload 2 /* anchor */
            invokevirtual java.time.ZonedDateTime.toEpochSecond:()J
            aload 0 /* this */
            getfield android.util.RecurrenceRule$RecurringIterator.cycleEnd:Ljava/time/ZonedDateTime;
            invokevirtual java.time.ZonedDateTime.toEpochSecond:()J
            lcmp
            ifgt 7
        10: .line 211
            goto 13
        11: .line 212
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield android.util.RecurrenceRule$RecurringIterator.i:I
            iconst_1
            isub
            putfield android.util.RecurrenceRule$RecurringIterator.i:I
        12: .line 213
            aload 0 /* this */
            invokevirtual android.util.RecurrenceRule$RecurringIterator.updateCycle:()V
        13: .line 211
      StackMap locals:
      StackMap stack:
            aload 2 /* anchor */
            invokevirtual java.time.ZonedDateTime.toEpochSecond:()J
            aload 0 /* this */
            getfield android.util.RecurrenceRule$RecurringIterator.cycleStart:Ljava/time/ZonedDateTime;
            invokevirtual java.time.ZonedDateTime.toEpochSecond:()J
            lcmp
            ifle 11
        14: .line 215
            return
        end local 2 // java.time.ZonedDateTime anchor
        end local 0 // android.util.RecurrenceRule$RecurringIterator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0    this  Landroid/util/RecurrenceRule$RecurringIterator;
            4   15     2  anchor  Ljava/time/ZonedDateTime;
    MethodParameters:
        Name  Flags
      this$0  final

  private void updateCycle();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // android.util.RecurrenceRule$RecurringIterator this
         0: .line 218
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield android.util.RecurrenceRule$RecurringIterator.this$0:Landroid/util/RecurrenceRule;
            getfield android.util.RecurrenceRule.start:Ljava/time/ZonedDateTime;
            aload 0 /* this */
            getfield android.util.RecurrenceRule$RecurringIterator.this$0:Landroid/util/RecurrenceRule;
            getfield android.util.RecurrenceRule.period:Ljava/time/Period;
            aload 0 /* this */
            getfield android.util.RecurrenceRule$RecurringIterator.i:I
            invokevirtual java.time.Period.multipliedBy:(I)Ljava/time/Period;
            invokevirtual java.time.ZonedDateTime.plus:(Ljava/time/temporal/TemporalAmount;)Ljava/time/ZonedDateTime;
            invokevirtual android.util.RecurrenceRule$RecurringIterator.roundBoundaryTime:(Ljava/time/ZonedDateTime;)Ljava/time/ZonedDateTime;
            putfield android.util.RecurrenceRule$RecurringIterator.cycleStart:Ljava/time/ZonedDateTime;
         1: .line 219
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield android.util.RecurrenceRule$RecurringIterator.this$0:Landroid/util/RecurrenceRule;
            getfield android.util.RecurrenceRule.start:Ljava/time/ZonedDateTime;
            aload 0 /* this */
            getfield android.util.RecurrenceRule$RecurringIterator.this$0:Landroid/util/RecurrenceRule;
            getfield android.util.RecurrenceRule.period:Ljava/time/Period;
            aload 0 /* this */
            getfield android.util.RecurrenceRule$RecurringIterator.i:I
            iconst_1
            iadd
            invokevirtual java.time.Period.multipliedBy:(I)Ljava/time/Period;
            invokevirtual java.time.ZonedDateTime.plus:(Ljava/time/temporal/TemporalAmount;)Ljava/time/ZonedDateTime;
            invokevirtual android.util.RecurrenceRule$RecurringIterator.roundBoundaryTime:(Ljava/time/ZonedDateTime;)Ljava/time/ZonedDateTime;
            putfield android.util.RecurrenceRule$RecurringIterator.cycleEnd:Ljava/time/ZonedDateTime;
         2: .line 220
            return
        end local 0 // android.util.RecurrenceRule$RecurringIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/util/RecurrenceRule$RecurringIterator;

  private java.time.ZonedDateTime roundBoundaryTime(java.time.ZonedDateTime);
    descriptor: (Ljava/time/ZonedDateTime;)Ljava/time/ZonedDateTime;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.util.RecurrenceRule$RecurringIterator this
        start local 1 // java.time.ZonedDateTime boundary
         0: .line 223
            aload 0 /* this */
            getfield android.util.RecurrenceRule$RecurringIterator.this$0:Landroid/util/RecurrenceRule;
            invokevirtual android.util.RecurrenceRule.isMonthly:()Z
            ifeq 2
            aload 1 /* boundary */
            invokevirtual java.time.ZonedDateTime.getDayOfMonth:()I
            aload 0 /* this */
            getfield android.util.RecurrenceRule$RecurringIterator.this$0:Landroid/util/RecurrenceRule;
            getfield android.util.RecurrenceRule.start:Ljava/time/ZonedDateTime;
            invokevirtual java.time.ZonedDateTime.getDayOfMonth:()I
            if_icmpge 2
         1: .line 226
            aload 1 /* boundary */
            invokevirtual java.time.ZonedDateTime.toLocalDate:()Ljava/time/LocalDate;
            getstatic java.time.LocalTime.MAX:Ljava/time/LocalTime;
            aload 0 /* this */
            getfield android.util.RecurrenceRule$RecurringIterator.this$0:Landroid/util/RecurrenceRule;
            getfield android.util.RecurrenceRule.start:Ljava/time/ZonedDateTime;
            invokevirtual java.time.ZonedDateTime.getZone:()Ljava/time/ZoneId;
            invokestatic java.time.ZonedDateTime.of:(Ljava/time/LocalDate;Ljava/time/LocalTime;Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;
            areturn
         2: .line 228
      StackMap locals:
      StackMap stack:
            aload 1 /* boundary */
            areturn
        end local 1 // java.time.ZonedDateTime boundary
        end local 0 // android.util.RecurrenceRule$RecurringIterator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Landroid/util/RecurrenceRule$RecurringIterator;
            0    3     1  boundary  Ljava/time/ZonedDateTime;
    MethodParameters:
          Name  Flags
      boundary  

  public boolean hasNext();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // android.util.RecurrenceRule$RecurringIterator this
         0: .line 234
            aload 0 /* this */
            getfield android.util.RecurrenceRule$RecurringIterator.cycleStart:Ljava/time/ZonedDateTime;
            invokevirtual java.time.ZonedDateTime.toEpochSecond:()J
            aload 0 /* this */
            getfield android.util.RecurrenceRule$RecurringIterator.this$0:Landroid/util/RecurrenceRule;
            getfield android.util.RecurrenceRule.start:Ljava/time/ZonedDateTime;
            invokevirtual java.time.ZonedDateTime.toEpochSecond:()J
            lcmp
            iflt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // android.util.RecurrenceRule$RecurringIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/util/RecurrenceRule$RecurringIterator;

  public android.util.Range<java.time.ZonedDateTime> next();
    descriptor: ()Landroid/util/Range;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // android.util.RecurrenceRule$RecurringIterator this
         0: .line 239
            getstatic android.util.RecurrenceRule.LOGD:Z
            ifeq 1
            ldc "RecurrenceRule"
            new java.lang.StringBuilder
            dup
            ldc "Cycle "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield android.util.RecurrenceRule$RecurringIterator.i:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " from "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield android.util.RecurrenceRule$RecurringIterator.cycleStart:Ljava/time/ZonedDateTime;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield android.util.RecurrenceRule$RecurringIterator.cycleEnd:Ljava/time/ZonedDateTime;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 240
      StackMap locals:
      StackMap stack:
            new android.util.Range
            dup
            aload 0 /* this */
            getfield android.util.RecurrenceRule$RecurringIterator.cycleStart:Ljava/time/ZonedDateTime;
            aload 0 /* this */
            getfield android.util.RecurrenceRule$RecurringIterator.cycleEnd:Ljava/time/ZonedDateTime;
            invokespecial android.util.Range.<init>:(Ljava/lang/Comparable;Ljava/lang/Comparable;)V
            astore 1 /* r */
        start local 1 // android.util.Range r
         2: .line 241
            aload 0 /* this */
            dup
            getfield android.util.RecurrenceRule$RecurringIterator.i:I
            iconst_1
            isub
            putfield android.util.RecurrenceRule$RecurringIterator.i:I
         3: .line 242
            aload 0 /* this */
            invokevirtual android.util.RecurrenceRule$RecurringIterator.updateCycle:()V
         4: .line 243
            aload 1 /* r */
            areturn
        end local 1 // android.util.Range r
        end local 0 // android.util.RecurrenceRule$RecurringIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/util/RecurrenceRule$RecurringIterator;
            2    5     1     r  Landroid/util/Range<Ljava/time/ZonedDateTime;>;
    Signature: ()Landroid/util/Range<Ljava/time/ZonedDateTime;>;

  public java.lang.Object next();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual android.util.RecurrenceRule$RecurringIterator.next:()Landroid/util/Range;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Ljava/util/Iterator<Landroid/util/Range<Ljava/time/ZonedDateTime;>;>;
SourceFile: "RecurrenceRule.java"
NestHost: android.util.RecurrenceRule
InnerClasses:
  private RecurringIterator = android.util.RecurrenceRule$RecurringIterator of android.util.RecurrenceRule