# File lib/amq/protocol/client.rb, line 1912
        def self.decode(data)
          offset = 0
          delivery_tag = AMQ::Hacks.unpack_64_big_endian(data[offset, 8]).first
          offset += 8
          bit_buffer = data[offset, 1].unpack(PACK_CHAR).first
          offset += 1
          redelivered = (bit_buffer & (1 << 0)) != 0
          length = data[offset, 1].unpack(PACK_CHAR).first
          offset += 1
          exchange = data[offset, length]
          offset += length
          length = data[offset, 1].unpack(PACK_CHAR).first
          offset += 1
          routing_key = data[offset, length]
          offset += length
          message_count = data[offset, 4].unpack(PACK_UINT32).first
          offset += 4
          self.new(delivery_tag, redelivered, exchange, routing_key, message_count)
        end