code: func (v *Validator) indexDictionaries() {
  	if v.options.DictionaryPath == "" {
  		return
  	}
  
  	dicts, err := filepath.Glob(filepath.Join(v.options.DictionaryPath, "*"))
  	if err != nil {
  		return
  	}
  
  	for _, dict := range dicts {
  		buf, err := ioutil.ReadFile(dict)
  		if err != nil {
  			continue
  		}
  
  		for _, word := range strings.Split(string(buf), "\n") {
  			nw := normalize(word)
  			nwlen := len(nw)
  			if nwlen > v.wordsMaxLen {
  				v.wordsMaxLen = nwlen
  			}
  
  			// if a word is smaller than the minimum length minus the minimum distance
  			// then any collisons would have been rejected by pre-dictionary checks
  			if nwlen >= v.options.MinLength-v.options.MinDist {
  				v.words[nw] = struct{}{}
  			}
  
  			for _, hasher := range v.options.Hashers {
  				v.hashedWords[hashsum(nw, hasher)] = nw
  			}
  		}
  	}
  }
docs: // indexDictionaries parses dictionaries/wordlists