         
         // skip LWS
         while currIndex < endIndex {
-            
             let c = characters[currIndex]
             if c == characterSP || c == characterHT {
                 currIndex = characters.index(after: currIndex)

                    return (retStr, initial..<range.upperBound)
                }
                c = characters[initial]
                
                if c == characterSP || c == characterHT {
                    initial = characters.index(after: initial)
                    continue
                } else {
                    return (retStr, initial..<range.upperBound)
                }
                //                } else if c == characterCR {
                //                    // a single CR is invalid. either broken client or shenanigans
                //                    return ("", range)
            } else {
                retStr.append(c)
            }
        }
        return ("", range)
    }

        // skip CRLF or LF
        var initial = range.lowerBound
        while initial < range.upperBound {
            let c = characters[initial]
            if c == characterCRLF || c == characterLF {
                initial = characters.index(after: initial)
