public static final MaplePacket getHiredMerch(final MapleCharacter chr, final HiredMerchant merch, final boolean firstTime) {
	final MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();

	mplew.writeShort(SendPacketOpcode.PLAYER_INTERACTION);

	mplew.write(5);
	mplew.write(5);
	mplew.write(4);
	mplew.write(merch.isOwner(chr) ? 0 : 1);
	mplew.write(0);
	mplew.writeInt(merch.getItemId());
	mplew.writeMapleAsciiString("Hired Merchant");

	for (final Pair<Byte, MapleCharacter> storechr : merch.getVisitors()) {
	    mplew.write(storechr.left);
	    PacketHelper.addCharLook(mplew, storechr.right, false);
	    mplew.writeMapleAsciiString(storechr.right.getName());
	}
	mplew.write(-1);
	mplew.writeShort(0);
	mplew.writeMapleAsciiString(merch.getOwnerName());
	if (merch.isOwner(chr)) {
	    mplew.writeInt(merch.getTimeLeft());
	    mplew.write(firstTime ? 1 : 0);
	    mplew.writeInt(0);
	    mplew.write(0);
	}
	mplew.writeMapleAsciiString(merch.getDescription());
	mplew.write(10);
	mplew.writeInt(merch.getMeso()); // meso
	mplew.write(merch.getItems().size());

	for (final MaplePlayerShopItem item : merch.getItems()) {
	    mplew.writeShort(item.bundles);
	    mplew.writeShort(item.item.getQuantity());
	    mplew.writeInt(item.price);
	    PacketHelper.addItemInfo(mplew, item.item, true, true);
	}
	return mplew.getPacket();
    }