             if isLastBit == 1 { break }
         }
 
-        return (String(out.reduce("") { $0 + $1 })?.data(using: .utf8))!
+        return out
     }
 
 }

     - Returns: Decompressed data.
     */
    public static func decompress(compressedData data: Data) throws -> Data {
        var out: [String] = []

        // Current point of processing in data
        var index = 0

                    shift = nextSymbol.newShift

                    if symbol >= 0 && symbol <= 255 {
                        out.append(Data(bytes: [UInt8(truncatingBitPattern: UInt(symbol))]))
                    } else if symbol == 256 {
                        break
                    } else if symbol >= 257 && symbol <= 285 {
