@Override
  public int hashCode() {
    int hc1 = first == null ? 0 : first.hashCode();
    int hc2 = second == null ? 0 : second.hashCode();
    return hc1 * hc1 + hc2 * hc2;
  }
@Override
  public int hashCode()