func lessCaseInsensitive(s, t string) bool {
	for {
		if len(t) == 0 {
			return false
		}
		if len(s) == 0 {
			return true
		}
		c, sizec := utf8.DecodeRuneInString(s)
		d, sized := utf8.DecodeRuneInString(t)
		lowerc := unicode.ToLower(c)
		lowerd := unicode.ToLower(d)
		if lowerc < lowerd {
			return true
		}
		if lowerc > lowerd {
			return false
		}
		s = s[sizec:]
		t = t[sized:]
	}
}
sort.Slice(data, func(i, j int) bool { return lessCaseInsensitive(data[i], data[j]) })