private static Vector<String> GetHaalSaadehEkhbaariInflections(VerbInflection inflection) {
    Vector<String> lstInflections = new Vector<String>();
    StringBuilder verbBuilder = new StringBuilder();
    verbBuilder.append(inflection.VerbRoot.Prefix);
    if (inflection.VerbRoot.PresentTenseRoot.equals("است")) {
      verbBuilder.append(inflection.VerbRoot.PresentTenseRoot);
      lstInflections.add(verbBuilder.toString());
      return lstInflections;
    }
    if (inflection.VerbRoot.PresentTenseRoot.equals("هست")) {
      if (inflection.Positivity == TensePositivity.POSITIVE)
        verbBuilder.append(inflection.VerbRoot.PresentTenseRoot);
      else if (inflection.Positivity == TensePositivity.NEGATIVE) verbBuilder.append("نیست");
    } else {
      if (inflection.Positivity == TensePositivity.POSITIVE)
        verbBuilder.append("می‌" + inflection.VerbRoot.PresentTenseRoot);
      else if (inflection.Positivity == TensePositivity.NEGATIVE)
        verbBuilder.append("نمی‌" + inflection.VerbRoot.PresentTenseRoot);
    }
    if (inflection.VerbRoot.PresentRootConsonantVowelEndStem.equals("A")) {
      if (inflection.VerbRoot.PresentTenseRoot.length() > 1) {
        verbBuilder.delete(verbBuilder.length() - 1, verbBuilder.length());
        verbBuilder.append("ای");
      } else verbBuilder.append("ی");
    } else if (!inflection.VerbRoot.PresentRootConsonantVowelEndStem.equals("?")) {
      verbBuilder.append("ی");
    }
    if (inflection.Person == PersonType.FIRST_PERSON_PLURAL) verbBuilder.append("یم");
    else if (inflection.Person == PersonType.FIRST_PERSON_SINGULAR) verbBuilder.append("م");
    else if (inflection.Person == PersonType.SECOND_PERSON_PLURAL) verbBuilder.append("ید");
    else if (inflection.Person == PersonType.SECOND_PERSON_SINGULAR) verbBuilder.append("ی");
    else if (inflection.Person == PersonType.THIRD_PERSON_PLURAL) verbBuilder.append("ند");
    else if (inflection.Person == PersonType.THIRD_PERSON_SINGULAR)
      if (!inflection.VerbRoot.PresentTenseRoot.equals("باید")
          && !inflection.VerbRoot.PresentTenseRoot.equals("هست")) verbBuilder.append("د");

    lstInflections.add(AddAttachedPronoun(verbBuilder.toString(), inflection));
    return lstInflections;
  }
  private static Vector<String> GetHaalEltezamiInflections(VerbInflection inflection) {
    Vector<String> lstInflections = new Vector<String>();
    StringBuilder verbBuilder = new StringBuilder();
    StringBuilder verbBuilder2 = new StringBuilder();
    StringBuilder verbBuilder3 = new StringBuilder();
    boolean thirdInflec = false;
    verbBuilder.append(inflection.VerbRoot.Prefix);
    verbBuilder2.append(inflection.VerbRoot.Prefix);

    if (inflection.Positivity == TensePositivity.POSITIVE)
      if (!(inflection.VerbRoot.PresentTenseRoot.equals("باشد")
          || inflection.VerbRoot.PresentTenseRoot.equals("باید"))) verbBuilder.append("ب");
      else if (inflection.Positivity == TensePositivity.NEGATIVE) verbBuilder.append("ن");

    if (inflection.VerbRoot.PresentRootVowelStart.equals("A")) {
      if (inflection.VerbRoot.PresentTenseRoot.startsWith("آ")) {
        verbBuilder.append("یا");
        verbBuilder.append(inflection.VerbRoot.PresentTenseRoot.substring(1));
        verbBuilder2.append(inflection.VerbRoot.PresentTenseRoot);
      } else {
        thirdInflec = true;
        verbBuilder3.append(verbBuilder.toString());
        verbBuilder.append("ی");
        verbBuilder3.append("یا");

        verbBuilder.append(inflection.VerbRoot.PresentTenseRoot.substring(1));
        verbBuilder3.append(inflection.VerbRoot.PresentTenseRoot.substring(1));
        verbBuilder2.append(inflection.VerbRoot.PresentTenseRoot);
      }
    } else {
      verbBuilder.append(inflection.VerbRoot.PresentTenseRoot);
      verbBuilder2.append(inflection.VerbRoot.PresentTenseRoot);
    }

    if (inflection.VerbRoot.PresentRootConsonantVowelEndStem.equals("A")) {
      if (verbBuilder.length() > 1) {
        verbBuilder.delete(verbBuilder.length() - 1, verbBuilder.length());
        verbBuilder.append("ای");
        if (thirdInflec) {
          verbBuilder3.delete(verbBuilder3.length() - 1, verbBuilder3.length());
          verbBuilder3.append("ای");
        }
        if (inflection.VerbRoot.PresentTenseRoot.length() > 1) {
          verbBuilder2.delete(verbBuilder2.length() - 1, verbBuilder2.length());
          verbBuilder2.append("ای");
        } else {
          verbBuilder2.append("ی");
        }
      } else {
        verbBuilder.append("ی");
        verbBuilder3.append("ی");
        verbBuilder2.append("ی");
      }
    } else if (!inflection.VerbRoot.PresentRootConsonantVowelEndStem.equals("?")) {
      if (!inflection.VerbRoot.PastTenseRoot.equals("رفت")
          && !inflection.VerbRoot.PastTenseRoot.equals("شد")) {
        verbBuilder.append("ی");
        verbBuilder3.append("ی");
        verbBuilder2.append("ی");
      }
    }
    if (inflection.Person == PersonType.FIRST_PERSON_PLURAL) {
      verbBuilder.append("یم");
      verbBuilder3.append("یم");
      verbBuilder2.append("یم");
    } else if (inflection.Person == PersonType.FIRST_PERSON_SINGULAR) {
      verbBuilder.append("م");
      verbBuilder3.append("م");
      verbBuilder2.append("م");
    } else if (inflection.Person == PersonType.SECOND_PERSON_PLURAL) {
      verbBuilder.append("ید");
      verbBuilder3.append("ید");
      verbBuilder2.append("ید");
    } else if (inflection.Person == PersonType.SECOND_PERSON_SINGULAR) {
      verbBuilder.append("ی");
      verbBuilder3.append("ی");
      verbBuilder2.append("ی");
    } else if (inflection.Person == PersonType.THIRD_PERSON_PLURAL) {
      verbBuilder.append("ند");
      verbBuilder3.append("ند");
      verbBuilder2.append("ند");
    } else if (inflection.Person == PersonType.THIRD_PERSON_SINGULAR) {
      verbBuilder.append("د");
      verbBuilder3.append("د");
      verbBuilder2.append("د");
    }

    lstInflections.add(AddAttachedPronoun(verbBuilder.toString(), inflection));
    if (thirdInflec) lstInflections.add(AddAttachedPronoun(verbBuilder3.toString(), inflection));
    if (inflection.Positivity == TensePositivity.POSITIVE
        && (inflection.VerbRoot.PresentTenseRoot.length() >= 2
            || inflection.VerbRoot.Type == VerbType.PISHVANDI))
      lstInflections.add(AddAttachedPronoun(verbBuilder2.toString(), inflection));
    return lstInflections;
  }