// SPDX-License-Identifier: LGPL-2.1-or-later
/*
 *
 *  BlueZ - Bluetooth protocol stack for Linux
 *
 *  Copyright (C) 2023  NXP Semiconductors. All rights reserved.
 *
 *  This file contains only VOCS related Unit Test cases.
 */

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#define _GNU_SOURCE
#include <unistd.h>
#include <string.h>
#include <sys/socket.h>
#include <fcntl.h>

#include <glib.h>

#include "bluetooth/bluetooth.h"
#include "bluetooth/uuid.h"
#include "src/shared/util.h"
#include "src/shared/tester.h"
#include "src/shared/queue.h"
#include "src/shared/att.h"
#include "src/shared/gatt-db.h"
#include "src/shared/gatt-client.h"
#include "src/shared/gatt-server.h"
#include "src/shared/vcp.h"

struct test_data {
	struct gatt_db *db;
	struct bt_gatt_server *server;
	struct queue *ccc_states;
	size_t iovcnt;
	struct iovec *iov;
	unsigned int vcp_id;
};

struct notify {
	uint16_t handle, ccc_handle;
	uint8_t *value;
	uint16_t len;
	bt_gatt_server_conf_func_t conf;
	void *user_data;
};

struct ccc_state {
	uint16_t handle;
	uint16_t value;
};

#define iov_data(args...) ((const struct iovec[]) { args })

#define define_test(name, function, _cfg, args...)		\
	do {							\
		const struct iovec iov[] = { args };		\
		static struct test_data data;			\
		data.iovcnt = ARRAY_SIZE(iov_data(args));	\
		data.iov = util_iov_dup(iov, ARRAY_SIZE(iov_data(args))); \
		tester_add(name, &data, NULL, function,	\
				test_teardown);			\
	} while (0)

static void test_complete_cb(const void *user_data)
{
	tester_test_passed();
}

static void print_debug(const char *str, void *user_data)
{
	const char *prefix = user_data;

	if (tester_use_debug())
		tester_debug("%s%s", prefix, str);
}

static void test_teardown(const void *user_data)
{
	struct test_data *data = (void *)user_data;

	bt_gatt_server_unref(data->server);
	util_iov_free(data->iov, data->iovcnt);

	gatt_db_unref(data->db);

	queue_destroy(data->ccc_states, free);

	bt_vcp_unregister(data->vcp_id);
	tester_teardown_complete();
}

static bool ccc_state_match(const void *a, const void *b)
{
	const struct ccc_state *ccc = a;
	uint16_t handle = PTR_TO_UINT(b);

	return ccc->handle == handle;
}

static struct ccc_state *find_ccc_state(struct test_data *data,
				uint16_t handle)
{
	return queue_find(data->ccc_states, ccc_state_match,
				UINT_TO_PTR(handle));
}

static struct ccc_state *get_ccc_state(struct test_data *data,
					uint16_t handle)
{
	struct ccc_state *ccc;

	ccc = find_ccc_state(data, handle);
	if (ccc)
		return ccc;

	ccc = new0(struct ccc_state, 1);
	ccc->handle = handle;
	queue_push_tail(data->ccc_states, ccc);

	return ccc;
}

static void gatt_notify_cb(struct gatt_db_attribute *attrib,
					struct gatt_db_attribute *ccc,
					const uint8_t *value, size_t len,
					struct bt_att *att, void *user_data)
{
	struct test_data *data = user_data;
	uint16_t handle = gatt_db_attribute_get_handle(attrib);

	if (!bt_gatt_server_send_notification(data->server,
			handle, value, len, false))
		printf("%s: Failed to send notification\n", __func__);
}

static void gatt_ccc_read_cb(struct gatt_db_attribute *attrib,
					unsigned int id, uint16_t offset,
					uint8_t opcode, struct bt_att *att,
					void *user_data)
{
	struct test_data *data = user_data;
	struct ccc_state *ccc;
	uint16_t handle;
	uint8_t ecode = 0;
	uint16_t value = 0;

	handle = gatt_db_attribute_get_handle(attrib);

	ccc = get_ccc_state(data, handle);
	if (!ccc) {
		ecode = BT_ATT_ERROR_UNLIKELY;
		goto done;
	}

	value = cpu_to_le16(ccc->value);

done:
	gatt_db_attribute_read_result(attrib, id, ecode, (void *)&value,
							sizeof(value));
}

static void vcp_client_attached(struct bt_vcp *vcp, void *user_data)
{
}

static void vcp_client_detached(struct bt_vcp *vcp, void *user_data)
{
	bt_vcp_unref(vcp);
}

static void test_server(const void *user_data)
{
	struct test_data *data = (void *)user_data;
	struct bt_att *att;
	struct io *io;

	io = tester_setup_io(data->iov, data->iovcnt);
	g_assert(io);

	tester_io_set_complete_func(test_complete_cb);

	att = bt_att_new(io_get_fd(io), false);
	g_assert(att);

	bt_att_set_debug(att, BT_ATT_DEBUG, print_debug, "bt_att:", NULL);

	data->db = gatt_db_new();
	g_assert(data->db);

	gatt_db_ccc_register(data->db, gatt_ccc_read_cb, NULL,
					gatt_notify_cb, data);

	bt_vcp_add_db(data->db);

	data->vcp_id = bt_vcp_register(vcp_client_attached,
						vcp_client_detached, NULL);

	data->server = bt_gatt_server_new(data->db, att, 64, 0);
	g_assert(data->server);

	bt_gatt_server_set_debug(data->server, print_debug, "bt_gatt_server",
						NULL);

	data->ccc_states = queue_new();

	tester_io_send();

	bt_att_unref(att);
}

 /* ATT: Exchange MTU Request (0x02) len 2
  *     Client RX MTU: 64
  * ATT: Exchange MTU Response (0x03) len 2
  *     Server RX MTU: 64
  */
#define VCS_EXCHANGE_MTU \
	IOV_DATA(0x02, 0x40, 0x00), \
	IOV_DATA(0x03, 0x40, 0x00)

 /*  ATT: Read By Group Type Request (0x10) len 6
  *      Handle range: 0x0001-0xffff
  *      Attribute group type: Primary Service (0x2800)
  *
  *  ATT: Read By Group Type Response (0x11) len 7
  *      Attribute data length: 6
  *      Attribute group list: 1 entry
  *      Handle range: 0x001d-0x0027
  *      UUID: Volume Control (0x1844)
  *
  *  ATT: Read By Group Type Request (0x10) len 6
  *      Handle range: 0x0027-0xffff
  *      Attribute group type: Primary Service (0x2800)
  *
  *  ATT: Error Response (0x01) len 4
  *      Read By Group Type Request (0x10)
  *      Handle: 0x0027
  *      Error: Attribute Not Found (0x0a)
  */
#define VOCS_AICS_PRIMARY_SERVICE_VCS \
	IOV_DATA(0x10, 0x01, 0x00, 0xff, 0xff, 0x00, 0x28), \
	IOV_DATA(0x11, 0x06, 0x1d, 0x00, 0x27, 0x00, 0x44, 0x18), \
	IOV_DATA(0x10, 0x27, 0x00, 0xff, 0xff, 0x00, 0x28), \
	IOV_DATA(0x01, 0x10, 0x27, 0x00, 0x0a)

 /* ATT: Read By Group Type Request (0x10) len 6
  *      Handle range: 0x0001-0xffff
  *      Attribute group type: Secondary Service (0x2801)
  *
  * ATT: Read By Group Type Response (0x11) len 7
  *     Attribute data length: 6
  *     Attribute group list: 2 entry
  *     Handle range: 0x0001-0x000c
  *     UUID: Volume Offset Control (0x1845)
  *     Handle range: 0x000d-0x001c
  *     UUID: Audio Input Control (0x1843)
  *
  * ATT: Read By Group Type Request (0x10) len 6
  *     Handle range: 0x001d-0xffff
  *     Attribute group type: Secondary Service (0x2801)
  *
  * ATT: Error Response (0x01) len 4
  *     Read By Group Type Request (0x10)
  *     Handle: 0x001d
  *     Error: Attribute Not Found (0x0a)
  */
#define VOCS_AICS_SECONDARY_SERVICE \
	IOV_DATA(0x10, 0x01, 0x00, 0xff, 0xff, 0x01, 0x28), \
	IOV_DATA(0x11, 0x06, \
		0x01, 0x00, 0x0c, 0x00, 0x45, 0x18, \
		0x0d, 0x00, 0x1c, 0x00, 0x43, 0x18), \
	IOV_DATA(0x10, 0x1d, 0x00, 0xff, 0xff, 0x01, 0x28), \
	IOV_DATA(0x01, 0x10, 0x1d, 0x00, 0x0a)

 /* ATT: Read By Type Request (0x08) len 6
  *     Handle range: 0x0001-0xffff
  *     Attribute type: Include (0x2802)
  *
  * ATT: Read By Type Response (0x09) len 9
  *     Attribute data length: 8
  *     Attribute data list: 2 entries
  *     Handle: 0x001e
  *     Value: 01000c004518
  *     Handle: 0x001f
  *     Value: 0d001c004318
  *
  * ATT: Read By Type Request (0x08) len 6
  *     Handle range: 0x0020-0xffff
  *     Attribute type: Include (0x2802)
  *
  * ATT: Error Response (0x01) len 4
  *     Read By Type Request (0x08)
  *     Handle: 0x0020
  *     Error: Attribute Not Found (0x0a)
  */
#define VOCS_AICS_INCLUDED_SERVICE \
	IOV_DATA(0x08, 0x01, 0x00, 0xff, 0xff, 0x02, 0x28), \
	IOV_DATA(0x09, 0x08, \
		0x1e, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x45, 0x18, \
		0x1f, 0x00, 0x0d, 0x00, 0x1c, 0x00, 0x43, 0x18), \
	IOV_DATA(0x08, 0x20, 0x00, 0xff, 0xff, 0x02, 0x28), \
	IOV_DATA(0x01, 0x08, 0x20, 0x00, 0x0a)

 /* ATT: Read By Type Request (0x08) len 6
  *     Handle range: 0x0001-0x000c
  *     Attribute type: Characteristic (0x2803)
  *
  * ATT: Read By Type Response (0x09) len 29
  *     Attribute data length: 7
  *     Attribute data list: 4 entries
  *     Handle: 0x0002
  *     Value: 120300802b
  *     Handle: 0x0005
  *     Value: 120600812b
  *     Handle: 0x0008
  *     Value: 080900822b
  *     Handle: 0x000a
  *     Value: 120b00832b
  *
  * ATT: Read By Type Request (0x08) len 6
  *     Handle range: 0x000b-0x000c
  *     Attribute type: Characteristic (0x2803)
  *
  * ATT: Error Response (0x01) len 4
  *     Read By Type Request (0x08)
  *     Handle: 0x000b
  *     Error: Attribute Not Found (0x0a)
  */
#define VOCS_DISC_CHAR \
	IOV_DATA(0x08, 0x01, 0x00, 0x0c, 0x00, 0x03, 0x28), \
	IOV_DATA(0x09, 0x07, \
		0x02, 0x00, 0x12, 0x03, 0x00, 0x80, 0x2b, \
		0x05, 0x00, 0x12, 0x06, 0x00, 0x81, 0x2b, \
		0x08, 0x00, 0x08, 0x09, 0x00, 0x82, 0x2b, \
		0x0a, 0x00, 0x12, 0x0b, 0x00, 0x83, 0x2b), \
	IOV_DATA(0x08, 0x0b, 0x00, 0x0c, 0x00, 0x03, 0x28), \
	IOV_DATA(0x01, 0x08, 0x0b, 0x00, 0x0a)

 /*
  *   ATT: Read By Type Request (0x08) len 6
  *   Handle range: 0x000d-0x001c
  *   Attribute type: Characteristic (0x2803)
  *
  *   ATT: Read By Type Response (0x09) len 43
  *    Attribute data length: 7
  *    Attribute data list: 6 entries
  *    Handle: 0x000e
  *    Value: 120f00772b
  *    Handle: 0x0011
  *    Value: 021200782b
  *    Handle: 0x0013
  *    Value: 021400792b
  *    Handle: 0x0015
  *    Value: 1216007a2b
  *    Handle: 0x0018
  *    Value: 0819007b2b
  *    Handle: 0x001a
  *    Value: 161b007c2b
  *
  *  ATT: Read By Type Request (0x08) len 6
  *    Handle range: 0x001b-0x001c
  *    Attribute type: Characteristic (0x2803)
  *
  *  ATT: Error Response (0x01) len 4
  *    Read By Type Request (0x08)
  *    Handle: 0x001b
  *    Error: Attribute Not Found (0x0a)
  */
 #define AICS_DISC_CHAR \
	IOV_DATA(0x08, 0x0d, 0x00, 0x1c, 0x00, 0x03, 0x28), \
	IOV_DATA(0x09, 0x07, \
		0x0e, 0x00, 0x12, 0x0f, 0x00, 0x77, 0x2b, \
		0x11, 0x00, 0x02, 0x12, 0x00, 0x78, 0x2b, \
		0x13, 0x00, 0x02, 0x14, 0x00, 0x79, 0x2b, \
		0x15, 0x00, 0x12, 0x16, 0x00, 0x7a, 0x2b, \
		0x18, 0x00, 0x08, 0x19, 0x00, 0x7b, 0x2b, \
		0x1a, 0x00, 0x16, 0x1b, 0x00, 0x7c, 0x2b), \
	IOV_DATA(0x08, 0x1b, 0x00, 0x1c, 0x00, 0x03, 0x28), \
	IOV_DATA(0x01, 0x08, 0x1b, 0x00, 0x0a)

 /* ATT: Find Information Request (0x04) len 4
  *    Handle range: 0x0004-0x0004
  *
  * ATT: Find Information Response (0x05) len 5
  *    Format: UUID-16 (0x01)
  *    Handle: 0x0004
  *    UUID: Client Characteristic Configuration (0x2902)
  *
  * ATT: Find Information Request (0x04) len 4
  *    Handle range: 0x0007-0x0007
  *
  * ATT: Find Information Response (0x05) len 5
  *    Format: UUID-16 (0x01)
  *    Handle: 0x0007
  *    UUID: Client Characteristic Configuration (0x2902)
  *
  * ATT: Find Information Request (0x04) len 4
  *    Handle range: 0x000c-0x000c
  *
  * ATT: Find Information Response (0x05) len 5
  *    Format: UUID-16 (0x01)
  *    Handle: 0x000c
  *    UUID: Client Characteristic Configuration (0x2902)
  */
#define VOCS_DISC_CHAR_DESC \
	IOV_DATA(0x04, 0x04, 0x00, 0x04, 0x00), \
	IOV_DATA(0x05, 0x01, 0x04, 0x00, 0x02, 0x29), \
	IOV_DATA(0x04, 0x07, 0x00, 0x07, 0x00), \
	IOV_DATA(0x05, 0x01, 0x07, 0x00, 0x02, 0x29), \
	IOV_DATA(0x04, 0x0c, 0x00, 0x0c, 0x00), \
	IOV_DATA(0x05, 0x01, 0x0c, 0x00, 0x02, 0x29)

 /*
  *  ATT: Find Information Request (0x04) len 4
  *     Handle range: 0x0010-0x0010
  *
  *  ATT: Find Information Response (0x05) len 5
  *     Format: UUID-16 (0x01)
  *     Handle: 0x0010
  *     UUID: Client Characteristic Configuration (0x2902)
  *
  *  ATT: Find Information Request (0x04) len 4
  *     Handle range: 0x0017-0x0017
  *
  *  ATT: Find Information Response (0x05) len 5
  *     Format: UUID-16 (0x01)
  *     Handle: 0x0017
  *     UUID: Client Characteristic Configuration (0x2902)
  *
  *  ATT: Find Information Request (0x04) len 4
  *      Handle range: 0x001c-0x001c
  *
  *  ATT: Find Information Response (0x05) len 5
  *     Format: UUID-16 (0x01)
  *     Handle: 0x001c
  *     UUID: Client Characteristic Configuration (0x2902)
  */
 #define AICS_DISC_CHAR_DESC \
	IOV_DATA(0x04, 0x10, 0x00, 0x10, 0x00), \
	IOV_DATA(0x05, 0x01, 0x10, 0x00, 0x02, 0x29), \
	IOV_DATA(0x04, 0x17, 0x00, 0x17, 0x00), \
	IOV_DATA(0x05, 0x01, 0x17, 0x00, 0x02, 0x29), \
	IOV_DATA(0x04, 0x1c, 0x00, 0x1c, 0x00), \
	IOV_DATA(0x05, 0x01, 0x1c, 0x00, 0x02, 0x29)

 /* ATT: Read Request (0x0a) len 2
  *     Handle: 0x0004
  *
  * ATT: Read Response (0x0b) len 2
  *
  *  ATT: Read Request (0x0a) len 2
  *     Handle: 0x0007
  *
  * ATT: Read Response (0x0b) len 2
  *
  * ATT: Read Request (0x0a) len 2
  *     Handle: 0x000c
  *
  * ATT: Read Request (0x0a) len 2
  *     Handle: 0x000c
  */
#define VOCS_READ_CHAR_DESC \
	IOV_DATA(0x0a, 0x04, 0x00), \
	IOV_DATA(0x0b, 0x00, 0x00), \
	IOV_DATA(0x0a, 0x07, 0x00), \
	IOV_DATA(0x0b, 0x00, 0x00), \
	IOV_DATA(0x0a, 0x0c, 0x00), \
	IOV_DATA(0x0b, 0x00, 0x00)

 /*
  *  ATT: Read Request (0x0a) len 2
  *     Handle: 0x0010
  *  ATT: Read Response (0x0b) len 2
  *
  *  ATT: Read Request (0x0a) len 2
  *     Handle: 0x0017
  *  ATT: Read Response (0x0b) len 2
  *
  *  ATT: Read Request (0x0a) len 2
  *      Handle: 0x001c
  *  ATT: Read Response (0x0b) len 2
  */
#define AICS_READ_CHAR_DESC \
	IOV_DATA(0x0a, 0x10, 0x00), \
	IOV_DATA(0x0b, 0x00, 0x00), \
	IOV_DATA(0x0a, 0x17, 0x00), \
	IOV_DATA(0x0b, 0x00, 0x00), \
	IOV_DATA(0x0a, 0x1c, 0x00), \
	IOV_DATA(0x0b, 0x00, 0x00)

 /*
  * ATT: Read Request (0x0a) len 2
  *		Handle: 0x0012
  *
  * ATT: Read Response (0x0b) len 3
  */
#define AICS_READ_CHAR_GAIN_SETTNG_PROP \
	IOV_DATA(0x0a, 0x12, 0x00), \
	IOV_DATA(0x0b, 0x01, 0x80, 0x7f)

 /*
  * ATT: Read Request (0x0a) len 2
  *		Handle: 0x000f
  *
  * ATT: Read Response (0x0b) len 4
  */
#define AICS_READ_CHAR_AUD_IP_STATE \
	IOV_DATA(0x0a, 0x0f, 0x00), \
	IOV_DATA(0x0b, 0x58, 0x00, 0x02, 00)

 /*
  *  ATT: Read Request (0x0a) len 2
  *		Handle: 0x000f
  *
  *  ATT: Read Response (0x0b) len 4
  */
#define AICS_READ_CHAR_AUD_IP_STATE_MUT_DIS \
	IOV_DATA(0x0a, 0x0f, 0x00), \
	IOV_DATA(0x0b, 0x58, 0x02, 0x02, 00)

 /*
  * ATT: Read Request (0x0a) len 2
  *		Handle: 0x000f
  *
  * ATT: Read Response (0x0b) len 4
  */
#define AICS_READ_CHAR_AUD_IP_STATE_MUTED \
	IOV_DATA(0x0a, 0x0f, 0x00), \
	IOV_DATA(0x0b, 0x58, 0x01, 0x02, 00)

 /*
  * ATT: Read Request (0x0a) len 2
  *		Handle: 0x000f
  *
  * ATT: Read Response (0x0b) len 4
  */
#define AICS_READ_CHAR_AUD_IP_STATE_UNMUTED \
	IOV_DATA(0x0a, 0x0f, 0x00), \
	IOV_DATA(0x0b, 0x58, 0x00, 0x02, 00)

 /*
  * ATT: Read Request (0x0a) len 2
  *		Handle: 0x000f
  *
  * ATT: Read Response (0x0b) len 4
  */
#define AICS_READ_CHAR_AUD_IP_STATE_AUTOMATIC \
	IOV_DATA(0x0a, 0x0f, 0x00), \
	IOV_DATA(0x0b, 0x58, 0x00, 0x03, 00)

 /*
  * ATT: Read Request (0x0a) len 2
  *		Handle: 0x000f
  *
  * ATT: Read Response (0x0b) len 4
  */
#define AICS_READ_CHAR_AUD_IP_STATE_MANUAL \
	IOV_DATA(0x0a, 0x0f, 0x00), \
	IOV_DATA(0x0b, 0x58, 0x00, 0x02, 00)

 /*
  * ATT: Read Request (0x0a) len 2
  *		Handle: 0x0012
  *
  * ATT: Read Response (0x0b) len 3
  */
#define AICS_READ_CHAR_GAIN_SETTING_PROP \
	IOV_DATA(0x0a, 0x12, 0x00), \
	IOV_DATA(0x0b, 0x01, 0x80, 0x7f)

 /*
  * ATT: Read Request (0x0a) len 2
  *		Handle: 0x0014
  *
  * ATT: Read Response (0x0b) len 1
  */
#define AICS_READ_CHAR_AUD_IP_TYPE \
	IOV_DATA(0x0a, 0x14, 0x00), \
	IOV_DATA(0x0b, 0x01)

 /*
  * ATT: Read Request (0x0a) len 2
  *		Handle: 0x0014
  *
  * ATT: Read Response (0x0b) len 1
  */
#define AICS_READ_CHAR_AUD_IP_STATUS \
	IOV_DATA(0x0a, 0x16, 0x00), \
	IOV_DATA(0x0b, 0x01)

 /*
  * ATT: Write Request (0x12) len 5
  *		Handle: 0x0019
  *			Data: 016401
  *
  * ATT: Error Response (0x01) len 4
  *     Write Request (0x12)
  *     Handle: 0x0019
  *      Error: Reserved (0x80)
  *
  * ATT: Write Request (0x12) len 4
  *		Handle: 0x0019
  *        Data: 0265/0366/0467/0568
  *
  * ATT: Error Response (0x01) len 4
  *     Write Request (0x12)
  *     Handle: 0x0019
  *     Error: Reserved (0x80)
  */
#define AICS_CP_WR_INVLD_CHG_COUNTER \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x64, 0x01), \
	IOV_DATA(0x01, 0x12, 0x19, 0x00, 0x80), \
	IOV_DATA(0x12, 0x19, 0x00, 0x02, 0x65), \
	IOV_DATA(0x01, 0x12, 0x19, 0x00, 0x80), \
	IOV_DATA(0x12, 0x19, 0x00, 0x03, 0x66), \
	IOV_DATA(0x01, 0x12, 0x19, 0x00, 0x80), \
	IOV_DATA(0x12, 0x19, 0x00, 0x04, 0x67), \
	IOV_DATA(0x01, 0x12, 0x19, 0x00, 0x80), \
	IOV_DATA(0x12, 0x19, 0x00, 0x05, 0x68), \
	IOV_DATA(0x01, 0x12, 0x19, 0x00, 0x80)

 /*
  * ATT: Write Request (0x12) len 4
  *		Handle: 0x0019
  *			Data: 0600/ff00
  *
  * ATT: Error Response (0x01) len 4
  *		Write Request (0x12)
  *		Handle: 0x0019
  *		Error: Reserved (0x81)
  */
#define AICS_CP_WR_INVLD_OP_CODE \
	IOV_DATA(0x12, 0x19, 0x00, 0x06, 0x00), \
	IOV_DATA(0x01, 0x12, 0x19, 0x00, 0x81), \
	IOV_DATA(0x12, 0x19, 0x00, 0xff, 0x00), \
	IOV_DATA(0x01, 0x12, 0x19, 0x00, 0x81)

 /*
  *  ATT: Write Request (0x12) len 4
  *		Handle: 0x0019
  *        Data: 0200
  *
  * ATT: Error Response (0x01) len 4
  *     Write Request (0x12)
  *     Handle: 0x0019
  *     Error: Reserved (0x82)
  */
#define AICS_CP_WR_UNMUTE \
	IOV_DATA(0x12, 0x19, 0x00, 0x02, 0x00), \
	IOV_DATA(0x01, 0x12, 0x19, 0x00, 0x82)

 /*
  *  ATT: Write Request (0x12) len 4
  *		Handle: 0x0019
  *			Data: 0300
  *
  *  ATT: Error Response (0x01) len 4
  *		Write Request (0x12)
  *     Handle: 0x0019
  *     Error: Reserved (0x82)
  */
#define AICS_CP_WR_MUTE \
	IOV_DATA(0x12, 0x19, 0x00, 0x03, 0x00), \
	IOV_DATA(0x01, 0x12, 0x19, 0x00, 0x82)

 /*
  * ATT: Write Request (0x12) len 4
  *		Handle: 0x0019
  *			Data: 0200
  *
  *  ATT: Write Response (0x13) len 0
  */
#define AICS_CP_WR_UNMUTE_SUCCESS \
	IOV_DATA(0x12, 0x19, 0x00, 0x02, 0x00), \
	IOV_DATA(0x13)

 /*
  *  ATT: Write Request (0x12) len 4
  *		Handle: 0x0019
  *       Data: 0300
  *
  *   ATT: Write Response (0x13) len 0
  */
#define AICS_CP_WR_MUTE_SUCCESS \
	IOV_DATA(0x12, 0x19, 0x00, 0x03, 0x00), \
	IOV_DATA(0x13)

 /*
  * ATT: Write Request (0x12) len 4
  *		Handle: 0x0019
  *			Data: 0400
  *
  * ATT: Write Response (0x13) len 0
  */
#define AICS_CP_WR_MANUAL_GAIN \
	IOV_DATA(0x12, 0x19, 0x00, 0x04, 0x00), \
	IOV_DATA(0x13)

 /*
  * ATT: Write Request (0x12) len 4
  *		Handle: 0x0019
  *			Data: 0500
  *
  * ATT: Write Response (0x13) len 0
  */
#define AICS_CP_WR_AUTOMATIC_GAIN \
	IOV_DATA(0x12, 0x19, 0x00, 0x05, 0x00), \
	IOV_DATA(0x13)

 /*
  * ATT: Write Request (0x12) len 5
  *		Handle: 0x0019
  *		Data: 01007f
  *
  * ATT: Write Response (0x13) len 0
  */
#define AICS_CP_WR_GAIN_SETTING_MAX \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x00, 0x7f), \
	IOV_DATA(0x13)

 /*
  * ATT: Write Request (0x12) len 5
  *		Handle: 0x0019
  *		Data: 010080
  *
  * ATT: Write Response (0x13) len 0
  */
#define AICS_CP_WR_GAIN_SETTING_MIN \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x01, 0x80), \
	IOV_DATA(0x13)

 /*
  * ATT: Write Request (0x12) len 4
  *		Handle: 0x0010
  *			Data: 0100
  *
  * ATT: Write Response (0x13) len 0
  */
#define AICS_ENABLE_AUD_IP_STATE_CC \
	IOV_DATA(0x12, 0x10, 0x00, 0x01, 0x00), \
	IOV_DATA(0X13)

 /*
  * ATT: Handle Value Notification (0x1b) len 6
  *		Handle: 0x000f
  *			Data: 58000201
  */
#define AICS_AUD_IP_STATE_UNMUTED_NOTIF \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x58, 0x00, 0x02, 0x01)

 /*
  * ATT: Handle Value Notification (0x1b) len 6
  *		Handle: 0x000f
  *			Data: 58010201
  */
#define AICS_AUD_IP_STATE_MUTED_NOTIF \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x58, 0x01, 0x02, 0x01)

 /*
  * ATT: Handle Value Notification (0x1b) len 6
  *		Handle: 0x000f
  *			Data: 58000201
  *
  */
#define AICS_AUD_IP_STATE_MANUAL_GAIN_NOTIF \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x58, 0x00, 0x02, 0x01)

 /*
  * ATT: Handle Value Notification (0x1b) len 6
  *		Handle: 0x000f
  *			Data: 58000301
  */
#define AICS_AUD_IP_STATE_AUTOMATIC_GAIN_NOTIF \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x58, 0x00, 0x03, 0x01)

 /*
  * ATT: Handle Value Notification (0x1b) len 6
  *		Handle: 0x000f
  *			Data: 7f000201
  */
#define AICS_AUD_IP_STATE_GAIN_SETTING_MAX_NOTIF \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x7f, 0x00, 0x02, 0x01)

 /*
  * ATT: Handle Value Notification (0x1b) len 6
  *		Handle: 0x000f
  *			Data: 80000202
  */
#define AICS_AUD_IP_STATE_GAIN_SETTING_MIN_NOTIF \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x80, 0x00, 0x02, 0x02)

 /*
  * AICS/SR/CP/BV-01-C
  * Test Procedure:
  * 1. The Lower Tester executes the GATT Read Characteristic Value
  *     sub-procedure for the Audio Input State characteristic.
  * 2. The Lower Tester executes the GATT Read Characteristic Value
  *     sub-procedure for the Gain Setting Properties characteristic.
  * Repeat steps 3–5 for (255 – Change_Counter value) + 1 times.
  *		[AICS_CP_WR_GAIN_SETTING_255_LOOP does the above point]
  * 3. The Lower Tester executes the GATT Write Characteristic Value
  *    sub-procedure for the Audio Input Control Point characteristic with
  *    the Set Gain Setting Opcode, Gain Setting parameter set to a random
  *    value between the Gain_Setting_Minimum field and Gain_Setting_Maximum
  *    field values and different than the last iteration, and the
  *     Change_Counter parameter.
  * 4. The Lower Tester receives a Write Response indicating that the IUT
  *    has accepted the Opcode.
  * 5. The Lower Tester receives a GATT Characteristic Value Notification
  *    for the Audio Input State characteristic.
  *
  */
#define AICS_CP_WR_GAIN_SETTING_255_LOOP \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x00, 0xc4), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xc4, 0x00, 0x02, 0x01), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x01, 0xaf), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xaf, 0x00, 0x02, 0x02), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x02, 0xcd), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xcd, 0x00, 0x02, 0x03), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x03, 0xd4), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xd4, 0x00, 0x02, 0x04), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x04, 0x08), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x08, 0x00, 0x02, 0x05), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x05, 0x88), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x88, 0x00, 0x02, 0x06), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x06, 0xde), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xde, 0x00, 0x02, 0x07), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x07, 0x21), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x21, 0x00, 0x02, 0x08), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x08, 0x41), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x41, 0x00, 0x02, 0x09), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x09, 0x08), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x08, 0x00, 0x02, 0x0a), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x0a, 0x05), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x05, 0x00, 0x02, 0x0b), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x0b, 0x18), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x18, 0x00, 0x02, 0x0c), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x0c, 0x28), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x28, 0x00, 0x02, 0x0d), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x0d, 0xca), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xca, 0x00, 0x02, 0x0e), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x0e, 0xa0), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xa0, 0x00, 0x02, 0x0f), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x0f, 0xd0), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xd0, 0x00, 0x02, 0x10), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x10, 0xec), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xec, 0x00, 0x02, 0x11), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x11, 0x3c), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x3c, 0x00, 0x02, 0x12), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x12, 0x09), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x09, 0x00, 0x02, 0x13), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x13, 0x05), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x05, 0x00, 0x02, 0x14), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x14, 0x29), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x29, 0x00, 0x02, 0x15), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x15, 0x28), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x28, 0x00, 0x02, 0x16), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x16, 0x25), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x25, 0x00, 0x02, 0x17), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x17, 0x31), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x31, 0x00, 0x02, 0x18), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x18, 0x49), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x49, 0x00, 0x02, 0x19), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x19, 0x12), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x12, 0x00, 0x02, 0x1a), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x1a, 0x09), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x09, 0x00, 0x02, 0x1b), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x1b, 0x29), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x29, 0x00, 0x02, 0x1c), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x1c, 0x55), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x55, 0x00, 0x02, 0x1d), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x1d, 0x35), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x35, 0x00, 0x02, 0x1e), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x1e, 0x59), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x59, 0x00, 0x02, 0x1f), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x1f, 0x69), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x69, 0x00, 0x02, 0x20), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x20, 0x22), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x22, 0x00, 0x02, 0x21), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x21, 0x79), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x79, 0x00, 0x02, 0x22), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x22, 0x11), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x11, 0x00, 0x02, 0x23), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x23, 0x21), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x21, 0x00, 0x02, 0x24), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x24, 0x0a), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x0a, 0x00, 0x02, 0x25), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x25, 0x0b), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x0b, 0x00, 0x02, 0x26), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x26, 0x0c), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x0c, 0x00, 0x02, 0x27), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x27, 0x0d), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x0d, 0x00, 0x02, 0x28), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x28, 0x0e), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x0e, 0x00, 0x02, 0x29), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x29, 0x0f), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x0f, 0x00, 0x02, 0x2a), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x2a, 0x61), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x61, 0x00, 0x02, 0x2b), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x2b, 0x63), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x63, 0x00, 0x02, 0x2c), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x2c, 0x64), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x64, 0x00, 0x02, 0x2d), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x2d, 0x68), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x68, 0x00, 0x02, 0x2e), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x2e, 0x14), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x14, 0x00, 0x02, 0x2f), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x2f, 0x33), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x33, 0x00, 0x02, 0x30), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x30, 0x31), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x31, 0x00, 0x02, 0x31), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x31, 0x3e), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x3e, 0x00, 0x02, 0x32), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x32, 0x79), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x79, 0x00, 0x02, 0x33), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x33, 0x99), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x99, 0x00, 0x02, 0x34), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x34, 0x81), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x81, 0x00, 0x02, 0x35), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x35, 0x73), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x73, 0x00, 0x02, 0x36), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x36, 0x75), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x75, 0x00, 0x02, 0x37), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x37, 0x6f), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x6f, 0x00, 0x02, 0x38), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x38, 0x4e), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x4e, 0x00, 0x02, 0x39), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x39, 0x1a), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x1a, 0x00, 0x02, 0x3a), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x3a, 0x1c), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x1c, 0x00, 0x02, 0x3b), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x3b, 0x2c), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x2c, 0x00, 0x02, 0x3c), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x3c, 0x5a), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x5a, 0x00, 0x02, 0x3d), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x3d, 0x3d), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x3d, 0x00, 0x02, 0x3e), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x3e, 0x5f), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x5f, 0x00, 0x02, 0x3f), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x3f, 0x6e), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x6e, 0x00, 0x02, 0x40), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x40, 0x2c), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x2c, 0x00, 0x02, 0x41), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x41, 0x7c), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x7c, 0x00, 0x02, 0x42), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x42, 0x01), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x01, 0x00, 0x02, 0x43), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x43, 0x2b), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x2b, 0x00, 0x02, 0x44), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x44, 0xbc), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xbc, 0x00, 0x02, 0x45), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x45, 0x3b), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x3b, 0x00, 0x02, 0x46), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x46, 0x4c), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x4c, 0x00, 0x02, 0x47), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x47, 0x3d), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x3d, 0x00, 0x02, 0x48), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x48, 0x7e), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x7e, 0x00, 0x02, 0x49), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x49, 0x2f), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x2f, 0x00, 0x02, 0x4a), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x4a, 0x71), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x71, 0x00, 0x02, 0x4b), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x4b, 0x93), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x93, 0x00, 0x02, 0x4c), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x4c, 0x6c), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x6c, 0x00, 0x02, 0x4d), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x4d, 0x78), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x78, 0x00, 0x02, 0x4e), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x4e, 0x44), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x44, 0x00, 0x02, 0x4f), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x4f, 0x83), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x83, 0x00, 0x02, 0x50), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x50, 0x2c), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x2c, 0x00, 0x02, 0x51), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x51, 0x7e), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x7e, 0x00, 0x02, 0x52), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x52, 0x61), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x61, 0x00, 0x02, 0x53), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x53, 0xbb), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xbb, 0x00, 0x02, 0x54), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x54, 0xb1), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xb1, 0x00, 0x02, 0x55), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x55, 0x3e), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x3e, 0x00, 0x02, 0x56), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x56, 0xca), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xca, 0x00, 0x02, 0x57), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x57, 0x3f), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x3f, 0x00, 0x02, 0x58), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x58, 0x3e), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x3e, 0x00, 0x02, 0x59), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x59, 0xdf), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xdf, 0x00, 0x02, 0x5a), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x5a, 0xe1), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xe1, 0x00, 0x02, 0x5b), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x5b, 0xd3), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xd3, 0x00, 0x02, 0x5c), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x5c, 0x9c), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x9c, 0x00, 0x02, 0x5d), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x5d, 0x70), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x70, 0x00, 0x02, 0x5e), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x5e, 0xa4), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xa4, 0x00, 0x02, 0x5f), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x5f, 0x8a), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x8a, 0x00, 0x02, 0x60), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x60, 0x7c), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x7c, 0x00, 0x02, 0x61), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x61, 0x5f), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x5f, 0x00, 0x02, 0x62), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x62, 0x6a), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x6a, 0x00, 0x02, 0x63), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x63, 0xb3), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xb3, 0x00, 0x02, 0x64), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x64, 0xb7), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xb7, 0x00, 0x02, 0x65), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x65, 0x3b), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x3b, 0x00, 0x02, 0x66), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x66, 0x4a), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x4a, 0x00, 0x02, 0x67), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x67, 0x3b), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x3b, 0x00, 0x02, 0x68), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x68, 0x8e), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x8e, 0x00, 0x02, 0x69), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x69, 0xef), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xef, 0x00, 0x02, 0x6a), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x6a, 0xe5), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xe5, 0x00, 0x02, 0x6b), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x6b, 0xe3), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xe3, 0x00, 0x02, 0x6c), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x6c, 0x5c), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x5c, 0x00, 0x02, 0x6d), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x6d, 0x79), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x79, 0x00, 0x02, 0x6e), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x6e, 0xa1), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xa1, 0x00, 0x02, 0x6f), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x6f, 0x8b), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x8b, 0x00, 0x02, 0x70), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x70, 0x5e), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x5e, 0x00, 0x02, 0x71), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x71, 0x0f), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x0f, 0x00, 0x02, 0x72), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x72, 0x6c), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x6c, 0x00, 0x02, 0x73), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x73, 0xb9), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xb9, 0x00, 0x02, 0x74), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x74, 0xb0), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xb0, 0x00, 0x02, 0x75), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x75, 0x31), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x31, 0x00, 0x02, 0x76), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x76, 0x4d), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x4d, 0x00, 0x02, 0x77), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x77, 0x39), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x39, 0x00, 0x02, 0x78), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x78, 0xde), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xde, 0x00, 0x02, 0x79), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x79, 0xe9), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xe9, 0x00, 0x02, 0x7a), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x7a, 0xe8), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xe8, 0x00, 0x02, 0x7b), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x7b, 0xa3), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xa3, 0x00, 0x02, 0x7c), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x7c, 0xcc), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xcc, 0x00, 0x02, 0x7d), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x7d, 0x89), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x89, 0x00, 0x02, 0x7e), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x7e, 0xa9), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xa9, 0x00, 0x02, 0x7f), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x7f, 0x83), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x83, 0x00, 0x02, 0x80), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x80, 0x4e), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x4e, 0x00, 0x02, 0x81), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x81, 0x9f), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x9f, 0x00, 0x02, 0x82), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x82, 0x6f), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x6f, 0x00, 0x02, 0x83), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x83, 0xb5), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xb5, 0x00, 0x02, 0x84), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x84, 0xb4), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xb4, 0x00, 0x02, 0x85), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x85, 0x21), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x21, 0x00, 0x02, 0x86), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x86, 0x7d), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x7d, 0x00, 0x02, 0x87), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x87, 0x29), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x29, 0x00, 0x02, 0x88), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x88, 0x9d), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x9d, 0x00, 0x02, 0x89), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x89, 0xe1), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xe1, 0x00, 0x02, 0x8a), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x8a, 0xa8), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xa8, 0x00, 0x02, 0x8b), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x8b, 0xaa), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xaa, 0x00, 0x02, 0x8c), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x8c, 0x1c), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x1c, 0x00, 0x02, 0x8d), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x8d, 0x59), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x59, 0x00, 0x02, 0x8e), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x8e, 0xc9), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xc9, 0x00, 0x02, 0x8f), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x8f, 0x33), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x33, 0x00, 0x02, 0x90), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x90, 0xe0), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xe0, 0x00, 0x02, 0x91), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x91, 0xf1), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xf1, 0x00, 0x02, 0x92), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x92, 0x6e), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x6e, 0x00, 0x02, 0x93), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x93, 0xb3), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xb3, 0x00, 0x02, 0x94), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x94, 0xb8), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xb8, 0x00, 0x02, 0x95), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x95, 0x2f), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x2f, 0x00, 0x02, 0x96), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x96, 0x7c), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x7c, 0x00, 0x02, 0x97), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x97, 0x25), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x25, 0x00, 0x02, 0x98), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x98, 0x9e), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x9e, 0x00, 0x02, 0x99), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x99, 0xed), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xed, 0x00, 0x02, 0x9a), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x9a, 0xa5), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xa5, 0x00, 0x02, 0x9b), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x9b, 0xab), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xab, 0x00, 0x02, 0x9c), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x9c, 0x5c), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x5c, 0x00, 0x02, 0x9d), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x9d, 0x5c), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x5c, 0x00, 0x02, 0x9e), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x9e, 0xc8), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xc8, 0x00, 0x02, 0x9f), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0x9f, 0x3b), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x3b, 0x00, 0x02, 0xa0), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xa0, 0xed), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xed, 0x00, 0x02, 0xa1), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xa1, 0x9a), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x9a, 0x00, 0x02, 0xa2), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xa2, 0x6b), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x6b, 0x00, 0x02, 0xa3), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xa3, 0xb9), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xb9, 0x00, 0x02, 0xa4), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xa4, 0xbe), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xbe, 0x00, 0x02, 0xa5), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xa5, 0x2e), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x2e, 0x00, 0x02, 0xa6), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xa6, 0x7c), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x7c, 0x00, 0x02, 0xa7), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xa7, 0x24), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x24, 0x00, 0x02, 0xa8), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xa8, 0x9b), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x9b, 0x00, 0x02, 0xa9), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xa9, 0xee), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xee, 0x00, 0x02, 0xaa), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xaa, 0xc2), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xc2, 0x00, 0x02, 0xab), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xab, 0xc0), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xc0, 0x00, 0x02, 0xac), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xac, 0x10), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x10, 0x00, 0x02, 0xad), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xad, 0x58), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x58, 0x00, 0x02, 0xae), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xae, 0xa9), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xa9, 0x00, 0x02, 0xaf), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xaf, 0x30), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x30, 0x00, 0x02, 0xb0), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xb0, 0x49), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x49, 0x00, 0x02, 0xb1), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xb1, 0x90), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x90, 0x00, 0x02, 0xb2), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xb2, 0x60), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x60, 0x00, 0x02, 0xb3), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xb3, 0xbf), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xbf, 0x00, 0x02, 0xb4), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xb4, 0xbd), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xbd, 0x00, 0x02, 0xb5), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xb5, 0x33), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x33, 0x00, 0x02, 0xb6), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xb6, 0x77), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x77, 0x00, 0x02, 0xb7), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xb7, 0x89), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x89, 0x00, 0x02, 0xb8), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xb8, 0x9f), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x9f, 0x00, 0x02, 0xb9), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xb9, 0xf1), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xf1, 0x00, 0x02, 0xba), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xba, 0xaa), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xaa, 0x00, 0x02, 0xbb), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xbb, 0xac), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xac, 0x00, 0x02, 0xbc), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xbc, 0x1e), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x1e, 0x00, 0x02, 0xbd), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xbd, 0x58), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x58, 0x00, 0x02, 0xbe), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xbe, 0xcd), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xcd, 0x00, 0x02, 0xbf), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xbf, 0x3a), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x3a, 0x00, 0x02, 0xc0), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xc0, 0x48), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x48, 0x00, 0x02, 0xc1), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xc1, 0x9a), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x9a, 0x00, 0x02, 0xc2), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xc2, 0x6c), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x6c, 0x00, 0x02, 0xc3), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xc3, 0x7a), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x7a, 0x00, 0x02, 0xc4), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xc4, 0x7d), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x7d, 0x00, 0x02, 0xc5), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xc5, 0x7c), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x7c, 0x00, 0x02, 0xc6), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xc6, 0x7d), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x7d, 0x00, 0x02, 0xc7), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xc7, 0x7e), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x7e, 0x00, 0x02, 0xc8), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xc8, 0x7f), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x7f, 0x00, 0x02, 0xc9), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xc9, 0xf0), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xf0, 0x00, 0x02, 0xca), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xca, 0xf1), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xf1, 0x00, 0x02, 0xcb), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xcb, 0xf2), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xf2, 0x00, 0x02, 0xcc), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xcc, 0xf3), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xf3, 0x00, 0x02, 0xcd), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xcd, 0xf4), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xf4, 0x00, 0x02, 0xce), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xce, 0xc1), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xc1, 0x00, 0x02, 0xcf), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xcf, 0xc2), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0xc2, 0x00, 0x02, 0xd0), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xd0, 0x4f), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x4f, 0x00, 0x02, 0xd1), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xd1, 0x60), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x60, 0x00, 0x02, 0xd2), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xd2, 0x6a), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x6a, 0x00, 0x02, 0xd3), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xd3, 0x6b), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x6b, 0x00, 0x02, 0xd4), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xd4, 0x6c), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x6c, 0x00, 0x02, 0xd5), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xd5, 0x6d), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x6d, 0x00, 0x02, 0xd6), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xd6, 0x6e), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x6e, 0x00, 0x02, 0xd7), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xd7, 0x6f), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x6f, 0x00, 0x02, 0xd8), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xd8, 0x91), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x91, 0x00, 0x02, 0xd9), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xd9, 0x92), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x92, 0x00, 0x02, 0xda), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xda, 0x93), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x93, 0x00, 0x02, 0xdb), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xdb, 0x94), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x94, 0x00, 0x02, 0xdc), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xdc, 0x95), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x95, 0x00, 0x02, 0xdd), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xdd, 0x96), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x96, 0x00, 0x02, 0xde), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xde, 0x97), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x97, 0x00, 0x02, 0xdf), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xdf, 0x98), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x98, 0x00, 0x02, 0xe0), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xe0, 0x59), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x59, 0x00, 0x02, 0xe1), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xe1, 0x5a), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x5a, 0x00, 0x02, 0xe2), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xe2, 0x5b), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x5b, 0x00, 0x02, 0xe3), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xe3, 0x5c), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x5c, 0x00, 0x02, 0xe4), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xe4, 0x5d), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x5d, 0x00, 0x02, 0xe5), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xe5, 0x5e), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x5e, 0x00, 0x02, 0xe6), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xe6, 0x5f), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x5f, 0x00, 0x02, 0xe7), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xe7, 0x70), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x70, 0x00, 0x02, 0xe8), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xe8, 0x71), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x71, 0x00, 0x02, 0xe9), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xe9, 0x72), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x72, 0x00, 0x02, 0xea), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xea, 0x73), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x73, 0x00, 0x02, 0xeb), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xeb, 0x74), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x74, 0x00, 0x02, 0xec), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xec, 0x4a), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x4a, 0x00, 0x02, 0xed), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xed, 0x4b), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x4b, 0x00, 0x02, 0xee), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xee, 0x4c), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x4c, 0x00, 0x02, 0xef), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xef, 0x50), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x50, 0x00, 0x02, 0xf0), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xf0, 0x40), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x40, 0x00, 0x02, 0xf1), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xf1, 0x30), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x30, 0x00, 0x02, 0xf2), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xf2, 0x50), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x50, 0x00, 0x02, 0xf3), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xf3, 0x60), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x60, 0x00, 0x02, 0xf4), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xf4, 0x10), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x10, 0x00, 0x02, 0xf5), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xf5, 0x11), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x11, 0x00, 0x02, 0xf6), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xf6, 0x12), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x12, 0x00, 0x02, 0xf7), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xf7, 0x13), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x13, 0x00, 0x02, 0xf8), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xf8, 0x14), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x14, 0x00, 0x02, 0xf9), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xf9, 0x15), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x15, 0x00, 0x02, 0xfa), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xfa, 0x16), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x16, 0x00, 0x02, 0xfb), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xfb, 0x18), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x18, 0x00, 0x02, 0xfc), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xfc, 0x19), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x19, 0x00, 0x02, 0xfd), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xfd, 0x1a), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x1a, 0x00, 0x02, 0xfe), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xfe, 0x1b), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x1b, 0x00, 0x02, 0xff), \
	IOV_DATA(0x12, 0x19, 0x00, 0x01, 0xff, 0x1c), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x0f, 0x00, 0x1c, 0x00, 0x02, 0x00)

 /* ATT: Read Request (0x0a) len 2
  *     Handle: 0x0003
  *
  * ATT: Read Response (0x0b) len 3
  */
#define VOCS_READ_CHAR_VOL_OFFSET \
	IOV_DATA(0x0a, 0x03, 0x00), \
	IOV_DATA(0x0b, 0x00, 0x00, 0x00)

 /* ATT: Read By Type Request (0x08) len 6
  *     Handle range: 0x0002-0x0003
  *     Attribute type: Offset State (0x2b80)
  *
  * ATT: Read By Type Response (0x09) len 6
  *     Attribute data length: 5
  *     Attribute data list: 1 entry
  *     Handle: 0x0003
  *     Value: 000000
  */
#define VOCS_READ_CHAR_VOL_OFFSET_UUID \
	IOV_DATA(0x08, 0x02, 0x00, 0x03, 0x00, 0x80, 0x2b), \
	IOV_DATA(0x09, 0x05, 0x03, 0x00, 0x00, 0x00, 0x00)

 /* ATT: Read Request (0x0a) len 2
  *     Handle: 0x0006
  *
  * ATT: Read Response (0x0b) len 4
  */
#define VOCS_READ_CHAR_AUD_LOC \
	IOV_DATA(0x0a, 0x06, 0x00), \
	IOV_DATA(0x0b, 0x02, 0x00, 0x00, 0x00)

 /* ATT: Read By Type Request (0x08) len 6
  *     Handle range: 0x0005-0x0006
  *     Attribute type: Audio Location (0x2b81)
  *
  * ATT: Read By Type Response (0x09) len 7
  *     Attribute data length: 6
  *     Attribute data list: 1 entry
  *     Handle: 0x0006
  *     Value: 02000000
  */
#define VOCS_READ_CHAR_AUD_LOC_UUID \
	IOV_DATA(0x08, 0x05, 0x00, 0x06, 0x00, 0x81, 0x2b), \
	IOV_DATA(0x09, 0x06, 0x06, 0x00, 0x02, 0x00, 0x00, 0x00)

 /* ATT: Write Request (0x12) len 6
  *     Handle: 0x0009
  *          Data: 01280a00
  *
  * ATT: Error Response (0x01) len 4
  *     Write Request (0x12)
  *     Handle: 0x0009
  *     Error: Reserved (0x80)
  */
#define VOCS_CP_INVALID_CHNG_COUNTER \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x28, 0x0a, 0x00),\
	IOV_DATA(0x01, 0x12, 0x09, 0x00, 0x80)

 /* ATT: Write Request (0x12) len 6
  *     Handle: 0x0009
  *         Data: 00007800
  *
  * ATT: Error Response (0x01) len 4
  *     Write Request (0x12)
  *     Handle: 0x0009
  *     Error: Reserved (0x81)
  */
#define VOCS_CP_INVALID_OPCODE \
	IOV_DATA(0x12, 0x09, 0x00, 0x00, 0x00, 0x78, 0x00),\
	IOV_DATA(0x01, 0x12, 0x09, 0x00, 0x81)

 /* ATT: Write Request (0x12) len 6
  *     Handle: 0x0009
  *         Data: 01000e01
  *
  * ATT: Error Response (0x01) len 4
  *     Write Request (0x12)
  *     Handle: 0x0009
  *     Error: Reserved (0x82)
  *
  * ATT: Write Request (0x12) len 6
  *     Handle: 0x0009
  *         Data: 0100f2fe
  *
  * ATT: Error Response (0x01) len 4
  *     Write Request (0x12)
  *     Handle: 0x0009
  *     Error: Reserved (0x82)
  */
#define VOCS_CP_OUT_OF_RANGE_VALUE \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x00, 0x0e, 0x01), \
	IOV_DATA(0x01, 0x12, 0x09, 0x00, 0x82), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x00, 0xf2, 0xfe),\
	IOV_DATA(0x01, 0x12, 0x09, 0x00, 0x82)

 /* ATT: Write Request (0x12) len 4
  *     Handle: 0x0004
  *         Data: 0100
  *
  * ATT: Write Response (0x13) len 0
  */
#define VOCS_ENNABLE_VOL_OFFSET_CCD \
	IOV_DATA(0x12, 0x04, 0x00, 0x01, 0x00), \
	IOV_DATA(0x13)

#define VOCS_SR_SGGIT_CHA_TST_CMDS \
	VCS_EXCHANGE_MTU, \
	VOCS_AICS_PRIMARY_SERVICE_VCS, \
	VOCS_AICS_SECONDARY_SERVICE, \
	VOCS_AICS_INCLUDED_SERVICE, \
	VOCS_DISC_CHAR, \
	VOCS_DISC_CHAR_DESC, \
	VOCS_READ_CHAR_DESC

#define AICS_SR_SGGIT_CHA_TST_CMDS \
	VCS_EXCHANGE_MTU, \
	VOCS_AICS_PRIMARY_SERVICE_VCS, \
	VOCS_AICS_SECONDARY_SERVICE, \
	VOCS_AICS_INCLUDED_SERVICE, \
	AICS_DISC_CHAR, \
	AICS_DISC_CHAR_DESC, \
	AICS_READ_CHAR_DESC

#define AICS_SR_SGGIT_CHA_BV_01_C \
	AICS_SR_SGGIT_CHA_TST_CMDS, \
	AICS_READ_CHAR_AUD_IP_STATE

#define AICS_SR_SGGIT_CHA_BV_02_C \
	AICS_SR_SGGIT_CHA_TST_CMDS, \
	AICS_READ_CHAR_GAIN_SETTING_PROP

#define AICS_SR_SGGIT_CHA_BV_03_C \
	AICS_SR_SGGIT_CHA_TST_CMDS, \
	AICS_READ_CHAR_AUD_IP_TYPE

#define AICS_SR_SGGIT_CHA_BV_04_C \
	AICS_SR_SGGIT_CHA_TST_CMDS, \
	AICS_READ_CHAR_AUD_IP_STATUS

#define AICS_SR_SGGIT_CHA_BV_05_C \
	AICS_SR_SGGIT_CHA_TST_CMDS

#define AICS_SR_SGGIT_CHA_BV_06_C \
	AICS_SR_SGGIT_CHA_TST_CMDS

#define AICS_SR_SGGIT_CP_BI_01_C \
	AICS_SR_SGGIT_CHA_TST_CMDS, \
	AICS_READ_CHAR_AUD_IP_STATE, \
	AICS_CP_WR_INVLD_CHG_COUNTER

#define AICS_SR_SGGIT_CP_BI_02_C \
	AICS_SR_SGGIT_CHA_TST_CMDS, \
	AICS_CP_WR_INVLD_OP_CODE

#define AICS_SR_SGGIT_CP_BI_03_C \
	AICS_SR_SGGIT_CHA_TST_CMDS, \
	AICS_READ_CHAR_AUD_IP_STATE_MUT_DIS, \
	AICS_CP_WR_UNMUTE, \
	AICS_CP_WR_MUTE

#define AICS_SR_CP_BV_01_C \
	AICS_SR_SGGIT_CHA_TST_CMDS, \
	AICS_ENABLE_AUD_IP_STATE_CC, \
	AICS_READ_CHAR_AUD_IP_STATE, \
	AICS_READ_CHAR_GAIN_SETTNG_PROP, \
	AICS_CP_WR_GAIN_SETTING_255_LOOP

#define AICS_SR_CP_BV_02_C \
	AICS_SR_SGGIT_CHA_TST_CMDS, \
	AICS_ENABLE_AUD_IP_STATE_CC, \
	AICS_READ_CHAR_AUD_IP_STATE_MUTED, \
	AICS_CP_WR_UNMUTE_SUCCESS, \
	AICS_AUD_IP_STATE_UNMUTED_NOTIF

#define AICS_SR_CP_BV_03_C \
	AICS_SR_SGGIT_CHA_TST_CMDS, \
	AICS_ENABLE_AUD_IP_STATE_CC, \
	AICS_READ_CHAR_AUD_IP_STATE_UNMUTED, \
	AICS_CP_WR_MUTE_SUCCESS, \
	AICS_AUD_IP_STATE_MUTED_NOTIF

#define AICS_SR_CP_BV_04_C \
	AICS_SR_SGGIT_CHA_TST_CMDS, \
	AICS_ENABLE_AUD_IP_STATE_CC, \
	AICS_READ_CHAR_AUD_IP_STATE_AUTOMATIC, \
	AICS_CP_WR_MANUAL_GAIN, \
	AICS_AUD_IP_STATE_MANUAL_GAIN_NOTIF

#define AICS_SR_CP_BV_05_C \
	AICS_SR_SGGIT_CHA_TST_CMDS, \
	AICS_ENABLE_AUD_IP_STATE_CC, \
	AICS_READ_CHAR_AUD_IP_STATE_MANUAL, \
	AICS_CP_WR_AUTOMATIC_GAIN, \
	AICS_AUD_IP_STATE_AUTOMATIC_GAIN_NOTIF

#define AICS_SR_SPE_BI_01_C \
	AICS_SR_SGGIT_CHA_TST_CMDS, \
	AICS_ENABLE_AUD_IP_STATE_CC, \
	AICS_READ_CHAR_AUD_IP_STATE, \
	AICS_READ_CHAR_GAIN_SETTNG_PROP, \
	AICS_CP_WR_GAIN_SETTING_MAX, \
	AICS_AUD_IP_STATE_GAIN_SETTING_MAX_NOTIF, \
	AICS_CP_WR_GAIN_SETTING_MIN, \
	AICS_AUD_IP_STATE_GAIN_SETTING_MIN_NOTIF

#define VOCS_SR_SGGIT_SER_BV_01_C \
	VOCS_SR_SGGIT_CHA_TST_CMDS

#define VOCS_SR_SGGIT_CHA_BV_01_C \
	VOCS_SR_SGGIT_CHA_TST_CMDS, \
	VOCS_READ_CHAR_VOL_OFFSET, \
	VOCS_READ_CHAR_VOL_OFFSET_UUID

#define VOCS_SR_SGGIT_CHA_BV_02_C \
	VOCS_SR_SGGIT_CHA_TST_CMDS, \
	VOCS_READ_CHAR_AUD_LOC, \
	VOCS_READ_CHAR_AUD_LOC_UUID

#define VOCS_SR_SGGIT_CHA_BV_03_C \
	VOCS_SR_SGGIT_CHA_TST_CMDS

#define VOCS_SR_SGGIT_CHA_BV_04_C \
	VOCS_SR_SGGIT_CHA_TST_CMDS

#define VOCS_SR_SGGIT_CP_BI_01_C \
	VOCS_SR_SGGIT_CHA_TST_CMDS, \
	VOCS_CP_INVALID_CHNG_COUNTER

#define VOCS_SR_SGGIT_CP_BI_02_C \
	VOCS_SR_SGGIT_CHA_TST_CMDS, \
	VOCS_CP_INVALID_OPCODE

#define VOCS_SR_SGGIT_CP_BI_03_C \
	VOCS_SR_SGGIT_CHA_TST_CMDS, \
	VOCS_CP_OUT_OF_RANGE_VALUE

#define VOCS_SR_SPE_BI_01_C \
	VOCS_SR_SGGIT_CHA_TST_CMDS, \
	VOCS_READ_CHAR_AUD_LOC
 /*
  * VOCS/SR/CP/BV-01-C [Set Volume Offset]
  * Do Initial Condition Procedures
  * 1. The Lower Tester executes the GATT Read Characteristic
  *    Value sub-procedure for the Volume Offset State characteristic.
  * Repeat steps 2-4 for (255 - Change_Counter value) + 1 times.
  * 2. The Lower Tester executes the GATT Write Characteristic Value
  *    sub-procedure for the Volume
  *    Offset Control Point characteristic with the Set Volume Offset
  *    Opcode, with the Volume Offset parameters set to a random value
  *    different from the last one, and the Change_Counter parameter.
  * 3. The Lower Tester receives a Write Response indicating that the IUT
  *     has accepted the Opcode.
  * 4. The Lower Tester receives a GATT Characteristic Value Notification
  *    for the Volume Offset State characteristic.
  */
#define VOCS_SR_CP_BV_01_C \
	VOCS_SR_SGGIT_CHA_TST_CMDS, \
	VOCS_ENNABLE_VOL_OFFSET_CCD, \
	VOCS_READ_CHAR_VOL_OFFSET, \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x00, 0xde, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xde, 0x00, 0x01), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x01, 0xda, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xda, 0xff, 0x02), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x02, 0x1a, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x1a, 0x00, 0x03), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x03, 0x49, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x49, 0xff, 0x04), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x04, 0x05, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x05, 0xff, 0x05), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x05, 0xf1, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xf1, 0xff, 0x06), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x06, 0xca, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xca, 0xff, 0x07), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x07, 0x5c, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x5c, 0x00, 0x08), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x08, 0xaf, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xaf, 0x00, 0x09), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x09, 0x5f, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x5f, 0x00, 0x0a), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x0a, 0x69, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x69, 0xff, 0x0b), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x0b, 0x3d, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x3d, 0xff, 0x0c), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x0c, 0xb6, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xb6, 0xff, 0x0d), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x0d, 0xa4, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xa4, 0x00, 0x0e), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x0e, 0x14, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x14, 0xff, 0x0f), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x0f, 0x2a, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x2a, 0xff, 0x10), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x10, 0x51, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x51, 0x00, 0x11), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x011, 0xc4, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xc4, 0xff, 0x12), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x12, 0xe8, 00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xe8, 0x00, 0x13), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x13, 0xca, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xca, 0xff, 0x14), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x14, 0xe6, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xe6, 0xff, 0x15), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x15, 0x62, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x62, 0x00, 0x16), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x16, 0x22, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x22, 0x00, 0x17), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x17, 0xa1, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xa1, 0xff, 0x18), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x18, 0xaa, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xaa, 0x00, 0x19), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x19, 0x65, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x65, 0x00, 0x1a), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x1a, 0x11, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x11, 0xff, 0x1b), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x1b, 0x69, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x69, 0xff, 0x1c), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x1c, 0xee, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xee, 0x00, 0x1d), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x1d, 0xaa, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xaa, 0xff, 0x1e), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x1e, 0x1f, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x1f, 0xff, 0x1f), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x1f, 0xbe, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xbe, 0x00, 0x20), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x20, 0x93, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x93, 0xff, 0x21), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x21, 0x11, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x11, 0xff, 0x22), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x22, 0x83, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x83, 0xff, 0x23), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x23, 0xf8, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xf8, 0x00, 0x24), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x24, 0x90, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x90, 0xff, 0x25), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x25, 0x0c, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x0c, 0x00, 0x26), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x26, 0xc8, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xc8, 0x00, 0x27), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x27, 0x59, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x59, 0xff, 0x28), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x28, 0x80, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x80, 0xff, 0x29), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x29, 0x0d, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x0d, 0xff, 0x2a), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x2a, 0x0c, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x0c, 0x00, 0x2b), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x2b, 0x0a, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x0a, 0x00, 0x2c), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x2c, 0x12, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x12, 0x00, 0x2d), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x2d, 0x0b, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x0b, 0xff, 0x2e), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x2e, 0x83, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x83, 0xff, 0x2f), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x2f, 0x91, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x91, 0xff, 0x30), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x30, 0x71, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x71, 0xff, 0x31), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x31, 0x72, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x72, 0xff, 0x32), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x32, 0x75, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x75, 0xff, 0x33), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x33, 0x78, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x78, 0xff, 0x34), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x34, 0x61, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x61, 0xff, 0x35), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x35, 0x63, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x63, 0xff, 0x36), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x36, 0x38, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x38, 0xff, 0x37), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x37, 0x21, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x21, 0xff, 0x38), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x38, 0xa4, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xa4, 0x00, 0x39), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x39, 0xb4, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xb4, 0x00, 0x3a), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x3a, 0xb5, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xb5, 0xff, 0x3b), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x3b, 0xac, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xac, 0x00, 0x3c), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x3c, 0xab, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xab, 0x00, 0x3d), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x3d, 0xad, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xad, 0x00, 0x3e), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x3e, 0x83, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x83, 0xff, 0x3f), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x3f, 0x84, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x84, 0xff, 0x40), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x40, 0x85, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x85, 0xff, 0x41), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x41, 0x86, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x86, 0xff, 0x42), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x42, 0x87, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x87, 0xff, 0x43), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x43, 0x87, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x87, 0xff, 0x44), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x44, 0x05, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x05, 0x000, 0x45), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x45, 0xce, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xce, 0x00, 0x46), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x46, 0x96, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x96, 0x00, 0x47), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x47, 0x07, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x07, 0x00, 0x48), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x48, 0x08, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x08, 0x00, 0x49), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x49, 0x09, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x09, 0xff, 0x4a), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x4a, 0x0a, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x0a, 0xff, 0x4b), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x4b, 0x11, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x11, 0xff, 0x4c), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x4c, 0x22, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x22, 0xff, 0x4d), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x4d, 0x33, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x33, 0xff, 0x4e), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x4e, 0x09, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x09, 0xff, 0x4f), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x4f, 0x19, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x19, 0xff, 0x50), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x50, 0x1a, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x1a, 0xff, 0x51), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x51, 0x1b, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x1b, 0xff, 0x52), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x52, 0xa1, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xa1, 0x00, 0x53), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x53, 0xa2, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xa2, 0x00, 0x54), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x54, 0xb2, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xb2, 0x00, 0x55), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x55, 0xb3, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xb3, 0x00, 0x56), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x56, 0x68, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x68, 0x00, 0x57), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x57, 0x69, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x69, 0x00, 0x58), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x58, 0x6a, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x6a, 0x00, 0x59), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x59, 0x7a, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x7a, 0x00, 0x5a), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x5a, 0x7b, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x7b, 0x00, 0x5b), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x5b, 0x8c, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x8c, 0x00, 0x5c), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x5c, 0x9c, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x9c, 0x00, 0x5d), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x5d, 0x9b, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x9b, 0x00, 0x5e), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x5e, 0x9c, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x9c, 0x00, 0x5f), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x5f, 0x9d, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x9d, 0x00, 0x60), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x60, 0x9e, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x9e, 0x00, 0x61), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x61, 0x21, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x21, 0x00, 0x62), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x62, 0x23, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x23, 0x00, 0x63), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x63, 0x24, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x24, 0x00, 0x64), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x64, 0x34, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x34, 0x00, 0x65), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x65, 0x44, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x44, 0x00, 0x66), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x66, 0x45, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x45, 0x00, 0x67), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x67, 0x9d, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x9d, 0x00, 0x68), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x68, 0x9d, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x9d, 0x00, 0x69), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x69, 0x9d, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x9d, 0x00, 0x6a), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x6a, 0x49, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x49, 0x00, 0x6b), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x6b, 0x39, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x39, 0x00, 0x6c), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x6c, 0x9d, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x9d, 0x00, 0x6d), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x6d, 0x9e, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x9e, 0x00, 0x6e), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x6e, 0x9f, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x9f, 0x00, 0x6f), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x6f, 0x91, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x91, 0x00, 0x70), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x70, 0x18, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x18, 0x00, 0x71), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x71, 0x34, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x34, 0xff, 0x72), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x72, 0x44, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x44, 0xff, 0x73), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x73, 0x05, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x05, 0xff, 0x74), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x74, 0x06, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x06, 0xff, 0x75), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x75, 0x38, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x38, 0x00, 0x76), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x76, 0x48, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x48, 0x00, 0x77), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x77, 0x58, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x58, 0x00, 0x78), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x78, 0x88, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x88, 0x00, 0x79), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x79, 0x98, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x98, 0x00, 0x7a), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x7a, 0x91, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x91, 0x00, 0x7b), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x7b, 0x95, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x95, 0x00, 0x7c), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x7c, 0x89, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x89, 0x00, 0x7d), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x7d, 0x82, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x82, 0x00, 0x7e), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x7e, 0x88, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x88, 0x00, 0x7f), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x7f, 0x66, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x66, 0x00, 0x80), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x80, 0x55, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x55, 0x00, 0x81), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x81, 0x44, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x44, 0x00, 0x82), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x82, 0x33, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x33, 0x00, 0x83), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x83, 0x22, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x22, 0x00, 0x84), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x84, 0x11, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x11, 0x00, 0x85), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x85, 0x01, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x01, 0x00, 0x86), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x86, 0x3a, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x3a, 0x00, 0x87), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x87, 0x3b, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x3b, 0x00, 0x88), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x88, 0x3c, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x3c, 0x00, 0x89), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x89, 0x4c, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x4c, 0x00, 0x8a), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x8a, 0x5c, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x5c, 0x00, 0x8b), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x8b, 0x6c, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x6c, 0x00, 0x8c), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x8c, 0xab, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xab, 0xff, 0x8d), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x8d, 0xac, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xac, 0xff, 0x8e), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x8e, 0xbc, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xbc, 0x00, 0x8f), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x8f, 0xbb, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xbb, 0x00, 0x90), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x90, 0x11, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x11, 0x00, 0x91), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x91, 0x21, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x21, 0x00, 0x92), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x92, 0x31, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x31, 0x00, 0x93), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x93, 0x21, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x21, 0x00, 0x94), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x94, 0x31, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x31, 0x00, 0x95), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x95, 0x41, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x41, 0x00, 0x96), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x96, 0x51, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x51, 0x00, 0x97), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x97, 0x61, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x61, 0x00, 0x98), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x98, 0x81, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x81, 0x00, 0x99), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x99, 0x55, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x55, 0x00, 0x9a), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x9a, 0x59, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x59, 0x00, 0x9b), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x9b, 0x56, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x56, 0x00, 0x9c), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x9c, 0x57, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x57, 0x00, 0x9d), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x9d, 0x58, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x58, 0x00, 0x9e), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x9e, 0x59, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x59, 0x00, 0x9f), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0x9f, 0x60, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x60, 0x00, 0xa0), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xa0, 0x0b, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x0b, 0xff, 0xa1), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xa1, 0x0c, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x0c, 0xff, 0xa2), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xa2, 0x0c, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x0c, 0xff, 0xa3), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xa3, 0x0d, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x0d, 0xff, 0xa4), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xa4, 0x53, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x53, 0xff, 0xa5), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xa5, 0x54, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x54, 0xff, 0xa6), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xa6, 0x75, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x75, 0xff, 0xa7), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xa7, 0x76, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x76, 0xff, 0xa8), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xa8, 0x77, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x77, 0xff, 0xa9), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xa9, 0x78, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x78, 0xff, 0xaa), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xaa, 0x76, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x76, 0xff, 0xab), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xab, 0xa1, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xa1, 0x00, 0xac), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xac, 0xc1, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xc1, 0x00, 0xad), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xad, 0xd1, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xd1, 0x00, 0xae), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xae, 0xe1, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xe1, 0x00, 0xaf), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xaf, 0xf1, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xf1, 0x00, 0xb0), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xb0, 0xae, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xae, 0x00, 0xb1), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xb1, 0xbe, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xbe, 0x00, 0xb2), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xb2, 0xdd, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xdd, 0x00, 0xb3), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xb3, 0xee, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xee, 0x00, 0xb4), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xb4, 0x1d, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x1d, 0x00, 0xb5), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xb5, 0x3a, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x3a, 0x00, 0xb6), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xb6, 0x4a, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x4a, 0x00, 0xb7), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xb7, 0x5a, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x5a, 0x00, 0xb8), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xb8, 0x7e, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x7e, 0x00, 0xb9), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xb9, 0x3f, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x3f, 0x00, 0xba), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xba, 0x3f, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x3f, 0x00, 0xbb), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xbb, 0xa1, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xa1, 0x00, 0xbc), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xbc, 0xa2, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xa2, 0x00, 0xbd), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xbd, 0xa3, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xa3, 0x00, 0xbe), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xbe, 0xa4, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xa4, 0x00, 0xbf), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xbf, 0xa5, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xa5, 0x00, 0xc0), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xc0, 0xa6, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xa6, 0x00, 0xc1), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xc1, 0x1f, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x1f, 0x00, 0xc2), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xc2, 0x2f, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x2f, 0x00, 0xc3), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xc3, 0x3f, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x3f, 0x00, 0xc4), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xc4, 0x4f, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x4f, 0x00, 0xc5), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xc5, 0x5f, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x5f, 0x00, 0xc6), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xc6, 0x6f, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x6f, 0x00, 0xc7), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xc7, 0x7f, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x7f, 0x00, 0xc8), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xc8, 0x1d, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x1d, 0x00, 0xc9), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xc9, 0xaa, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xaa, 0x00, 0xca), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xca, 0xbb, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xbb, 0x00, 0xcb), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xcb, 0xcd, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xcd, 0x00, 0xcc), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xcc, 0xce, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xce, 0x00, 0xcd), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xcd, 0xde, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xde, 0x00, 0xce), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xce, 0xdf, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xdf, 0x00, 0xcf), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xcf, 0xdb, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xdb, 0x00, 0xd0), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xd0, 0x6e, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x6e, 0x00, 0xd1), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xd1, 0x5e, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x5e, 0x00, 0xd2), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xd2, 0x8e, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x8e, 0x00, 0xd3), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xd3, 0x9e, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x9e, 0x00, 0xd4), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xd4, 0xae, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xae, 0x00, 0xd5), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xd5, 0xbe, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xbe, 0x00, 0xd6), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xd6, 0xee, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xee, 0x00, 0xd7), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xd7, 0x1c, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x1c, 0x00, 0xd8), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xd8, 0x33, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x33, 0x00, 0xd9), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xd9, 0x88, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x88, 0x00, 0xda), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xda, 0x0d, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x0d, 0x00, 0xdb), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xdb, 0x88, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x88, 0x00, 0xdc), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xdc, 0x99, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x99, 0x00, 0xdd), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xdd, 0x66, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x66, 0x00, 0xde), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xde, 0x49, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x49, 0x00, 0xdf), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xdf, 0x86, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x86, 0x00, 0xe0), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xe0, 0x3a, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x3a, 0x00, 0xe1), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xe1, 0xd0, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xd0, 0x00, 0xe2), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xe2, 0xd2, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xd2, 0x00, 0xe3), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xe3, 0xd3, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xd3, 0x00, 0xe4), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xe4, 0xd4, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xd4, 0x00, 0xe5), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xe5, 0xdf, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xdf, 0x00, 0xe6), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xe6, 0xef, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xef, 0x00, 0xe7), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xe7, 0xed, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xed, 0x00, 0xe8), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xe8, 0xcc, 0x00), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xcc, 0x00, 0xe9), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xe9, 0x1f, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x1f, 0xff, 0xea), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xea, 0x2f, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x2f, 0xff, 0xeb), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xeb, 0x3f, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x3f, 0xff, 0xec), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xec, 0x4f, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x4f, 0xff, 0xed), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xed, 0x5f, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x5f, 0xff, 0xee), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xee, 0x6f, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x6f, 0xff, 0xef), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xef, 0x7f, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x7f, 0xff, 0xf0), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xf0, 0xc9, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xc9, 0xff, 0xf1), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xf1, 0xb9, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xb9, 0xff, 0xf2), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xf2, 0xd9, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xd9, 0xff, 0xf3), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xf3, 0xe1, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0xe1, 0xff, 0xf4), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xf4, 0x8f, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x8f, 0xff, 0xf5), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xf5, 0x7a, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x7a, 0xff, 0xf6), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xf6, 0x7b, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x7b, 0xff, 0xf7), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xf7, 0x7c, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x7c, 0xff, 0xf8), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xf8, 0x7d, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x7d, 0xff, 0xf9), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xf9, 0x7e, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x7e, 0xff, 0xfa), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xfa, 0x6a, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x6a, 0xff, 0xfb), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xfb, 0x6b, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x6b, 0xff, 0xfc), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xfc, 0x7e, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x7e, 0xff, 0xfd), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xfd, 0x0a, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x0a, 0xff, 0xfe), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xfe, 0x0b, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x0b, 0xff, 0xff), \
	IOV_DATA(0x12, 0x09, 0x00, 0x01, 0xff, 0x0c, 0xff), \
	IOV_DATA(0x13), \
	IOV_DATA(0x1b, 0x03, 0x00, 0x0c, 0xff, 0x00)

static void test_vocs_unit_testcases(void)
{
	/*
	 * VOCS Unit Testcases
	 */
	define_test("VOCS/SR/SGGIT/SER/BV-01-C", test_server, NULL,
					VOCS_SR_SGGIT_SER_BV_01_C);

	define_test("VOCS/SR/SGGIT/CHA/BV-01-C", test_server, NULL,
					VOCS_SR_SGGIT_CHA_BV_01_C);
	define_test("VOCS/SR/SGGIT/CHA/BV-02-C", test_server, NULL,
					VOCS_SR_SGGIT_CHA_BV_02_C);
	define_test("VOCS/SR/SGGIT/CHA/BV-03-C", test_server, NULL,
					VOCS_SR_SGGIT_CHA_BV_03_C);
	define_test("VOCS/SR/SGGIT/CHA/BV-04-C", test_server, NULL,
					VOCS_SR_SGGIT_CHA_BV_04_C);

	define_test("VOCS/SR/SGGIT/CP/BI-01-C", test_server, NULL,
					VOCS_SR_SGGIT_CP_BI_01_C);
	define_test("VOCS/SR/SGGIT/CP/BI-02-C", test_server, NULL,
					VOCS_SR_SGGIT_CP_BI_02_C);
	define_test("VOCS/SR/SGGIT/CP/BI-03-C", test_server, NULL,
					VOCS_SR_SGGIT_CP_BI_03_C);

	define_test("VOCS/SR/SPE/BI-01-C", test_server, NULL,
					VOCS_SR_SPE_BI_01_C);

	define_test("VOCS/SR/CP/BV-01-C", test_server, NULL,
					VOCS_SR_CP_BV_01_C);
}

static void test_aics_unit_testcases(void)
{
	/*
	 * AICS Unit Testcases
	 */
	define_test("AICS/SR/SGGIT/CHA/BV-01-C", test_server, NULL,
					AICS_SR_SGGIT_CHA_BV_01_C);

	define_test("AICS/SR/SGGIT/CHA/BV-02-C", test_server, NULL,
					AICS_SR_SGGIT_CHA_BV_02_C);

	define_test("AICS/SR/SGGIT/CHA/BV-03-C", test_server, NULL,
					AICS_SR_SGGIT_CHA_BV_03_C);

	define_test("AICS/SR/SGGIT/CHA/BV-04-C", test_server, NULL,
					AICS_SR_SGGIT_CHA_BV_04_C);

	define_test("AICS/SR/SGGIT/CHA/BV-05-C", test_server, NULL,
					AICS_SR_SGGIT_CHA_BV_05_C);

	define_test("AICS/SR/SGGIT/CHA/BV-06-C", test_server, NULL,
					AICS_SR_SGGIT_CHA_BV_06_C);

	define_test("AICS/SR/SGGIT/CP/BI-01-C", test_server, NULL,
					AICS_SR_SGGIT_CP_BI_01_C);

	define_test("AICS/SR/SGGIT/CP/BI-02-C", test_server, NULL,
					AICS_SR_SGGIT_CP_BI_02_C);

	/* AICS/SR/SGGIT/CP/BI-03-C:
	 * In function *aics_new(struct gatt_db *db)[src/shared/vcp.c]
	 * by default state of the 'aics_aud_ip_st->mute' is set to
	 * AICS_NOT_MUTED[0x00];.
	 * As per test specs, Testcase AICS/SR/SGGIT/CP/BI-03-C, Initial
	 * condition of mute state should be AICS_DISABLED[0x02].
	 * To verify this Unit test case we have to modify the initial
	 * state of 'aics_aud_ip_st->mute' to AICS_DISABLED in code
	 * [in func aics_new()], build it and run bluetoothd. Then run
	 * this unit test case and this test case will Pass.
	 */
	/* define_test("AICS/SR/SGGIT/CP/BI-03-C", test_server, NULL,
	 *				AICS_SR_SGGIT_CP_BI_03_C);
	 */

	/* AICS/SR/SGGIT/CP/BI-04-C - TO-DO Need to give two times input
	 *  from user during test case run
	 */

	define_test("AICS/SR/CP/BV-01-C", test_server, NULL,
					AICS_SR_CP_BV_01_C);

	/* AICS/SR/CP/BV-02-C:
	 * In function *aics_new(struct gatt_db *db)[src/shared/vcp.c]
	 * by default state of the 'aics_aud_ip_st->mute' is set to
	 * AICS_NOT_MUTED[0x00];.
	 * As per test specs, Testcase AICS/SR/CP/BV-02-C, Initial
	 * condition of mute state should be AICS_MUTED[0x01].
	 * To verify this Unit test case we have to modify the initial
	 * state of 'aics_aud_ip_st->mute' to AICS_MUTED in code
	 * [in func aics_new()], build it and run bluetoothd. Then run
	 * this unit test case and this test case will Pass.
	 */
	/* define_test("AICS/SR/CP/BV-02-C", test_server, NULL,
	 *				AICS_SR_CP_BV_02_C);
	 */

	/* AICS/SR/CP/BV-03-C:
	 * In function *aics_new(struct gatt_db *db)[src/shared/vcp.c]
	 * by default state of the 'aics_aud_ip_st->mute' is set to
	 * AICS_NOT_MUTED[0x00];.
	 * As per test specs, Testcase AICS/SR/CP/BV-03-C, Initial
	 * condition of mute state should be AICS_NOT_MUTED[0x00].
	 * If you have changed this value to some other value, then
	 * To verify this Unit test case you have to modify the initial
	 * state of 'aics_aud_ip_st->mute' to AICS_NOT_MUTED in code
	 * [in func aics_new()], build it and run bluetoothd. Then run
	 * this unit test case and this test case will Pass.
	 */
	/* define_test("AICS/SR/CP/BV-03-C", test_server, NULL,
	 *               AICS_SR_CP_BV_03_C);
	 */

	/* AICS/SR/CP/BV-04-C:
	 * In function *aics_new(struct gatt_db *db)[src/shared/vcp.c]
	 * by default state of the 'aics_aud_ip_st->gain_mode' is set to
	 * AICS_GAIN_MODE_MANUAL[0x02];.
	 * As per test specs, Testcase AICS/SR/CP/BV-04-C, Initial
	 * value of gain mode field, should be AICS_GAIN_MODE_AUTO[0x03].
	 * To verify this Unit test case you have to modify the initial
	 * state of 'aics_aud_ip_st->gain_mode' to AICS_GAIN_MODE_AUTO in code
	 * [in func aics_new()], build it and run bluetoothd. Then run
	 * this unit test case and this test case will Pass.
	 */
	/* define_test("AICS/SR/CP/BV-04-C", test_server, NULL,
	 *				AICS_SR_CP_BV_04_C);
	 */

	/* AICS/SR/CP/BV-05-C:
	 * In function *aics_new(struct gatt_db *db)[src/shared/vcp.c]
	 * by default state of the 'aics_aud_ip_st->gain_mode' is set to
	 * AICS_GAIN_MODE_MANUAL[0x02];.
	 * As per test specs, Testcase AICS/SR/CP/BV-05-C, Initial
	 * value of gain mode field, should be AICS_GAIN_MODE_MANUAL[0x02].
	 * If you have changed this value to some other value, then
	 * To verify this Unit test case you have to modify the initial
	 * state of 'aics_aud_ip_st->gain_mode' to AICS_GAIN_MODE_MANUAL in code
	 * [in func aics_new()], build it and run bluetoothd. Then run
	 * this unit test case and this test case will Pass.
	 */
	/* define_test("AICS/SR/CP/BV-05-C", test_server, NULL,
	 *			AICS_SR_CP_BV_05_C);
	 */
	define_test("AICS/SR/SPE/BI-01-C", test_server, NULL,
					AICS_SR_SPE_BI_01_C);


}
int main(int argc, char *argv[])
{
	tester_init(&argc, &argv);

	test_vocs_unit_testcases();
	test_aics_unit_testcases();

	return tester_run();
}

