/*
 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
 * From ASN.1 module "NR-RRC-Definitions"
 * 	found in "asn/nr-rrc-15.6.0.asn1"
 * 	`asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc`
 */

#include "ASN_RRC_ConfiguredGrantConfig.h"

#include "ASN_RRC_SetupRelease.h"
/*
 * This type is implemented using NativeEnumerated,
 * so here we adjust the DEF accordingly.
 */
/*
 * This type is implemented using NativeEnumerated,
 * so here we adjust the DEF accordingly.
 */
/*
 * This type is implemented using NativeEnumerated,
 * so here we adjust the DEF accordingly.
 */
/*
 * This type is implemented using NativeEnumerated,
 * so here we adjust the DEF accordingly.
 */
/*
 * This type is implemented using NativeEnumerated,
 * so here we adjust the DEF accordingly.
 */
/*
 * This type is implemented using NativeEnumerated,
 * so here we adjust the DEF accordingly.
 */
/*
 * This type is implemented using NativeEnumerated,
 * so here we adjust the DEF accordingly.
 */
/*
 * This type is implemented using NativeEnumerated,
 * so here we adjust the DEF accordingly.
 */
/*
 * This type is implemented using NativeEnumerated,
 * so here we adjust the DEF accordingly.
 */
/*
 * This type is implemented using NativeEnumerated,
 * so here we adjust the DEF accordingly.
 */
static int
memb_ASN_RRC_timeDomainOffset_constraint_83(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	long value;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	value = *(const long *)sptr;
	
	if((value >= 0 && value <= 5119)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_timeDomainAllocation_constraint_83(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	long value;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	value = *(const long *)sptr;
	
	if((value >= 0 && value <= 15)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_frequencyDomainAllocation_constraint_83(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
	size_t size;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	if(st->size > 0) {
		/* Size in bits */
		size = 8 * st->size - (st->bits_unused & 0x07);
	} else {
		size = 0;
	}
	
	if((size == 18)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_antennaPort_constraint_83(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	long value;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	value = *(const long *)sptr;
	
	if((value >= 0 && value <= 31)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_dmrs_SeqInitialization_constraint_83(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	long value;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	value = *(const long *)sptr;
	
	if((value >= 0 && value <= 1)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_precodingAndNumberOfLayers_constraint_83(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	long value;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	value = *(const long *)sptr;
	
	if((value >= 0 && value <= 63)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_srs_ResourceIndicator_constraint_83(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	long value;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	value = *(const long *)sptr;
	
	if((value >= 0 && value <= 15)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_mcsAndTBS_constraint_83(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	long value;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	value = *(const long *)sptr;
	
	if((value >= 0 && value <= 31)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_frequencyHoppingOffset_constraint_83(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	long value;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	value = *(const long *)sptr;
	
	if((value >= 1 && value <= 274)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_pathlossReferenceIndex_constraint_83(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	long value;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	value = *(const long *)sptr;
	
	if((value >= 0 && value <= 3)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_nrofHARQ_Processes_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	long value;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	value = *(const long *)sptr;
	
	if((value >= 1 && value <= 16)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_configuredGrantTimer_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	long value;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	value = *(const long *)sptr;
	
	if((value >= 1 && value <= 64)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static asn_per_constraints_t asn_PER_type_ASN_RRC_frequencyHopping_constr_2 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 1,  1,  0,  1 }	/* (0..1) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_mcs_Table_constr_6 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 1,  1,  0,  1 }	/* (0..1) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_mcs_TableTransformPrecoder_constr_9 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 1,  1,  0,  1 }	/* (0..1) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_resourceAllocation_constr_13 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 2,  2,  0,  2 }	/* (0..2) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_rbg_Size_constr_17 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 0,  0,  0,  0 }	/* (0..0) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_powerControlLoopToUse_constr_19 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 1,  1,  0,  1 }	/* (0..1) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_transformPrecoder_constr_23 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 1,  1,  0,  1 }	/* (0..1) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_repK_constr_27 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 2,  2,  0,  3 }	/* (0..3) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_repK_RV_constr_32 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 2,  2,  0,  2 }	/* (0..2) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_periodicity_constr_36 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 6,  6,  0,  44 }	/* (0..44) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_timeDomainOffset_constr_84 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 13,  13,  0,  5119 }	/* (0..5119) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_timeDomainAllocation_constr_85 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 4,  4,  0,  15 }	/* (0..15) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_frequencyDomainAllocation_constr_86 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 0,  0,  18,  18 }	/* (SIZE(18..18)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_antennaPort_constr_87 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 5,  5,  0,  31 }	/* (0..31) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_dmrs_SeqInitialization_constr_88 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 1,  1,  0,  1 }	/* (0..1) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_precodingAndNumberOfLayers_constr_89 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 6,  6,  0,  63 }	/* (0..63) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_srs_ResourceIndicator_constr_90 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 4,  4,  0,  15 }	/* (0..15) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_mcsAndTBS_constr_91 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 5,  5,  0,  31 }	/* (0..31) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_frequencyHoppingOffset_constr_92 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 9,  9,  1,  274 }	/* (1..274) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_pathlossReferenceIndex_constr_93 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 2,  2,  0,  3 }	/* (0..3) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_nrofHARQ_Processes_constr_26 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 4,  4,  1,  16 }	/* (1..16) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_configuredGrantTimer_constr_82 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 6,  6,  1,  64 }	/* (1..64) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_frequencyHopping_value2enum_2[] = {
	{ 0,	9,	"intraSlot" },
	{ 1,	9,	"interSlot" }
};
static const unsigned int asn_MAP_ASN_RRC_frequencyHopping_enum2value_2[] = {
	1,	/* interSlot(1) */
	0	/* intraSlot(0) */
};
static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_frequencyHopping_specs_2 = {
	asn_MAP_ASN_RRC_frequencyHopping_value2enum_2,	/* "tag" => N; sorted by tag */
	asn_MAP_ASN_RRC_frequencyHopping_enum2value_2,	/* N => "tag"; sorted by N */
	2,	/* Number of elements in the maps */
	0,	/* Enumeration is not extensible */
	1,	/* Strict enumeration */
	0,	/* Native long size */
	0
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_frequencyHopping_tags_2[] = {
	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_frequencyHopping_2 = {
	"frequencyHopping",
	"frequencyHopping",
	&asn_OP_NativeEnumerated,
	asn_DEF_ASN_RRC_frequencyHopping_tags_2,
	sizeof(asn_DEF_ASN_RRC_frequencyHopping_tags_2)
		/sizeof(asn_DEF_ASN_RRC_frequencyHopping_tags_2[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_frequencyHopping_tags_2,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_frequencyHopping_tags_2)
		/sizeof(asn_DEF_ASN_RRC_frequencyHopping_tags_2[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_frequencyHopping_constr_2, NativeEnumerated_constraint },
	0, 0,	/* Defined elsewhere */
	&asn_SPC_ASN_RRC_frequencyHopping_specs_2	/* Additional specs */
};

static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_mcs_Table_value2enum_6[] = {
	{ 0,	6,	"qam256" },
	{ 1,	10,	"qam64LowSE" }
};
static const unsigned int asn_MAP_ASN_RRC_mcs_Table_enum2value_6[] = {
	0,	/* qam256(0) */
	1	/* qam64LowSE(1) */
};
static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_mcs_Table_specs_6 = {
	asn_MAP_ASN_RRC_mcs_Table_value2enum_6,	/* "tag" => N; sorted by tag */
	asn_MAP_ASN_RRC_mcs_Table_enum2value_6,	/* N => "tag"; sorted by N */
	2,	/* Number of elements in the maps */
	0,	/* Enumeration is not extensible */
	1,	/* Strict enumeration */
	0,	/* Native long size */
	0
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_mcs_Table_tags_6[] = {
	(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mcs_Table_6 = {
	"mcs-Table",
	"mcs-Table",
	&asn_OP_NativeEnumerated,
	asn_DEF_ASN_RRC_mcs_Table_tags_6,
	sizeof(asn_DEF_ASN_RRC_mcs_Table_tags_6)
		/sizeof(asn_DEF_ASN_RRC_mcs_Table_tags_6[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_mcs_Table_tags_6,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_mcs_Table_tags_6)
		/sizeof(asn_DEF_ASN_RRC_mcs_Table_tags_6[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_mcs_Table_constr_6, NativeEnumerated_constraint },
	0, 0,	/* Defined elsewhere */
	&asn_SPC_ASN_RRC_mcs_Table_specs_6	/* Additional specs */
};

static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_mcs_TableTransformPrecoder_value2enum_9[] = {
	{ 0,	6,	"qam256" },
	{ 1,	10,	"qam64LowSE" }
};
static const unsigned int asn_MAP_ASN_RRC_mcs_TableTransformPrecoder_enum2value_9[] = {
	0,	/* qam256(0) */
	1	/* qam64LowSE(1) */
};
static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_mcs_TableTransformPrecoder_specs_9 = {
	asn_MAP_ASN_RRC_mcs_TableTransformPrecoder_value2enum_9,	/* "tag" => N; sorted by tag */
	asn_MAP_ASN_RRC_mcs_TableTransformPrecoder_enum2value_9,	/* N => "tag"; sorted by N */
	2,	/* Number of elements in the maps */
	0,	/* Enumeration is not extensible */
	1,	/* Strict enumeration */
	0,	/* Native long size */
	0
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_tags_9[] = {
	(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_9 = {
	"mcs-TableTransformPrecoder",
	"mcs-TableTransformPrecoder",
	&asn_OP_NativeEnumerated,
	asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_tags_9,
	sizeof(asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_tags_9)
		/sizeof(asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_tags_9[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_tags_9,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_tags_9)
		/sizeof(asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_tags_9[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_mcs_TableTransformPrecoder_constr_9, NativeEnumerated_constraint },
	0, 0,	/* Defined elsewhere */
	&asn_SPC_ASN_RRC_mcs_TableTransformPrecoder_specs_9	/* Additional specs */
};

static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_resourceAllocation_value2enum_13[] = {
	{ 0,	23,	"resourceAllocationType0" },
	{ 1,	23,	"resourceAllocationType1" },
	{ 2,	13,	"dynamicSwitch" }
};
static const unsigned int asn_MAP_ASN_RRC_resourceAllocation_enum2value_13[] = {
	2,	/* dynamicSwitch(2) */
	0,	/* resourceAllocationType0(0) */
	1	/* resourceAllocationType1(1) */
};
static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_resourceAllocation_specs_13 = {
	asn_MAP_ASN_RRC_resourceAllocation_value2enum_13,	/* "tag" => N; sorted by tag */
	asn_MAP_ASN_RRC_resourceAllocation_enum2value_13,	/* N => "tag"; sorted by N */
	3,	/* Number of elements in the maps */
	0,	/* Enumeration is not extensible */
	1,	/* Strict enumeration */
	0,	/* Native long size */
	0
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_resourceAllocation_tags_13[] = {
	(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_resourceAllocation_13 = {
	"resourceAllocation",
	"resourceAllocation",
	&asn_OP_NativeEnumerated,
	asn_DEF_ASN_RRC_resourceAllocation_tags_13,
	sizeof(asn_DEF_ASN_RRC_resourceAllocation_tags_13)
		/sizeof(asn_DEF_ASN_RRC_resourceAllocation_tags_13[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_resourceAllocation_tags_13,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_resourceAllocation_tags_13)
		/sizeof(asn_DEF_ASN_RRC_resourceAllocation_tags_13[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_resourceAllocation_constr_13, NativeEnumerated_constraint },
	0, 0,	/* Defined elsewhere */
	&asn_SPC_ASN_RRC_resourceAllocation_specs_13	/* Additional specs */
};

static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_rbg_Size_value2enum_17[] = {
	{ 0,	7,	"config2" }
};
static const unsigned int asn_MAP_ASN_RRC_rbg_Size_enum2value_17[] = {
	0	/* config2(0) */
};
static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_rbg_Size_specs_17 = {
	asn_MAP_ASN_RRC_rbg_Size_value2enum_17,	/* "tag" => N; sorted by tag */
	asn_MAP_ASN_RRC_rbg_Size_enum2value_17,	/* N => "tag"; sorted by N */
	1,	/* Number of elements in the maps */
	0,	/* Enumeration is not extensible */
	1,	/* Strict enumeration */
	0,	/* Native long size */
	0
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_rbg_Size_tags_17[] = {
	(ASN_TAG_CLASS_CONTEXT | (6 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rbg_Size_17 = {
	"rbg-Size",
	"rbg-Size",
	&asn_OP_NativeEnumerated,
	asn_DEF_ASN_RRC_rbg_Size_tags_17,
	sizeof(asn_DEF_ASN_RRC_rbg_Size_tags_17)
		/sizeof(asn_DEF_ASN_RRC_rbg_Size_tags_17[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_rbg_Size_tags_17,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_rbg_Size_tags_17)
		/sizeof(asn_DEF_ASN_RRC_rbg_Size_tags_17[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_rbg_Size_constr_17, NativeEnumerated_constraint },
	0, 0,	/* Defined elsewhere */
	&asn_SPC_ASN_RRC_rbg_Size_specs_17	/* Additional specs */
};

static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_powerControlLoopToUse_value2enum_19[] = {
	{ 0,	2,	"n0" },
	{ 1,	2,	"n1" }
};
static const unsigned int asn_MAP_ASN_RRC_powerControlLoopToUse_enum2value_19[] = {
	0,	/* n0(0) */
	1	/* n1(1) */
};
static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_powerControlLoopToUse_specs_19 = {
	asn_MAP_ASN_RRC_powerControlLoopToUse_value2enum_19,	/* "tag" => N; sorted by tag */
	asn_MAP_ASN_RRC_powerControlLoopToUse_enum2value_19,	/* N => "tag"; sorted by N */
	2,	/* Number of elements in the maps */
	0,	/* Enumeration is not extensible */
	1,	/* Strict enumeration */
	0,	/* Native long size */
	0
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_powerControlLoopToUse_tags_19[] = {
	(ASN_TAG_CLASS_CONTEXT | (7 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_powerControlLoopToUse_19 = {
	"powerControlLoopToUse",
	"powerControlLoopToUse",
	&asn_OP_NativeEnumerated,
	asn_DEF_ASN_RRC_powerControlLoopToUse_tags_19,
	sizeof(asn_DEF_ASN_RRC_powerControlLoopToUse_tags_19)
		/sizeof(asn_DEF_ASN_RRC_powerControlLoopToUse_tags_19[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_powerControlLoopToUse_tags_19,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_powerControlLoopToUse_tags_19)
		/sizeof(asn_DEF_ASN_RRC_powerControlLoopToUse_tags_19[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_powerControlLoopToUse_constr_19, NativeEnumerated_constraint },
	0, 0,	/* Defined elsewhere */
	&asn_SPC_ASN_RRC_powerControlLoopToUse_specs_19	/* Additional specs */
};

static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_transformPrecoder_value2enum_23[] = {
	{ 0,	7,	"enabled" },
	{ 1,	8,	"disabled" }
};
static const unsigned int asn_MAP_ASN_RRC_transformPrecoder_enum2value_23[] = {
	1,	/* disabled(1) */
	0	/* enabled(0) */
};
static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_transformPrecoder_specs_23 = {
	asn_MAP_ASN_RRC_transformPrecoder_value2enum_23,	/* "tag" => N; sorted by tag */
	asn_MAP_ASN_RRC_transformPrecoder_enum2value_23,	/* N => "tag"; sorted by N */
	2,	/* Number of elements in the maps */
	0,	/* Enumeration is not extensible */
	1,	/* Strict enumeration */
	0,	/* Native long size */
	0
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_transformPrecoder_tags_23[] = {
	(ASN_TAG_CLASS_CONTEXT | (9 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_transformPrecoder_23 = {
	"transformPrecoder",
	"transformPrecoder",
	&asn_OP_NativeEnumerated,
	asn_DEF_ASN_RRC_transformPrecoder_tags_23,
	sizeof(asn_DEF_ASN_RRC_transformPrecoder_tags_23)
		/sizeof(asn_DEF_ASN_RRC_transformPrecoder_tags_23[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_transformPrecoder_tags_23,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_transformPrecoder_tags_23)
		/sizeof(asn_DEF_ASN_RRC_transformPrecoder_tags_23[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_transformPrecoder_constr_23, NativeEnumerated_constraint },
	0, 0,	/* Defined elsewhere */
	&asn_SPC_ASN_RRC_transformPrecoder_specs_23	/* Additional specs */
};

static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_repK_value2enum_27[] = {
	{ 0,	2,	"n1" },
	{ 1,	2,	"n2" },
	{ 2,	2,	"n4" },
	{ 3,	2,	"n8" }
};
static const unsigned int asn_MAP_ASN_RRC_repK_enum2value_27[] = {
	0,	/* n1(0) */
	1,	/* n2(1) */
	2,	/* n4(2) */
	3	/* n8(3) */
};
static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_repK_specs_27 = {
	asn_MAP_ASN_RRC_repK_value2enum_27,	/* "tag" => N; sorted by tag */
	asn_MAP_ASN_RRC_repK_enum2value_27,	/* N => "tag"; sorted by N */
	4,	/* Number of elements in the maps */
	0,	/* Enumeration is not extensible */
	1,	/* Strict enumeration */
	0,	/* Native long size */
	0
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_repK_tags_27[] = {
	(ASN_TAG_CLASS_CONTEXT | (11 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_repK_27 = {
	"repK",
	"repK",
	&asn_OP_NativeEnumerated,
	asn_DEF_ASN_RRC_repK_tags_27,
	sizeof(asn_DEF_ASN_RRC_repK_tags_27)
		/sizeof(asn_DEF_ASN_RRC_repK_tags_27[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_repK_tags_27,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_repK_tags_27)
		/sizeof(asn_DEF_ASN_RRC_repK_tags_27[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_repK_constr_27, NativeEnumerated_constraint },
	0, 0,	/* Defined elsewhere */
	&asn_SPC_ASN_RRC_repK_specs_27	/* Additional specs */
};

static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_repK_RV_value2enum_32[] = {
	{ 0,	7,	"s1-0231" },
	{ 1,	7,	"s2-0303" },
	{ 2,	7,	"s3-0000" }
};
static const unsigned int asn_MAP_ASN_RRC_repK_RV_enum2value_32[] = {
	0,	/* s1-0231(0) */
	1,	/* s2-0303(1) */
	2	/* s3-0000(2) */
};
static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_repK_RV_specs_32 = {
	asn_MAP_ASN_RRC_repK_RV_value2enum_32,	/* "tag" => N; sorted by tag */
	asn_MAP_ASN_RRC_repK_RV_enum2value_32,	/* N => "tag"; sorted by N */
	3,	/* Number of elements in the maps */
	0,	/* Enumeration is not extensible */
	1,	/* Strict enumeration */
	0,	/* Native long size */
	0
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_repK_RV_tags_32[] = {
	(ASN_TAG_CLASS_CONTEXT | (12 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_repK_RV_32 = {
	"repK-RV",
	"repK-RV",
	&asn_OP_NativeEnumerated,
	asn_DEF_ASN_RRC_repK_RV_tags_32,
	sizeof(asn_DEF_ASN_RRC_repK_RV_tags_32)
		/sizeof(asn_DEF_ASN_RRC_repK_RV_tags_32[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_repK_RV_tags_32,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_repK_RV_tags_32)
		/sizeof(asn_DEF_ASN_RRC_repK_RV_tags_32[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_repK_RV_constr_32, NativeEnumerated_constraint },
	0, 0,	/* Defined elsewhere */
	&asn_SPC_ASN_RRC_repK_RV_specs_32	/* Additional specs */
};

static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_periodicity_value2enum_36[] = {
	{ 0,	4,	"sym2" },
	{ 1,	4,	"sym7" },
	{ 2,	7,	"sym1x14" },
	{ 3,	7,	"sym2x14" },
	{ 4,	7,	"sym4x14" },
	{ 5,	7,	"sym5x14" },
	{ 6,	7,	"sym8x14" },
	{ 7,	8,	"sym10x14" },
	{ 8,	8,	"sym16x14" },
	{ 9,	8,	"sym20x14" },
	{ 10,	8,	"sym32x14" },
	{ 11,	8,	"sym40x14" },
	{ 12,	8,	"sym64x14" },
	{ 13,	8,	"sym80x14" },
	{ 14,	9,	"sym128x14" },
	{ 15,	9,	"sym160x14" },
	{ 16,	9,	"sym256x14" },
	{ 17,	9,	"sym320x14" },
	{ 18,	9,	"sym512x14" },
	{ 19,	9,	"sym640x14" },
	{ 20,	10,	"sym1024x14" },
	{ 21,	10,	"sym1280x14" },
	{ 22,	10,	"sym2560x14" },
	{ 23,	10,	"sym5120x14" },
	{ 24,	4,	"sym6" },
	{ 25,	7,	"sym1x12" },
	{ 26,	7,	"sym2x12" },
	{ 27,	7,	"sym4x12" },
	{ 28,	7,	"sym5x12" },
	{ 29,	7,	"sym8x12" },
	{ 30,	8,	"sym10x12" },
	{ 31,	8,	"sym16x12" },
	{ 32,	8,	"sym20x12" },
	{ 33,	8,	"sym32x12" },
	{ 34,	8,	"sym40x12" },
	{ 35,	8,	"sym64x12" },
	{ 36,	8,	"sym80x12" },
	{ 37,	9,	"sym128x12" },
	{ 38,	9,	"sym160x12" },
	{ 39,	9,	"sym256x12" },
	{ 40,	9,	"sym320x12" },
	{ 41,	9,	"sym512x12" },
	{ 42,	9,	"sym640x12" },
	{ 43,	10,	"sym1280x12" },
	{ 44,	10,	"sym2560x12" }
};
static const unsigned int asn_MAP_ASN_RRC_periodicity_enum2value_36[] = {
	20,	/* sym1024x14(20) */
	30,	/* sym10x12(30) */
	7,	/* sym10x14(7) */
	43,	/* sym1280x12(43) */
	21,	/* sym1280x14(21) */
	37,	/* sym128x12(37) */
	14,	/* sym128x14(14) */
	38,	/* sym160x12(38) */
	15,	/* sym160x14(15) */
	31,	/* sym16x12(31) */
	8,	/* sym16x14(8) */
	25,	/* sym1x12(25) */
	2,	/* sym1x14(2) */
	0,	/* sym2(0) */
	32,	/* sym20x12(32) */
	9,	/* sym20x14(9) */
	44,	/* sym2560x12(44) */
	22,	/* sym2560x14(22) */
	39,	/* sym256x12(39) */
	16,	/* sym256x14(16) */
	26,	/* sym2x12(26) */
	3,	/* sym2x14(3) */
	40,	/* sym320x12(40) */
	17,	/* sym320x14(17) */
	33,	/* sym32x12(33) */
	10,	/* sym32x14(10) */
	34,	/* sym40x12(34) */
	11,	/* sym40x14(11) */
	27,	/* sym4x12(27) */
	4,	/* sym4x14(4) */
	23,	/* sym5120x14(23) */
	41,	/* sym512x12(41) */
	18,	/* sym512x14(18) */
	28,	/* sym5x12(28) */
	5,	/* sym5x14(5) */
	24,	/* sym6(24) */
	42,	/* sym640x12(42) */
	19,	/* sym640x14(19) */
	35,	/* sym64x12(35) */
	12,	/* sym64x14(12) */
	1,	/* sym7(1) */
	36,	/* sym80x12(36) */
	13,	/* sym80x14(13) */
	29,	/* sym8x12(29) */
	6	/* sym8x14(6) */
};
static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_periodicity_specs_36 = {
	asn_MAP_ASN_RRC_periodicity_value2enum_36,	/* "tag" => N; sorted by tag */
	asn_MAP_ASN_RRC_periodicity_enum2value_36,	/* N => "tag"; sorted by N */
	45,	/* Number of elements in the maps */
	0,	/* Enumeration is not extensible */
	1,	/* Strict enumeration */
	0,	/* Native long size */
	0
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_periodicity_tags_36[] = {
	(ASN_TAG_CLASS_CONTEXT | (13 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_periodicity_36 = {
	"periodicity",
	"periodicity",
	&asn_OP_NativeEnumerated,
	asn_DEF_ASN_RRC_periodicity_tags_36,
	sizeof(asn_DEF_ASN_RRC_periodicity_tags_36)
		/sizeof(asn_DEF_ASN_RRC_periodicity_tags_36[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_periodicity_tags_36,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_periodicity_tags_36)
		/sizeof(asn_DEF_ASN_RRC_periodicity_tags_36[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_periodicity_constr_36, NativeEnumerated_constraint },
	0, 0,	/* Defined elsewhere */
	&asn_SPC_ASN_RRC_periodicity_specs_36	/* Additional specs */
};

static asn_TYPE_member_t asn_MBR_ASN_RRC_rrc_ConfiguredUplinkGrant_83[] = {
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, timeDomainOffset),
		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_NativeInteger,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_timeDomainOffset_constr_84,  memb_ASN_RRC_timeDomainOffset_constraint_83 },
		0, 0, /* No default value */
		"timeDomainOffset"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, timeDomainAllocation),
		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_NativeInteger,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_timeDomainAllocation_constr_85,  memb_ASN_RRC_timeDomainAllocation_constraint_83 },
		0, 0, /* No default value */
		"timeDomainAllocation"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, frequencyDomainAllocation),
		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_BIT_STRING,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_frequencyDomainAllocation_constr_86,  memb_ASN_RRC_frequencyDomainAllocation_constraint_83 },
		0, 0, /* No default value */
		"frequencyDomainAllocation"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, antennaPort),
		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_NativeInteger,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_antennaPort_constr_87,  memb_ASN_RRC_antennaPort_constraint_83 },
		0, 0, /* No default value */
		"antennaPort"
		},
	{ ATF_POINTER, 1, offsetof(struct ASN_RRC_ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, dmrs_SeqInitialization),
		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_NativeInteger,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_dmrs_SeqInitialization_constr_88,  memb_ASN_RRC_dmrs_SeqInitialization_constraint_83 },
		0, 0, /* No default value */
		"dmrs-SeqInitialization"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, precodingAndNumberOfLayers),
		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_NativeInteger,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_precodingAndNumberOfLayers_constr_89,  memb_ASN_RRC_precodingAndNumberOfLayers_constraint_83 },
		0, 0, /* No default value */
		"precodingAndNumberOfLayers"
		},
	{ ATF_POINTER, 1, offsetof(struct ASN_RRC_ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, srs_ResourceIndicator),
		(ASN_TAG_CLASS_CONTEXT | (6 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_NativeInteger,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_srs_ResourceIndicator_constr_90,  memb_ASN_RRC_srs_ResourceIndicator_constraint_83 },
		0, 0, /* No default value */
		"srs-ResourceIndicator"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, mcsAndTBS),
		(ASN_TAG_CLASS_CONTEXT | (7 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_NativeInteger,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_mcsAndTBS_constr_91,  memb_ASN_RRC_mcsAndTBS_constraint_83 },
		0, 0, /* No default value */
		"mcsAndTBS"
		},
	{ ATF_POINTER, 1, offsetof(struct ASN_RRC_ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, frequencyHoppingOffset),
		(ASN_TAG_CLASS_CONTEXT | (8 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_NativeInteger,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_frequencyHoppingOffset_constr_92,  memb_ASN_RRC_frequencyHoppingOffset_constraint_83 },
		0, 0, /* No default value */
		"frequencyHoppingOffset"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, pathlossReferenceIndex),
		(ASN_TAG_CLASS_CONTEXT | (9 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_NativeInteger,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_pathlossReferenceIndex_constr_93,  memb_ASN_RRC_pathlossReferenceIndex_constraint_83 },
		0, 0, /* No default value */
		"pathlossReferenceIndex"
		},
};
static const int asn_MAP_ASN_RRC_rrc_ConfiguredUplinkGrant_oms_83[] = { 4, 6, 8 };
static const ber_tlv_tag_t asn_DEF_ASN_RRC_rrc_ConfiguredUplinkGrant_tags_83[] = {
	(ASN_TAG_CLASS_CONTEXT | (15 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_rrc_ConfiguredUplinkGrant_tag2el_83[] = {
    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* timeDomainOffset */
    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* timeDomainAllocation */
    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* frequencyDomainAllocation */
    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* antennaPort */
    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* dmrs-SeqInitialization */
    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* precodingAndNumberOfLayers */
    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* srs-ResourceIndicator */
    { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* mcsAndTBS */
    { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* frequencyHoppingOffset */
    { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 } /* pathlossReferenceIndex */
};
static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_rrc_ConfiguredUplinkGrant_specs_83 = {
	sizeof(struct ASN_RRC_ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant),
	offsetof(struct ASN_RRC_ConfiguredGrantConfig__rrc_ConfiguredUplinkGrant, _asn_ctx),
	asn_MAP_ASN_RRC_rrc_ConfiguredUplinkGrant_tag2el_83,
	10,	/* Count of tags in the map */
	asn_MAP_ASN_RRC_rrc_ConfiguredUplinkGrant_oms_83,	/* Optional members */
	3, 0,	/* Root/Additions */
	10,	/* First extension addition */
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_rrc_ConfiguredUplinkGrant_83 = {
	"rrc-ConfiguredUplinkGrant",
	"rrc-ConfiguredUplinkGrant",
	&asn_OP_SEQUENCE,
	asn_DEF_ASN_RRC_rrc_ConfiguredUplinkGrant_tags_83,
	sizeof(asn_DEF_ASN_RRC_rrc_ConfiguredUplinkGrant_tags_83)
		/sizeof(asn_DEF_ASN_RRC_rrc_ConfiguredUplinkGrant_tags_83[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_rrc_ConfiguredUplinkGrant_tags_83,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_rrc_ConfiguredUplinkGrant_tags_83)
		/sizeof(asn_DEF_ASN_RRC_rrc_ConfiguredUplinkGrant_tags_83[0]), /* 2 */
	{ 0, 0, SEQUENCE_constraint },
	asn_MBR_ASN_RRC_rrc_ConfiguredUplinkGrant_83,
	10,	/* Elements count */
	&asn_SPC_ASN_RRC_rrc_ConfiguredUplinkGrant_specs_83	/* Additional specs */
};

asn_TYPE_member_t asn_MBR_ASN_RRC_ConfiguredGrantConfig_1[] = {
	{ ATF_POINTER, 1, offsetof(struct ASN_RRC_ConfiguredGrantConfig, frequencyHopping),
		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_frequencyHopping_2,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"frequencyHopping"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig, cg_DMRS_Configuration),
		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_DMRS_UplinkConfig,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"cg-DMRS-Configuration"
		},
	{ ATF_POINTER, 3, offsetof(struct ASN_RRC_ConfiguredGrantConfig, mcs_Table),
		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_mcs_Table_6,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"mcs-Table"
		},
	{ ATF_POINTER, 2, offsetof(struct ASN_RRC_ConfiguredGrantConfig, mcs_TableTransformPrecoder),
		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_mcs_TableTransformPrecoder_9,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"mcs-TableTransformPrecoder"
		},
	{ ATF_POINTER, 1, offsetof(struct ASN_RRC_ConfiguredGrantConfig, uci_OnPUSCH),
		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
		+1,	/* EXPLICIT tag at current level */
		&asn_DEF_ASN_RRC_SetupRelease_CG_UCI_OnPUSCH,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"uci-OnPUSCH"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig, resourceAllocation),
		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_resourceAllocation_13,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"resourceAllocation"
		},
	{ ATF_POINTER, 1, offsetof(struct ASN_RRC_ConfiguredGrantConfig, rbg_Size),
		(ASN_TAG_CLASS_CONTEXT | (6 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_rbg_Size_17,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"rbg-Size"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig, powerControlLoopToUse),
		(ASN_TAG_CLASS_CONTEXT | (7 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_powerControlLoopToUse_19,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"powerControlLoopToUse"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig, p0_PUSCH_Alpha),
		(ASN_TAG_CLASS_CONTEXT | (8 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_P0_PUSCH_AlphaSetId,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"p0-PUSCH-Alpha"
		},
	{ ATF_POINTER, 1, offsetof(struct ASN_RRC_ConfiguredGrantConfig, transformPrecoder),
		(ASN_TAG_CLASS_CONTEXT | (9 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_transformPrecoder_23,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"transformPrecoder"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig, nrofHARQ_Processes),
		(ASN_TAG_CLASS_CONTEXT | (10 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_NativeInteger,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_nrofHARQ_Processes_constr_26,  memb_ASN_RRC_nrofHARQ_Processes_constraint_1 },
		0, 0, /* No default value */
		"nrofHARQ-Processes"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig, repK),
		(ASN_TAG_CLASS_CONTEXT | (11 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_repK_27,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"repK"
		},
	{ ATF_POINTER, 1, offsetof(struct ASN_RRC_ConfiguredGrantConfig, repK_RV),
		(ASN_TAG_CLASS_CONTEXT | (12 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_repK_RV_32,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"repK-RV"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_ConfiguredGrantConfig, periodicity),
		(ASN_TAG_CLASS_CONTEXT | (13 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_periodicity_36,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"periodicity"
		},
	{ ATF_POINTER, 2, offsetof(struct ASN_RRC_ConfiguredGrantConfig, configuredGrantTimer),
		(ASN_TAG_CLASS_CONTEXT | (14 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_NativeInteger,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_configuredGrantTimer_constr_82,  memb_ASN_RRC_configuredGrantTimer_constraint_1 },
		0, 0, /* No default value */
		"configuredGrantTimer"
		},
	{ ATF_POINTER, 1, offsetof(struct ASN_RRC_ConfiguredGrantConfig, rrc_ConfiguredUplinkGrant),
		(ASN_TAG_CLASS_CONTEXT | (15 << 2)),
		0,
		&asn_DEF_ASN_RRC_rrc_ConfiguredUplinkGrant_83,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"rrc-ConfiguredUplinkGrant"
		},
};
static const int asn_MAP_ASN_RRC_ConfiguredGrantConfig_oms_1[] = { 0, 2, 3, 4, 6, 9, 12, 14, 15 };
static const ber_tlv_tag_t asn_DEF_ASN_RRC_ConfiguredGrantConfig_tags_1[] = {
	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ConfiguredGrantConfig_tag2el_1[] = {
    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* frequencyHopping */
    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cg-DMRS-Configuration */
    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* mcs-Table */
    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* mcs-TableTransformPrecoder */
    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* uci-OnPUSCH */
    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* resourceAllocation */
    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* rbg-Size */
    { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* powerControlLoopToUse */
    { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* p0-PUSCH-Alpha */
    { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* transformPrecoder */
    { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* nrofHARQ-Processes */
    { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* repK */
    { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* repK-RV */
    { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* periodicity */
    { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* configuredGrantTimer */
    { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 } /* rrc-ConfiguredUplinkGrant */
};
asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ConfiguredGrantConfig_specs_1 = {
	sizeof(struct ASN_RRC_ConfiguredGrantConfig),
	offsetof(struct ASN_RRC_ConfiguredGrantConfig, _asn_ctx),
	asn_MAP_ASN_RRC_ConfiguredGrantConfig_tag2el_1,
	16,	/* Count of tags in the map */
	asn_MAP_ASN_RRC_ConfiguredGrantConfig_oms_1,	/* Optional members */
	9, 0,	/* Root/Additions */
	16,	/* First extension addition */
};
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ConfiguredGrantConfig = {
	"ConfiguredGrantConfig",
	"ConfiguredGrantConfig",
	&asn_OP_SEQUENCE,
	asn_DEF_ASN_RRC_ConfiguredGrantConfig_tags_1,
	sizeof(asn_DEF_ASN_RRC_ConfiguredGrantConfig_tags_1)
		/sizeof(asn_DEF_ASN_RRC_ConfiguredGrantConfig_tags_1[0]), /* 1 */
	asn_DEF_ASN_RRC_ConfiguredGrantConfig_tags_1,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_ConfiguredGrantConfig_tags_1)
		/sizeof(asn_DEF_ASN_RRC_ConfiguredGrantConfig_tags_1[0]), /* 1 */
	{ 0, 0, SEQUENCE_constraint },
	asn_MBR_ASN_RRC_ConfiguredGrantConfig_1,
	16,	/* Elements count */
	&asn_SPC_ASN_RRC_ConfiguredGrantConfig_specs_1	/* Additional specs */
};

