public class com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest
  super_class: java.lang.Object
{
  public static final java.lang.String lipsum;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"

  public static final java.lang.String lipsumLower;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.lang.String lipsumUpper;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private final java.lang.String a1;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int fromIndex1;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String a2;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int fromIndex2;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String mask;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int length;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean expected;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 63
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            putstatic com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.lipsumLower:Ljava/lang/String;
         1: .line 64
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
            putstatic com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.lipsumUpper:Ljava/lang/String;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.Iterable<java.lang.Object[]> data();
    descriptor: ()Ljava/lang/Iterable;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 68
            iconst_0
            invokestatic com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.data:(Z)Ljava/util/ArrayList;
            astore 0 /* ret */
        start local 0 // java.util.ArrayList ret
         1: .line 69
            aload 0 /* ret */
            iconst_1
            invokestatic com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.data:(Z)Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
            pop
         2: .line 70
            aload 0 /* ret */
            areturn
        end local 0 // java.util.ArrayList ret
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    3     0   ret  Ljava/util/ArrayList<[Ljava/lang/Object;>;
    Signature: ()Ljava/lang/Iterable<[Ljava/lang/Object;>;
    RuntimeVisibleAnnotations: 
      org.junit.runners.Parameterized$Parameters(name = "{index}: fromIndex1 {1} fromIndex2 {3} length {5} mask {4} expected {6}")

  public static java.util.ArrayList<java.lang.Object[]> data(boolean);
    descriptor: (Z)Ljava/util/ArrayList;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=20, args_size=1
        start local 0 // boolean withMask
         0: .line 74
            iload 0 /* withMask */
            ifeq 1
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            aastore
            dup
            iconst_1
            getstatic com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.lipsumUpper:Ljava/lang/String;
            aastore
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            aastore
      StackMap locals:
      StackMap stack: java.lang.String[]
         2: astore 1 /* haystacks */
        start local 1 // java.lang.String[] haystacks
         3: .line 75
            iload 0 /* withMask */
            ifeq 4
            getstatic com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.lipsumLower:Ljava/lang/String;
            goto 5
      StackMap locals: java.lang.String[]
      StackMap stack:
         4: ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
      StackMap locals:
      StackMap stack: java.lang.String
         5: astore 2 /* needle */
        start local 2 // java.lang.String needle
         6: .line 76
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* ret */
        start local 3 // java.util.ArrayList ret
         7: .line 77
            aload 1 /* haystacks */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 30
      StackMap locals: int java.lang.String[] java.lang.String java.util.ArrayList top int int java.lang.String[]
      StackMap stack:
         8: aload 7
            iload 5
            aaload
            astore 4 /* s */
        start local 4 // java.lang.String s
         9: .line 78
            bipush 6
            newarray 10
            dup
            iconst_1
            iconst_1
            iastore
            dup
            iconst_2
            bipush 15
            iastore
            dup
            iconst_3
            bipush 16
            iastore
            dup
            iconst_4
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            invokevirtual java.lang.String.length:()I
            bipush 16
            isub
            iastore
            dup
            iconst_5
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            invokevirtual java.lang.String.length:()I
            bipush 15
            isub
            iastore
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 28
      StackMap locals: int java.lang.String[] java.lang.String java.util.ArrayList java.lang.String int int java.lang.String[] top int int int[]
      StackMap stack:
        10: aload 11
            iload 9
            iaload
            istore 8 /* fromIndex */
        start local 8 // int fromIndex
        11: .line 79
            bipush 18
            newarray 10
            dup
            iconst_0
            iconst_1
            iastore
            dup
            iconst_1
            iconst_2
            iastore
            dup
            iconst_2
            iconst_3
            iastore
            dup
            iconst_3
            iconst_4
            iastore
            dup
            iconst_4
            iconst_5
            iastore
            dup
            iconst_5
            bipush 7
            iastore
            dup
            bipush 6
            bipush 8
            iastore
            dup
            bipush 7
            bipush 9
            iastore
            dup
            bipush 8
            bipush 15
            iastore
            dup
            bipush 9
            bipush 16
            iastore
            dup
            bipush 10
            bipush 17
            iastore
            dup
            bipush 11
            bipush 31
            iastore
            dup
            bipush 12
            bipush 32
            iastore
            dup
            bipush 13
            bipush 33
            iastore
            dup
            bipush 14
            bipush 63
            iastore
            dup
            bipush 15
            bipush 64
            iastore
            dup
            bipush 16
            bipush 65
            iastore
            dup
            bipush 17
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            invokevirtual java.lang.String.length:()I
            iastore
            dup
            astore 15
            arraylength
            istore 14
            iconst_0
            istore 13
            goto 26
      StackMap locals: int java.lang.String[] java.lang.String java.util.ArrayList java.lang.String int int java.lang.String[] int int int int[] top int int int[]
      StackMap stack:
        12: aload 15
            iload 13
            iaload
            istore 12 /* length */
        start local 12 // int length
        13: .line 80
            iload 0 /* withMask */
            ifeq 14
            aload 4 /* s */
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            if_acmpne 14
            iload 8 /* fromIndex */
            ifgt 25
      StackMap locals: int java.lang.String[] java.lang.String java.util.ArrayList java.lang.String int int java.lang.String[] int int int int[] int int int int[]
      StackMap stack:
        14: iload 8 /* fromIndex */
            iload 12 /* length */
            iadd
            aload 4 /* s */
            invokevirtual java.lang.String.length:()I
            if_icmple 16
        15: .line 81
            goto 25
        16: .line 83
      StackMap locals:
      StackMap stack:
            aload 2 /* needle */
            iload 8 /* fromIndex */
            iload 8 /* fromIndex */
            iload 12 /* length */
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 16 /* sub1 */
        start local 16 // java.lang.String sub1
        17: .line 84
            new java.lang.StringBuilder
            dup
            aload 16 /* sub1 */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            iconst_1
            iadd
            i2c
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 16 /* sub1 */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 17 /* sub2 */
        start local 17 // java.lang.String sub2
        18: .line 85
            new java.lang.StringBuilder
            dup
            aload 16 /* sub1 */
            iconst_0
            aload 16 /* sub1 */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 16 /* sub1 */
            aload 16 /* sub1 */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            iconst_1
            isub
            i2c
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 18 /* sub3 */
        start local 18 // java.lang.String sub3
        19: .line 86
            new java.lang.StringBuilder
            dup
            aload 16 /* sub1 */
            iconst_0
            aload 16 /* sub1 */
            invokevirtual java.lang.String.length:()I
            iconst_2
            idiv
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 16 /* sub1 */
            aload 16 /* sub1 */
            invokevirtual java.lang.String.length:()I
            iconst_2
            idiv
            invokevirtual java.lang.String.charAt:(I)C
            iconst_1
            iadd
            i2c
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 16 /* sub1 */
            aload 16 /* sub1 */
            invokevirtual java.lang.String.length:()I
            iconst_2
            idiv
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 19 /* sub4 */
        start local 19 // java.lang.String sub4
        20: .line 87
            aload 3 /* ret */
            aload 4 /* s */
            iload 8 /* fromIndex */
            aload 2 /* needle */
            iload 8 /* fromIndex */
            aload 16 /* sub1 */
            iconst_1
            iload 0 /* withMask */
            invokestatic com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.dataRow:(Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;ZZ)[Ljava/lang/Object;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        21: .line 88
            aload 3 /* ret */
            aload 4 /* s */
            iload 8 /* fromIndex */
            aload 16 /* sub1 */
            iconst_0
            aload 16 /* sub1 */
            iconst_1
            iload 0 /* withMask */
            invokestatic com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.dataRow:(Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;ZZ)[Ljava/lang/Object;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        22: .line 89
            aload 3 /* ret */
            aload 4 /* s */
            iload 8 /* fromIndex */
            aload 17 /* sub2 */
            iconst_0
            aload 17 /* sub2 */
            iconst_0
            iload 0 /* withMask */
            invokestatic com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.dataRow:(Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;ZZ)[Ljava/lang/Object;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        23: .line 90
            aload 3 /* ret */
            aload 4 /* s */
            iload 8 /* fromIndex */
            aload 18 /* sub3 */
            iconst_0
            aload 18 /* sub3 */
            iconst_0
            iload 0 /* withMask */
            invokestatic com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.dataRow:(Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;ZZ)[Ljava/lang/Object;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        24: .line 91
            aload 3 /* ret */
            aload 4 /* s */
            iload 8 /* fromIndex */
            aload 19 /* sub4 */
            iconst_0
            aload 19 /* sub4 */
            iconst_0
            iload 0 /* withMask */
            invokestatic com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.dataRow:(Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;ZZ)[Ljava/lang/Object;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 19 // java.lang.String sub4
        end local 18 // java.lang.String sub3
        end local 17 // java.lang.String sub2
        end local 16 // java.lang.String sub1
        end local 12 // int length
        25: .line 79
      StackMap locals: int java.lang.String[] java.lang.String java.util.ArrayList java.lang.String int int java.lang.String[] int int int int[] top int int int[]
      StackMap stack:
            iinc 13 1
      StackMap locals:
      StackMap stack:
        26: iload 13
            iload 14
            if_icmplt 12
        end local 8 // int fromIndex
        27: .line 78
            iinc 9 1
      StackMap locals: int java.lang.String[] java.lang.String java.util.ArrayList java.lang.String int int java.lang.String[] top int int int[]
      StackMap stack:
        28: iload 9
            iload 10
            if_icmplt 10
        end local 4 // java.lang.String s
        29: .line 77
            iinc 5 1
      StackMap locals: int java.lang.String[] java.lang.String java.util.ArrayList top int int java.lang.String[]
      StackMap stack:
        30: iload 5
            iload 6
            if_icmplt 8
        31: .line 95
            aload 3 /* ret */
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            iconst_0
            aload 2 /* needle */
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            invokevirtual java.lang.String.length:()I
            iconst_0
            iconst_1
            iload 0 /* withMask */
            invokestatic com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.dataRow:(Ljava/lang/String;ILjava/lang/String;IIZZ)[Ljava/lang/Object;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        32: .line 96
            aload 3 /* ret */
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            iconst_0
            aload 2 /* needle */
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            invokevirtual java.lang.String.length:()I
            iconst_1
            iconst_0
            iload 0 /* withMask */
            invokestatic com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.dataRow:(Ljava/lang/String;ILjava/lang/String;IIZZ)[Ljava/lang/Object;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        33: .line 97
            aload 3 /* ret */
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            invokevirtual java.lang.String.length:()I
            aload 2 /* needle */
            iconst_0
            iconst_0
            iconst_1
            iload 0 /* withMask */
            invokestatic com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.dataRow:(Ljava/lang/String;ILjava/lang/String;IIZZ)[Ljava/lang/Object;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        34: .line 98
            aload 3 /* ret */
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            invokevirtual java.lang.String.length:()I
            aload 2 /* needle */
            iconst_0
            iconst_1
            iconst_0
            iload 0 /* withMask */
            invokestatic com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.dataRow:(Ljava/lang/String;ILjava/lang/String;IIZZ)[Ljava/lang/Object;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        35: .line 99
            aload 3 /* ret */
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            aload 2 /* needle */
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            iconst_2
            iconst_0
            iload 0 /* withMask */
            invokestatic com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.dataRow:(Ljava/lang/String;ILjava/lang/String;IIZZ)[Ljava/lang/Object;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        36: .line 100
            aload 3 /* ret */
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            invokevirtual java.lang.String.length:()I
            iconst_2
            isub
            aload 2 /* needle */
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            invokevirtual java.lang.String.length:()I
            iconst_2
            isub
            iconst_2
            iconst_1
            iload 0 /* withMask */
            invokestatic com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.dataRow:(Ljava/lang/String;ILjava/lang/String;IIZZ)[Ljava/lang/Object;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        37: .line 101
            aload 3 /* ret */
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            iconst_0
            aload 2 /* needle */
            iconst_0
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            iconst_1
            iload 0 /* withMask */
            invokestatic com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.dataRow:(Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;ZZ)[Ljava/lang/Object;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        38: .line 102
            aload 3 /* ret */
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            iconst_0
            aload 2 /* needle */
            iconst_0
            ldc "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \u0000 sed diam voluptua. At vero \uFFFF eos et accusam et justo duo dolores 0"
            invokevirtual java.lang.String.length:()I
            iconst_1
            iadd
            iconst_0
            iload 0 /* withMask */
            invokestatic com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.dataRow:(Ljava/lang/String;ILjava/lang/String;IIZZ)[Ljava/lang/Object;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        39: .line 103
            aload 3 /* ret */
            areturn
        end local 3 // java.util.ArrayList ret
        end local 2 // java.lang.String needle
        end local 1 // java.lang.String[] haystacks
        end local 0 // boolean withMask
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   40     0   withMask  Z
            3   40     1  haystacks  [Ljava/lang/String;
            6   40     2     needle  Ljava/lang/String;
            7   40     3        ret  Ljava/util/ArrayList<[Ljava/lang/Object;>;
            9   29     4          s  Ljava/lang/String;
           11   27     8  fromIndex  I
           13   25    12     length  I
           17   25    16       sub1  Ljava/lang/String;
           18   25    17       sub2  Ljava/lang/String;
           19   25    18       sub3  Ljava/lang/String;
           20   25    19       sub4  Ljava/lang/String;
    Signature: (Z)Ljava/util/ArrayList<[Ljava/lang/Object;>;
    MethodParameters:
          Name  Flags
      withMask  

  private static java.lang.Object[] dataRow(java.lang.String, int, java.lang.String, int, java.lang.String, boolean, boolean);
    descriptor: (Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;ZZ)[Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=7
        start local 0 // java.lang.String a1
        start local 1 // int fromIndex1
        start local 2 // java.lang.String a2
        start local 3 // int fromIndex2
        start local 4 // java.lang.String mask
        start local 5 // boolean expected
        start local 6 // boolean withMask
         0: .line 107
            bipush 7
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* a1 */
            aastore
            dup
            iconst_1
            iload 1 /* fromIndex1 */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 2 /* a2 */
            aastore
            dup
            iconst_3
            iload 3 /* fromIndex2 */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_4
            iload 6 /* withMask */
            ifeq 1
            aload 4 /* mask */
            invokestatic com.oracle.truffle.api.test.ArrayUtilsIndexOfWithMaskTest.mask:(Ljava/lang/String;)Ljava/lang/String;
            goto 2
      StackMap locals: java.lang.String int java.lang.String int java.lang.String int int
      StackMap stack: java.lang.Object[] java.lang.Object[] int
         1: aconst_null
      StackMap locals: java.lang.String int java.lang.String int java.lang.String int int
      StackMap stack: java.lang.Object[] java.lang.Object[] int java.lang.String
         2: aastore
            dup
            iconst_5
            aload 4 /* mask */
            invokevirtual java.lang.String.length:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 6
            iload 5 /* expected */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
            areturn
        end local 6 // boolean withMask
        end local 5 // boolean expected
        end local 4 // java.lang.String mask
        end local 3 // int fromIndex2
        end local 2 // java.lang.String a2
        end local 1 // int fromIndex1
        end local 0 // java.lang.String a1
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0          a1  Ljava/lang/String;
            0    3     1  fromIndex1  I
            0    3     2          a2  Ljava/lang/String;
            0    3     3  fromIndex2  I
            0    3     4        mask  Ljava/lang/String;
            0    3     5    expected  Z
            0    3     6    withMask  Z
    MethodParameters:
            Name  Flags
      a1          
      fromIndex1  
      a2          
      fromIndex2  
      mask        
      expected    
      withMask    

  private static java.lang.Object[] dataRow(java.lang.String, int, java.lang.String, int, int, boolean, boolean);
    descriptor: (Ljava/lang/String;ILjava/lang/String;IIZZ)[Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=7
        start local 0 // java.lang.String a1
        start local 1 // int fromIndex1
        start local 2 // java.lang.String a2
        start local 3 // int fromIndex2
        start local 4 // int maskLength
        start local 5 // boolean expected
        start local 6 // boolean withMask
         0: .line 111
            bipush 7
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* a1 */
            aastore
            dup
            iconst_1
            iload 1 /* fromIndex1 */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 2 /* a2 */
            aastore
            dup
            iconst_3
            iload 3 /* fromIndex2 */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_4
            iload 6 /* withMask */
            ifeq 1
            iload 4 /* maskLength */
            invokestatic com.oracle.truffle.api.test.ArrayUtilsIndexOfWithMaskTest.mask:(I)Ljava/lang/String;
            goto 2
      StackMap locals: java.lang.String int java.lang.String int int int int
      StackMap stack: java.lang.Object[] java.lang.Object[] int
         1: aconst_null
      StackMap locals: java.lang.String int java.lang.String int int int int
      StackMap stack: java.lang.Object[] java.lang.Object[] int java.lang.String
         2: aastore
            dup
            iconst_5
            iload 4 /* maskLength */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 6
            iload 5 /* expected */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
            areturn
        end local 6 // boolean withMask
        end local 5 // boolean expected
        end local 4 // int maskLength
        end local 3 // int fromIndex2
        end local 2 // java.lang.String a2
        end local 1 // int fromIndex1
        end local 0 // java.lang.String a1
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0          a1  Ljava/lang/String;
            0    3     1  fromIndex1  I
            0    3     2          a2  Ljava/lang/String;
            0    3     3  fromIndex2  I
            0    3     4  maskLength  I
            0    3     5    expected  Z
            0    3     6    withMask  Z
    MethodParameters:
            Name  Flags
      a1          
      fromIndex1  
      a2          
      fromIndex2  
      maskLength  
      expected    
      withMask    

  public void <init>(java.lang.String, int, java.lang.String, int, java.lang.String, int, boolean);
    descriptor: (Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;IZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=8, args_size=8
        start local 0 // com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest this
        start local 1 // java.lang.String a1
        start local 2 // int fromIndex1
        start local 3 // java.lang.String a2
        start local 4 // int fromIndex2
        start local 5 // java.lang.String mask
        start local 6 // int length
        start local 7 // boolean expected
         0: .line 122
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 123
            aload 0 /* this */
            aload 1 /* a1 */
            putfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.a1:Ljava/lang/String;
         2: .line 124
            aload 0 /* this */
            iload 2 /* fromIndex1 */
            putfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.fromIndex1:I
         3: .line 125
            aload 0 /* this */
            aload 3 /* a2 */
            putfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.a2:Ljava/lang/String;
         4: .line 126
            aload 0 /* this */
            iload 4 /* fromIndex2 */
            putfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.fromIndex2:I
         5: .line 127
            aload 0 /* this */
            aload 5 /* mask */
            putfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.mask:Ljava/lang/String;
         6: .line 128
            aload 0 /* this */
            iload 6 /* length */
            putfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.length:I
         7: .line 129
            aload 0 /* this */
            iload 7 /* expected */
            putfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.expected:Z
         8: .line 130
            return
        end local 7 // boolean expected
        end local 6 // int length
        end local 5 // java.lang.String mask
        end local 4 // int fromIndex2
        end local 3 // java.lang.String a2
        end local 2 // int fromIndex1
        end local 1 // java.lang.String a1
        end local 0 // com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lcom/oracle/truffle/api/test/ArrayUtilsRegionEqualsWithMaskTest;
            0    9     1          a1  Ljava/lang/String;
            0    9     2  fromIndex1  I
            0    9     3          a2  Ljava/lang/String;
            0    9     4  fromIndex2  I
            0    9     5        mask  Ljava/lang/String;
            0    9     6      length  I
            0    9     7    expected  Z
    MethodParameters:
            Name  Flags
      a1          
      fromIndex1  
      a2          
      fromIndex2  
      mask        
      length      
      expected    

  public void test();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest this
         0: .line 134
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.expected:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.a1:Ljava/lang/String;
            invokestatic com.oracle.truffle.api.test.ArrayUtilsTest.toByteArray:(Ljava/lang/String;)[B
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.fromIndex1:I
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.a2:Ljava/lang/String;
            invokestatic com.oracle.truffle.api.test.ArrayUtilsTest.toByteArray:(Ljava/lang/String;)[B
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.fromIndex2:I
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.length:I
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.mask:Ljava/lang/String;
            invokestatic com.oracle.truffle.api.test.ArrayUtilsTest.toByteArray:(Ljava/lang/String;)[B
            invokestatic com.oracle.truffle.api.ArrayUtils.regionEqualsWithOrMask:([BI[BII[B)Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 135
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.expected:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.a1:Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.fromIndex1:I
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.a2:Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.fromIndex2:I
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.length:I
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.mask:Ljava/lang/String;
            ifnonnull 2
            aconst_null
            goto 3
      StackMap locals: com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest
      StackMap stack: java.lang.Boolean char[] int char[] int int
         2: aload 0 /* this */
            getfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.mask:Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
      StackMap locals: com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest
      StackMap stack: java.lang.Boolean char[] int char[] int int char[]
         3: invokestatic com.oracle.truffle.api.ArrayUtils.regionEqualsWithOrMask:([CI[CII[C)Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 136
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.expected:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.a1:Ljava/lang/String;
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.fromIndex1:I
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.a2:Ljava/lang/String;
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.fromIndex2:I
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.length:I
            aload 0 /* this */
            getfield com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest.mask:Ljava/lang/String;
            invokestatic com.oracle.truffle.api.ArrayUtils.regionEqualsWithOrMask:(Ljava/lang/String;ILjava/lang/String;IILjava/lang/String;)Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 137
            return
        end local 0 // com.oracle.truffle.api.test.ArrayUtilsRegionEqualsWithMaskTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/oracle/truffle/api/test/ArrayUtilsRegionEqualsWithMaskTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
}
SourceFile: "ArrayUtilsRegionEqualsWithMaskTest.java"
InnerClasses:
  public abstract Parameters = org.junit.runners.Parameterized$Parameters of org.junit.runners.Parameterized
    RuntimeVisibleAnnotations: 
      org.junit.runner.RunWith(value = Lorg/junit/runners/Parameterized;)