code: func Substitute(s string, sub map[string]string) (buf string) {
  	buf = s
  	var keys []string
  	for k := range sub {
  		keys = append(keys, k)
  	}
  	sort.Strings(keys)
  
  	for _, key := range keys {
  		buf = strings.Replace(buf, key, sub[key], -1)
  	}
  	return
  }
docs: // Substitute returns string with superseded all substrings from
  // provided substitution map. Substitution map will be applied in alphabetic
  // order. Many passes, on one substitution another one could apply.