         // TODO: label を見て compress の有無をチェックする
         switch dataChannel.label {
         case "stats":
-            channel.context?.nativeChannel.statistics { report in
+            channel.context?.nativeChannel.statistics {
                 // NOTE: stats の型を Signaling.swift に定義していない
-                let reports = Statistics(contentsOf: report).jsonObject
+                let reports = Statistics(contentsOf: $0).jsonObject
                 let json: [String: Any] = ["type": "stats",
                                            "reports": reports]
                 do {

        }
    }
    
    func createAndSendReAnswer(forReOffer reOffer: String) {
        Logger.debug(type: .peerChannel, message: "create and send re-answer")
        lock.lock()

            return nil
        }
        
        var zipped = Data(capacity: size + 6) // ヘッダー: 2バイト, チェックサム: 4バイト
        zipped.append(contentsOf: [0x78, 0x5e]) // ヘッダーを追加
        zipped.append(destinationBuffer, count: size)

        let checksum = input.withUnsafeBytes { (p: UnsafeRawBufferPointer) -> UInt32 in
            let bytef = p.baseAddress!.assumingMemoryBound(to: Bytef.self)
            return UInt32(adler32(1, bytef, UInt32(input.count)))
        }

        zipped.append(UInt8(checksum >> 24 & 0xFF))
        zipped.append(UInt8(checksum >> 16 & 0xFF))
        zipped.append(UInt8(checksum >> 8 & 0xFF))
        zipped.append(UInt8(checksum & 0xFF))
        return zipped
    }

    public static func unzip(_ input: Data) -> Data? {
        if (input.isEmpty) {
            return nil
        }
        
        let bufferSize = 262_144
        let destinationBuffer = UnsafeMutablePointer<UInt8>.allocate(capacity: bufferSize)
        
