class ArrayReferenceNode {
  private final SootMethod m;
  private final Local l;

  public ArrayReferenceNode(SootMethod method, Local local) {
    m = method;
    l = local;
  }

  public SootMethod getMethod() {
    return m;
  }

  public Local getLocal() {
    return l;
  }

  public int hashCode() {
    return m.hashCode() + l.hashCode() + 1;
  }

  public boolean equals(Object other) {<FILL_FUNCTION_BODY>}

  public String toString() {
    return "[" + m.getSignature() + " : " + l.toString() + "[ ]";
  }
}

    if (other instanceof ArrayReferenceNode) {
      ArrayReferenceNode another = (ArrayReferenceNode) other;
      return m.equals(another.getMethod()) && l.equals(another.getLocal());
    }

    return false;
  
<no_super_class>