public final class android.renderscript.ScriptIntrinsicHistogram extends android.renderscript.ScriptIntrinsic
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: android.renderscript.ScriptIntrinsicHistogram
super_class: android.renderscript.ScriptIntrinsic
{
private android.renderscript.Allocation mOut;
descriptor: Landroid/renderscript/Allocation;
flags: (0x0002) ACC_PRIVATE
private void <init>(long, android.renderscript.RenderScript);
descriptor: (JLandroid/renderscript/RenderScript;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
lload 1
aload 3
invokespecial android.renderscript.ScriptIntrinsic.<init>:(JLandroid/renderscript/RenderScript;)V
1: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/renderscript/ScriptIntrinsicHistogram;
0 2 1 id J
0 2 3 rs Landroid/renderscript/RenderScript;
MethodParameters:
Name Flags
id
rs
public static android.renderscript.ScriptIntrinsicHistogram create(android.renderscript.RenderScript, android.renderscript.Element);
descriptor: (Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)Landroid/renderscript/ScriptIntrinsicHistogram;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokestatic android.renderscript.Element.U8_4:(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
invokevirtual android.renderscript.Element.isCompatible:(Landroid/renderscript/Element;)Z
ifne 5
1: aload 1
aload 0
invokestatic android.renderscript.Element.U8_3:(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
invokevirtual android.renderscript.Element.isCompatible:(Landroid/renderscript/Element;)Z
ifne 5
2: aload 1
aload 0
invokestatic android.renderscript.Element.U8_2:(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
invokevirtual android.renderscript.Element.isCompatible:(Landroid/renderscript/Element;)Z
ifne 5
3: aload 1
aload 0
invokestatic android.renderscript.Element.U8:(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
invokevirtual android.renderscript.Element.isCompatible:(Landroid/renderscript/Element;)Z
ifne 5
4: new android.renderscript.RSIllegalArgumentException
dup
ldc "Unsupported element type."
invokespecial android.renderscript.RSIllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
bipush 9
aload 1
aload 0
invokevirtual android.renderscript.Element.getID:(Landroid/renderscript/RenderScript;)J
invokevirtual android.renderscript.RenderScript.nScriptIntrinsicCreate:(IJ)J
lstore 2
start local 2 6: new android.renderscript.ScriptIntrinsicHistogram
dup
lload 2
aload 0
invokespecial android.renderscript.ScriptIntrinsicHistogram.<init>:(JLandroid/renderscript/RenderScript;)V
astore 4
start local 4 7: aload 4
areturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 rs Landroid/renderscript/RenderScript;
0 8 1 e Landroid/renderscript/Element;
6 8 2 id J
7 8 4 sib Landroid/renderscript/ScriptIntrinsicHistogram;
MethodParameters:
Name Flags
rs
e
public void forEach(android.renderscript.Allocation);
descriptor: (Landroid/renderscript/Allocation;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
invokevirtual android.renderscript.ScriptIntrinsicHistogram.forEach:(Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/renderscript/ScriptIntrinsicHistogram;
0 2 1 ain Landroid/renderscript/Allocation;
MethodParameters:
Name Flags
ain
public void forEach(android.renderscript.Allocation, android.renderscript.Script$LaunchOptions);
descriptor: (Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual android.renderscript.Allocation.getType:()Landroid/renderscript/Type;
invokevirtual android.renderscript.Type.getElement:()Landroid/renderscript/Element;
invokevirtual android.renderscript.Element.getVectorSize:()I
1: aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mOut:Landroid/renderscript/Allocation;
invokevirtual android.renderscript.Allocation.getType:()Landroid/renderscript/Type;
invokevirtual android.renderscript.Type.getElement:()Landroid/renderscript/Element;
invokevirtual android.renderscript.Element.getVectorSize:()I
if_icmpge 5
2: new android.renderscript.RSIllegalArgumentException
dup
3: ldc "Input vector size must be >= output vector size."
4: invokespecial android.renderscript.RSIllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 1
invokevirtual android.renderscript.Allocation.getType:()Landroid/renderscript/Type;
invokevirtual android.renderscript.Type.getElement:()Landroid/renderscript/Element;
aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mRS:Landroid/renderscript/RenderScript;
invokestatic android.renderscript.Element.U8:(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
invokevirtual android.renderscript.Element.isCompatible:(Landroid/renderscript/Element;)Z
ifne 10
6: aload 1
invokevirtual android.renderscript.Allocation.getType:()Landroid/renderscript/Type;
invokevirtual android.renderscript.Type.getElement:()Landroid/renderscript/Element;
aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mRS:Landroid/renderscript/RenderScript;
invokestatic android.renderscript.Element.U8_2:(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
invokevirtual android.renderscript.Element.isCompatible:(Landroid/renderscript/Element;)Z
ifne 10
7: aload 1
invokevirtual android.renderscript.Allocation.getType:()Landroid/renderscript/Type;
invokevirtual android.renderscript.Type.getElement:()Landroid/renderscript/Element;
aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mRS:Landroid/renderscript/RenderScript;
invokestatic android.renderscript.Element.U8_3:(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
invokevirtual android.renderscript.Element.isCompatible:(Landroid/renderscript/Element;)Z
ifne 10
8: aload 1
invokevirtual android.renderscript.Allocation.getType:()Landroid/renderscript/Type;
invokevirtual android.renderscript.Type.getElement:()Landroid/renderscript/Element;
aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mRS:Landroid/renderscript/RenderScript;
invokestatic android.renderscript.Element.U8_4:(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
invokevirtual android.renderscript.Element.isCompatible:(Landroid/renderscript/Element;)Z
ifne 10
9: new android.renderscript.RSIllegalArgumentException
dup
ldc "Input type must be U8, U8_1, U8_2 or U8_4."
invokespecial android.renderscript.RSIllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
aload 0
iconst_0
aload 1
aconst_null
aconst_null
aload 2
invokevirtual android.renderscript.ScriptIntrinsicHistogram.forEach:(ILandroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/FieldPacker;Landroid/renderscript/Script$LaunchOptions;)V
11: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Landroid/renderscript/ScriptIntrinsicHistogram;
0 12 1 ain Landroid/renderscript/Allocation;
0 12 2 opt Landroid/renderscript/Script$LaunchOptions;
MethodParameters:
Name Flags
ain
opt
public void setDotCoefficients(float, float, float, float);
descriptor: (FFFF)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: fload 1
fconst_0
fcmpg
iflt 1
fload 2
fconst_0
fcmpg
iflt 1
fload 3
fconst_0
fcmpg
iflt 1
fload 4
fconst_0
fcmpg
ifge 2
1: StackMap locals:
StackMap stack:
new android.renderscript.RSIllegalArgumentException
dup
ldc "Coefficient may not be negative."
invokespecial android.renderscript.RSIllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
fload 1
fload 2
fadd
fload 3
fadd
fload 4
fadd
fconst_1
fcmpl
ifle 4
3: new android.renderscript.RSIllegalArgumentException
dup
ldc "Sum of coefficients must be 1.0 or less."
invokespecial android.renderscript.RSIllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
new android.renderscript.FieldPacker
dup
bipush 16
invokespecial android.renderscript.FieldPacker.<init>:(I)V
astore 5
start local 5 5: aload 5
fload 1
invokevirtual android.renderscript.FieldPacker.addF32:(F)V
6: aload 5
fload 2
invokevirtual android.renderscript.FieldPacker.addF32:(F)V
7: aload 5
fload 3
invokevirtual android.renderscript.FieldPacker.addF32:(F)V
8: aload 5
fload 4
invokevirtual android.renderscript.FieldPacker.addF32:(F)V
9: aload 0
iconst_0
aload 5
invokevirtual android.renderscript.ScriptIntrinsicHistogram.setVar:(ILandroid/renderscript/FieldPacker;)V
10: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/renderscript/ScriptIntrinsicHistogram;
0 11 1 r F
0 11 2 g F
0 11 3 b F
0 11 4 a F
5 11 5 fp Landroid/renderscript/FieldPacker;
MethodParameters:
Name Flags
r
g
b
a
public void setOutput(android.renderscript.Allocation);
descriptor: (Landroid/renderscript/Allocation;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield android.renderscript.ScriptIntrinsicHistogram.mOut:Landroid/renderscript/Allocation;
1: aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mOut:Landroid/renderscript/Allocation;
invokevirtual android.renderscript.Allocation.getType:()Landroid/renderscript/Type;
invokevirtual android.renderscript.Type.getElement:()Landroid/renderscript/Element;
aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mRS:Landroid/renderscript/RenderScript;
invokestatic android.renderscript.Element.U32:(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
if_acmpeq 10
2: aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mOut:Landroid/renderscript/Allocation;
invokevirtual android.renderscript.Allocation.getType:()Landroid/renderscript/Type;
invokevirtual android.renderscript.Type.getElement:()Landroid/renderscript/Element;
aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mRS:Landroid/renderscript/RenderScript;
invokestatic android.renderscript.Element.U32_2:(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
if_acmpeq 10
3: aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mOut:Landroid/renderscript/Allocation;
invokevirtual android.renderscript.Allocation.getType:()Landroid/renderscript/Type;
invokevirtual android.renderscript.Type.getElement:()Landroid/renderscript/Element;
aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mRS:Landroid/renderscript/RenderScript;
invokestatic android.renderscript.Element.U32_3:(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
if_acmpeq 10
4: aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mOut:Landroid/renderscript/Allocation;
invokevirtual android.renderscript.Allocation.getType:()Landroid/renderscript/Type;
invokevirtual android.renderscript.Type.getElement:()Landroid/renderscript/Element;
aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mRS:Landroid/renderscript/RenderScript;
invokestatic android.renderscript.Element.U32_4:(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
if_acmpeq 10
5: aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mOut:Landroid/renderscript/Allocation;
invokevirtual android.renderscript.Allocation.getType:()Landroid/renderscript/Type;
invokevirtual android.renderscript.Type.getElement:()Landroid/renderscript/Element;
aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mRS:Landroid/renderscript/RenderScript;
invokestatic android.renderscript.Element.I32:(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
if_acmpeq 10
6: aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mOut:Landroid/renderscript/Allocation;
invokevirtual android.renderscript.Allocation.getType:()Landroid/renderscript/Type;
invokevirtual android.renderscript.Type.getElement:()Landroid/renderscript/Element;
aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mRS:Landroid/renderscript/RenderScript;
invokestatic android.renderscript.Element.I32_2:(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
if_acmpeq 10
7: aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mOut:Landroid/renderscript/Allocation;
invokevirtual android.renderscript.Allocation.getType:()Landroid/renderscript/Type;
invokevirtual android.renderscript.Type.getElement:()Landroid/renderscript/Element;
aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mRS:Landroid/renderscript/RenderScript;
invokestatic android.renderscript.Element.I32_3:(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
if_acmpeq 10
8: aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mOut:Landroid/renderscript/Allocation;
invokevirtual android.renderscript.Allocation.getType:()Landroid/renderscript/Type;
invokevirtual android.renderscript.Type.getElement:()Landroid/renderscript/Element;
aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mRS:Landroid/renderscript/RenderScript;
invokestatic android.renderscript.Element.I32_4:(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
if_acmpeq 10
9: new android.renderscript.RSIllegalArgumentException
dup
ldc "Output type must be U32 or I32."
invokespecial android.renderscript.RSIllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mOut:Landroid/renderscript/Allocation;
invokevirtual android.renderscript.Allocation.getType:()Landroid/renderscript/Type;
invokevirtual android.renderscript.Type.getX:()I
sipush 256
if_icmpne 14
11: aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mOut:Landroid/renderscript/Allocation;
invokevirtual android.renderscript.Allocation.getType:()Landroid/renderscript/Type;
invokevirtual android.renderscript.Type.getY:()I
ifne 14
12: aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mOut:Landroid/renderscript/Allocation;
invokevirtual android.renderscript.Allocation.getType:()Landroid/renderscript/Type;
invokevirtual android.renderscript.Type.hasMipmaps:()Z
ifne 14
13: aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mOut:Landroid/renderscript/Allocation;
invokevirtual android.renderscript.Allocation.getType:()Landroid/renderscript/Type;
invokevirtual android.renderscript.Type.getYuv:()I
ifeq 15
14: StackMap locals:
StackMap stack:
new android.renderscript.RSIllegalArgumentException
dup
ldc "Output must be 1D, 256 elements."
invokespecial android.renderscript.RSIllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
aload 0
iconst_1
aload 1
invokevirtual android.renderscript.ScriptIntrinsicHistogram.setVar:(ILandroid/renderscript/BaseObj;)V
16: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Landroid/renderscript/ScriptIntrinsicHistogram;
0 17 1 aout Landroid/renderscript/Allocation;
MethodParameters:
Name Flags
aout
public void forEach_Dot(android.renderscript.Allocation);
descriptor: (Landroid/renderscript/Allocation;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
invokevirtual android.renderscript.ScriptIntrinsicHistogram.forEach_Dot:(Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/renderscript/ScriptIntrinsicHistogram;
0 2 1 ain Landroid/renderscript/Allocation;
MethodParameters:
Name Flags
ain
public void forEach_Dot(android.renderscript.Allocation, android.renderscript.Script$LaunchOptions);
descriptor: (Landroid/renderscript/Allocation;Landroid/renderscript/Script$LaunchOptions;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mOut:Landroid/renderscript/Allocation;
invokevirtual android.renderscript.Allocation.getType:()Landroid/renderscript/Type;
invokevirtual android.renderscript.Type.getElement:()Landroid/renderscript/Element;
invokevirtual android.renderscript.Element.getVectorSize:()I
iconst_1
if_icmpeq 2
1: new android.renderscript.RSIllegalArgumentException
dup
ldc "Output vector size must be one."
invokespecial android.renderscript.RSIllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual android.renderscript.Allocation.getType:()Landroid/renderscript/Type;
invokevirtual android.renderscript.Type.getElement:()Landroid/renderscript/Element;
aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mRS:Landroid/renderscript/RenderScript;
invokestatic android.renderscript.Element.U8:(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
invokevirtual android.renderscript.Element.isCompatible:(Landroid/renderscript/Element;)Z
ifne 7
3: aload 1
invokevirtual android.renderscript.Allocation.getType:()Landroid/renderscript/Type;
invokevirtual android.renderscript.Type.getElement:()Landroid/renderscript/Element;
aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mRS:Landroid/renderscript/RenderScript;
invokestatic android.renderscript.Element.U8_2:(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
invokevirtual android.renderscript.Element.isCompatible:(Landroid/renderscript/Element;)Z
ifne 7
4: aload 1
invokevirtual android.renderscript.Allocation.getType:()Landroid/renderscript/Type;
invokevirtual android.renderscript.Type.getElement:()Landroid/renderscript/Element;
aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mRS:Landroid/renderscript/RenderScript;
invokestatic android.renderscript.Element.U8_3:(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
invokevirtual android.renderscript.Element.isCompatible:(Landroid/renderscript/Element;)Z
ifne 7
5: aload 1
invokevirtual android.renderscript.Allocation.getType:()Landroid/renderscript/Type;
invokevirtual android.renderscript.Type.getElement:()Landroid/renderscript/Element;
aload 0
getfield android.renderscript.ScriptIntrinsicHistogram.mRS:Landroid/renderscript/RenderScript;
invokestatic android.renderscript.Element.U8_4:(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;
invokevirtual android.renderscript.Element.isCompatible:(Landroid/renderscript/Element;)Z
ifne 7
6: new android.renderscript.RSIllegalArgumentException
dup
ldc "Input type must be U8, U8_1, U8_2 or U8_4."
invokespecial android.renderscript.RSIllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 0
iconst_1
aload 1
aconst_null
aconst_null
aload 2
invokevirtual android.renderscript.ScriptIntrinsicHistogram.forEach:(ILandroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/FieldPacker;Landroid/renderscript/Script$LaunchOptions;)V
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Landroid/renderscript/ScriptIntrinsicHistogram;
0 9 1 ain Landroid/renderscript/Allocation;
0 9 2 opt Landroid/renderscript/Script$LaunchOptions;
MethodParameters:
Name Flags
ain
opt
public android.renderscript.Script$KernelID getKernelID_Separate();
descriptor: ()Landroid/renderscript/Script$KernelID;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
iconst_3
aconst_null
aconst_null
invokevirtual android.renderscript.ScriptIntrinsicHistogram.createKernelID:(IILandroid/renderscript/Element;Landroid/renderscript/Element;)Landroid/renderscript/Script$KernelID;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/renderscript/ScriptIntrinsicHistogram;
public android.renderscript.Script$FieldID getFieldID_Input();
descriptor: ()Landroid/renderscript/Script$FieldID;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
aconst_null
invokevirtual android.renderscript.ScriptIntrinsicHistogram.createFieldID:(ILandroid/renderscript/Element;)Landroid/renderscript/Script$FieldID;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/renderscript/ScriptIntrinsicHistogram;
}
SourceFile: "ScriptIntrinsicHistogram.java"
InnerClasses:
public final FieldID = android.renderscript.Script$FieldID of android.renderscript.Script
public final KernelID = android.renderscript.Script$KernelID of android.renderscript.Script
public final LaunchOptions = android.renderscript.Script$LaunchOptions of android.renderscript.Script