code: public synchronized void handleFormElements(List<FormInput> formInputs) {
  
  		/* If there are no form elements, there is nothing to do. */
  		if (formInputs.isEmpty())
  			return;
  
  		/* First fill in the data from previous sessions through
  		 * InputSpecification or forms.json */
  		super.handleFormElements(formInputs);
  
  		/* If there are form inputs that we haven't seen, pause the crawl and
  		 * request user input. */
  		if (incomplete(formInputs))
  			pauseAndTrainModal(formInputs);
  
  	}
docs: Fills in form/input elements.
  Because we write to the singleton  @code{FormInputValueHelper}, this method
  must be mutually exclusive. In practice, this probably has no effect because
  it is unlikely that someone would train the crawler using multiple browser
  threads.
  
  @param formInputs form input list.