public final class com.google.common.util.concurrent.MoreExecutors
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.google.common.util.concurrent.MoreExecutors
  super_class: java.lang.Object
{
  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.common.util.concurrent.MoreExecutors this
         0: .line 65
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.google.common.util.concurrent.MoreExecutors this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/util/concurrent/MoreExecutors;

  public static java.util.concurrent.ExecutorService getExitingExecutorService(java.util.concurrent.ThreadPoolExecutor, long, java.util.concurrent.TimeUnit);
    descriptor: (Ljava/util/concurrent/ThreadPoolExecutor;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ExecutorService;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.util.concurrent.ThreadPoolExecutor executor
        start local 1 // long terminationTimeout
        start local 3 // java.util.concurrent.TimeUnit timeUnit
         0: .line 84
            new com.google.common.util.concurrent.MoreExecutors$Application
            dup
            invokespecial com.google.common.util.concurrent.MoreExecutors$Application.<init>:()V
            aload 0 /* executor */
            lload 1 /* terminationTimeout */
            aload 3 /* timeUnit */
            invokevirtual com.google.common.util.concurrent.MoreExecutors$Application.getExitingExecutorService:(Ljava/util/concurrent/ThreadPoolExecutor;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ExecutorService;
            areturn
        end local 3 // java.util.concurrent.TimeUnit timeUnit
        end local 1 // long terminationTimeout
        end local 0 // java.util.concurrent.ThreadPoolExecutor executor
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0            executor  Ljava/util/concurrent/ThreadPoolExecutor;
            0    1     1  terminationTimeout  J
            0    1     3            timeUnit  Ljava/util/concurrent/TimeUnit;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
                    Name  Flags
      executor            
      terminationTimeout  
      timeUnit            

  public static java.util.concurrent.ExecutorService getExitingExecutorService(java.util.concurrent.ThreadPoolExecutor);
    descriptor: (Ljava/util/concurrent/ThreadPoolExecutor;)Ljava/util/concurrent/ExecutorService;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.concurrent.ThreadPoolExecutor executor
         0: .line 103
            new com.google.common.util.concurrent.MoreExecutors$Application
            dup
            invokespecial com.google.common.util.concurrent.MoreExecutors$Application.<init>:()V
            aload 0 /* executor */
            invokevirtual com.google.common.util.concurrent.MoreExecutors$Application.getExitingExecutorService:(Ljava/util/concurrent/ThreadPoolExecutor;)Ljava/util/concurrent/ExecutorService;
            areturn
        end local 0 // java.util.concurrent.ThreadPoolExecutor executor
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  executor  Ljava/util/concurrent/ThreadPoolExecutor;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
          Name  Flags
      executor  

  public static java.util.concurrent.ScheduledExecutorService getExitingScheduledExecutorService(java.util.concurrent.ScheduledThreadPoolExecutor, long, java.util.concurrent.TimeUnit);
    descriptor: (Ljava/util/concurrent/ScheduledThreadPoolExecutor;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledExecutorService;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.util.concurrent.ScheduledThreadPoolExecutor executor
        start local 1 // long terminationTimeout
        start local 3 // java.util.concurrent.TimeUnit timeUnit
         0: .line 123
            new com.google.common.util.concurrent.MoreExecutors$Application
            dup
            invokespecial com.google.common.util.concurrent.MoreExecutors$Application.<init>:()V
         1: .line 124
            aload 0 /* executor */
            lload 1 /* terminationTimeout */
            aload 3 /* timeUnit */
            invokevirtual com.google.common.util.concurrent.MoreExecutors$Application.getExitingScheduledExecutorService:(Ljava/util/concurrent/ScheduledThreadPoolExecutor;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledExecutorService;
         2: .line 123
            areturn
        end local 3 // java.util.concurrent.TimeUnit timeUnit
        end local 1 // long terminationTimeout
        end local 0 // java.util.concurrent.ScheduledThreadPoolExecutor executor
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    3     0            executor  Ljava/util/concurrent/ScheduledThreadPoolExecutor;
            0    3     1  terminationTimeout  J
            0    3     3            timeUnit  Ljava/util/concurrent/TimeUnit;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
                    Name  Flags
      executor            
      terminationTimeout  
      timeUnit            

  public static java.util.concurrent.ScheduledExecutorService getExitingScheduledExecutorService(java.util.concurrent.ScheduledThreadPoolExecutor);
    descriptor: (Ljava/util/concurrent/ScheduledThreadPoolExecutor;)Ljava/util/concurrent/ScheduledExecutorService;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.concurrent.ScheduledThreadPoolExecutor executor
         0: .line 144
            new com.google.common.util.concurrent.MoreExecutors$Application
            dup
            invokespecial com.google.common.util.concurrent.MoreExecutors$Application.<init>:()V
            aload 0 /* executor */
            invokevirtual com.google.common.util.concurrent.MoreExecutors$Application.getExitingScheduledExecutorService:(Ljava/util/concurrent/ScheduledThreadPoolExecutor;)Ljava/util/concurrent/ScheduledExecutorService;
            areturn
        end local 0 // java.util.concurrent.ScheduledThreadPoolExecutor executor
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  executor  Ljava/util/concurrent/ScheduledThreadPoolExecutor;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
          Name  Flags
      executor  

  public static void addDelayedShutdownHook(java.util.concurrent.ExecutorService, long, java.util.concurrent.TimeUnit);
    descriptor: (Ljava/util/concurrent/ExecutorService;JLjava/util/concurrent/TimeUnit;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.util.concurrent.ExecutorService service
        start local 1 // long terminationTimeout
        start local 3 // java.util.concurrent.TimeUnit timeUnit
         0: .line 162
            new com.google.common.util.concurrent.MoreExecutors$Application
            dup
            invokespecial com.google.common.util.concurrent.MoreExecutors$Application.<init>:()V
            aload 0 /* service */
            lload 1 /* terminationTimeout */
            aload 3 /* timeUnit */
            invokevirtual com.google.common.util.concurrent.MoreExecutors$Application.addDelayedShutdownHook:(Ljava/util/concurrent/ExecutorService;JLjava/util/concurrent/TimeUnit;)V
         1: .line 163
            return
        end local 3 // java.util.concurrent.TimeUnit timeUnit
        end local 1 // long terminationTimeout
        end local 0 // java.util.concurrent.ExecutorService service
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0             service  Ljava/util/concurrent/ExecutorService;
            0    2     1  terminationTimeout  J
            0    2     3            timeUnit  Ljava/util/concurrent/TimeUnit;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
                    Name  Flags
      service             
      terminationTimeout  
      timeUnit            

  private static void useDaemonThreadFactory(java.util.concurrent.ThreadPoolExecutor);
    descriptor: (Ljava/util/concurrent/ThreadPoolExecutor;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.concurrent.ThreadPoolExecutor executor
         0: .line 228
            aload 0 /* executor */
         1: .line 229
            new com.google.common.util.concurrent.ThreadFactoryBuilder
            dup
            invokespecial com.google.common.util.concurrent.ThreadFactoryBuilder.<init>:()V
         2: .line 230
            iconst_1
            invokevirtual com.google.common.util.concurrent.ThreadFactoryBuilder.setDaemon:(Z)Lcom/google/common/util/concurrent/ThreadFactoryBuilder;
         3: .line 231
            aload 0 /* executor */
            invokevirtual java.util.concurrent.ThreadPoolExecutor.getThreadFactory:()Ljava/util/concurrent/ThreadFactory;
            invokevirtual com.google.common.util.concurrent.ThreadFactoryBuilder.setThreadFactory:(Ljava/util/concurrent/ThreadFactory;)Lcom/google/common/util/concurrent/ThreadFactoryBuilder;
         4: .line 232
            invokevirtual com.google.common.util.concurrent.ThreadFactoryBuilder.build:()Ljava/util/concurrent/ThreadFactory;
         5: .line 228
            invokevirtual java.util.concurrent.ThreadPoolExecutor.setThreadFactory:(Ljava/util/concurrent/ThreadFactory;)V
         6: .line 233
            return
        end local 0 // java.util.concurrent.ThreadPoolExecutor executor
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0  executor  Ljava/util/concurrent/ThreadPoolExecutor;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
          Name  Flags
      executor  

  public static com.google.common.util.concurrent.ListeningExecutorService newDirectExecutorService();
    descriptor: ()Lcom/google/common/util/concurrent/ListeningExecutorService;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 365
            new com.google.common.util.concurrent.MoreExecutors$DirectExecutorService
            dup
            invokespecial com.google.common.util.concurrent.MoreExecutors$DirectExecutorService.<init>:()V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()

  public static java.util.concurrent.Executor directExecutor();
    descriptor: ()Ljava/util/concurrent/Executor;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 389
            getstatic com.google.common.util.concurrent.MoreExecutors$DirectExecutor.INSTANCE:Lcom/google/common/util/concurrent/MoreExecutors$DirectExecutor;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.util.concurrent.Executor newSequentialExecutor(java.util.concurrent.Executor);
    descriptor: (Ljava/util/concurrent/Executor;)Ljava/util/concurrent/Executor;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.concurrent.Executor delegate
         0: .line 451
            new com.google.common.util.concurrent.SequentialExecutor
            dup
            aload 0 /* delegate */
            invokespecial com.google.common.util.concurrent.SequentialExecutor.<init>:(Ljava/util/concurrent/Executor;)V
            areturn
        end local 0 // java.util.concurrent.Executor delegate
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  delegate  Ljava/util/concurrent/Executor;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
          Name  Flags
      delegate  

  public static com.google.common.util.concurrent.ListeningExecutorService listeningDecorator(java.util.concurrent.ExecutorService);
    descriptor: (Ljava/util/concurrent/ExecutorService;)Lcom/google/common/util/concurrent/ListeningExecutorService;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.concurrent.ExecutorService delegate
         0: .line 471
            aload 0 /* delegate */
            instanceof com.google.common.util.concurrent.ListeningExecutorService
            ifeq 2
         1: .line 472
            aload 0 /* delegate */
            checkcast com.google.common.util.concurrent.ListeningExecutorService
            goto 5
         2: .line 473
      StackMap locals:
      StackMap stack:
            aload 0 /* delegate */
            instanceof java.util.concurrent.ScheduledExecutorService
            ifeq 4
         3: .line 474
            new com.google.common.util.concurrent.MoreExecutors$ScheduledListeningDecorator
            dup
            aload 0 /* delegate */
            checkcast java.util.concurrent.ScheduledExecutorService
            invokespecial com.google.common.util.concurrent.MoreExecutors$ScheduledListeningDecorator.<init>:(Ljava/util/concurrent/ScheduledExecutorService;)V
            goto 5
         4: .line 475
      StackMap locals:
      StackMap stack:
            new com.google.common.util.concurrent.MoreExecutors$ListeningDecorator
            dup
            aload 0 /* delegate */
            invokespecial com.google.common.util.concurrent.MoreExecutors$ListeningDecorator.<init>:(Ljava/util/concurrent/ExecutorService;)V
         5: .line 471
      StackMap locals:
      StackMap stack: com.google.common.util.concurrent.ListeningExecutorService
            areturn
        end local 0 // java.util.concurrent.ExecutorService delegate
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0  delegate  Ljava/util/concurrent/ExecutorService;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
          Name  Flags
      delegate  

  public static com.google.common.util.concurrent.ListeningScheduledExecutorService listeningDecorator(java.util.concurrent.ScheduledExecutorService);
    descriptor: (Ljava/util/concurrent/ScheduledExecutorService;)Lcom/google/common/util/concurrent/ListeningScheduledExecutorService;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.concurrent.ScheduledExecutorService delegate
         0: .line 497
            aload 0 /* delegate */
            instanceof com.google.common.util.concurrent.ListeningScheduledExecutorService
            ifeq 2
         1: .line 498
            aload 0 /* delegate */
            checkcast com.google.common.util.concurrent.ListeningScheduledExecutorService
            goto 3
         2: .line 499
      StackMap locals:
      StackMap stack:
            new com.google.common.util.concurrent.MoreExecutors$ScheduledListeningDecorator
            dup
            aload 0 /* delegate */
            invokespecial com.google.common.util.concurrent.MoreExecutors$ScheduledListeningDecorator.<init>:(Ljava/util/concurrent/ScheduledExecutorService;)V
         3: .line 497
      StackMap locals:
      StackMap stack: com.google.common.util.concurrent.ListeningScheduledExecutorService
            areturn
        end local 0 // java.util.concurrent.ScheduledExecutorService delegate
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0  delegate  Ljava/util/concurrent/ScheduledExecutorService;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
          Name  Flags
      delegate  

  static <T> T invokeAnyImpl(com.google.common.util.concurrent.ListeningExecutorService, java.util.Collection<? extends java.util.concurrent.Callable<T>>, boolean, long, java.util.concurrent.TimeUnit);
    descriptor: (Lcom/google/common/util/concurrent/ListeningExecutorService;Ljava/util/Collection;ZJLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=23, args_size=5
        start local 0 // com.google.common.util.concurrent.ListeningExecutorService executorService
        start local 1 // java.util.Collection tasks
        start local 2 // boolean timed
        start local 3 // long timeout
        start local 5 // java.util.concurrent.TimeUnit unit
         0: .line 661
            aload 0 /* executorService */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 662
            aload 5 /* unit */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 663
            aload 1 /* tasks */
            invokeinterface java.util.Collection.size:()I
            istore 6 /* ntasks */
        start local 6 // int ntasks
         3: .line 664
            iload 6 /* ntasks */
            ifle 4
            iconst_1
            goto 5
      StackMap locals: int
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: invokestatic com.google.common.base.Preconditions.checkArgument:(Z)V
         6: .line 665
            iload 6 /* ntasks */
            invokestatic com.google.common.collect.Lists.newArrayListWithCapacity:(I)Ljava/util/ArrayList;
            astore 7 /* futures */
        start local 7 // java.util.List futures
         7: .line 666
            invokestatic com.google.common.collect.Queues.newLinkedBlockingQueue:()Ljava/util/concurrent/LinkedBlockingQueue;
            astore 8 /* futureQueue */
        start local 8 // java.util.concurrent.BlockingQueue futureQueue
         8: .line 667
            aload 5 /* unit */
            lload 3 /* timeout */
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            lstore 9 /* timeoutNanos */
        start local 9 // long timeoutNanos
         9: .line 678
            aconst_null
            astore 11 /* ee */
        start local 11 // java.util.concurrent.ExecutionException ee
        10: .line 679
            iload 2 /* timed */
            ifeq 11
            invokestatic java.lang.System.nanoTime:()J
            goto 12
      StackMap locals: com.google.common.util.concurrent.ListeningExecutorService java.util.Collection int long java.util.concurrent.TimeUnit int java.util.List java.util.concurrent.BlockingQueue long java.util.concurrent.ExecutionException
      StackMap stack:
        11: lconst_0
      StackMap locals:
      StackMap stack: long
        12: lstore 12 /* lastTime */
        start local 12 // long lastTime
        13: .line 680
            aload 1 /* tasks */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 14 /* it */
        start local 14 // java.util.Iterator it
        14: .line 682
            aload 7 /* futures */
            aload 0 /* executorService */
            aload 14 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.concurrent.Callable
            aload 8 /* futureQueue */
            invokestatic com.google.common.util.concurrent.MoreExecutors.submitAndAddQueueListener:(Lcom/google/common/util/concurrent/ListeningExecutorService;Ljava/util/concurrent/Callable;Ljava/util/concurrent/BlockingQueue;)Lcom/google/common/util/concurrent/ListenableFuture;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        15: .line 683
            iinc 6 /* ntasks */ -1
        16: .line 684
            iconst_1
            istore 15 /* active */
        start local 15 // int active
        17: .line 687
      StackMap locals: long java.util.Iterator int
      StackMap stack:
            aload 8 /* futureQueue */
            invokeinterface java.util.concurrent.BlockingQueue.poll:()Ljava/lang/Object;
            checkcast java.util.concurrent.Future
            astore 16 /* f */
        start local 16 // java.util.concurrent.Future f
        18: .line 688
            aload 16 /* f */
            ifnonnull 35
        19: .line 689
            iload 6 /* ntasks */
            ifle 24
        20: .line 690
            iinc 6 /* ntasks */ -1
        21: .line 691
            aload 7 /* futures */
            aload 0 /* executorService */
            aload 14 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.concurrent.Callable
            aload 8 /* futureQueue */
            invokestatic com.google.common.util.concurrent.MoreExecutors.submitAndAddQueueListener:(Lcom/google/common/util/concurrent/ListeningExecutorService;Ljava/util/concurrent/Callable;Ljava/util/concurrent/BlockingQueue;)Lcom/google/common/util/concurrent/ListenableFuture;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        22: .line 692
            iinc 15 /* active */ 1
        23: .line 693
            goto 35
      StackMap locals: java.util.concurrent.Future
      StackMap stack:
        24: iload 15 /* active */
            ifne 26
        25: .line 694
            goto 49
        26: .line 695
      StackMap locals:
      StackMap stack:
            iload 2 /* timed */
            ifeq 34
        27: .line 696
            aload 8 /* futureQueue */
            lload 9 /* timeoutNanos */
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface java.util.concurrent.BlockingQueue.poll:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
            checkcast java.util.concurrent.Future
            astore 16 /* f */
        28: .line 697
            aload 16 /* f */
            ifnonnull 30
        29: .line 698
            new java.util.concurrent.TimeoutException
            dup
            invokespecial java.util.concurrent.TimeoutException.<init>:()V
            athrow
        30: .line 700
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lstore 17 /* now */
        start local 17 // long now
        31: .line 701
            lload 9 /* timeoutNanos */
            lload 17 /* now */
            lload 12 /* lastTime */
            lsub
            lsub
            lstore 9 /* timeoutNanos */
        32: .line 702
            lload 17 /* now */
            lstore 12 /* lastTime */
        end local 17 // long now
        33: .line 703
            goto 35
        34: .line 704
      StackMap locals:
      StackMap stack:
            aload 8 /* futureQueue */
            invokeinterface java.util.concurrent.BlockingQueue.take:()Ljava/lang/Object;
            checkcast java.util.concurrent.Future
            astore 16 /* f */
        35: .line 707
      StackMap locals:
      StackMap stack:
            aload 16 /* f */
            ifnull 17
        36: .line 708
            iinc 15 /* active */ -1
        37: .line 710
            aload 16 /* f */
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            astore 20
        38: .line 724
            aload 7 /* futures */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 22
            goto 41
      StackMap locals: com.google.common.util.concurrent.ListeningExecutorService java.util.Collection int long java.util.concurrent.TimeUnit int java.util.List java.util.concurrent.BlockingQueue long java.util.concurrent.ExecutionException long java.util.Iterator int java.util.concurrent.Future top top top java.lang.Object top java.util.Iterator
      StackMap stack:
        39: aload 22
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.concurrent.Future
            astore 21 /* f */
        start local 21 // java.util.concurrent.Future f
        40: .line 725
            aload 21 /* f */
            iconst_1
            invokeinterface java.util.concurrent.Future.cancel:(Z)Z
            pop
        end local 21 // java.util.concurrent.Future f
        41: .line 724
      StackMap locals:
      StackMap stack:
            aload 22
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 39
        42: .line 710
            aload 20
            areturn
        43: .line 711
      StackMap locals: com.google.common.util.concurrent.ListeningExecutorService java.util.Collection int long java.util.concurrent.TimeUnit int java.util.List java.util.concurrent.BlockingQueue long java.util.concurrent.ExecutionException long java.util.Iterator int java.util.concurrent.Future
      StackMap stack: java.util.concurrent.ExecutionException
            astore 17 /* eex */
        start local 17 // java.util.concurrent.ExecutionException eex
        44: .line 712
            aload 17 /* eex */
            astore 11 /* ee */
        end local 17 // java.util.concurrent.ExecutionException eex
        45: goto 17
        46: .line 713
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 17 /* rex */
        start local 17 // java.lang.RuntimeException rex
        47: .line 714
            new java.util.concurrent.ExecutionException
            dup
            aload 17 /* rex */
            invokespecial java.util.concurrent.ExecutionException.<init>:(Ljava/lang/Throwable;)V
            astore 11 /* ee */
        end local 17 // java.lang.RuntimeException rex
        end local 16 // java.util.concurrent.Future f
        48: .line 686
            goto 17
        49: .line 719
      StackMap locals:
      StackMap stack:
            aload 11 /* ee */
            ifnonnull 51
        50: .line 720
            new java.util.concurrent.ExecutionException
            dup
            aconst_null
            invokespecial java.util.concurrent.ExecutionException.<init>:(Ljava/lang/Throwable;)V
            astore 11 /* ee */
        51: .line 722
      StackMap locals:
      StackMap stack:
            aload 11 /* ee */
            athrow
        end local 15 // int active
        end local 14 // java.util.Iterator it
        end local 12 // long lastTime
        end local 11 // java.util.concurrent.ExecutionException ee
        52: .line 723
      StackMap locals: com.google.common.util.concurrent.ListeningExecutorService java.util.Collection int long java.util.concurrent.TimeUnit int java.util.List java.util.concurrent.BlockingQueue long
      StackMap stack: java.lang.Throwable
            astore 19
        53: .line 724
            aload 7 /* futures */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 22
            goto 56
      StackMap locals: com.google.common.util.concurrent.ListeningExecutorService java.util.Collection int long java.util.concurrent.TimeUnit int java.util.List java.util.concurrent.BlockingQueue long top top top top top top top top java.lang.Throwable top top java.util.Iterator
      StackMap stack:
        54: aload 22
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.concurrent.Future
            astore 21 /* f */
        start local 21 // java.util.concurrent.Future f
        55: .line 725
            aload 21 /* f */
            iconst_1
            invokeinterface java.util.concurrent.Future.cancel:(Z)Z
            pop
        end local 21 // java.util.concurrent.Future f
        56: .line 724
      StackMap locals:
      StackMap stack:
            aload 22
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 54
        57: .line 727
            aload 19
            athrow
        end local 9 // long timeoutNanos
        end local 8 // java.util.concurrent.BlockingQueue futureQueue
        end local 7 // java.util.List futures
        end local 6 // int ntasks
        end local 5 // java.util.concurrent.TimeUnit unit
        end local 3 // long timeout
        end local 2 // boolean timed
        end local 1 // java.util.Collection tasks
        end local 0 // com.google.common.util.concurrent.ListeningExecutorService executorService
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   58     0  executorService  Lcom/google/common/util/concurrent/ListeningExecutorService;
            0   58     1            tasks  Ljava/util/Collection<+Ljava/util/concurrent/Callable<TT;>;>;
            0   58     2            timed  Z
            0   58     3          timeout  J
            0   58     5             unit  Ljava/util/concurrent/TimeUnit;
            3   58     6           ntasks  I
            7   58     7          futures  Ljava/util/List<Ljava/util/concurrent/Future<TT;>;>;
            8   58     8      futureQueue  Ljava/util/concurrent/BlockingQueue<Ljava/util/concurrent/Future<TT;>;>;
            9   58     9     timeoutNanos  J
           10   52    11               ee  Ljava/util/concurrent/ExecutionException;
           13   52    12         lastTime  J
           14   52    14               it  Ljava/util/Iterator<+Ljava/util/concurrent/Callable<TT;>;>;
           17   52    15           active  I
           18   48    16                f  Ljava/util/concurrent/Future<TT;>;
           31   33    17              now  J
           44   45    17              eex  Ljava/util/concurrent/ExecutionException;
           47   48    17              rex  Ljava/lang/RuntimeException;
           40   41    21                f  Ljava/util/concurrent/Future<TT;>;
           55   56    21                f  Ljava/util/concurrent/Future<TT;>;
      Exception table:
        from    to  target  type
          37    38      43  Class java.util.concurrent.ExecutionException
          37    38      46  Class java.lang.RuntimeException
           9    38      52  any
          43    52      52  any
    Exceptions:
      throws java.lang.InterruptedException, java.util.concurrent.ExecutionException, java.util.concurrent.TimeoutException
    Signature: <T:Ljava/lang/Object;>(Lcom/google/common/util/concurrent/ListeningExecutorService;Ljava/util/Collection<+Ljava/util/concurrent/Callable<TT;>;>;ZJLjava/util/concurrent/TimeUnit;)TT;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
                 Name  Flags
      executorService  
      tasks            
      timed            
      timeout          
      unit             

  private static <T> com.google.common.util.concurrent.ListenableFuture<T> submitAndAddQueueListener(com.google.common.util.concurrent.ListeningExecutorService, java.util.concurrent.Callable<T>, java.util.concurrent.BlockingQueue<java.util.concurrent.Future<T>>);
    descriptor: (Lcom/google/common/util/concurrent/ListeningExecutorService;Ljava/util/concurrent/Callable;Ljava/util/concurrent/BlockingQueue;)Lcom/google/common/util/concurrent/ListenableFuture;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // com.google.common.util.concurrent.ListeningExecutorService executorService
        start local 1 // java.util.concurrent.Callable task
        start local 2 // java.util.concurrent.BlockingQueue queue
         0: .line 738
            aload 0 /* executorService */
            aload 1 /* task */
            invokeinterface com.google.common.util.concurrent.ListeningExecutorService.submit:(Ljava/util/concurrent/Callable;)Lcom/google/common/util/concurrent/ListenableFuture;
            astore 3 /* future */
        start local 3 // com.google.common.util.concurrent.ListenableFuture future
         1: .line 739
            aload 3 /* future */
         2: .line 740
            new com.google.common.util.concurrent.MoreExecutors$1
            dup
            aload 2 /* queue */
            aload 3 /* future */
            invokespecial com.google.common.util.concurrent.MoreExecutors$1.<init>:(Ljava/util/concurrent/BlockingQueue;Lcom/google/common/util/concurrent/ListenableFuture;)V
         3: .line 746
            invokestatic com.google.common.util.concurrent.MoreExecutors.directExecutor:()Ljava/util/concurrent/Executor;
         4: .line 739
            invokeinterface com.google.common.util.concurrent.ListenableFuture.addListener:(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
         5: .line 747
            aload 3 /* future */
            areturn
        end local 3 // com.google.common.util.concurrent.ListenableFuture future
        end local 2 // java.util.concurrent.BlockingQueue queue
        end local 1 // java.util.concurrent.Callable task
        end local 0 // com.google.common.util.concurrent.ListeningExecutorService executorService
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0  executorService  Lcom/google/common/util/concurrent/ListeningExecutorService;
            0    6     1             task  Ljava/util/concurrent/Callable<TT;>;
            0    6     2            queue  Ljava/util/concurrent/BlockingQueue<Ljava/util/concurrent/Future<TT;>;>;
            1    6     3           future  Lcom/google/common/util/concurrent/ListenableFuture<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/google/common/util/concurrent/ListeningExecutorService;Ljava/util/concurrent/Callable<TT;>;Ljava/util/concurrent/BlockingQueue<Ljava/util/concurrent/Future<TT;>;>;)Lcom/google/common/util/concurrent/ListenableFuture<TT;>;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
                 Name  Flags
      executorService  
      task             
      queue            final

  public static java.util.concurrent.ThreadFactory platformThreadFactory();
    descriptor: ()Ljava/util/concurrent/ThreadFactory;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=0
         0: .line 761
            invokestatic com.google.common.util.concurrent.MoreExecutors.isAppEngine:()Z
            ifne 2
         1: .line 762
            invokestatic java.util.concurrent.Executors.defaultThreadFactory:()Ljava/util/concurrent/ThreadFactory;
            areturn
         2: .line 766
      StackMap locals:
      StackMap stack:
            ldc "com.google.appengine.api.ThreadManager"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
         3: .line 767
            ldc "currentRequestThreadFactory"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
         4: .line 768
            aconst_null
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
         5: .line 765
            checkcast java.util.concurrent.ThreadFactory
         6: areturn
         7: .line 769
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
            astore 0 /* e */
        start local 0 // java.lang.ReflectiveOperationException e
         8: .line 770
            new java.lang.RuntimeException
            dup
            ldc "Couldn't invoke ThreadManager.currentRequestThreadFactory"
            aload 0 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 0 // java.lang.ReflectiveOperationException e
         9: .line 771
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 0 /* e */
        start local 0 // java.lang.reflect.InvocationTargetException e
        10: .line 772
            aload 0 /* e */
            invokevirtual java.lang.reflect.InvocationTargetException.getCause:()Ljava/lang/Throwable;
            invokestatic com.google.common.base.Throwables.propagate:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 0 // java.lang.reflect.InvocationTargetException e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            8    9     0     e  Ljava/lang/ReflectiveOperationException;
           10   11     0     e  Ljava/lang/reflect/InvocationTargetException;
      Exception table:
        from    to  target  type
           2     6       7  Class java.lang.IllegalAccessException
           2     6       7  Class java.lang.ClassNotFoundException
           2     6       7  Class java.lang.NoSuchMethodException
           2     6       9  Class java.lang.reflect.InvocationTargetException
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
      com.google.common.annotations.GwtIncompatible()

  private static boolean isAppEngine();
    descriptor: ()Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 778
            ldc "com.google.appengine.runtime.environment"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            ifnonnull 2
         1: .line 779
            iconst_0
            ireturn
         2: .line 783
      StackMap locals:
      StackMap stack:
            ldc "com.google.apphosting.api.ApiProxy"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
         3: .line 784
            ldc "getCurrentEnvironment"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
         4: .line 785
            aconst_null
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
         5: .line 783
            ifnull 6
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         6: iconst_0
         7: ireturn
         8: .line 787
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
         9: .line 789
            iconst_0
            ireturn
        10: .line 790
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            pop
        11: .line 792
            iconst_0
            ireturn
        12: .line 793
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
            pop
        13: .line 795
            iconst_0
            ireturn
        14: .line 796
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
            pop
        15: .line 798
            iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     7       8  Class java.lang.ClassNotFoundException
           2     7      10  Class java.lang.reflect.InvocationTargetException
           2     7      12  Class java.lang.IllegalAccessException
           2     7      14  Class java.lang.NoSuchMethodException
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()

  static java.lang.Thread newThread(java.lang.String, java.lang.Runnable);
    descriptor: (Ljava/lang/String;Ljava/lang/Runnable;)Ljava/lang/Thread;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.lang.Runnable runnable
         0: .line 808
            aload 0 /* name */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 809
            aload 1 /* runnable */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 810
            invokestatic com.google.common.util.concurrent.MoreExecutors.platformThreadFactory:()Ljava/util/concurrent/ThreadFactory;
            aload 1 /* runnable */
            invokeinterface java.util.concurrent.ThreadFactory.newThread:(Ljava/lang/Runnable;)Ljava/lang/Thread;
            astore 2 /* result */
        start local 2 // java.lang.Thread result
         3: .line 812
            aload 2 /* result */
            aload 0 /* name */
            invokevirtual java.lang.Thread.setName:(Ljava/lang/String;)V
         4: .line 813
            goto 6
      StackMap locals: java.lang.String java.lang.Runnable java.lang.Thread
      StackMap stack: java.lang.SecurityException
         5: pop
         6: .line 816
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 2 // java.lang.Thread result
        end local 1 // java.lang.Runnable runnable
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      name  Ljava/lang/String;
            0    7     1  runnable  Ljava/lang/Runnable;
            3    7     2    result  Ljava/lang/Thread;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.SecurityException
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
          Name  Flags
      name      
      runnable  

  static java.util.concurrent.Executor renamingDecorator(java.util.concurrent.Executor, com.google.common.base.Supplier<java.lang.String>);
    descriptor: (Ljava/util/concurrent/Executor;Lcom/google/common/base/Supplier;)Ljava/util/concurrent/Executor;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.util.concurrent.Executor executor
        start local 1 // com.google.common.base.Supplier nameSupplier
         0: .line 836
            aload 0 /* executor */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 837
            aload 1 /* nameSupplier */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 838
            invokestatic com.google.common.util.concurrent.MoreExecutors.isAppEngine:()Z
            ifeq 4
         3: .line 840
            aload 0 /* executor */
            areturn
         4: .line 842
      StackMap locals:
      StackMap stack:
            new com.google.common.util.concurrent.MoreExecutors$2
            dup
            aload 0 /* executor */
            aload 1 /* nameSupplier */
            invokespecial com.google.common.util.concurrent.MoreExecutors$2.<init>:(Ljava/util/concurrent/Executor;Lcom/google/common/base/Supplier;)V
            areturn
        end local 1 // com.google.common.base.Supplier nameSupplier
        end local 0 // java.util.concurrent.Executor executor
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0      executor  Ljava/util/concurrent/Executor;
            0    5     1  nameSupplier  Lcom/google/common/base/Supplier<Ljava/lang/String;>;
    Signature: (Ljava/util/concurrent/Executor;Lcom/google/common/base/Supplier<Ljava/lang/String;>;)Ljava/util/concurrent/Executor;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
              Name  Flags
      executor      final
      nameSupplier  final

  static java.util.concurrent.ExecutorService renamingDecorator(java.util.concurrent.ExecutorService, com.google.common.base.Supplier<java.lang.String>);
    descriptor: (Ljava/util/concurrent/ExecutorService;Lcom/google/common/base/Supplier;)Ljava/util/concurrent/ExecutorService;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.util.concurrent.ExecutorService service
        start local 1 // com.google.common.base.Supplier nameSupplier
         0: .line 865
            aload 0 /* service */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 866
            aload 1 /* nameSupplier */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 867
            invokestatic com.google.common.util.concurrent.MoreExecutors.isAppEngine:()Z
            ifeq 4
         3: .line 869
            aload 0 /* service */
            areturn
         4: .line 871
      StackMap locals:
      StackMap stack:
            new com.google.common.util.concurrent.MoreExecutors$3
            dup
            aload 0 /* service */
            aload 1 /* nameSupplier */
            invokespecial com.google.common.util.concurrent.MoreExecutors$3.<init>:(Ljava/util/concurrent/ExecutorService;Lcom/google/common/base/Supplier;)V
            areturn
        end local 1 // com.google.common.base.Supplier nameSupplier
        end local 0 // java.util.concurrent.ExecutorService service
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0       service  Ljava/util/concurrent/ExecutorService;
            0    5     1  nameSupplier  Lcom/google/common/base/Supplier<Ljava/lang/String;>;
    Signature: (Ljava/util/concurrent/ExecutorService;Lcom/google/common/base/Supplier<Ljava/lang/String;>;)Ljava/util/concurrent/ExecutorService;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
              Name  Flags
      service       final
      nameSupplier  final

  static java.util.concurrent.ScheduledExecutorService renamingDecorator(java.util.concurrent.ScheduledExecutorService, com.google.common.base.Supplier<java.lang.String>);
    descriptor: (Ljava/util/concurrent/ScheduledExecutorService;Lcom/google/common/base/Supplier;)Ljava/util/concurrent/ScheduledExecutorService;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.util.concurrent.ScheduledExecutorService service
        start local 1 // com.google.common.base.Supplier nameSupplier
         0: .line 899
            aload 0 /* service */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 900
            aload 1 /* nameSupplier */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 901
            invokestatic com.google.common.util.concurrent.MoreExecutors.isAppEngine:()Z
            ifeq 4
         3: .line 903
            aload 0 /* service */
            areturn
         4: .line 905
      StackMap locals:
      StackMap stack:
            new com.google.common.util.concurrent.MoreExecutors$4
            dup
            aload 0 /* service */
            aload 1 /* nameSupplier */
            invokespecial com.google.common.util.concurrent.MoreExecutors$4.<init>:(Ljava/util/concurrent/ScheduledExecutorService;Lcom/google/common/base/Supplier;)V
            areturn
        end local 1 // com.google.common.base.Supplier nameSupplier
        end local 0 // java.util.concurrent.ScheduledExecutorService service
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0       service  Ljava/util/concurrent/ScheduledExecutorService;
            0    5     1  nameSupplier  Lcom/google/common/base/Supplier<Ljava/lang/String;>;
    Signature: (Ljava/util/concurrent/ScheduledExecutorService;Lcom/google/common/base/Supplier<Ljava/lang/String;>;)Ljava/util/concurrent/ScheduledExecutorService;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
              Name  Flags
      service       final
      nameSupplier  final

  public static boolean shutdownAndAwaitTermination(java.util.concurrent.ExecutorService, long, java.util.concurrent.TimeUnit);
    descriptor: (Ljava/util/concurrent/ExecutorService;JLjava/util/concurrent/TimeUnit;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // java.util.concurrent.ExecutorService service
        start local 1 // long timeout
        start local 3 // java.util.concurrent.TimeUnit unit
         0: .line 947
            aload 3 /* unit */
            lload 1 /* timeout */
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            ldc 2
            ldiv
            lstore 4 /* halfTimeoutNanos */
        start local 4 // long halfTimeoutNanos
         1: .line 949
            aload 0 /* service */
            invokeinterface java.util.concurrent.ExecutorService.shutdown:()V
         2: .line 952
            aload 0 /* service */
            lload 4 /* halfTimeoutNanos */
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface java.util.concurrent.ExecutorService.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z
            ifne 9
         3: .line 954
            aload 0 /* service */
            invokeinterface java.util.concurrent.ExecutorService.shutdownNow:()Ljava/util/List;
            pop
         4: .line 956
            aload 0 /* service */
            lload 4 /* halfTimeoutNanos */
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface java.util.concurrent.ExecutorService.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z
            pop
         5: .line 958
            goto 9
      StackMap locals: java.util.concurrent.ExecutorService long java.util.concurrent.TimeUnit long
      StackMap stack: java.lang.InterruptedException
         6: pop
         7: .line 960
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
         8: .line 962
            aload 0 /* service */
            invokeinterface java.util.concurrent.ExecutorService.shutdownNow:()Ljava/util/List;
            pop
         9: .line 964
      StackMap locals:
      StackMap stack:
            aload 0 /* service */
            invokeinterface java.util.concurrent.ExecutorService.isTerminated:()Z
            ireturn
        end local 4 // long halfTimeoutNanos
        end local 3 // java.util.concurrent.TimeUnit unit
        end local 1 // long timeout
        end local 0 // java.util.concurrent.ExecutorService service
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   10     0           service  Ljava/util/concurrent/ExecutorService;
            0   10     1           timeout  J
            0   10     3              unit  Ljava/util/concurrent/TimeUnit;
            1   10     4  halfTimeoutNanos  J
      Exception table:
        from    to  target  type
           2     5       6  Class java.lang.InterruptedException
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
      com.google.errorprone.annotations.CanIgnoreReturnValue()
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
         Name  Flags
      service  
      timeout  
      unit     

  static java.util.concurrent.Executor rejectionPropagatingExecutor(java.util.concurrent.Executor, com.google.common.util.concurrent.AbstractFuture<?>);
    descriptor: (Ljava/util/concurrent/Executor;Lcom/google/common/util/concurrent/AbstractFuture;)Ljava/util/concurrent/Executor;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.util.concurrent.Executor delegate
        start local 1 // com.google.common.util.concurrent.AbstractFuture future
         0: .line 975
            aload 0 /* delegate */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 976
            aload 1 /* future */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 977
            aload 0 /* delegate */
            invokestatic com.google.common.util.concurrent.MoreExecutors.directExecutor:()Ljava/util/concurrent/Executor;
            if_acmpne 4
         3: .line 979
            aload 0 /* delegate */
            areturn
         4: .line 981
      StackMap locals:
      StackMap stack:
            new com.google.common.util.concurrent.MoreExecutors$5
            dup
            aload 0 /* delegate */
            aload 1 /* future */
            invokespecial com.google.common.util.concurrent.MoreExecutors$5.<init>:(Ljava/util/concurrent/Executor;Lcom/google/common/util/concurrent/AbstractFuture;)V
            areturn
        end local 1 // com.google.common.util.concurrent.AbstractFuture future
        end local 0 // java.util.concurrent.Executor delegate
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0  delegate  Ljava/util/concurrent/Executor;
            0    5     1    future  Lcom/google/common/util/concurrent/AbstractFuture<*>;
    Signature: (Ljava/util/concurrent/Executor;Lcom/google/common/util/concurrent/AbstractFuture<*>;)Ljava/util/concurrent/Executor;
    MethodParameters:
          Name  Flags
      delegate  final
      future    final
}
SourceFile: "MoreExecutors.java"
NestMembers:
  com.google.common.util.concurrent.MoreExecutors$1  com.google.common.util.concurrent.MoreExecutors$2  com.google.common.util.concurrent.MoreExecutors$3  com.google.common.util.concurrent.MoreExecutors$4  com.google.common.util.concurrent.MoreExecutors$5  com.google.common.util.concurrent.MoreExecutors$5$1  com.google.common.util.concurrent.MoreExecutors$Application  com.google.common.util.concurrent.MoreExecutors$Application$1  com.google.common.util.concurrent.MoreExecutors$DirectExecutor  com.google.common.util.concurrent.MoreExecutors$DirectExecutorService  com.google.common.util.concurrent.MoreExecutors$ListeningDecorator  com.google.common.util.concurrent.MoreExecutors$ScheduledListeningDecorator  com.google.common.util.concurrent.MoreExecutors$ScheduledListeningDecorator$ListenableScheduledTask  com.google.common.util.concurrent.MoreExecutors$ScheduledListeningDecorator$NeverSuccessfulListenableFutureTask
InnerClasses:
  com.google.common.util.concurrent.MoreExecutors$1
  com.google.common.util.concurrent.MoreExecutors$2
  com.google.common.util.concurrent.MoreExecutors$3
  com.google.common.util.concurrent.MoreExecutors$4
  com.google.common.util.concurrent.MoreExecutors$5
  Application = com.google.common.util.concurrent.MoreExecutors$Application of com.google.common.util.concurrent.MoreExecutors
  private final DirectExecutor = com.google.common.util.concurrent.MoreExecutors$DirectExecutor of com.google.common.util.concurrent.MoreExecutors
  private final DirectExecutorService = com.google.common.util.concurrent.MoreExecutors$DirectExecutorService of com.google.common.util.concurrent.MoreExecutors
  private ListeningDecorator = com.google.common.util.concurrent.MoreExecutors$ListeningDecorator of com.google.common.util.concurrent.MoreExecutors
  private final ScheduledListeningDecorator = com.google.common.util.concurrent.MoreExecutors$ScheduledListeningDecorator of com.google.common.util.concurrent.MoreExecutors
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtCompatible(emulated = true)