public final class com.google.common.io.MoreFiles
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.google.common.io.MoreFiles
  super_class: java.lang.Object
{
  private static final com.google.common.graph.SuccessorsFunction<java.nio.file.Path> FILE_TREE;
    descriptor: Lcom/google/common/graph/SuccessorsFunction;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lcom/google/common/graph/SuccessorsFunction<Ljava/nio/file/Path;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 296
            new com.google.common.io.MoreFiles$1
            dup
            invokespecial com.google.common.io.MoreFiles$1.<init>:()V
         1: .line 295
            putstatic com.google.common.io.MoreFiles.FILE_TREE:Lcom/google/common/graph/SuccessorsFunction;
         2: .line 301
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.common.io.MoreFiles this
         0: .line 74
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.google.common.io.MoreFiles this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/io/MoreFiles;

  public static com.google.common.io.ByteSource asByteSource(java.nio.file.Path, java.nio.file.OpenOption[]);
    descriptor: (Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Lcom/google/common/io/ByteSource;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.nio.file.Path path
        start local 1 // java.nio.file.OpenOption[] options
         0: .line 85
            new com.google.common.io.MoreFiles$PathByteSource
            dup
            aload 0 /* path */
            aload 1 /* options */
            invokespecial com.google.common.io.MoreFiles$PathByteSource.<init>:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)V
            areturn
        end local 1 // java.nio.file.OpenOption[] options
        end local 0 // java.nio.file.Path path
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     path  Ljava/nio/file/Path;
            0    1     1  options  [Ljava/nio/file/OpenOption;
    MethodParameters:
         Name  Flags
      path     
      options  

  public static com.google.common.io.ByteSink asByteSink(java.nio.file.Path, java.nio.file.OpenOption[]);
    descriptor: (Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Lcom/google/common/io/ByteSink;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.nio.file.Path path
        start local 1 // java.nio.file.OpenOption[] options
         0: .line 201
            new com.google.common.io.MoreFiles$PathByteSink
            dup
            aload 0 /* path */
            aload 1 /* options */
            invokespecial com.google.common.io.MoreFiles$PathByteSink.<init>:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)V
            areturn
        end local 1 // java.nio.file.OpenOption[] options
        end local 0 // java.nio.file.Path path
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     path  Ljava/nio/file/Path;
            0    1     1  options  [Ljava/nio/file/OpenOption;
    MethodParameters:
         Name  Flags
      path     
      options  

  public static com.google.common.io.CharSource asCharSource(java.nio.file.Path, java.nio.charset.Charset, java.nio.file.OpenOption[]);
    descriptor: (Ljava/nio/file/Path;Ljava/nio/charset/Charset;[Ljava/nio/file/OpenOption;)Lcom/google/common/io/CharSource;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.nio.file.Path path
        start local 1 // java.nio.charset.Charset charset
        start local 2 // java.nio.file.OpenOption[] options
         0: .line 236
            aload 0 /* path */
            aload 2 /* options */
            invokestatic com.google.common.io.MoreFiles.asByteSource:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Lcom/google/common/io/ByteSource;
            aload 1 /* charset */
            invokevirtual com.google.common.io.ByteSource.asCharSource:(Ljava/nio/charset/Charset;)Lcom/google/common/io/CharSource;
            areturn
        end local 2 // java.nio.file.OpenOption[] options
        end local 1 // java.nio.charset.Charset charset
        end local 0 // java.nio.file.Path path
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     path  Ljava/nio/file/Path;
            0    1     1  charset  Ljava/nio/charset/Charset;
            0    1     2  options  [Ljava/nio/file/OpenOption;
    MethodParameters:
         Name  Flags
      path     
      charset  
      options  

  public static com.google.common.io.CharSink asCharSink(java.nio.file.Path, java.nio.charset.Charset, java.nio.file.OpenOption[]);
    descriptor: (Ljava/nio/file/Path;Ljava/nio/charset/Charset;[Ljava/nio/file/OpenOption;)Lcom/google/common/io/CharSink;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.nio.file.Path path
        start local 1 // java.nio.charset.Charset charset
        start local 2 // java.nio.file.OpenOption[] options
         0: .line 250
            aload 0 /* path */
            aload 2 /* options */
            invokestatic com.google.common.io.MoreFiles.asByteSink:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Lcom/google/common/io/ByteSink;
            aload 1 /* charset */
            invokevirtual com.google.common.io.ByteSink.asCharSink:(Ljava/nio/charset/Charset;)Lcom/google/common/io/CharSink;
            areturn
        end local 2 // java.nio.file.OpenOption[] options
        end local 1 // java.nio.charset.Charset charset
        end local 0 // java.nio.file.Path path
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     path  Ljava/nio/file/Path;
            0    1     1  charset  Ljava/nio/charset/Charset;
            0    1     2  options  [Ljava/nio/file/OpenOption;
    MethodParameters:
         Name  Flags
      path     
      charset  
      options  

  public static com.google.common.collect.ImmutableList<java.nio.file.Path> listFiles(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Lcom/google/common/collect/ImmutableList;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.nio.file.Path dir
         0: .line 262
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: aload 0 /* dir */
            invokestatic java.nio.file.Files.newDirectoryStream:(Ljava/nio/file/Path;)Ljava/nio/file/DirectoryStream;
            astore 3 /* stream */
        start local 3 // java.nio.file.DirectoryStream stream
         2: .line 263
            aload 3 /* stream */
            invokestatic com.google.common.collect.ImmutableList.copyOf:(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableList;
         3: .line 264
            aload 3 /* stream */
            ifnull 4
            aload 3 /* stream */
            invokeinterface java.nio.file.DirectoryStream.close:()V
         4: .line 263
      StackMap locals: java.nio.file.Path java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream
      StackMap stack: com.google.common.collect.ImmutableList
            areturn
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: astore 1
         6: .line 264
            aload 3 /* stream */
            ifnull 7
            aload 3 /* stream */
            invokeinterface java.nio.file.DirectoryStream.close:()V
        end local 3 // java.nio.file.DirectoryStream stream
      StackMap locals:
      StackMap stack:
         7: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 2
            aload 1
            ifnonnull 9
            aload 2
            astore 1
            goto 10
      StackMap locals:
      StackMap stack:
         9: aload 1
            aload 2
            if_acmpeq 10
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        10: aload 1
            athrow
      StackMap locals: java.nio.file.Path
      StackMap stack: java.nio.file.DirectoryIteratorException
        11: astore 1 /* e */
        start local 1 // java.nio.file.DirectoryIteratorException e
        12: .line 265
            aload 1 /* e */
            invokevirtual java.nio.file.DirectoryIteratorException.getCause:()Ljava/io/IOException;
            athrow
        end local 1 // java.nio.file.DirectoryIteratorException e
        end local 0 // java.nio.file.Path dir
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0     dir  Ljava/nio/file/Path;
            2    7     3  stream  Ljava/nio/file/DirectoryStream<Ljava/nio/file/Path;>;
           12   13     1       e  Ljava/nio/file/DirectoryIteratorException;
      Exception table:
        from    to  target  type
           2     3       5  any
           1     4       8  any
           5     8       8  any
           0     4      11  Class java.nio.file.DirectoryIteratorException
           5    11      11  Class java.nio.file.DirectoryIteratorException
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/nio/file/Path;)Lcom/google/common/collect/ImmutableList<Ljava/nio/file/Path;>;
    MethodParameters:
      Name  Flags
      dir   

  public static com.google.common.graph.Traverser<java.nio.file.Path> fileTraverser();
    descriptor: ()Lcom/google/common/graph/Traverser;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 292
            getstatic com.google.common.io.MoreFiles.FILE_TREE:Lcom/google/common/graph/SuccessorsFunction;
            invokestatic com.google.common.graph.Traverser.forTree:(Lcom/google/common/graph/SuccessorsFunction;)Lcom/google/common/graph/Traverser;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Lcom/google/common/graph/Traverser<Ljava/nio/file/Path;>;

  private static java.lang.Iterable<java.nio.file.Path> fileTreeChildren(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Ljava/lang/Iterable;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.nio.file.Path dir
         0: .line 304
            aload 0 /* dir */
            iconst_1
            anewarray java.nio.file.LinkOption
            dup
            iconst_0
            getstatic java.nio.file.LinkOption.NOFOLLOW_LINKS:Ljava/nio/file/LinkOption;
            aastore
            invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 5
         1: .line 306
            aload 0 /* dir */
            invokestatic com.google.common.io.MoreFiles.listFiles:(Ljava/nio/file/Path;)Lcom/google/common/collect/ImmutableList;
         2: areturn
         3: .line 307
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
         4: .line 309
            new java.nio.file.DirectoryIteratorException
            dup
            aload 1 /* e */
            invokespecial java.nio.file.DirectoryIteratorException.<init>:(Ljava/io/IOException;)V
            athrow
        end local 1 // java.io.IOException e
         5: .line 312
      StackMap locals:
      StackMap stack:
            invokestatic com.google.common.collect.ImmutableList.of:()Lcom/google/common/collect/ImmutableList;
            areturn
        end local 0 // java.nio.file.Path dir
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0   dir  Ljava/nio/file/Path;
            4    5     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.io.IOException
    Signature: (Ljava/nio/file/Path;)Ljava/lang/Iterable<Ljava/nio/file/Path;>;
    MethodParameters:
      Name  Flags
      dir   

  public static com.google.common.base.Predicate<java.nio.file.Path> isDirectory(java.nio.file.LinkOption[]);
    descriptor: ([Ljava/nio/file/LinkOption;)Lcom/google/common/base/Predicate;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.nio.file.LinkOption[] options
         0: .line 320
            aload 0 /* options */
            invokevirtual java.nio.file.LinkOption[].clone:()Ljava/lang/Object;
            checkcast java.nio.file.LinkOption[]
            astore 1 /* optionsCopy */
        start local 1 // java.nio.file.LinkOption[] optionsCopy
         1: .line 321
            new com.google.common.io.MoreFiles$2
            dup
            aload 1 /* optionsCopy */
            invokespecial com.google.common.io.MoreFiles$2.<init>:([Ljava/nio/file/LinkOption;)V
            areturn
        end local 1 // java.nio.file.LinkOption[] optionsCopy
        end local 0 // java.nio.file.LinkOption[] options
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0      options  [Ljava/nio/file/LinkOption;
            1    2     1  optionsCopy  [Ljava/nio/file/LinkOption;
    Signature: ([Ljava/nio/file/LinkOption;)Lcom/google/common/base/Predicate<Ljava/nio/file/Path;>;
    MethodParameters:
         Name  Flags
      options  

  private static boolean isDirectory(java.nio.file.SecureDirectoryStream<java.nio.file.Path>, java.nio.file.Path, java.nio.file.LinkOption[]);
    descriptor: (Ljava/nio/file/SecureDirectoryStream;Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.nio.file.SecureDirectoryStream dir
        start local 1 // java.nio.file.Path name
        start local 2 // java.nio.file.LinkOption[] options
         0: .line 337
            aload 0 /* dir */
            aload 1 /* name */
            ldc Ljava/nio/file/attribute/BasicFileAttributeView;
            aload 2 /* options */
            invokeinterface java.nio.file.SecureDirectoryStream.getFileAttributeView:(Ljava/lang/Object;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/FileAttributeView;
            checkcast java.nio.file.attribute.BasicFileAttributeView
         1: .line 338
            invokeinterface java.nio.file.attribute.BasicFileAttributeView.readAttributes:()Ljava/nio/file/attribute/BasicFileAttributes;
         2: .line 339
            invokeinterface java.nio.file.attribute.BasicFileAttributes.isDirectory:()Z
         3: .line 337
            ireturn
        end local 2 // java.nio.file.LinkOption[] options
        end local 1 // java.nio.file.Path name
        end local 0 // java.nio.file.SecureDirectoryStream dir
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0      dir  Ljava/nio/file/SecureDirectoryStream<Ljava/nio/file/Path;>;
            0    4     1     name  Ljava/nio/file/Path;
            0    4     2  options  [Ljava/nio/file/LinkOption;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/nio/file/SecureDirectoryStream<Ljava/nio/file/Path;>;Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
    MethodParameters:
         Name  Flags
      dir      
      name     
      options  

  public static com.google.common.base.Predicate<java.nio.file.Path> isRegularFile(java.nio.file.LinkOption[]);
    descriptor: ([Ljava/nio/file/LinkOption;)Lcom/google/common/base/Predicate;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.nio.file.LinkOption[] options
         0: .line 347
            aload 0 /* options */
            invokevirtual java.nio.file.LinkOption[].clone:()Ljava/lang/Object;
            checkcast java.nio.file.LinkOption[]
            astore 1 /* optionsCopy */
        start local 1 // java.nio.file.LinkOption[] optionsCopy
         1: .line 348
            new com.google.common.io.MoreFiles$3
            dup
            aload 1 /* optionsCopy */
            invokespecial com.google.common.io.MoreFiles$3.<init>:([Ljava/nio/file/LinkOption;)V
            areturn
        end local 1 // java.nio.file.LinkOption[] optionsCopy
        end local 0 // java.nio.file.LinkOption[] options
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0      options  [Ljava/nio/file/LinkOption;
            1    2     1  optionsCopy  [Ljava/nio/file/LinkOption;
    Signature: ([Ljava/nio/file/LinkOption;)Lcom/google/common/base/Predicate<Ljava/nio/file/Path;>;
    MethodParameters:
         Name  Flags
      options  

  public static boolean equal(java.nio.file.Path, java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // java.nio.file.Path path1
        start local 1 // java.nio.file.Path path2
         0: .line 369
            aload 0 /* path1 */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 370
            aload 1 /* path2 */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 371
            aload 0 /* path1 */
            aload 1 /* path2 */
            invokestatic java.nio.file.Files.isSameFile:(Ljava/nio/file/Path;Ljava/nio/file/Path;)Z
            ifeq 4
         3: .line 372
            iconst_1
            ireturn
         4: .line 380
      StackMap locals:
      StackMap stack:
            aload 0 /* path1 */
            iconst_0
            anewarray java.nio.file.OpenOption
            invokestatic com.google.common.io.MoreFiles.asByteSource:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Lcom/google/common/io/ByteSource;
            astore 2 /* source1 */
        start local 2 // com.google.common.io.ByteSource source1
         5: .line 381
            aload 1 /* path2 */
            iconst_0
            anewarray java.nio.file.OpenOption
            invokestatic com.google.common.io.MoreFiles.asByteSource:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Lcom/google/common/io/ByteSource;
            astore 3 /* source2 */
        start local 3 // com.google.common.io.ByteSource source2
         6: .line 382
            aload 2 /* source1 */
            invokevirtual com.google.common.io.ByteSource.sizeIfKnown:()Lcom/google/common/base/Optional;
            lconst_0
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual com.google.common.base.Optional.or:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            lstore 4 /* len1 */
        start local 4 // long len1
         7: .line 383
            aload 3 /* source2 */
            invokevirtual com.google.common.io.ByteSource.sizeIfKnown:()Lcom/google/common/base/Optional;
            lconst_0
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual com.google.common.base.Optional.or:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            lstore 6 /* len2 */
        start local 6 // long len2
         8: .line 384
            lload 4 /* len1 */
            lconst_0
            lcmp
            ifeq 10
            lload 6 /* len2 */
            lconst_0
            lcmp
            ifeq 10
            lload 4 /* len1 */
            lload 6 /* len2 */
            lcmp
            ifeq 10
         9: .line 385
            iconst_0
            ireturn
        10: .line 387
      StackMap locals: java.nio.file.Path java.nio.file.Path com.google.common.io.ByteSource com.google.common.io.ByteSource long long
      StackMap stack:
            aload 2 /* source1 */
            aload 3 /* source2 */
            invokevirtual com.google.common.io.ByteSource.contentEquals:(Lcom/google/common/io/ByteSource;)Z
            ireturn
        end local 6 // long len2
        end local 4 // long len1
        end local 3 // com.google.common.io.ByteSource source2
        end local 2 // com.google.common.io.ByteSource source1
        end local 1 // java.nio.file.Path path2
        end local 0 // java.nio.file.Path path1
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0    path1  Ljava/nio/file/Path;
            0   11     1    path2  Ljava/nio/file/Path;
            5   11     2  source1  Lcom/google/common/io/ByteSource;
            6   11     3  source2  Lcom/google/common/io/ByteSource;
            7   11     4     len1  J
            8   11     6     len2  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      path1  
      path2  

  public static void touch(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.nio.file.Path path
         0: .line 395
            aload 0 /* path */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 398
            aload 0 /* path */
            invokestatic java.lang.System.currentTimeMillis:()J
            invokestatic java.nio.file.attribute.FileTime.fromMillis:(J)Ljava/nio/file/attribute/FileTime;
            invokestatic java.nio.file.Files.setLastModifiedTime:(Ljava/nio/file/Path;Ljava/nio/file/attribute/FileTime;)Ljava/nio/file/Path;
            pop
         2: .line 399
            goto 7
      StackMap locals:
      StackMap stack: java.nio.file.NoSuchFileException
         3: pop
         4: .line 401
            aload 0 /* path */
            iconst_0
            anewarray java.nio.file.attribute.FileAttribute
            invokestatic java.nio.file.Files.createFile:(Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
            pop
         5: .line 402
            goto 7
      StackMap locals:
      StackMap stack: java.nio.file.FileAlreadyExistsException
         6: pop
         7: .line 411
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.nio.file.Path path
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  path  Ljava/nio/file/Path;
      Exception table:
        from    to  target  type
           1     2       3  Class java.nio.file.NoSuchFileException
           4     5       6  Class java.nio.file.FileAlreadyExistsException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      path  

  public static void createParentDirectories(java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>[]);
    descriptor: (Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)V
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // java.nio.file.Path path
        start local 1 // java.nio.file.attribute.FileAttribute[] attrs
         0: .line 427
            aload 0 /* path */
            invokeinterface java.nio.file.Path.toAbsolutePath:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.normalize:()Ljava/nio/file/Path;
            astore 2 /* normalizedAbsolutePath */
        start local 2 // java.nio.file.Path normalizedAbsolutePath
         1: .line 428
            aload 2 /* normalizedAbsolutePath */
            invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
            astore 3 /* parent */
        start local 3 // java.nio.file.Path parent
         2: .line 429
            aload 3 /* parent */
            ifnonnull 4
         3: .line 434
            return
         4: .line 441
      StackMap locals: java.nio.file.Path java.nio.file.Path
      StackMap stack:
            aload 3 /* parent */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifne 8
         5: .line 442
            aload 3 /* parent */
            aload 1 /* attrs */
            invokestatic java.nio.file.Files.createDirectories:(Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
            pop
         6: .line 443
            aload 3 /* parent */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifne 8
         7: .line 444
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unable to create parent directories of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* path */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 447
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.nio.file.Path parent
        end local 2 // java.nio.file.Path normalizedAbsolutePath
        end local 1 // java.nio.file.attribute.FileAttribute[] attrs
        end local 0 // java.nio.file.Path path
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    9     0                    path  Ljava/nio/file/Path;
            0    9     1                   attrs  [Ljava/nio/file/attribute/FileAttribute;
            1    9     2  normalizedAbsolutePath  Ljava/nio/file/Path;
            2    9     3                  parent  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute<*>;)V
    MethodParameters:
       Name  Flags
      path   
      attrs  

  public static java.lang.String getFileExtension(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.nio.file.Path path
         0: .line 462
            aload 0 /* path */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            astore 1 /* name */
        start local 1 // java.nio.file.Path name
         1: .line 465
            aload 1 /* name */
            ifnonnull 3
         2: .line 466
            ldc ""
            areturn
         3: .line 469
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aload 1 /* name */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            astore 2 /* fileName */
        start local 2 // java.lang.String fileName
         4: .line 470
            aload 2 /* fileName */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 3 /* dotIndex */
        start local 3 // int dotIndex
         5: .line 471
            iload 3 /* dotIndex */
            iconst_m1
            if_icmpne 6
            ldc ""
            goto 7
      StackMap locals: java.lang.String int
      StackMap stack:
         6: aload 2 /* fileName */
            iload 3 /* dotIndex */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         7: areturn
        end local 3 // int dotIndex
        end local 2 // java.lang.String fileName
        end local 1 // java.nio.file.Path name
        end local 0 // java.nio.file.Path path
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      path  Ljava/nio/file/Path;
            1    8     1      name  Ljava/nio/file/Path;
            4    8     2  fileName  Ljava/lang/String;
            5    8     3  dotIndex  I
    MethodParameters:
      Name  Flags
      path  

  public static java.lang.String getNameWithoutExtension(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.nio.file.Path path
         0: .line 480
            aload 0 /* path */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            astore 1 /* name */
        start local 1 // java.nio.file.Path name
         1: .line 483
            aload 1 /* name */
            ifnonnull 3
         2: .line 484
            ldc ""
            areturn
         3: .line 487
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aload 1 /* name */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            astore 2 /* fileName */
        start local 2 // java.lang.String fileName
         4: .line 488
            aload 2 /* fileName */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 3 /* dotIndex */
        start local 3 // int dotIndex
         5: .line 489
            iload 3 /* dotIndex */
            iconst_m1
            if_icmpne 6
            aload 2 /* fileName */
            goto 7
      StackMap locals: java.lang.String int
      StackMap stack:
         6: aload 2 /* fileName */
            iconst_0
            iload 3 /* dotIndex */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         7: areturn
        end local 3 // int dotIndex
        end local 2 // java.lang.String fileName
        end local 1 // java.nio.file.Path name
        end local 0 // java.nio.file.Path path
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      path  Ljava/nio/file/Path;
            1    8     1      name  Ljava/nio/file/Path;
            4    8     2  fileName  Ljava/lang/String;
            5    8     3  dotIndex  I
    MethodParameters:
      Name  Flags
      path  

  public static void deleteRecursively(java.nio.file.Path, com.google.common.io.RecursiveDeleteOption[]);
    descriptor: (Ljava/nio/file/Path;[Lcom/google/common/io/RecursiveDeleteOption;)V
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // java.nio.file.Path path
        start local 1 // com.google.common.io.RecursiveDeleteOption[] options
         0: .line 522
            aload 0 /* path */
            invokestatic com.google.common.io.MoreFiles.getParentPath:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            astore 2 /* parentPath */
        start local 2 // java.nio.file.Path parentPath
         1: .line 523
            aload 2 /* parentPath */
            ifnonnull 3
         2: .line 524
            new java.nio.file.FileSystemException
            dup
            aload 0 /* path */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            aconst_null
            ldc "can't delete recursively"
            invokespecial java.nio.file.FileSystemException.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            athrow
         3: .line 527
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aconst_null
            astore 3 /* exceptions */
        start local 3 // java.util.Collection exceptions
         4: .line 529
            iconst_0
            istore 4 /* sdsSupported */
        start local 4 // boolean sdsSupported
         5: .line 530
            aconst_null
            astore 5
            aconst_null
            astore 6
         6: aload 2 /* parentPath */
            invokestatic java.nio.file.Files.newDirectoryStream:(Ljava/nio/file/Path;)Ljava/nio/file/DirectoryStream;
            astore 7 /* parent */
        start local 7 // java.nio.file.DirectoryStream parent
         7: .line 531
            aload 7 /* parent */
            instanceof java.nio.file.SecureDirectoryStream
            ifeq 11
         8: .line 532
            iconst_1
            istore 4 /* sdsSupported */
         9: .line 534
            aload 7 /* parent */
            checkcast java.nio.file.SecureDirectoryStream
            aload 0 /* path */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            invokestatic com.google.common.io.MoreFiles.deleteRecursivelySecure:(Ljava/nio/file/SecureDirectoryStream;Ljava/nio/file/Path;)Ljava/util/Collection;
        10: .line 533
            astore 3 /* exceptions */
        11: .line 536
      StackMap locals: java.nio.file.Path com.google.common.io.RecursiveDeleteOption[] java.nio.file.Path java.util.Collection int java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream
      StackMap stack:
            aload 7 /* parent */
            ifnull 17
            aload 7 /* parent */
            invokeinterface java.nio.file.DirectoryStream.close:()V
            goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 5
            aload 7 /* parent */
            ifnull 13
            aload 7 /* parent */
            invokeinterface java.nio.file.DirectoryStream.close:()V
        end local 7 // java.nio.file.DirectoryStream parent
      StackMap locals:
      StackMap stack:
        13: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 6
            aload 5
            ifnonnull 15
            aload 6
            astore 5
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 5
            aload 6
            if_acmpeq 16
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        16: aload 5
            athrow
        17: .line 538
      StackMap locals:
      StackMap stack:
            iload 4 /* sdsSupported */
            ifne 25
        18: .line 539
            aload 0 /* path */
            aload 1 /* options */
            invokestatic com.google.common.io.MoreFiles.checkAllowsInsecure:(Ljava/nio/file/Path;[Lcom/google/common/io/RecursiveDeleteOption;)V
        19: .line 540
            aload 0 /* path */
            invokestatic com.google.common.io.MoreFiles.deleteRecursivelyInsecure:(Ljava/nio/file/Path;)Ljava/util/Collection;
            astore 3 /* exceptions */
        end local 4 // boolean sdsSupported
        20: .line 542
            goto 25
      StackMap locals: java.nio.file.Path com.google.common.io.RecursiveDeleteOption[] java.nio.file.Path java.util.Collection
      StackMap stack: java.io.IOException
        21: astore 4 /* e */
        start local 4 // java.io.IOException e
        22: .line 543
            aload 3 /* exceptions */
            ifnonnull 24
        23: .line 544
            aload 4 /* e */
            athrow
        24: .line 546
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 3 /* exceptions */
            aload 4 /* e */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // java.io.IOException e
        25: .line 550
      StackMap locals:
      StackMap stack:
            aload 3 /* exceptions */
            ifnull 27
        26: .line 551
            aload 0 /* path */
            aload 3 /* exceptions */
            invokestatic com.google.common.io.MoreFiles.throwDeleteFailed:(Ljava/nio/file/Path;Ljava/util/Collection;)V
        27: .line 553
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.Collection exceptions
        end local 2 // java.nio.file.Path parentPath
        end local 1 // com.google.common.io.RecursiveDeleteOption[] options
        end local 0 // java.nio.file.Path path
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   28     0          path  Ljava/nio/file/Path;
            0   28     1       options  [Lcom/google/common/io/RecursiveDeleteOption;
            1   28     2    parentPath  Ljava/nio/file/Path;
            4   28     3    exceptions  Ljava/util/Collection<Ljava/io/IOException;>;
            5   20     4  sdsSupported  Z
            7   13     7        parent  Ljava/nio/file/DirectoryStream<Ljava/nio/file/Path;>;
           22   25     4             e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           7    11      12  any
           6    14      14  any
           4    20      21  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      path     
      options  

  public static void deleteDirectoryContents(java.nio.file.Path, com.google.common.io.RecursiveDeleteOption[]);
    descriptor: (Ljava/nio/file/Path;[Lcom/google/common/io/RecursiveDeleteOption;)V
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // java.nio.file.Path path
        start local 1 // com.google.common.io.RecursiveDeleteOption[] options
         0: .line 588
            aconst_null
            astore 2 /* exceptions */
        start local 2 // java.util.Collection exceptions
         1: .line 589
            aconst_null
            astore 3
            aconst_null
            astore 4
         2: aload 0 /* path */
            invokestatic java.nio.file.Files.newDirectoryStream:(Ljava/nio/file/Path;)Ljava/nio/file/DirectoryStream;
            astore 5 /* stream */
        start local 5 // java.nio.file.DirectoryStream stream
         3: .line 590
            aload 5 /* stream */
            instanceof java.nio.file.SecureDirectoryStream
            ifeq 7
         4: .line 591
            aload 5 /* stream */
            checkcast java.nio.file.SecureDirectoryStream
            astore 6 /* sds */
        start local 6 // java.nio.file.SecureDirectoryStream sds
         5: .line 592
            aload 6 /* sds */
            invokestatic com.google.common.io.MoreFiles.deleteDirectoryContentsSecure:(Ljava/nio/file/SecureDirectoryStream;)Ljava/util/Collection;
            astore 2 /* exceptions */
        end local 6 // java.nio.file.SecureDirectoryStream sds
         6: .line 593
            goto 9
         7: .line 594
      StackMap locals: java.nio.file.Path com.google.common.io.RecursiveDeleteOption[] java.util.Collection java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream
      StackMap stack:
            aload 0 /* path */
            aload 1 /* options */
            invokestatic com.google.common.io.MoreFiles.checkAllowsInsecure:(Ljava/nio/file/Path;[Lcom/google/common/io/RecursiveDeleteOption;)V
         8: .line 595
            aload 5 /* stream */
            invokestatic com.google.common.io.MoreFiles.deleteDirectoryContentsInsecure:(Ljava/nio/file/DirectoryStream;)Ljava/util/Collection;
            astore 2 /* exceptions */
         9: .line 597
      StackMap locals:
      StackMap stack:
            aload 5 /* stream */
            ifnull 19
            aload 5 /* stream */
            invokeinterface java.nio.file.DirectoryStream.close:()V
            goto 19
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: astore 3
            aload 5 /* stream */
            ifnull 11
            aload 5 /* stream */
            invokeinterface java.nio.file.DirectoryStream.close:()V
        end local 5 // java.nio.file.DirectoryStream stream
      StackMap locals:
      StackMap stack:
        11: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 4
            aload 3
            ifnonnull 13
            aload 4
            astore 3
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 3
            aload 4
            if_acmpeq 14
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        14: aload 3
            athrow
      StackMap locals: java.nio.file.Path com.google.common.io.RecursiveDeleteOption[] java.util.Collection
      StackMap stack: java.io.IOException
        15: astore 3 /* e */
        start local 3 // java.io.IOException e
        16: .line 598
            aload 2 /* exceptions */
            ifnonnull 18
        17: .line 599
            aload 3 /* e */
            athrow
        18: .line 601
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 2 /* exceptions */
            aload 3 /* e */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.io.IOException e
        19: .line 605
      StackMap locals:
      StackMap stack:
            aload 2 /* exceptions */
            ifnull 21
        20: .line 606
            aload 0 /* path */
            aload 2 /* exceptions */
            invokestatic com.google.common.io.MoreFiles.throwDeleteFailed:(Ljava/nio/file/Path;Ljava/util/Collection;)V
        21: .line 608
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.Collection exceptions
        end local 1 // com.google.common.io.RecursiveDeleteOption[] options
        end local 0 // java.nio.file.Path path
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   22     0        path  Ljava/nio/file/Path;
            0   22     1     options  [Lcom/google/common/io/RecursiveDeleteOption;
            1   22     2  exceptions  Ljava/util/Collection<Ljava/io/IOException;>;
            3   11     5      stream  Ljava/nio/file/DirectoryStream<Ljava/nio/file/Path;>;
            5    6     6         sds  Ljava/nio/file/SecureDirectoryStream<Ljava/nio/file/Path;>;
           16   19     3           e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3     9      10  any
           2    12      12  any
           1    15      15  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      path     
      options  

  private static java.util.Collection<java.io.IOException> deleteRecursivelySecure(java.nio.file.SecureDirectoryStream<java.nio.file.Path>, java.nio.file.Path);
    descriptor: (Ljava/nio/file/SecureDirectoryStream;Ljava/nio/file/Path;)Ljava/util/Collection;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // java.nio.file.SecureDirectoryStream dir
        start local 1 // java.nio.file.Path path
         0: .line 616
            aconst_null
            astore 2 /* exceptions */
        start local 2 // java.util.Collection exceptions
         1: .line 618
            aload 0 /* dir */
            aload 1 /* path */
            iconst_1
            anewarray java.nio.file.LinkOption
            dup
            iconst_0
            getstatic java.nio.file.LinkOption.NOFOLLOW_LINKS:Ljava/nio/file/LinkOption;
            aastore
            invokestatic com.google.common.io.MoreFiles.isDirectory:(Ljava/nio/file/SecureDirectoryStream;Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 14
         2: .line 619
            aconst_null
            astore 3
            aconst_null
            astore 4
         3: aload 0 /* dir */
            aload 1 /* path */
            iconst_1
            anewarray java.nio.file.LinkOption
            dup
            iconst_0
            getstatic java.nio.file.LinkOption.NOFOLLOW_LINKS:Ljava/nio/file/LinkOption;
            aastore
            invokeinterface java.nio.file.SecureDirectoryStream.newDirectoryStream:(Ljava/lang/Object;[Ljava/nio/file/LinkOption;)Ljava/nio/file/SecureDirectoryStream;
            astore 5 /* childDir */
        start local 5 // java.nio.file.SecureDirectoryStream childDir
         4: .line 620
            aload 5 /* childDir */
            invokestatic com.google.common.io.MoreFiles.deleteDirectoryContentsSecure:(Ljava/nio/file/SecureDirectoryStream;)Ljava/util/Collection;
            astore 2 /* exceptions */
         5: .line 621
            aload 5 /* childDir */
            ifnull 11
            aload 5 /* childDir */
            invokeinterface java.nio.file.SecureDirectoryStream.close:()V
            goto 11
      StackMap locals: java.nio.file.SecureDirectoryStream java.nio.file.Path java.util.Collection java.lang.Throwable java.lang.Throwable java.nio.file.SecureDirectoryStream
      StackMap stack: java.lang.Throwable
         6: astore 3
            aload 5 /* childDir */
            ifnull 7
            aload 5 /* childDir */
            invokeinterface java.nio.file.SecureDirectoryStream.close:()V
        end local 5 // java.nio.file.SecureDirectoryStream childDir
      StackMap locals:
      StackMap stack:
         7: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 4
            aload 3
            ifnonnull 9
            aload 4
            astore 3
            goto 10
      StackMap locals:
      StackMap stack:
         9: aload 3
            aload 4
            if_acmpeq 10
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        10: aload 3
            athrow
        11: .line 625
      StackMap locals:
      StackMap stack:
            aload 2 /* exceptions */
            ifnonnull 15
        12: .line 626
            aload 0 /* dir */
            aload 1 /* path */
            invokeinterface java.nio.file.SecureDirectoryStream.deleteDirectory:(Ljava/lang/Object;)V
        13: .line 628
            goto 15
        14: .line 629
      StackMap locals:
      StackMap stack:
            aload 0 /* dir */
            aload 1 /* path */
            invokeinterface java.nio.file.SecureDirectoryStream.deleteFile:(Ljava/lang/Object;)V
        15: .line 632
      StackMap locals:
      StackMap stack:
            aload 2 /* exceptions */
        16: areturn
        17: .line 633
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        18: .line 634
            aload 2 /* exceptions */
            aload 3 /* e */
            invokestatic com.google.common.io.MoreFiles.addException:(Ljava/util/Collection;Ljava/io/IOException;)Ljava/util/Collection;
            areturn
        end local 3 // java.io.IOException e
        end local 2 // java.util.Collection exceptions
        end local 1 // java.nio.file.Path path
        end local 0 // java.nio.file.SecureDirectoryStream dir
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0         dir  Ljava/nio/file/SecureDirectoryStream<Ljava/nio/file/Path;>;
            0   19     1        path  Ljava/nio/file/Path;
            1   19     2  exceptions  Ljava/util/Collection<Ljava/io/IOException;>;
            4    7     5    childDir  Ljava/nio/file/SecureDirectoryStream<Ljava/nio/file/Path;>;
           18   19     3           e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4     5       6  any
           3     8       8  any
           1    16      17  Class java.io.IOException
    Signature: (Ljava/nio/file/SecureDirectoryStream<Ljava/nio/file/Path;>;Ljava/nio/file/Path;)Ljava/util/Collection<Ljava/io/IOException;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
      Name  Flags
      dir   
      path  

  private static java.util.Collection<java.io.IOException> deleteDirectoryContentsSecure(java.nio.file.SecureDirectoryStream<java.nio.file.Path>);
    descriptor: (Ljava/nio/file/SecureDirectoryStream;)Ljava/util/Collection;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.nio.file.SecureDirectoryStream dir
         0: .line 644
            aconst_null
            astore 1 /* exceptions */
        start local 1 // java.util.Collection exceptions
         1: .line 646
            aload 0 /* dir */
            invokeinterface java.nio.file.SecureDirectoryStream.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: java.nio.file.SecureDirectoryStream java.util.Collection top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.file.Path
            astore 2 /* path */
        start local 2 // java.nio.file.Path path
         3: .line 647
            aload 1 /* exceptions */
            aload 0 /* dir */
            aload 2 /* path */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            invokestatic com.google.common.io.MoreFiles.deleteRecursivelySecure:(Ljava/nio/file/SecureDirectoryStream;Ljava/nio/file/Path;)Ljava/util/Collection;
            invokestatic com.google.common.io.MoreFiles.concat:(Ljava/util/Collection;Ljava/util/Collection;)Ljava/util/Collection;
            astore 1 /* exceptions */
        end local 2 // java.nio.file.Path path
         4: .line 646
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 650
            aload 1 /* exceptions */
         6: areturn
         7: .line 651
      StackMap locals: java.nio.file.SecureDirectoryStream java.util.Collection
      StackMap stack: java.nio.file.DirectoryIteratorException
            astore 2 /* e */
        start local 2 // java.nio.file.DirectoryIteratorException e
         8: .line 652
            aload 1 /* exceptions */
            aload 2 /* e */
            invokevirtual java.nio.file.DirectoryIteratorException.getCause:()Ljava/io/IOException;
            invokestatic com.google.common.io.MoreFiles.addException:(Ljava/util/Collection;Ljava/io/IOException;)Ljava/util/Collection;
            areturn
        end local 2 // java.nio.file.DirectoryIteratorException e
        end local 1 // java.util.Collection exceptions
        end local 0 // java.nio.file.SecureDirectoryStream dir
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0         dir  Ljava/nio/file/SecureDirectoryStream<Ljava/nio/file/Path;>;
            1    9     1  exceptions  Ljava/util/Collection<Ljava/io/IOException;>;
            3    4     2        path  Ljava/nio/file/Path;
            8    9     2           e  Ljava/nio/file/DirectoryIteratorException;
      Exception table:
        from    to  target  type
           1     6       7  Class java.nio.file.DirectoryIteratorException
    Signature: (Ljava/nio/file/SecureDirectoryStream<Ljava/nio/file/Path;>;)Ljava/util/Collection<Ljava/io/IOException;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
      Name  Flags
      dir   

  private static java.util.Collection<java.io.IOException> deleteRecursivelyInsecure(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Ljava/util/Collection;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // java.nio.file.Path path
         0: .line 661
            aconst_null
            astore 1 /* exceptions */
        start local 1 // java.util.Collection exceptions
         1: .line 663
            aload 0 /* path */
            iconst_1
            anewarray java.nio.file.LinkOption
            dup
            iconst_0
            getstatic java.nio.file.LinkOption.NOFOLLOW_LINKS:Ljava/nio/file/LinkOption;
            aastore
            invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 11
         2: .line 664
            aconst_null
            astore 2
            aconst_null
            astore 3
         3: aload 0 /* path */
            invokestatic java.nio.file.Files.newDirectoryStream:(Ljava/nio/file/Path;)Ljava/nio/file/DirectoryStream;
            astore 4 /* stream */
        start local 4 // java.nio.file.DirectoryStream stream
         4: .line 665
            aload 4 /* stream */
            invokestatic com.google.common.io.MoreFiles.deleteDirectoryContentsInsecure:(Ljava/nio/file/DirectoryStream;)Ljava/util/Collection;
            astore 1 /* exceptions */
         5: .line 666
            aload 4 /* stream */
            ifnull 11
            aload 4 /* stream */
            invokeinterface java.nio.file.DirectoryStream.close:()V
            goto 11
      StackMap locals: java.nio.file.Path java.util.Collection java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream
      StackMap stack: java.lang.Throwable
         6: astore 2
            aload 4 /* stream */
            ifnull 7
            aload 4 /* stream */
            invokeinterface java.nio.file.DirectoryStream.close:()V
        end local 4 // java.nio.file.DirectoryStream stream
      StackMap locals:
      StackMap stack:
         7: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 3
            aload 2
            ifnonnull 9
            aload 3
            astore 2
            goto 10
      StackMap locals:
      StackMap stack:
         9: aload 2
            aload 3
            if_acmpeq 10
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        10: aload 2
            athrow
        11: .line 671
      StackMap locals:
      StackMap stack:
            aload 1 /* exceptions */
            ifnonnull 13
        12: .line 672
            aload 0 /* path */
            invokestatic java.nio.file.Files.delete:(Ljava/nio/file/Path;)V
        13: .line 675
      StackMap locals:
      StackMap stack:
            aload 1 /* exceptions */
        14: areturn
        15: .line 676
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
        16: .line 677
            aload 1 /* exceptions */
            aload 2 /* e */
            invokestatic com.google.common.io.MoreFiles.addException:(Ljava/util/Collection;Ljava/io/IOException;)Ljava/util/Collection;
            areturn
        end local 2 // java.io.IOException e
        end local 1 // java.util.Collection exceptions
        end local 0 // java.nio.file.Path path
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        path  Ljava/nio/file/Path;
            1   17     1  exceptions  Ljava/util/Collection<Ljava/io/IOException;>;
            4    7     4      stream  Ljava/nio/file/DirectoryStream<Ljava/nio/file/Path;>;
           16   17     2           e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4     5       6  any
           3     8       8  any
           1    14      15  Class java.io.IOException
    Signature: (Ljava/nio/file/Path;)Ljava/util/Collection<Ljava/io/IOException;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
      Name  Flags
      path  

  private static java.util.Collection<java.io.IOException> deleteDirectoryContentsInsecure(java.nio.file.DirectoryStream<java.nio.file.Path>);
    descriptor: (Ljava/nio/file/DirectoryStream;)Ljava/util/Collection;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.nio.file.DirectoryStream dir
         0: .line 688
            aconst_null
            astore 1 /* exceptions */
        start local 1 // java.util.Collection exceptions
         1: .line 690
            aload 0 /* dir */
            invokeinterface java.nio.file.DirectoryStream.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: java.nio.file.DirectoryStream java.util.Collection top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.file.Path
            astore 2 /* entry */
        start local 2 // java.nio.file.Path entry
         3: .line 691
            aload 1 /* exceptions */
            aload 2 /* entry */
            invokestatic com.google.common.io.MoreFiles.deleteRecursivelyInsecure:(Ljava/nio/file/Path;)Ljava/util/Collection;
            invokestatic com.google.common.io.MoreFiles.concat:(Ljava/util/Collection;Ljava/util/Collection;)Ljava/util/Collection;
            astore 1 /* exceptions */
        end local 2 // java.nio.file.Path entry
         4: .line 690
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 694
            aload 1 /* exceptions */
         6: areturn
         7: .line 695
      StackMap locals: java.nio.file.DirectoryStream java.util.Collection
      StackMap stack: java.nio.file.DirectoryIteratorException
            astore 2 /* e */
        start local 2 // java.nio.file.DirectoryIteratorException e
         8: .line 696
            aload 1 /* exceptions */
            aload 2 /* e */
            invokevirtual java.nio.file.DirectoryIteratorException.getCause:()Ljava/io/IOException;
            invokestatic com.google.common.io.MoreFiles.addException:(Ljava/util/Collection;Ljava/io/IOException;)Ljava/util/Collection;
            areturn
        end local 2 // java.nio.file.DirectoryIteratorException e
        end local 1 // java.util.Collection exceptions
        end local 0 // java.nio.file.DirectoryStream dir
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0         dir  Ljava/nio/file/DirectoryStream<Ljava/nio/file/Path;>;
            1    9     1  exceptions  Ljava/util/Collection<Ljava/io/IOException;>;
            3    4     2       entry  Ljava/nio/file/Path;
            8    9     2           e  Ljava/nio/file/DirectoryIteratorException;
      Exception table:
        from    to  target  type
           1     6       7  Class java.nio.file.DirectoryIteratorException
    Signature: (Ljava/nio/file/DirectoryStream<Ljava/nio/file/Path;>;)Ljava/util/Collection<Ljava/io/IOException;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
      Name  Flags
      dir   

  private static java.nio.file.Path getParentPath(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Ljava/nio/file/Path;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.nio.file.Path path
         0: .line 706
            aload 0 /* path */
            invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
            astore 1 /* parent */
        start local 1 // java.nio.file.Path parent
         1: .line 709
            aload 1 /* parent */
            ifnull 3
         2: .line 715
            aload 1 /* parent */
            areturn
         3: .line 719
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aload 0 /* path */
            invokeinterface java.nio.file.Path.getNameCount:()I
            ifne 5
         4: .line 731
            aconst_null
            areturn
         5: .line 734
      StackMap locals:
      StackMap stack:
            aload 0 /* path */
            invokeinterface java.nio.file.Path.getFileSystem:()Ljava/nio/file/FileSystem;
            ldc "."
            iconst_0
            anewarray java.lang.String
            invokevirtual java.nio.file.FileSystem.getPath:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            areturn
        end local 1 // java.nio.file.Path parent
        end local 0 // java.nio.file.Path path
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    path  Ljava/nio/file/Path;
            1    6     1  parent  Ljava/nio/file/Path;
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
      Name  Flags
      path  

  private static void checkAllowsInsecure(java.nio.file.Path, com.google.common.io.RecursiveDeleteOption[]);
    descriptor: (Ljava/nio/file/Path;[Lcom/google/common/io/RecursiveDeleteOption;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.nio.file.Path path
        start local 1 // com.google.common.io.RecursiveDeleteOption[] options
         0: .line 741
            aload 1 /* options */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            getstatic com.google.common.io.RecursiveDeleteOption.ALLOW_INSECURE:Lcom/google/common/io/RecursiveDeleteOption;
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 742
            new com.google.common.io.InsecureRecursiveDeleteException
            dup
            aload 0 /* path */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            invokespecial com.google.common.io.InsecureRecursiveDeleteException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 744
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.google.common.io.RecursiveDeleteOption[] options
        end local 0 // java.nio.file.Path path
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     path  Ljava/nio/file/Path;
            0    3     1  options  [Lcom/google/common/io/RecursiveDeleteOption;
    Exceptions:
      throws com.google.common.io.InsecureRecursiveDeleteException
    MethodParameters:
         Name  Flags
      path     
      options  

  private static java.util.Collection<java.io.IOException> addException(java.util.Collection<java.io.IOException>, java.io.IOException);
    descriptor: (Ljava/util/Collection;Ljava/io/IOException;)Ljava/util/Collection;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.Collection exceptions
        start local 1 // java.io.IOException e
         0: .line 752
            aload 0 /* exceptions */
            ifnonnull 2
         1: .line 753
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 0 /* exceptions */
         2: .line 755
      StackMap locals:
      StackMap stack:
            aload 0 /* exceptions */
            aload 1 /* e */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
         3: .line 756
            aload 0 /* exceptions */
            areturn
        end local 1 // java.io.IOException e
        end local 0 // java.util.Collection exceptions
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0  exceptions  Ljava/util/Collection<Ljava/io/IOException;>;
            0    4     1           e  Ljava/io/IOException;
    Signature: (Ljava/util/Collection<Ljava/io/IOException;>;Ljava/io/IOException;)Ljava/util/Collection<Ljava/io/IOException;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
            Name  Flags
      exceptions  
      e           

  private static java.util.Collection<java.io.IOException> concat(java.util.Collection<java.io.IOException>, java.util.Collection<java.io.IOException>);
    descriptor: (Ljava/util/Collection;Ljava/util/Collection;)Ljava/util/Collection;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.Collection exceptions
        start local 1 // java.util.Collection other
         0: .line 766
            aload 0 /* exceptions */
            ifnonnull 2
         1: .line 767
            aload 1 /* other */
            areturn
         2: .line 768
      StackMap locals:
      StackMap stack:
            aload 1 /* other */
            ifnull 4
         3: .line 769
            aload 0 /* exceptions */
            aload 1 /* other */
            invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
            pop
         4: .line 771
      StackMap locals:
      StackMap stack:
            aload 0 /* exceptions */
            areturn
        end local 1 // java.util.Collection other
        end local 0 // java.util.Collection exceptions
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0  exceptions  Ljava/util/Collection<Ljava/io/IOException;>;
            0    5     1       other  Ljava/util/Collection<Ljava/io/IOException;>;
    Signature: (Ljava/util/Collection<Ljava/io/IOException;>;Ljava/util/Collection<Ljava/io/IOException;>;)Ljava/util/Collection<Ljava/io/IOException;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
      METHOD_RETURN
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
            Name  Flags
      exceptions  
      other       

  private static void throwDeleteFailed(java.nio.file.Path, java.util.Collection<java.io.IOException>);
    descriptor: (Ljava/nio/file/Path;Ljava/util/Collection;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // java.nio.file.Path path
        start local 1 // java.util.Collection exceptions
         0: .line 784
            new java.nio.file.FileSystemException
            dup
         1: .line 785
            aload 0 /* path */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
         2: .line 786
            aconst_null
         3: .line 787
            ldc "failed to delete one or more files; see suppressed exceptions for details"
         4: .line 784
            invokespecial java.nio.file.FileSystemException.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         5: .line 783
            astore 2 /* deleteFailed */
        start local 2 // java.nio.file.FileSystemException deleteFailed
         6: .line 788
            aload 1 /* exceptions */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: java.nio.file.Path java.util.Collection java.nio.file.FileSystemException top java.util.Iterator
      StackMap stack:
         7: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
         8: .line 789
            aload 2 /* deleteFailed */
            aload 3 /* e */
            invokevirtual java.nio.file.FileSystemException.addSuppressed:(Ljava/lang/Throwable;)V
        end local 3 // java.io.IOException e
         9: .line 788
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        10: .line 791
            aload 2 /* deleteFailed */
            athrow
        end local 2 // java.nio.file.FileSystemException deleteFailed
        end local 1 // java.util.Collection exceptions
        end local 0 // java.nio.file.Path path
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          path  Ljava/nio/file/Path;
            0   11     1    exceptions  Ljava/util/Collection<Ljava/io/IOException;>;
            6   11     2  deleteFailed  Ljava/nio/file/FileSystemException;
            8    9     3             e  Ljava/io/IOException;
    Exceptions:
      throws java.nio.file.FileSystemException
    Signature: (Ljava/nio/file/Path;Ljava/util/Collection<Ljava/io/IOException;>;)V
    MethodParameters:
            Name  Flags
      path        
      exceptions  
}
SourceFile: "MoreFiles.java"
NestMembers:
  com.google.common.io.MoreFiles$1  com.google.common.io.MoreFiles$2  com.google.common.io.MoreFiles$3  com.google.common.io.MoreFiles$PathByteSink  com.google.common.io.MoreFiles$PathByteSource  com.google.common.io.MoreFiles$PathByteSource$1
InnerClasses:
  com.google.common.io.MoreFiles$1
  com.google.common.io.MoreFiles$2
  com.google.common.io.MoreFiles$3
  private final PathByteSink = com.google.common.io.MoreFiles$PathByteSink of com.google.common.io.MoreFiles
  private final PathByteSource = com.google.common.io.MoreFiles$PathByteSource of com.google.common.io.MoreFiles
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
      com.google.common.annotations.GwtIncompatible()