public final class android.renderscript.ScriptGroup$Builder2
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.renderscript.ScriptGroup$Builder2
  super_class: java.lang.Object
{
  android.renderscript.RenderScript mRS;
    descriptor: Landroid/renderscript/RenderScript;
    flags: (0x0000) 

  java.util.List<android.renderscript.ScriptGroup$Closure> mClosures;
    descriptor: Ljava/util/List;
    flags: (0x0000) 
    Signature: Ljava/util/List<Landroid/renderscript/ScriptGroup$Closure;>;

  java.util.List<android.renderscript.ScriptGroup$Input> mInputs;
    descriptor: Ljava/util/List;
    flags: (0x0000) 
    Signature: Ljava/util/List<Landroid/renderscript/ScriptGroup$Input;>;

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

  public void <init>(android.renderscript.RenderScript);
    descriptor: (Landroid/renderscript/RenderScript;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.renderscript.ScriptGroup$Builder2 this
        start local 1 // android.renderscript.RenderScript rs
         0: .line 933
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 934
            aload 0 /* this */
            aload 1 /* rs */
            putfield android.renderscript.ScriptGroup$Builder2.mRS:Landroid/renderscript/RenderScript;
         2: .line 935
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield android.renderscript.ScriptGroup$Builder2.mClosures:Ljava/util/List;
         3: .line 936
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield android.renderscript.ScriptGroup$Builder2.mInputs:Ljava/util/List;
         4: .line 937
            return
        end local 1 // android.renderscript.RenderScript rs
        end local 0 // android.renderscript.ScriptGroup$Builder2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/renderscript/ScriptGroup$Builder2;
            0    5     1    rs  Landroid/renderscript/RenderScript;
    MethodParameters:
      Name  Flags
      rs    

  private android.renderscript.ScriptGroup$Closure addKernelInternal(android.renderscript.Script$KernelID, android.renderscript.Type, [], java.util.Map<android.renderscript.Script$FieldID, java.lang.Object>);
    descriptor: (Landroid/renderscript/Script$KernelID;Landroid/renderscript/Type;[Ljava/lang/Object;Ljava/util/Map;)Landroid/renderscript/ScriptGroup$Closure;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=5
        start local 0 // android.renderscript.ScriptGroup$Builder2 this
        start local 1 // android.renderscript.Script$KernelID k
        start local 2 // android.renderscript.Type returnType
        start local 3 // java.lang.Object[] args
        start local 4 // java.util.Map globalBindings
         0: .line 951
            new android.renderscript.ScriptGroup$Closure
            dup
            aload 0 /* this */
            getfield android.renderscript.ScriptGroup$Builder2.mRS:Landroid/renderscript/RenderScript;
            aload 1 /* k */
            aload 2 /* returnType */
            aload 3 /* args */
            aload 4 /* globalBindings */
            invokespecial android.renderscript.ScriptGroup$Closure.<init>:(Landroid/renderscript/RenderScript;Landroid/renderscript/Script$KernelID;Landroid/renderscript/Type;[Ljava/lang/Object;Ljava/util/Map;)V
            astore 5 /* c */
        start local 5 // android.renderscript.ScriptGroup$Closure c
         1: .line 952
            aload 0 /* this */
            getfield android.renderscript.ScriptGroup$Builder2.mClosures:Ljava/util/List;
            aload 5 /* c */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 953
            aload 5 /* c */
            areturn
        end local 5 // android.renderscript.ScriptGroup$Closure c
        end local 4 // java.util.Map globalBindings
        end local 3 // java.lang.Object[] args
        end local 2 // android.renderscript.Type returnType
        end local 1 // android.renderscript.Script$KernelID k
        end local 0 // android.renderscript.ScriptGroup$Builder2 this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Landroid/renderscript/ScriptGroup$Builder2;
            0    3     1               k  Landroid/renderscript/Script$KernelID;
            0    3     2      returnType  Landroid/renderscript/Type;
            0    3     3            args  [Ljava/lang/Object;
            0    3     4  globalBindings  Ljava/util/Map<Landroid/renderscript/Script$FieldID;Ljava/lang/Object;>;
            1    3     5               c  Landroid/renderscript/ScriptGroup$Closure;
    Signature: (Landroid/renderscript/Script$KernelID;Landroid/renderscript/Type;[Ljava/lang/Object;Ljava/util/Map<Landroid/renderscript/Script$FieldID;Ljava/lang/Object;>;)Landroid/renderscript/ScriptGroup$Closure;
    MethodParameters:
                Name  Flags
      k               
      returnType      
      args            
      globalBindings  

  private android.renderscript.ScriptGroup$Closure addInvokeInternal(android.renderscript.Script$InvokeID, [], java.util.Map<android.renderscript.Script$FieldID, java.lang.Object>);
    descriptor: (Landroid/renderscript/Script$InvokeID;[Ljava/lang/Object;Ljava/util/Map;)Landroid/renderscript/ScriptGroup$Closure;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // android.renderscript.ScriptGroup$Builder2 this
        start local 1 // android.renderscript.Script$InvokeID invoke
        start local 2 // java.lang.Object[] args
        start local 3 // java.util.Map globalBindings
         0: .line 967
            new android.renderscript.ScriptGroup$Closure
            dup
            aload 0 /* this */
            getfield android.renderscript.ScriptGroup$Builder2.mRS:Landroid/renderscript/RenderScript;
            aload 1 /* invoke */
            aload 2 /* args */
            aload 3 /* globalBindings */
            invokespecial android.renderscript.ScriptGroup$Closure.<init>:(Landroid/renderscript/RenderScript;Landroid/renderscript/Script$InvokeID;[Ljava/lang/Object;Ljava/util/Map;)V
            astore 4 /* c */
        start local 4 // android.renderscript.ScriptGroup$Closure c
         1: .line 968
            aload 0 /* this */
            getfield android.renderscript.ScriptGroup$Builder2.mClosures:Ljava/util/List;
            aload 4 /* c */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 969
            aload 4 /* c */
            areturn
        end local 4 // android.renderscript.ScriptGroup$Closure c
        end local 3 // java.util.Map globalBindings
        end local 2 // java.lang.Object[] args
        end local 1 // android.renderscript.Script$InvokeID invoke
        end local 0 // android.renderscript.ScriptGroup$Builder2 this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Landroid/renderscript/ScriptGroup$Builder2;
            0    3     1          invoke  Landroid/renderscript/Script$InvokeID;
            0    3     2            args  [Ljava/lang/Object;
            0    3     3  globalBindings  Ljava/util/Map<Landroid/renderscript/Script$FieldID;Ljava/lang/Object;>;
            1    3     4               c  Landroid/renderscript/ScriptGroup$Closure;
    Signature: (Landroid/renderscript/Script$InvokeID;[Ljava/lang/Object;Ljava/util/Map<Landroid/renderscript/Script$FieldID;Ljava/lang/Object;>;)Landroid/renderscript/ScriptGroup$Closure;
    MethodParameters:
                Name  Flags
      invoke          
      args            
      globalBindings  

  public android.renderscript.ScriptGroup$Input addInput();
    descriptor: ()Landroid/renderscript/ScriptGroup$Input;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.renderscript.ScriptGroup$Builder2 this
         0: .line 979
            new android.renderscript.ScriptGroup$Input
            dup
            invokespecial android.renderscript.ScriptGroup$Input.<init>:()V
            astore 1 /* unbound */
        start local 1 // android.renderscript.ScriptGroup$Input unbound
         1: .line 980
            aload 0 /* this */
            getfield android.renderscript.ScriptGroup$Builder2.mInputs:Ljava/util/List;
            aload 1 /* unbound */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 981
            aload 1 /* unbound */
            areturn
        end local 1 // android.renderscript.ScriptGroup$Input unbound
        end local 0 // android.renderscript.ScriptGroup$Builder2 this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Landroid/renderscript/ScriptGroup$Builder2;
            1    3     1  unbound  Landroid/renderscript/ScriptGroup$Input;

  public android.renderscript.ScriptGroup$Closure addKernel(android.renderscript.Script$KernelID, android.renderscript.Type, java.lang.Object[]);
    descriptor: (Landroid/renderscript/Script$KernelID;Landroid/renderscript/Type;[Ljava/lang/Object;)Landroid/renderscript/ScriptGroup$Closure;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // android.renderscript.ScriptGroup$Builder2 this
        start local 1 // android.renderscript.Script$KernelID k
        start local 2 // android.renderscript.Type returnType
        start local 3 // java.lang.Object[] argsAndBindings
         0: .line 993
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* args */
        start local 4 // java.util.ArrayList args
         1: .line 994
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 5 /* bindingMap */
        start local 5 // java.util.Map bindingMap
         2: .line 995
            aload 0 /* this */
            aload 3 /* argsAndBindings */
            aload 4 /* args */
            aload 5 /* bindingMap */
            invokevirtual android.renderscript.ScriptGroup$Builder2.seperateArgsAndBindings:([Ljava/lang/Object;Ljava/util/ArrayList;Ljava/util/Map;)Z
            ifne 4
         3: .line 996
            aconst_null
            areturn
         4: .line 998
      StackMap locals: java.util.ArrayList java.util.Map
      StackMap stack:
            aload 0 /* this */
            aload 1 /* k */
            aload 2 /* returnType */
            aload 4 /* args */
            invokevirtual java.util.ArrayList.toArray:()[Ljava/lang/Object;
            aload 5 /* bindingMap */
            invokevirtual android.renderscript.ScriptGroup$Builder2.addKernelInternal:(Landroid/renderscript/Script$KernelID;Landroid/renderscript/Type;[Ljava/lang/Object;Ljava/util/Map;)Landroid/renderscript/ScriptGroup$Closure;
            areturn
        end local 5 // java.util.Map bindingMap
        end local 4 // java.util.ArrayList args
        end local 3 // java.lang.Object[] argsAndBindings
        end local 2 // android.renderscript.Type returnType
        end local 1 // android.renderscript.Script$KernelID k
        end local 0 // android.renderscript.ScriptGroup$Builder2 this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Landroid/renderscript/ScriptGroup$Builder2;
            0    5     1                k  Landroid/renderscript/Script$KernelID;
            0    5     2       returnType  Landroid/renderscript/Type;
            0    5     3  argsAndBindings  [Ljava/lang/Object;
            1    5     4             args  Ljava/util/ArrayList<Ljava/lang/Object;>;
            2    5     5       bindingMap  Ljava/util/Map<Landroid/renderscript/Script$FieldID;Ljava/lang/Object;>;
    MethodParameters:
                 Name  Flags
      k                
      returnType       
      argsAndBindings  

  public android.renderscript.ScriptGroup$Closure addInvoke(android.renderscript.Script$InvokeID, java.lang.Object[]);
    descriptor: (Landroid/renderscript/Script$InvokeID;[Ljava/lang/Object;)Landroid/renderscript/ScriptGroup$Closure;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // android.renderscript.ScriptGroup$Builder2 this
        start local 1 // android.renderscript.Script$InvokeID invoke
        start local 2 // java.lang.Object[] argsAndBindings
         0: .line 1010
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* args */
        start local 3 // java.util.ArrayList args
         1: .line 1011
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 4 /* bindingMap */
        start local 4 // java.util.Map bindingMap
         2: .line 1012
            aload 0 /* this */
            aload 2 /* argsAndBindings */
            aload 3 /* args */
            aload 4 /* bindingMap */
            invokevirtual android.renderscript.ScriptGroup$Builder2.seperateArgsAndBindings:([Ljava/lang/Object;Ljava/util/ArrayList;Ljava/util/Map;)Z
            ifne 4
         3: .line 1013
            aconst_null
            areturn
         4: .line 1015
      StackMap locals: java.util.ArrayList java.util.Map
      StackMap stack:
            aload 0 /* this */
            aload 1 /* invoke */
            aload 3 /* args */
            invokevirtual java.util.ArrayList.toArray:()[Ljava/lang/Object;
            aload 4 /* bindingMap */
            invokevirtual android.renderscript.ScriptGroup$Builder2.addInvokeInternal:(Landroid/renderscript/Script$InvokeID;[Ljava/lang/Object;Ljava/util/Map;)Landroid/renderscript/ScriptGroup$Closure;
            areturn
        end local 4 // java.util.Map bindingMap
        end local 3 // java.util.ArrayList args
        end local 2 // java.lang.Object[] argsAndBindings
        end local 1 // android.renderscript.Script$InvokeID invoke
        end local 0 // android.renderscript.ScriptGroup$Builder2 this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Landroid/renderscript/ScriptGroup$Builder2;
            0    5     1           invoke  Landroid/renderscript/Script$InvokeID;
            0    5     2  argsAndBindings  [Ljava/lang/Object;
            1    5     3             args  Ljava/util/ArrayList<Ljava/lang/Object;>;
            2    5     4       bindingMap  Ljava/util/Map<Landroid/renderscript/Script$FieldID;Ljava/lang/Object;>;
    MethodParameters:
                 Name  Flags
      invoke           
      argsAndBindings  

  public android.renderscript.ScriptGroup create(java.lang.String, android.renderscript.ScriptGroup$Future[]);
    descriptor: (Ljava/lang/String;[Landroid/renderscript/ScriptGroup$Future;)Landroid/renderscript/ScriptGroup;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // android.renderscript.ScriptGroup$Builder2 this
        start local 1 // java.lang.String name
        start local 2 // android.renderscript.ScriptGroup$Future[] outputs
         0: .line 1030
            aload 1 /* name */
            ifnull 2
            aload 1 /* name */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 2
            aload 1 /* name */
            invokevirtual java.lang.String.length:()I
            bipush 100
            if_icmpgt 2
         1: .line 1031
            aload 1 /* name */
            aload 1 /* name */
            ldc "[^a-zA-Z0-9-]"
            ldc "_"
            invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 1032
      StackMap locals:
      StackMap stack:
            new android.renderscript.RSIllegalArgumentException
            dup
            ldc "invalid script group name"
            invokespecial android.renderscript.RSIllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1034
      StackMap locals:
      StackMap stack:
            new android.renderscript.ScriptGroup
            dup
            aload 0 /* this */
            getfield android.renderscript.ScriptGroup$Builder2.mRS:Landroid/renderscript/RenderScript;
            aload 1 /* name */
            aload 0 /* this */
            getfield android.renderscript.ScriptGroup$Builder2.mClosures:Ljava/util/List;
            aload 0 /* this */
            getfield android.renderscript.ScriptGroup$Builder2.mInputs:Ljava/util/List;
            aload 2 /* outputs */
            invokespecial android.renderscript.ScriptGroup.<init>:(Landroid/renderscript/RenderScript;Ljava/lang/String;Ljava/util/List;Ljava/util/List;[Landroid/renderscript/ScriptGroup$Future;)V
            astore 3 /* ret */
        start local 3 // android.renderscript.ScriptGroup ret
         4: .line 1035
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield android.renderscript.ScriptGroup$Builder2.mClosures:Ljava/util/List;
         5: .line 1036
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield android.renderscript.ScriptGroup$Builder2.mInputs:Ljava/util/List;
         6: .line 1037
            aload 3 /* ret */
            areturn
        end local 3 // android.renderscript.ScriptGroup ret
        end local 2 // android.renderscript.ScriptGroup$Future[] outputs
        end local 1 // java.lang.String name
        end local 0 // android.renderscript.ScriptGroup$Builder2 this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Landroid/renderscript/ScriptGroup$Builder2;
            0    7     1     name  Ljava/lang/String;
            0    7     2  outputs  [Landroid/renderscript/ScriptGroup$Future;
            4    7     3      ret  Landroid/renderscript/ScriptGroup;
    MethodParameters:
         Name  Flags
      name     
      outputs  

  private boolean seperateArgsAndBindings([], java.util.ArrayList<java.lang.Object>, java.util.Map<android.renderscript.Script$FieldID, java.lang.Object>);
    descriptor: ([Ljava/lang/Object;Ljava/util/ArrayList;Ljava/util/Map;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // android.renderscript.ScriptGroup$Builder2 this
        start local 1 // java.lang.Object[] argsAndBindings
        start local 2 // java.util.ArrayList args
        start local 3 // java.util.Map bindingMap
         0: .line 1044
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         1: goto 6
         2: .line 1045
      StackMap locals: int
      StackMap stack:
            aload 1 /* argsAndBindings */
            iload 4 /* i */
            aaload
            instanceof android.renderscript.ScriptGroup$Binding
            ifeq 4
         3: .line 1046
            goto 13
         4: .line 1048
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
            aload 1 /* argsAndBindings */
            iload 4 /* i */
            aaload
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         5: .line 1044
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 4 /* i */
            aload 1 /* argsAndBindings */
            arraylength
            if_icmplt 2
         7: .line 1051
            goto 13
         8: .line 1052
      StackMap locals:
      StackMap stack:
            aload 1 /* argsAndBindings */
            iload 4 /* i */
            aaload
            instanceof android.renderscript.ScriptGroup$Binding
            ifne 10
         9: .line 1053
            iconst_0
            ireturn
        10: .line 1055
      StackMap locals:
      StackMap stack:
            aload 1 /* argsAndBindings */
            iload 4 /* i */
            aaload
            checkcast android.renderscript.ScriptGroup$Binding
            astore 5 /* b */
        start local 5 // android.renderscript.ScriptGroup$Binding b
        11: .line 1056
            aload 3 /* bindingMap */
            aload 5 /* b */
            invokevirtual android.renderscript.ScriptGroup$Binding.getField:()Landroid/renderscript/Script$FieldID;
            aload 5 /* b */
            invokevirtual android.renderscript.ScriptGroup$Binding.getValue:()Ljava/lang/Object;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // android.renderscript.ScriptGroup$Binding b
        12: .line 1051
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 4 /* i */
            aload 1 /* argsAndBindings */
            arraylength
            if_icmplt 8
        14: .line 1059
            iconst_1
            ireturn
        end local 4 // int i
        end local 3 // java.util.Map bindingMap
        end local 2 // java.util.ArrayList args
        end local 1 // java.lang.Object[] argsAndBindings
        end local 0 // android.renderscript.ScriptGroup$Builder2 this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   15     0             this  Landroid/renderscript/ScriptGroup$Builder2;
            0   15     1  argsAndBindings  [Ljava/lang/Object;
            0   15     2             args  Ljava/util/ArrayList<Ljava/lang/Object;>;
            0   15     3       bindingMap  Ljava/util/Map<Landroid/renderscript/Script$FieldID;Ljava/lang/Object;>;
            1   15     4                i  I
           11   12     5                b  Landroid/renderscript/ScriptGroup$Binding;
    Signature: ([Ljava/lang/Object;Ljava/util/ArrayList<Ljava/lang/Object;>;Ljava/util/Map<Landroid/renderscript/Script$FieldID;Ljava/lang/Object;>;)Z
    MethodParameters:
                 Name  Flags
      argsAndBindings  
      args             
      bindingMap       
}
SourceFile: "ScriptGroup.java"
NestHost: android.renderscript.ScriptGroup
InnerClasses:
  public final FieldID = android.renderscript.Script$FieldID of android.renderscript.Script
  public final InvokeID = android.renderscript.Script$InvokeID of android.renderscript.Script
  public final KernelID = android.renderscript.Script$KernelID of android.renderscript.Script
  public final Binding = android.renderscript.ScriptGroup$Binding of android.renderscript.ScriptGroup
  public final Builder2 = android.renderscript.ScriptGroup$Builder2 of android.renderscript.ScriptGroup
  public final Closure = android.renderscript.ScriptGroup$Closure of android.renderscript.ScriptGroup
  public final Future = android.renderscript.ScriptGroup$Future of android.renderscript.ScriptGroup
  public final Input = android.renderscript.ScriptGroup$Input of android.renderscript.ScriptGroup