// Path: src/org/jglrxavpok/jlsl/fragments/MethodCallFragment.java
// public static enum InvokeTypes
// {
// 	STATIC, VIRTUAL, SPECIAL
// }


import static org.objectweb.asm.Opcodes.*;
import java.io.*;
import java.util.*;
import org.jglrxavpok.jlsl.fragments.*;
import org.jglrxavpok.jlsl.fragments.MethodCallFragment.InvokeTypes;
import org.objectweb.asm.*;
import org.objectweb.asm.tree.*;
import org.objectweb.asm.util.*;
					NewInstanceFragment newFrag = new NewInstanceFragment();
					newFrag.type = operand.replace("/", ".");
					out.add(newFrag);
				}
			}
			else if(ainsnNode.getType() == AbstractInsnNode.MULTIANEWARRAY_INSN)
			{
				MultiANewArrayInsnNode multiArrayNode = (MultiANewArrayInsnNode)ainsnNode;
				NewMultiArrayFragment multiFrag = new NewMultiArrayFragment();
				multiFrag.type = typesFromDesc(multiArrayNode.desc)[0].replace("[]", "");
				multiFrag.dimensions = multiArrayNode.dims;
				out.add(multiFrag);
			}
			else if(ainsnNode.getType() == AbstractInsnNode.LINE)
			{
				LineNumberNode lineNode = (LineNumberNode)ainsnNode;
				LineNumberFragment lineNumberFragment = new LineNumberFragment();
				lineNumberFragment.line = lineNode.line;
				out.add(lineNumberFragment);
			}
			else if(ainsnNode.getType() == AbstractInsnNode.METHOD_INSN)
			{
				MethodInsnNode methodNode = (MethodInsnNode)ainsnNode;
				if(methodNode.getOpcode() == INVOKESTATIC)
				{
					String desc = methodNode.desc;
					String margs = desc.substring(desc.indexOf('(') + 1, desc.indexOf(')'));
					String[] margsArray = typesFromDesc(margs);
					String n = methodNode.name;
					MethodCallFragment methodFragment = new MethodCallFragment();
// Path: src/org/jglrxavpok/jlsl/fragments/MethodCallFragment.java
// public static enum InvokeTypes
// {
// 	STATIC, VIRTUAL, SPECIAL
// }


// Path: src/org/jglrxavpok/jlsl/BytecodeDecoder.java
import static org.objectweb.asm.Opcodes.*;
import java.io.*;
import java.util.*;
import org.jglrxavpok.jlsl.fragments.*;
import org.jglrxavpok.jlsl.fragments.MethodCallFragment.InvokeTypes;
import org.objectweb.asm.*;
import org.objectweb.asm.tree.*;
import org.objectweb.asm.util.*;

					NewInstanceFragment newFrag = new NewInstanceFragment();
					newFrag.type = operand.replace("/", ".");
					out.add(newFrag);
				}
			}
			else if(ainsnNode.getType() == AbstractInsnNode.MULTIANEWARRAY_INSN)
			{
				MultiANewArrayInsnNode multiArrayNode = (MultiANewArrayInsnNode)ainsnNode;
				NewMultiArrayFragment multiFrag = new NewMultiArrayFragment();
				multiFrag.type = typesFromDesc(multiArrayNode.desc)[0].replace("[]", "");
				multiFrag.dimensions = multiArrayNode.dims;
				out.add(multiFrag);
			}
			else if(ainsnNode.getType() == AbstractInsnNode.LINE)
			{
				LineNumberNode lineNode = (LineNumberNode)ainsnNode;
				LineNumberFragment lineNumberFragment = new LineNumberFragment();
				lineNumberFragment.line = lineNode.line;
				out.add(lineNumberFragment);
			}
			else if(ainsnNode.getType() == AbstractInsnNode.METHOD_INSN)
			{
				MethodInsnNode methodNode = (MethodInsnNode)ainsnNode;
				if(methodNode.getOpcode() == INVOKESTATIC)
				{
					String desc = methodNode.desc;
					String margs = desc.substring(desc.indexOf('(') + 1, desc.indexOf(')'));
					String[] margsArray = typesFromDesc(margs);
					String n = methodNode.name;
					MethodCallFragment methodFragment = new MethodCallFragment();
					methodFragment.invokeType = InvokeTypes.STATIC;