/*****************************************************************************
#                                                                            *
# Copyright 2019 AT&T Intellectual Property                                  *
#                                                                            *
# Licensed under the Apache License, Version 2.0 (the "License");            *
# you may not use this file except in compliance with the License.           *
# You may obtain a copy of the License at                                    *
#                                                                            *
#      http://www.apache.org/licenses/LICENSE-2.0                            *
#                                                                            *
# Unless required by applicable law or agreed to in writing, software        *
# distributed under the License is distributed on an "AS IS" BASIS,          *
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   *
# See the License for the specific language governing permissions and        *
# limitations under the License.                                             *
#                                                                            *
******************************************************************************/

/*
 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
 * From ASN.1 module "X2AP-Containers"
 * 	found in "../../asnFiles/X2AP-Containers.asn"
 * 	`asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.`
 */

#ifndef	_ProtocolIE_Field_H_
#define	_ProtocolIE_Field_H_


#include "asn_application.h"

/* Including external dependencies */
#include "ProtocolIE-ID.h"
#include "Criticality.h"
#include "ANY.h"
#include "asn_ioc.h"
#include "RICaction-ToBeSetup-Item.h"
#include "Presence.h"
#include "OPEN_TYPE.h"
#include "constr_CHOICE.h"
#include "constr_SEQUENCE.h"
#include "RICaction-Admitted-Item.h"
#include "RICaction-NotAdmitted-Item.h"
#include "RANfunction-Item.h"
#include "RANfunctionID-Item.h"
#include "RANfunctionIDcause-Item.h"
#include "E-RABs-ToBeSetup-Item.h"
#include "E-RABs-Admitted-Item.h"
#include "E-RABs-SubjectToStatusTransfer-Item.h"
#include "CellInformation-Item.h"
#include "CellToReport-Item.h"
#include "MeasurementInitiationResult-Item.h"
#include "MeasurementFailureCause-Item.h"
#include "CompleteFailureCauseInformation-Item.h"
#include "CellMeasurementResult-Item.h"
#include "E-RABs-ToBeAdded-Item.h"
#include "E-RABs-Admitted-ToBeAdded-Item.h"
#include "E-RABs-ToBeAdded-ModReqItem.h"
#include "E-RABs-ToBeModified-ModReqItem.h"
#include "E-RABs-ToBeReleased-ModReqItem.h"
#include "E-RABs-Admitted-ToBeAdded-ModAckItem.h"
#include "E-RABs-Admitted-ToBeModified-ModAckItem.h"
#include "E-RABs-Admitted-ToReleased-ModAckItem.h"
#include "E-RABs-ToBeReleased-ModReqdItem.h"
#include "E-RABs-ToBeReleased-RelReqItem.h"
#include "E-RABs-ToBeReleased-RelConfItem.h"
#include "E-RABs-SubjectToCounterCheckItem.h"
#include "E-RABs-ToBeSetupRetrieve-Item.h"
#include "E-RABs-ToBeAdded-SgNBAddReq-Item.h"
#include "E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item.h"
#include "E-RABs-ToBeAdded-SgNBModReq-Item.h"
#include "E-RABs-ToBeModified-SgNBModReq-Item.h"
#include "E-RABs-ToBeReleased-SgNBModReq-Item.h"
#include "E-RABs-Admitted-ToBeAdded-SgNBModAck-Item.h"
#include "E-RABs-Admitted-ToBeModified-SgNBModAck-Item.h"
#include "E-RABs-Admitted-ToReleased-SgNBModAck-Item.h"
#include "E-RABs-ToBeReleased-SgNBModReqd-Item.h"
#include "E-RABs-ToBeModified-SgNBModReqd-Item.h"
#include "E-RABs-AdmittedToBeModified-SgNBModConf-Item.h"
#include "E-RABs-ToBeReleased-SgNBRelReq-Item.h"
#include "E-RABs-Admitted-ToBeReleased-SgNBRelReqAck-Item.h"
#include "E-RABs-ToBeReleased-SgNBRelReqd-Item.h"
#include "E-RABs-ToBeReleased-SgNBRelConf-Item.h"
#include "E-RABs-SubjectToSgNBCounterCheck-Item.h"
#include "E-RABs-ToBeReleased-SgNBChaConf-Item.h"
#include "E-RABs-DataForwardingAddress-Item.h"
#include "RICrequestID.h"
#include "RANfunctionID.h"
#include "RICsubscription.h"
#include "RICaction-Admitted-List.h"
#include "RICaction-NotAdmitted-List.h"
#include "CriticalityDiagnostics.h"
#include "RICcause.h"
#include "RICactionID.h"
#include "RICindicationSN.h"
#include "RICindicationType.h"
#include "RICindicationHeader.h"
#include "RICindicationMessage.h"
#include "RICcallProcessID.h"
#include "RICcontrolHeader.h"
#include "RICcontrolMessage.h"
#include "RICcontrolAckRequest.h"
#include "RICcontrolStatus.h"
#include "RANfunctions-List.h"
#include "RANfunctionsID-List.h"
#include "RANfunctionsIDcause-List.h"
#include "TimeToWait.h"
#include "UE-X2AP-ID.h"
#include "Cause.h"
#include "ECGI.h"
#include "GUMMEI.h"
#include "UE-ContextInformation.h"
#include "UE-HistoryInformation.h"
#include "TraceActivation.h"
#include "SRVCCOperationPossible.h"
#include "CSGMembershipStatus.h"
#include "MobilityInformation.h"
#include "Masked-IMEISV.h"
#include "UE-HistoryInformationFromTheUE.h"
#include "ExpectedUEBehaviour.h"
#include "ProSeAuthorized.h"
#include "UE-ContextReferenceAtSeNB.h"
#include "UE-X2AP-ID-Extension.h"
#include "V2XServicesAuthorized.h"
#include "UE-ContextReferenceAtWT.h"
#include "NRUESecurityCapabilities.h"
#include "UE-ContextReferenceAtSgNB.h"
#include "AerialUEsubscriptionInformation.h"
#include "Subscription-Based-UE-DifferentiationInfo.h"
#include "E-RABs-Admitted-List.h"
#include "E-RAB-List.h"
#include "TargeteNBtoSource-eNBTransparentContainer.h"
#include "UE-ContextKeptIndicator.h"
#include "HandoverReportType.h"
#include "TargetCellInUTRAN.h"
#include "CRNTI.h"
#include "UE-RLF-Report-Container.h"
#include "UE-RLF-Report-Container-for-extended-bands.h"
#include "E-RABs-SubjectToStatusTransfer-List.h"
#include "SgNB-UE-X2AP-ID.h"
#include "SIPTOBearerDeactivationIndication.h"
#include "GlobalENB-ID.h"
#include "ServedCells.h"
#include "GUGroupIDList.h"
#include "LHN-ID.h"
#include "CellInformation-List.h"
#include "ServedCellsToModify.h"
#include "Old-ECGIs.h"
#include "CoverageModificationList.h"
#include "Measurement-ID.h"
#include "Registration-Request.h"
#include "ReportCharacteristics.h"
#include "CellToReport-List.h"
#include "ReportingPeriodicity.h"
#include "PartialSuccessIndicator.h"
#include "ReportingPeriodicityRSRPMR.h"
#include "ReportingPeriodicityCSIR.h"
#include "MeasurementInitiationResult-List.h"
#include "CompleteFailureCauseInformation-List.h"
#include "CellMeasurementResult-List.h"
#include "MobilityParametersInformation.h"
#include "MobilityParametersModificationRange.h"
#include "PCI.h"
#include "ShortMAC-I.h"
#include "RRCConnSetupIndicator.h"
#include "RRCConnReestabIndicator.h"
#include "ServedCellsToActivate.h"
#include "ActivatedCellList.h"
#include "RNL-Header.h"
#include "X2AP-Message.h"
#include "UESecurityCapabilities.h"
#include "SeNBSecurityKey.h"
#include "UEAggregateMaximumBitRate.h"
#include "PLMN-Identity.h"
#include "E-RABs-ToBeAdded-List.h"
#include "MeNBtoSeNBContainer.h"
#include "E-RABs-Admitted-ToBeAdded-List.h"
#include "SeNBtoMeNBContainer.h"
#include "TransportLayerAddress.h"
#include "TunnelInformation.h"
#include "ResponseInformationSeNBReconfComp.h"
#include "SCGChangeIndication.h"
#include "UE-ContextInformationSeNBModReq.h"
#include "E-RABs-Admitted-ToBeAdded-ModAckList.h"
#include "E-RABs-Admitted-ToBeModified-ModAckList.h"
#include "E-RABs-Admitted-ToBeReleased-ModAckList.h"
#include "E-RABs-ToBeReleased-ModReqd.h"
#include "E-RABs-ToBeReleased-List-RelReq.h"
#include "MakeBeforeBreakIndicator.h"
#include "E-RABs-ToBeReleased-List-RelConf.h"
#include "E-RABs-SubjectToCounterCheck-List.h"
#include "X2BenefitValue.h"
#include "ResumeID.h"
#include "EUTRANCellIdentifier.h"
#include "UE-ContextInformationRetrieve.h"
#include "SgNBSecurityKey.h"
#include "HandoverRestrictionList.h"
#include "E-RABs-ToBeAdded-SgNBAddReqList.h"
#include "MeNBtoSgNBContainer.h"
#include "SplitSRBs.h"
#include "MeNBResourceCoordinationInformation.h"
#include "SGNB-Addition-Trigger-Ind.h"
#include "SubscriberProfileIDforRFP.h"
#include "E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList.h"
#include "SgNBtoMeNBContainer.h"
#include "SgNBResourceCoordinationInformation.h"
#include "RRC-Config-Ind.h"
#include "ResponseInformationSgNBReconfComp.h"
#include "SCGConfigurationQuery.h"
#include "UE-ContextInformation-SgNBModReq.h"
#include "E-RABs-Admitted-ToBeAdded-SgNBModAckList.h"
#include "E-RABs-Admitted-ToBeModified-SgNBModAckList.h"
#include "E-RABs-Admitted-ToBeReleased-SgNBModAckList.h"
#include "PDCPChangeIndication.h"
#include "E-RABs-ToBeReleased-SgNBModReqdList.h"
#include "E-RABs-ToBeModified-SgNBModReqdList.h"
#include "E-RABs-AdmittedToBeModified-SgNBModConfList.h"
#include "E-RABs-ToBeReleased-SgNBRelReqList.h"
#include "E-RABs-Admitted-ToBeReleased-SgNBRelReqAckList.h"
#include "E-RABs-ToBeReleased-SgNBRelReqdList.h"
#include "E-RABs-ToBeReleased-SgNBRelConfList.h"
#include "E-RABs-SubjectToSgNBCounterCheck-List.h"
#include "GlobalGNB-ID.h"
#include "E-RABs-ToBeReleased-SgNBChaConfList.h"
#include "SplitSRB.h"
#include "UENRMeasurement.h"
#include "InitiatingNodeType-EndcX2Setup.h"
#include "ServedEUTRAcellsENDCX2ManagementList.h"
#include "ServedNRcellsENDCX2ManagementList.h"
#include "RespondingNodeType-EndcX2Setup.h"
#include "InitiatingNodeType-EndcConfigUpdate.h"
#include "CellAssistanceInformation.h"
#include "ServedEUTRAcellsToModifyListENDCConfUpd.h"
#include "ServedEUTRAcellsToDeleteListENDCConfUpd.h"
#include "ServedNRcellsToModifyENDCConfUpdList.h"
#include "ServedNRcellsToDeleteENDCConfUpdList.h"
#include "RespondingNodeType-EndcConfigUpdate.h"
#include "ServedNRCellsToActivate.h"
#include "ActivationID.h"
#include "ActivatedNRCellList.h"
#include "SecondaryRATUsageReportList.h"
#include "UserPlaneTrafficActivityReport.h"
#include "ERABActivityNotifyItemList.h"
#include "UEsToBeResetList.h"
#include "InitiatingNodeType-EutranrCellResourceCoordination.h"
#include "DataTrafficResourceIndication.h"
#include "SpectrumSharingGroupID.h"
#include "ListofEUTRACellsinEUTRACoordinationReq.h"
#include "ListofEUTRACellsinNRCoordinationReq.h"
#include "ListofNRCellsinNRCoordinationReq.h"
#include "RespondingNodeType-EutranrCellResourceCoordination.h"
#include "ListofEUTRACellsinEUTRACoordinationResp.h"
#include "ListofNRCellsinNRCoordinationResp.h"
#include "InitiatingNodeType-EndcX2Removal.h"
#include "RespondingNodeType-EndcX2Removal.h"
#include "E-RABs-DataForwardingAddress-List.h"
#include "GNBOverloadInformation.h"
#include "E-RAB-Item.h"
#include "E-RABUsageReport-Item.h"
#include "SecondaryRATUsageReport-Item.h"

#ifdef __cplusplus
extern "C" {
#endif

/* Dependencies */
typedef enum RICaction_ToBeSetup_ItemIEs__value_PR {
	RICaction_ToBeSetup_ItemIEs__value_PR_NOTHING,	/* No components present */
	RICaction_ToBeSetup_ItemIEs__value_PR_RICaction_ToBeSetup_Item
} RICaction_ToBeSetup_ItemIEs__value_PR;
typedef enum RICaction_Admitted_ItemIEs__value_PR {
	RICaction_Admitted_ItemIEs__value_PR_NOTHING,	/* No components present */
	RICaction_Admitted_ItemIEs__value_PR_RICaction_Admitted_Item
} RICaction_Admitted_ItemIEs__value_PR;
typedef enum RICaction_NotAdmitted_ItemIEs__value_PR {
	RICaction_NotAdmitted_ItemIEs__value_PR_NOTHING,	/* No components present */
	RICaction_NotAdmitted_ItemIEs__value_PR_RICaction_NotAdmitted_Item
} RICaction_NotAdmitted_ItemIEs__value_PR;
typedef enum RANfunction_ItemIEs__value_PR {
	RANfunction_ItemIEs__value_PR_NOTHING,	/* No components present */
	RANfunction_ItemIEs__value_PR_RANfunction_Item
} RANfunction_ItemIEs__value_PR;
typedef enum RANfunctionID_ItemIEs__value_PR {
	RANfunctionID_ItemIEs__value_PR_NOTHING,	/* No components present */
	RANfunctionID_ItemIEs__value_PR_RANfunctionID_Item
} RANfunctionID_ItemIEs__value_PR;
typedef enum RANfunctionIDcause_ItemIEs__value_PR {
	RANfunctionIDcause_ItemIEs__value_PR_NOTHING,	/* No components present */
	RANfunctionIDcause_ItemIEs__value_PR_RANfunctionIDcause_Item
} RANfunctionIDcause_ItemIEs__value_PR;
typedef enum E_RABs_ToBeSetup_ItemIEs__value_PR {
	E_RABs_ToBeSetup_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_ToBeSetup_ItemIEs__value_PR_E_RABs_ToBeSetup_Item
} E_RABs_ToBeSetup_ItemIEs__value_PR;
typedef enum E_RABs_Admitted_ItemIEs__value_PR {
	E_RABs_Admitted_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_Admitted_ItemIEs__value_PR_E_RABs_Admitted_Item
} E_RABs_Admitted_ItemIEs__value_PR;
typedef enum E_RABs_SubjectToStatusTransfer_ItemIEs__value_PR {
	E_RABs_SubjectToStatusTransfer_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_SubjectToStatusTransfer_ItemIEs__value_PR_E_RABs_SubjectToStatusTransfer_Item
} E_RABs_SubjectToStatusTransfer_ItemIEs__value_PR;
typedef enum CellInformation_ItemIEs__value_PR {
	CellInformation_ItemIEs__value_PR_NOTHING,	/* No components present */
	CellInformation_ItemIEs__value_PR_CellInformation_Item
} CellInformation_ItemIEs__value_PR;
typedef enum CellToReport_ItemIEs__value_PR {
	CellToReport_ItemIEs__value_PR_NOTHING,	/* No components present */
	CellToReport_ItemIEs__value_PR_CellToReport_Item
} CellToReport_ItemIEs__value_PR;
typedef enum MeasurementInitiationResult_ItemIEs__value_PR {
	MeasurementInitiationResult_ItemIEs__value_PR_NOTHING,	/* No components present */
	MeasurementInitiationResult_ItemIEs__value_PR_MeasurementInitiationResult_Item
} MeasurementInitiationResult_ItemIEs__value_PR;
typedef enum MeasurementFailureCause_ItemIEs__value_PR {
	MeasurementFailureCause_ItemIEs__value_PR_NOTHING,	/* No components present */
	MeasurementFailureCause_ItemIEs__value_PR_MeasurementFailureCause_Item
} MeasurementFailureCause_ItemIEs__value_PR;
typedef enum CompleteFailureCauseInformation_ItemIEs__value_PR {
	CompleteFailureCauseInformation_ItemIEs__value_PR_NOTHING,	/* No components present */
	CompleteFailureCauseInformation_ItemIEs__value_PR_CompleteFailureCauseInformation_Item
} CompleteFailureCauseInformation_ItemIEs__value_PR;
typedef enum CellMeasurementResult_ItemIEs__value_PR {
	CellMeasurementResult_ItemIEs__value_PR_NOTHING,	/* No components present */
	CellMeasurementResult_ItemIEs__value_PR_CellMeasurementResult_Item
} CellMeasurementResult_ItemIEs__value_PR;
typedef enum E_RABs_ToBeAdded_ItemIEs__value_PR {
	E_RABs_ToBeAdded_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_ToBeAdded_ItemIEs__value_PR_E_RABs_ToBeAdded_Item
} E_RABs_ToBeAdded_ItemIEs__value_PR;
typedef enum E_RABs_Admitted_ToBeAdded_ItemIEs__value_PR {
	E_RABs_Admitted_ToBeAdded_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_Admitted_ToBeAdded_ItemIEs__value_PR_E_RABs_Admitted_ToBeAdded_Item
} E_RABs_Admitted_ToBeAdded_ItemIEs__value_PR;
typedef enum E_RABs_ToBeAdded_ModReqItemIEs__value_PR {
	E_RABs_ToBeAdded_ModReqItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_ToBeAdded_ModReqItemIEs__value_PR_E_RABs_ToBeAdded_ModReqItem
} E_RABs_ToBeAdded_ModReqItemIEs__value_PR;
typedef enum E_RABs_ToBeModified_ModReqItemIEs__value_PR {
	E_RABs_ToBeModified_ModReqItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_ToBeModified_ModReqItemIEs__value_PR_E_RABs_ToBeModified_ModReqItem
} E_RABs_ToBeModified_ModReqItemIEs__value_PR;
typedef enum E_RABs_ToBeReleased_ModReqItemIEs__value_PR {
	E_RABs_ToBeReleased_ModReqItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_ToBeReleased_ModReqItemIEs__value_PR_E_RABs_ToBeReleased_ModReqItem
} E_RABs_ToBeReleased_ModReqItemIEs__value_PR;
typedef enum E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value_PR {
	E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value_PR_E_RABs_Admitted_ToBeAdded_ModAckItem
} E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value_PR;
typedef enum E_RABs_Admitted_ToBeModified_ModAckItemIEs__value_PR {
	E_RABs_Admitted_ToBeModified_ModAckItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_Admitted_ToBeModified_ModAckItemIEs__value_PR_E_RABs_Admitted_ToBeModified_ModAckItem
} E_RABs_Admitted_ToBeModified_ModAckItemIEs__value_PR;
typedef enum E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value_PR {
	E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value_PR_E_RABs_Admitted_ToReleased_ModAckItem
} E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value_PR;
typedef enum E_RABs_ToBeReleased_ModReqdItemIEs__value_PR {
	E_RABs_ToBeReleased_ModReqdItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_ToBeReleased_ModReqdItemIEs__value_PR_E_RABs_ToBeReleased_ModReqdItem
} E_RABs_ToBeReleased_ModReqdItemIEs__value_PR;
typedef enum E_RABs_ToBeReleased_RelReqItemIEs__value_PR {
	E_RABs_ToBeReleased_RelReqItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_ToBeReleased_RelReqItemIEs__value_PR_E_RABs_ToBeReleased_RelReqItem
} E_RABs_ToBeReleased_RelReqItemIEs__value_PR;
typedef enum E_RABs_ToBeReleased_RelConfItemIEs__value_PR {
	E_RABs_ToBeReleased_RelConfItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_ToBeReleased_RelConfItemIEs__value_PR_E_RABs_ToBeReleased_RelConfItem
} E_RABs_ToBeReleased_RelConfItemIEs__value_PR;
typedef enum E_RABs_SubjectToCounterCheckItemIEs__value_PR {
	E_RABs_SubjectToCounterCheckItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_SubjectToCounterCheckItemIEs__value_PR_E_RABs_SubjectToCounterCheckItem
} E_RABs_SubjectToCounterCheckItemIEs__value_PR;
typedef enum E_RABs_ToBeSetupRetrieve_ItemIEs__value_PR {
	E_RABs_ToBeSetupRetrieve_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_ToBeSetupRetrieve_ItemIEs__value_PR_E_RABs_ToBeSetupRetrieve_Item
} E_RABs_ToBeSetupRetrieve_ItemIEs__value_PR;
typedef enum E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value_PR {
	E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value_PR_E_RABs_ToBeAdded_SgNBAddReq_Item
} E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value_PR;
typedef enum E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value_PR {
	E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value_PR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item
} E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value_PR;
typedef enum E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value_PR {
	E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value_PR_E_RABs_ToBeAdded_SgNBModReq_Item
} E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value_PR;
typedef enum E_RABs_ToBeModified_SgNBModReq_ItemIEs__value_PR {
	E_RABs_ToBeModified_SgNBModReq_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_ToBeModified_SgNBModReq_ItemIEs__value_PR_E_RABs_ToBeModified_SgNBModReq_Item
} E_RABs_ToBeModified_SgNBModReq_ItemIEs__value_PR;
typedef enum E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value_PR {
	E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value_PR_E_RABs_ToBeReleased_SgNBModReq_Item
} E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value_PR;
typedef enum E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value_PR {
	E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value_PR_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item
} E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value_PR;
typedef enum E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value_PR {
	E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value_PR_E_RABs_Admitted_ToBeModified_SgNBModAck_Item
} E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value_PR;
typedef enum E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value_PR {
	E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value_PR_E_RABs_Admitted_ToReleased_SgNBModAck_Item
} E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value_PR;
typedef enum E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value_PR {
	E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value_PR_E_RABs_ToBeReleased_SgNBModReqd_Item
} E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value_PR;
typedef enum E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value_PR {
	E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value_PR_E_RABs_ToBeModified_SgNBModReqd_Item
} E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value_PR;
typedef enum E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value_PR {
	E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value_PR_E_RABs_AdmittedToBeModified_SgNBModConf_Item
} E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value_PR;
typedef enum E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value_PR {
	E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value_PR_E_RABs_ToBeReleased_SgNBRelReq_Item
} E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value_PR;
typedef enum E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value_PR {
	E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value_PR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item
} E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value_PR;
typedef enum E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value_PR {
	E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value_PR_E_RABs_ToBeReleased_SgNBRelReqd_Item
} E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value_PR;
typedef enum E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value_PR {
	E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value_PR_E_RABs_ToBeReleased_SgNBRelConf_Item
} E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value_PR;
typedef enum E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value_PR {
	E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value_PR_E_RABs_SubjectToSgNBCounterCheck_Item
} E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value_PR;
typedef enum E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value_PR {
	E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value_PR_E_RABs_ToBeReleased_SgNBChaConf_Item
} E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value_PR;
typedef enum E_RABs_DataForwardingAddress_ItemIEs__value_PR {
	E_RABs_DataForwardingAddress_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABs_DataForwardingAddress_ItemIEs__value_PR_E_RABs_DataForwardingAddress_Item
} E_RABs_DataForwardingAddress_ItemIEs__value_PR;
typedef enum RICsubscriptionRequest_IEs__value_PR {
	RICsubscriptionRequest_IEs__value_PR_NOTHING,	/* No components present */
	RICsubscriptionRequest_IEs__value_PR_RICrequestID,
	RICsubscriptionRequest_IEs__value_PR_RANfunctionID,
	RICsubscriptionRequest_IEs__value_PR_RICsubscription
} RICsubscriptionRequest_IEs__value_PR;
typedef enum RICsubscriptionResponse_IEs__value_PR {
	RICsubscriptionResponse_IEs__value_PR_NOTHING,	/* No components present */
	RICsubscriptionResponse_IEs__value_PR_RICrequestID,
	RICsubscriptionResponse_IEs__value_PR_RANfunctionID,
	RICsubscriptionResponse_IEs__value_PR_RICaction_Admitted_List,
	RICsubscriptionResponse_IEs__value_PR_RICaction_NotAdmitted_List
} RICsubscriptionResponse_IEs__value_PR;
typedef enum RICsubscriptionFailure_IEs__value_PR {
	RICsubscriptionFailure_IEs__value_PR_NOTHING,	/* No components present */
	RICsubscriptionFailure_IEs__value_PR_RICrequestID,
	RICsubscriptionFailure_IEs__value_PR_RANfunctionID,
	RICsubscriptionFailure_IEs__value_PR_RICaction_NotAdmitted_List,
	RICsubscriptionFailure_IEs__value_PR_CriticalityDiagnostics
} RICsubscriptionFailure_IEs__value_PR;
typedef enum RICsubscriptionDeleteRequest_IEs__value_PR {
	RICsubscriptionDeleteRequest_IEs__value_PR_NOTHING,	/* No components present */
	RICsubscriptionDeleteRequest_IEs__value_PR_RICrequestID,
	RICsubscriptionDeleteRequest_IEs__value_PR_RANfunctionID
} RICsubscriptionDeleteRequest_IEs__value_PR;
typedef enum RICsubscriptionDeleteResponse_IEs__value_PR {
	RICsubscriptionDeleteResponse_IEs__value_PR_NOTHING,	/* No components present */
	RICsubscriptionDeleteResponse_IEs__value_PR_RICrequestID,
	RICsubscriptionDeleteResponse_IEs__value_PR_RANfunctionID
} RICsubscriptionDeleteResponse_IEs__value_PR;
typedef enum RICsubscriptionDeleteFailure_IEs__value_PR {
	RICsubscriptionDeleteFailure_IEs__value_PR_NOTHING,	/* No components present */
	RICsubscriptionDeleteFailure_IEs__value_PR_RICrequestID,
	RICsubscriptionDeleteFailure_IEs__value_PR_RANfunctionID,
	RICsubscriptionDeleteFailure_IEs__value_PR_RICcause,
	RICsubscriptionDeleteFailure_IEs__value_PR_CriticalityDiagnostics
} RICsubscriptionDeleteFailure_IEs__value_PR;
typedef enum RICindication_IEs__value_PR {
	RICindication_IEs__value_PR_NOTHING,	/* No components present */
	RICindication_IEs__value_PR_RICrequestID,
	RICindication_IEs__value_PR_RANfunctionID,
	RICindication_IEs__value_PR_RICactionID,
	RICindication_IEs__value_PR_RICindicationSN,
	RICindication_IEs__value_PR_RICindicationType,
	RICindication_IEs__value_PR_RICindicationHeader,
	RICindication_IEs__value_PR_RICindicationMessage,
	RICindication_IEs__value_PR_RICcallProcessID
} RICindication_IEs__value_PR;
typedef enum RICcontrolRequest_IEs__value_PR {
	RICcontrolRequest_IEs__value_PR_NOTHING,	/* No components present */
	RICcontrolRequest_IEs__value_PR_RICrequestID,
	RICcontrolRequest_IEs__value_PR_RANfunctionID,
	RICcontrolRequest_IEs__value_PR_RICcallProcessID,
	RICcontrolRequest_IEs__value_PR_RICcontrolHeader,
	RICcontrolRequest_IEs__value_PR_RICcontrolMessage,
	RICcontrolRequest_IEs__value_PR_RICcontrolAckRequest
} RICcontrolRequest_IEs__value_PR;
typedef enum RICcontrolAcknowledge_IEs__value_PR {
	RICcontrolAcknowledge_IEs__value_PR_NOTHING,	/* No components present */
	RICcontrolAcknowledge_IEs__value_PR_RICrequestID,
	RICcontrolAcknowledge_IEs__value_PR_RANfunctionID,
	RICcontrolAcknowledge_IEs__value_PR_RICcallProcessID,
	RICcontrolAcknowledge_IEs__value_PR_RICcontrolStatus
} RICcontrolAcknowledge_IEs__value_PR;
typedef enum RICcontrolFailure_IEs__value_PR {
	RICcontrolFailure_IEs__value_PR_NOTHING,	/* No components present */
	RICcontrolFailure_IEs__value_PR_RICrequestID,
	RICcontrolFailure_IEs__value_PR_RANfunctionID,
	RICcontrolFailure_IEs__value_PR_RICcallProcessID,
	RICcontrolFailure_IEs__value_PR_RICcause
} RICcontrolFailure_IEs__value_PR;
typedef enum RICserviceUpdate_IEs__value_PR {
	RICserviceUpdate_IEs__value_PR_NOTHING,	/* No components present */
	RICserviceUpdate_IEs__value_PR_RANfunctions_List,
	RICserviceUpdate_IEs__value_PR_RANfunctionsID_List
} RICserviceUpdate_IEs__value_PR;
typedef enum RICserviceUpdateAcknowledge_IEs__value_PR {
	RICserviceUpdateAcknowledge_IEs__value_PR_NOTHING,	/* No components present */
	RICserviceUpdateAcknowledge_IEs__value_PR_RANfunctionsID_List,
	RICserviceUpdateAcknowledge_IEs__value_PR_RANfunctionsIDcause_List
} RICserviceUpdateAcknowledge_IEs__value_PR;
typedef enum RICserviceUpdateFailure_IEs__value_PR {
	RICserviceUpdateFailure_IEs__value_PR_NOTHING,	/* No components present */
	RICserviceUpdateFailure_IEs__value_PR_RANfunctionsIDcause_List,
	RICserviceUpdateFailure_IEs__value_PR_TimeToWait,
	RICserviceUpdateFailure_IEs__value_PR_CriticalityDiagnostics
} RICserviceUpdateFailure_IEs__value_PR;
typedef enum RICserviceQuery_IEs__value_PR {
	RICserviceQuery_IEs__value_PR_NOTHING,	/* No components present */
	RICserviceQuery_IEs__value_PR_RANfunctionsID_List
} RICserviceQuery_IEs__value_PR;
typedef enum HandoverRequest_IEs__value_PR {
	HandoverRequest_IEs__value_PR_NOTHING,	/* No components present */
	HandoverRequest_IEs__value_PR_UE_X2AP_ID,
	HandoverRequest_IEs__value_PR_Cause,
	HandoverRequest_IEs__value_PR_ECGI,
	HandoverRequest_IEs__value_PR_GUMMEI,
	HandoverRequest_IEs__value_PR_UE_ContextInformation,
	HandoverRequest_IEs__value_PR_UE_HistoryInformation,
	HandoverRequest_IEs__value_PR_TraceActivation,
	HandoverRequest_IEs__value_PR_SRVCCOperationPossible,
	HandoverRequest_IEs__value_PR_CSGMembershipStatus,
	HandoverRequest_IEs__value_PR_MobilityInformation,
	HandoverRequest_IEs__value_PR_Masked_IMEISV,
	HandoverRequest_IEs__value_PR_UE_HistoryInformationFromTheUE,
	HandoverRequest_IEs__value_PR_ExpectedUEBehaviour,
	HandoverRequest_IEs__value_PR_ProSeAuthorized,
	HandoverRequest_IEs__value_PR_UE_ContextReferenceAtSeNB,
	HandoverRequest_IEs__value_PR_UE_X2AP_ID_Extension,
	HandoverRequest_IEs__value_PR_V2XServicesAuthorized,
	HandoverRequest_IEs__value_PR_UE_ContextReferenceAtWT,
	HandoverRequest_IEs__value_PR_NRUESecurityCapabilities,
	HandoverRequest_IEs__value_PR_UE_ContextReferenceAtSgNB,
	HandoverRequest_IEs__value_PR_AerialUEsubscriptionInformation,
	HandoverRequest_IEs__value_PR_Subscription_Based_UE_DifferentiationInfo
} HandoverRequest_IEs__value_PR;
typedef enum HandoverRequestAcknowledge_IEs__value_PR {
	HandoverRequestAcknowledge_IEs__value_PR_NOTHING,	/* No components present */
	HandoverRequestAcknowledge_IEs__value_PR_UE_X2AP_ID,
	HandoverRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_List,
	HandoverRequestAcknowledge_IEs__value_PR_E_RAB_List,
	HandoverRequestAcknowledge_IEs__value_PR_TargeteNBtoSource_eNBTransparentContainer,
	HandoverRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics,
	HandoverRequestAcknowledge_IEs__value_PR_UE_ContextKeptIndicator,
	HandoverRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension
} HandoverRequestAcknowledge_IEs__value_PR;
typedef enum HandoverPreparationFailure_IEs__value_PR {
	HandoverPreparationFailure_IEs__value_PR_NOTHING,	/* No components present */
	HandoverPreparationFailure_IEs__value_PR_UE_X2AP_ID,
	HandoverPreparationFailure_IEs__value_PR_Cause,
	HandoverPreparationFailure_IEs__value_PR_CriticalityDiagnostics,
	HandoverPreparationFailure_IEs__value_PR_UE_X2AP_ID_Extension
} HandoverPreparationFailure_IEs__value_PR;
typedef enum HandoverReport_IEs__value_PR {
	HandoverReport_IEs__value_PR_NOTHING,	/* No components present */
	HandoverReport_IEs__value_PR_HandoverReportType,
	HandoverReport_IEs__value_PR_Cause,
	HandoverReport_IEs__value_PR_ECGI,
	HandoverReport_IEs__value_PR_TargetCellInUTRAN,
	HandoverReport_IEs__value_PR_CRNTI,
	HandoverReport_IEs__value_PR_MobilityInformation,
	HandoverReport_IEs__value_PR_UE_RLF_Report_Container,
	HandoverReport_IEs__value_PR_UE_RLF_Report_Container_for_extended_bands
} HandoverReport_IEs__value_PR;
typedef enum SNStatusTransfer_IEs__value_PR {
	SNStatusTransfer_IEs__value_PR_NOTHING,	/* No components present */
	SNStatusTransfer_IEs__value_PR_UE_X2AP_ID,
	SNStatusTransfer_IEs__value_PR_E_RABs_SubjectToStatusTransfer_List,
	SNStatusTransfer_IEs__value_PR_UE_X2AP_ID_Extension,
	SNStatusTransfer_IEs__value_PR_SgNB_UE_X2AP_ID
} SNStatusTransfer_IEs__value_PR;
typedef enum UEContextRelease_IEs__value_PR {
	UEContextRelease_IEs__value_PR_NOTHING,	/* No components present */
	UEContextRelease_IEs__value_PR_UE_X2AP_ID,
	UEContextRelease_IEs__value_PR_UE_X2AP_ID_Extension,
	UEContextRelease_IEs__value_PR_SIPTOBearerDeactivationIndication,
	UEContextRelease_IEs__value_PR_SgNB_UE_X2AP_ID
} UEContextRelease_IEs__value_PR;
typedef enum HandoverCancel_IEs__value_PR {
	HandoverCancel_IEs__value_PR_NOTHING,	/* No components present */
	HandoverCancel_IEs__value_PR_UE_X2AP_ID,
	HandoverCancel_IEs__value_PR_Cause,
	HandoverCancel_IEs__value_PR_UE_X2AP_ID_Extension
} HandoverCancel_IEs__value_PR;
typedef enum ErrorIndication_IEs__value_PR {
	ErrorIndication_IEs__value_PR_NOTHING,	/* No components present */
	ErrorIndication_IEs__value_PR_UE_X2AP_ID,
	ErrorIndication_IEs__value_PR_Cause,
	ErrorIndication_IEs__value_PR_CriticalityDiagnostics,
	ErrorIndication_IEs__value_PR_UE_X2AP_ID_Extension,
	ErrorIndication_IEs__value_PR_SgNB_UE_X2AP_ID
} ErrorIndication_IEs__value_PR;
typedef enum ResetRequest_IEs__value_PR {
	ResetRequest_IEs__value_PR_NOTHING,	/* No components present */
	ResetRequest_IEs__value_PR_Cause
} ResetRequest_IEs__value_PR;
typedef enum ResetResponse_IEs__value_PR {
	ResetResponse_IEs__value_PR_NOTHING,	/* No components present */
	ResetResponse_IEs__value_PR_CriticalityDiagnostics
} ResetResponse_IEs__value_PR;
typedef enum X2SetupRequest_IEs__value_PR {
	X2SetupRequest_IEs__value_PR_NOTHING,	/* No components present */
	X2SetupRequest_IEs__value_PR_GlobalENB_ID,
	X2SetupRequest_IEs__value_PR_ServedCells,
	X2SetupRequest_IEs__value_PR_GUGroupIDList,
	X2SetupRequest_IEs__value_PR_LHN_ID
} X2SetupRequest_IEs__value_PR;
typedef enum X2SetupResponse_IEs__value_PR {
	X2SetupResponse_IEs__value_PR_NOTHING,	/* No components present */
	X2SetupResponse_IEs__value_PR_GlobalENB_ID,
	X2SetupResponse_IEs__value_PR_ServedCells,
	X2SetupResponse_IEs__value_PR_GUGroupIDList,
	X2SetupResponse_IEs__value_PR_CriticalityDiagnostics,
	X2SetupResponse_IEs__value_PR_LHN_ID
} X2SetupResponse_IEs__value_PR;
typedef enum X2SetupFailure_IEs__value_PR {
	X2SetupFailure_IEs__value_PR_NOTHING,	/* No components present */
	X2SetupFailure_IEs__value_PR_Cause,
	X2SetupFailure_IEs__value_PR_TimeToWait,
	X2SetupFailure_IEs__value_PR_CriticalityDiagnostics
} X2SetupFailure_IEs__value_PR;
typedef enum LoadInformation_IEs__value_PR {
	LoadInformation_IEs__value_PR_NOTHING,	/* No components present */
	LoadInformation_IEs__value_PR_CellInformation_List
} LoadInformation_IEs__value_PR;
typedef enum ENBConfigurationUpdate_IEs__value_PR {
	ENBConfigurationUpdate_IEs__value_PR_NOTHING,	/* No components present */
	ENBConfigurationUpdate_IEs__value_PR_ServedCells,
	ENBConfigurationUpdate_IEs__value_PR_ServedCellsToModify,
	ENBConfigurationUpdate_IEs__value_PR_Old_ECGIs,
	ENBConfigurationUpdate_IEs__value_PR_GUGroupIDList,
	ENBConfigurationUpdate_IEs__value_PR_CoverageModificationList
} ENBConfigurationUpdate_IEs__value_PR;
typedef enum ENBConfigurationUpdateAcknowledge_IEs__value_PR {
	ENBConfigurationUpdateAcknowledge_IEs__value_PR_NOTHING,	/* No components present */
	ENBConfigurationUpdateAcknowledge_IEs__value_PR_CriticalityDiagnostics
} ENBConfigurationUpdateAcknowledge_IEs__value_PR;
typedef enum ENBConfigurationUpdateFailure_IEs__value_PR {
	ENBConfigurationUpdateFailure_IEs__value_PR_NOTHING,	/* No components present */
	ENBConfigurationUpdateFailure_IEs__value_PR_Cause,
	ENBConfigurationUpdateFailure_IEs__value_PR_TimeToWait,
	ENBConfigurationUpdateFailure_IEs__value_PR_CriticalityDiagnostics
} ENBConfigurationUpdateFailure_IEs__value_PR;
typedef enum ResourceStatusRequest_IEs__value_PR {
	ResourceStatusRequest_IEs__value_PR_NOTHING,	/* No components present */
	ResourceStatusRequest_IEs__value_PR_Measurement_ID,
	ResourceStatusRequest_IEs__value_PR_Registration_Request,
	ResourceStatusRequest_IEs__value_PR_ReportCharacteristics,
	ResourceStatusRequest_IEs__value_PR_CellToReport_List,
	ResourceStatusRequest_IEs__value_PR_ReportingPeriodicity,
	ResourceStatusRequest_IEs__value_PR_PartialSuccessIndicator,
	ResourceStatusRequest_IEs__value_PR_ReportingPeriodicityRSRPMR,
	ResourceStatusRequest_IEs__value_PR_ReportingPeriodicityCSIR
} ResourceStatusRequest_IEs__value_PR;
typedef enum ResourceStatusResponse_IEs__value_PR {
	ResourceStatusResponse_IEs__value_PR_NOTHING,	/* No components present */
	ResourceStatusResponse_IEs__value_PR_Measurement_ID,
	ResourceStatusResponse_IEs__value_PR_CriticalityDiagnostics,
	ResourceStatusResponse_IEs__value_PR_MeasurementInitiationResult_List
} ResourceStatusResponse_IEs__value_PR;
typedef enum ResourceStatusFailure_IEs__value_PR {
	ResourceStatusFailure_IEs__value_PR_NOTHING,	/* No components present */
	ResourceStatusFailure_IEs__value_PR_Measurement_ID,
	ResourceStatusFailure_IEs__value_PR_Cause,
	ResourceStatusFailure_IEs__value_PR_CriticalityDiagnostics,
	ResourceStatusFailure_IEs__value_PR_CompleteFailureCauseInformation_List
} ResourceStatusFailure_IEs__value_PR;
typedef enum ResourceStatusUpdate_IEs__value_PR {
	ResourceStatusUpdate_IEs__value_PR_NOTHING,	/* No components present */
	ResourceStatusUpdate_IEs__value_PR_Measurement_ID,
	ResourceStatusUpdate_IEs__value_PR_CellMeasurementResult_List
} ResourceStatusUpdate_IEs__value_PR;
typedef enum MobilityChangeRequest_IEs__value_PR {
	MobilityChangeRequest_IEs__value_PR_NOTHING,	/* No components present */
	MobilityChangeRequest_IEs__value_PR_ECGI,
	MobilityChangeRequest_IEs__value_PR_MobilityParametersInformation,
	MobilityChangeRequest_IEs__value_PR_Cause
} MobilityChangeRequest_IEs__value_PR;
typedef enum MobilityChangeAcknowledge_IEs__value_PR {
	MobilityChangeAcknowledge_IEs__value_PR_NOTHING,	/* No components present */
	MobilityChangeAcknowledge_IEs__value_PR_ECGI,
	MobilityChangeAcknowledge_IEs__value_PR_CriticalityDiagnostics
} MobilityChangeAcknowledge_IEs__value_PR;
typedef enum MobilityChangeFailure_IEs__value_PR {
	MobilityChangeFailure_IEs__value_PR_NOTHING,	/* No components present */
	MobilityChangeFailure_IEs__value_PR_ECGI,
	MobilityChangeFailure_IEs__value_PR_Cause,
	MobilityChangeFailure_IEs__value_PR_MobilityParametersModificationRange,
	MobilityChangeFailure_IEs__value_PR_CriticalityDiagnostics
} MobilityChangeFailure_IEs__value_PR;
typedef enum RLFIndication_IEs__value_PR {
	RLFIndication_IEs__value_PR_NOTHING,	/* No components present */
	RLFIndication_IEs__value_PR_PCI,
	RLFIndication_IEs__value_PR_ECGI,
	RLFIndication_IEs__value_PR_CRNTI,
	RLFIndication_IEs__value_PR_ShortMAC_I,
	RLFIndication_IEs__value_PR_UE_RLF_Report_Container,
	RLFIndication_IEs__value_PR_RRCConnSetupIndicator,
	RLFIndication_IEs__value_PR_RRCConnReestabIndicator,
	RLFIndication_IEs__value_PR_UE_RLF_Report_Container_for_extended_bands
} RLFIndication_IEs__value_PR;
typedef enum CellActivationRequest_IEs__value_PR {
	CellActivationRequest_IEs__value_PR_NOTHING,	/* No components present */
	CellActivationRequest_IEs__value_PR_ServedCellsToActivate
} CellActivationRequest_IEs__value_PR;
typedef enum CellActivationResponse_IEs__value_PR {
	CellActivationResponse_IEs__value_PR_NOTHING,	/* No components present */
	CellActivationResponse_IEs__value_PR_ActivatedCellList,
	CellActivationResponse_IEs__value_PR_CriticalityDiagnostics
} CellActivationResponse_IEs__value_PR;
typedef enum CellActivationFailure_IEs__value_PR {
	CellActivationFailure_IEs__value_PR_NOTHING,	/* No components present */
	CellActivationFailure_IEs__value_PR_Cause,
	CellActivationFailure_IEs__value_PR_CriticalityDiagnostics
} CellActivationFailure_IEs__value_PR;
typedef enum X2Release_IEs__value_PR {
	X2Release_IEs__value_PR_NOTHING,	/* No components present */
	X2Release_IEs__value_PR_GlobalENB_ID
} X2Release_IEs__value_PR;
typedef enum X2APMessageTransfer_IEs__value_PR {
	X2APMessageTransfer_IEs__value_PR_NOTHING,	/* No components present */
	X2APMessageTransfer_IEs__value_PR_RNL_Header,
	X2APMessageTransfer_IEs__value_PR_X2AP_Message
} X2APMessageTransfer_IEs__value_PR;
typedef enum SeNBAdditionRequest_IEs__value_PR {
	SeNBAdditionRequest_IEs__value_PR_NOTHING,	/* No components present */
	SeNBAdditionRequest_IEs__value_PR_UE_X2AP_ID,
	SeNBAdditionRequest_IEs__value_PR_UESecurityCapabilities,
	SeNBAdditionRequest_IEs__value_PR_SeNBSecurityKey,
	SeNBAdditionRequest_IEs__value_PR_UEAggregateMaximumBitRate,
	SeNBAdditionRequest_IEs__value_PR_PLMN_Identity,
	SeNBAdditionRequest_IEs__value_PR_E_RABs_ToBeAdded_List,
	SeNBAdditionRequest_IEs__value_PR_MeNBtoSeNBContainer,
	SeNBAdditionRequest_IEs__value_PR_CSGMembershipStatus,
	SeNBAdditionRequest_IEs__value_PR_UE_X2AP_ID_Extension,
	SeNBAdditionRequest_IEs__value_PR_ExpectedUEBehaviour
} SeNBAdditionRequest_IEs__value_PR;
typedef enum SeNBAdditionRequestAcknowledge_IEs__value_PR {
	SeNBAdditionRequestAcknowledge_IEs__value_PR_NOTHING,	/* No components present */
	SeNBAdditionRequestAcknowledge_IEs__value_PR_UE_X2AP_ID,
	SeNBAdditionRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeAdded_List,
	SeNBAdditionRequestAcknowledge_IEs__value_PR_E_RAB_List,
	SeNBAdditionRequestAcknowledge_IEs__value_PR_SeNBtoMeNBContainer,
	SeNBAdditionRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics,
	SeNBAdditionRequestAcknowledge_IEs__value_PR_TransportLayerAddress,
	SeNBAdditionRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension,
	SeNBAdditionRequestAcknowledge_IEs__value_PR_TunnelInformation
} SeNBAdditionRequestAcknowledge_IEs__value_PR;
typedef enum SeNBAdditionRequestReject_IEs__value_PR {
	SeNBAdditionRequestReject_IEs__value_PR_NOTHING,	/* No components present */
	SeNBAdditionRequestReject_IEs__value_PR_UE_X2AP_ID,
	SeNBAdditionRequestReject_IEs__value_PR_Cause,
	SeNBAdditionRequestReject_IEs__value_PR_CriticalityDiagnostics,
	SeNBAdditionRequestReject_IEs__value_PR_UE_X2AP_ID_Extension
} SeNBAdditionRequestReject_IEs__value_PR;
typedef enum SeNBReconfigurationComplete_IEs__value_PR {
	SeNBReconfigurationComplete_IEs__value_PR_NOTHING,	/* No components present */
	SeNBReconfigurationComplete_IEs__value_PR_UE_X2AP_ID,
	SeNBReconfigurationComplete_IEs__value_PR_ResponseInformationSeNBReconfComp,
	SeNBReconfigurationComplete_IEs__value_PR_UE_X2AP_ID_Extension
} SeNBReconfigurationComplete_IEs__value_PR;
typedef enum SeNBModificationRequest_IEs__value_PR {
	SeNBModificationRequest_IEs__value_PR_NOTHING,	/* No components present */
	SeNBModificationRequest_IEs__value_PR_UE_X2AP_ID,
	SeNBModificationRequest_IEs__value_PR_Cause,
	SeNBModificationRequest_IEs__value_PR_SCGChangeIndication,
	SeNBModificationRequest_IEs__value_PR_PLMN_Identity,
	SeNBModificationRequest_IEs__value_PR_UE_ContextInformationSeNBModReq,
	SeNBModificationRequest_IEs__value_PR_MeNBtoSeNBContainer,
	SeNBModificationRequest_IEs__value_PR_CSGMembershipStatus,
	SeNBModificationRequest_IEs__value_PR_UE_X2AP_ID_Extension
} SeNBModificationRequest_IEs__value_PR;
typedef enum SeNBModificationRequestAcknowledge_IEs__value_PR {
	SeNBModificationRequestAcknowledge_IEs__value_PR_NOTHING,	/* No components present */
	SeNBModificationRequestAcknowledge_IEs__value_PR_UE_X2AP_ID,
	SeNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeAdded_ModAckList,
	SeNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeModified_ModAckList,
	SeNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeReleased_ModAckList,
	SeNBModificationRequestAcknowledge_IEs__value_PR_E_RAB_List,
	SeNBModificationRequestAcknowledge_IEs__value_PR_SeNBtoMeNBContainer,
	SeNBModificationRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics,
	SeNBModificationRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension
} SeNBModificationRequestAcknowledge_IEs__value_PR;
typedef enum SeNBModificationRequestReject_IEs__value_PR {
	SeNBModificationRequestReject_IEs__value_PR_NOTHING,	/* No components present */
	SeNBModificationRequestReject_IEs__value_PR_UE_X2AP_ID,
	SeNBModificationRequestReject_IEs__value_PR_Cause,
	SeNBModificationRequestReject_IEs__value_PR_CriticalityDiagnostics,
	SeNBModificationRequestReject_IEs__value_PR_UE_X2AP_ID_Extension
} SeNBModificationRequestReject_IEs__value_PR;
typedef enum SeNBModificationRequired_IEs__value_PR {
	SeNBModificationRequired_IEs__value_PR_NOTHING,	/* No components present */
	SeNBModificationRequired_IEs__value_PR_UE_X2AP_ID,
	SeNBModificationRequired_IEs__value_PR_Cause,
	SeNBModificationRequired_IEs__value_PR_SCGChangeIndication,
	SeNBModificationRequired_IEs__value_PR_E_RABs_ToBeReleased_ModReqd,
	SeNBModificationRequired_IEs__value_PR_SeNBtoMeNBContainer,
	SeNBModificationRequired_IEs__value_PR_UE_X2AP_ID_Extension
} SeNBModificationRequired_IEs__value_PR;
typedef enum SeNBModificationConfirm_IEs__value_PR {
	SeNBModificationConfirm_IEs__value_PR_NOTHING,	/* No components present */
	SeNBModificationConfirm_IEs__value_PR_UE_X2AP_ID,
	SeNBModificationConfirm_IEs__value_PR_MeNBtoSeNBContainer,
	SeNBModificationConfirm_IEs__value_PR_CriticalityDiagnostics,
	SeNBModificationConfirm_IEs__value_PR_UE_X2AP_ID_Extension
} SeNBModificationConfirm_IEs__value_PR;
typedef enum SeNBModificationRefuse_IEs__value_PR {
	SeNBModificationRefuse_IEs__value_PR_NOTHING,	/* No components present */
	SeNBModificationRefuse_IEs__value_PR_UE_X2AP_ID,
	SeNBModificationRefuse_IEs__value_PR_Cause,
	SeNBModificationRefuse_IEs__value_PR_MeNBtoSeNBContainer,
	SeNBModificationRefuse_IEs__value_PR_CriticalityDiagnostics,
	SeNBModificationRefuse_IEs__value_PR_UE_X2AP_ID_Extension
} SeNBModificationRefuse_IEs__value_PR;
typedef enum SeNBReleaseRequest_IEs__value_PR {
	SeNBReleaseRequest_IEs__value_PR_NOTHING,	/* No components present */
	SeNBReleaseRequest_IEs__value_PR_UE_X2AP_ID,
	SeNBReleaseRequest_IEs__value_PR_Cause,
	SeNBReleaseRequest_IEs__value_PR_E_RABs_ToBeReleased_List_RelReq,
	SeNBReleaseRequest_IEs__value_PR_UE_ContextKeptIndicator,
	SeNBReleaseRequest_IEs__value_PR_UE_X2AP_ID_Extension,
	SeNBReleaseRequest_IEs__value_PR_MakeBeforeBreakIndicator
} SeNBReleaseRequest_IEs__value_PR;
typedef enum SeNBReleaseRequired_IEs__value_PR {
	SeNBReleaseRequired_IEs__value_PR_NOTHING,	/* No components present */
	SeNBReleaseRequired_IEs__value_PR_UE_X2AP_ID,
	SeNBReleaseRequired_IEs__value_PR_Cause,
	SeNBReleaseRequired_IEs__value_PR_UE_X2AP_ID_Extension
} SeNBReleaseRequired_IEs__value_PR;
typedef enum SeNBReleaseConfirm_IEs__value_PR {
	SeNBReleaseConfirm_IEs__value_PR_NOTHING,	/* No components present */
	SeNBReleaseConfirm_IEs__value_PR_UE_X2AP_ID,
	SeNBReleaseConfirm_IEs__value_PR_E_RABs_ToBeReleased_List_RelConf,
	SeNBReleaseConfirm_IEs__value_PR_CriticalityDiagnostics,
	SeNBReleaseConfirm_IEs__value_PR_UE_X2AP_ID_Extension
} SeNBReleaseConfirm_IEs__value_PR;
typedef enum SeNBCounterCheckRequest_IEs__value_PR {
	SeNBCounterCheckRequest_IEs__value_PR_NOTHING,	/* No components present */
	SeNBCounterCheckRequest_IEs__value_PR_UE_X2AP_ID,
	SeNBCounterCheckRequest_IEs__value_PR_E_RABs_SubjectToCounterCheck_List,
	SeNBCounterCheckRequest_IEs__value_PR_UE_X2AP_ID_Extension
} SeNBCounterCheckRequest_IEs__value_PR;
typedef enum X2RemovalRequest_IEs__value_PR {
	X2RemovalRequest_IEs__value_PR_NOTHING,	/* No components present */
	X2RemovalRequest_IEs__value_PR_GlobalENB_ID,
	X2RemovalRequest_IEs__value_PR_X2BenefitValue
} X2RemovalRequest_IEs__value_PR;
typedef enum X2RemovalResponse_IEs__value_PR {
	X2RemovalResponse_IEs__value_PR_NOTHING,	/* No components present */
	X2RemovalResponse_IEs__value_PR_GlobalENB_ID,
	X2RemovalResponse_IEs__value_PR_CriticalityDiagnostics
} X2RemovalResponse_IEs__value_PR;
typedef enum X2RemovalFailure_IEs__value_PR {
	X2RemovalFailure_IEs__value_PR_NOTHING,	/* No components present */
	X2RemovalFailure_IEs__value_PR_Cause,
	X2RemovalFailure_IEs__value_PR_CriticalityDiagnostics
} X2RemovalFailure_IEs__value_PR;
typedef enum RetrieveUEContextRequest_IEs__value_PR {
	RetrieveUEContextRequest_IEs__value_PR_NOTHING,	/* No components present */
	RetrieveUEContextRequest_IEs__value_PR_UE_X2AP_ID,
	RetrieveUEContextRequest_IEs__value_PR_UE_X2AP_ID_Extension,
	RetrieveUEContextRequest_IEs__value_PR_ResumeID,
	RetrieveUEContextRequest_IEs__value_PR_ShortMAC_I,
	RetrieveUEContextRequest_IEs__value_PR_EUTRANCellIdentifier,
	RetrieveUEContextRequest_IEs__value_PR_CRNTI,
	RetrieveUEContextRequest_IEs__value_PR_PCI
} RetrieveUEContextRequest_IEs__value_PR;
typedef enum RetrieveUEContextResponse_IEs__value_PR {
	RetrieveUEContextResponse_IEs__value_PR_NOTHING,	/* No components present */
	RetrieveUEContextResponse_IEs__value_PR_UE_X2AP_ID,
	RetrieveUEContextResponse_IEs__value_PR_UE_X2AP_ID_Extension,
	RetrieveUEContextResponse_IEs__value_PR_GUMMEI,
	RetrieveUEContextResponse_IEs__value_PR_UE_ContextInformationRetrieve,
	RetrieveUEContextResponse_IEs__value_PR_TraceActivation,
	RetrieveUEContextResponse_IEs__value_PR_SRVCCOperationPossible,
	RetrieveUEContextResponse_IEs__value_PR_Masked_IMEISV,
	RetrieveUEContextResponse_IEs__value_PR_ExpectedUEBehaviour,
	RetrieveUEContextResponse_IEs__value_PR_ProSeAuthorized,
	RetrieveUEContextResponse_IEs__value_PR_CriticalityDiagnostics,
	RetrieveUEContextResponse_IEs__value_PR_V2XServicesAuthorized,
	RetrieveUEContextResponse_IEs__value_PR_AerialUEsubscriptionInformation,
	RetrieveUEContextResponse_IEs__value_PR_Subscription_Based_UE_DifferentiationInfo
} RetrieveUEContextResponse_IEs__value_PR;
typedef enum RetrieveUEContextFailure_IEs__value_PR {
	RetrieveUEContextFailure_IEs__value_PR_NOTHING,	/* No components present */
	RetrieveUEContextFailure_IEs__value_PR_UE_X2AP_ID,
	RetrieveUEContextFailure_IEs__value_PR_UE_X2AP_ID_Extension,
	RetrieveUEContextFailure_IEs__value_PR_Cause,
	RetrieveUEContextFailure_IEs__value_PR_CriticalityDiagnostics
} RetrieveUEContextFailure_IEs__value_PR;
typedef enum SgNBAdditionRequest_IEs__value_PR {
	SgNBAdditionRequest_IEs__value_PR_NOTHING,	/* No components present */
	SgNBAdditionRequest_IEs__value_PR_UE_X2AP_ID,
	SgNBAdditionRequest_IEs__value_PR_NRUESecurityCapabilities,
	SgNBAdditionRequest_IEs__value_PR_SgNBSecurityKey,
	SgNBAdditionRequest_IEs__value_PR_UEAggregateMaximumBitRate,
	SgNBAdditionRequest_IEs__value_PR_PLMN_Identity,
	SgNBAdditionRequest_IEs__value_PR_HandoverRestrictionList,
	SgNBAdditionRequest_IEs__value_PR_E_RABs_ToBeAdded_SgNBAddReqList,
	SgNBAdditionRequest_IEs__value_PR_MeNBtoSgNBContainer,
	SgNBAdditionRequest_IEs__value_PR_SgNB_UE_X2AP_ID,
	SgNBAdditionRequest_IEs__value_PR_ExpectedUEBehaviour,
	SgNBAdditionRequest_IEs__value_PR_UE_X2AP_ID_Extension,
	SgNBAdditionRequest_IEs__value_PR_SplitSRBs,
	SgNBAdditionRequest_IEs__value_PR_MeNBResourceCoordinationInformation,
	SgNBAdditionRequest_IEs__value_PR_SGNB_Addition_Trigger_Ind,
	SgNBAdditionRequest_IEs__value_PR_SubscriberProfileIDforRFP,
	SgNBAdditionRequest_IEs__value_PR_ECGI
} SgNBAdditionRequest_IEs__value_PR;
typedef enum SgNBAdditionRequestAcknowledge_IEs__value_PR {
	SgNBAdditionRequestAcknowledge_IEs__value_PR_NOTHING,	/* No components present */
	SgNBAdditionRequestAcknowledge_IEs__value_PR_UE_X2AP_ID,
	SgNBAdditionRequestAcknowledge_IEs__value_PR_SgNB_UE_X2AP_ID,
	SgNBAdditionRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList,
	SgNBAdditionRequestAcknowledge_IEs__value_PR_E_RAB_List,
	SgNBAdditionRequestAcknowledge_IEs__value_PR_SgNBtoMeNBContainer,
	SgNBAdditionRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics,
	SgNBAdditionRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension,
	SgNBAdditionRequestAcknowledge_IEs__value_PR_SplitSRBs,
	SgNBAdditionRequestAcknowledge_IEs__value_PR_SgNBResourceCoordinationInformation,
	SgNBAdditionRequestAcknowledge_IEs__value_PR_RRC_Config_Ind
} SgNBAdditionRequestAcknowledge_IEs__value_PR;
typedef enum SgNBAdditionRequestReject_IEs__value_PR {
	SgNBAdditionRequestReject_IEs__value_PR_NOTHING,	/* No components present */
	SgNBAdditionRequestReject_IEs__value_PR_UE_X2AP_ID,
	SgNBAdditionRequestReject_IEs__value_PR_SgNB_UE_X2AP_ID,
	SgNBAdditionRequestReject_IEs__value_PR_Cause,
	SgNBAdditionRequestReject_IEs__value_PR_CriticalityDiagnostics,
	SgNBAdditionRequestReject_IEs__value_PR_UE_X2AP_ID_Extension
} SgNBAdditionRequestReject_IEs__value_PR;
typedef enum SgNBReconfigurationComplete_IEs__value_PR {
	SgNBReconfigurationComplete_IEs__value_PR_NOTHING,	/* No components present */
	SgNBReconfigurationComplete_IEs__value_PR_UE_X2AP_ID,
	SgNBReconfigurationComplete_IEs__value_PR_SgNB_UE_X2AP_ID,
	SgNBReconfigurationComplete_IEs__value_PR_ResponseInformationSgNBReconfComp,
	SgNBReconfigurationComplete_IEs__value_PR_UE_X2AP_ID_Extension
} SgNBReconfigurationComplete_IEs__value_PR;
typedef enum SgNBModificationRequest_IEs__value_PR {
	SgNBModificationRequest_IEs__value_PR_NOTHING,	/* No components present */
	SgNBModificationRequest_IEs__value_PR_UE_X2AP_ID,
	SgNBModificationRequest_IEs__value_PR_SgNB_UE_X2AP_ID,
	SgNBModificationRequest_IEs__value_PR_Cause,
	SgNBModificationRequest_IEs__value_PR_PLMN_Identity,
	SgNBModificationRequest_IEs__value_PR_HandoverRestrictionList,
	SgNBModificationRequest_IEs__value_PR_SCGConfigurationQuery,
	SgNBModificationRequest_IEs__value_PR_UE_ContextInformation_SgNBModReq,
	SgNBModificationRequest_IEs__value_PR_MeNBtoSgNBContainer,
	SgNBModificationRequest_IEs__value_PR_UE_X2AP_ID_Extension,
	SgNBModificationRequest_IEs__value_PR_MeNBResourceCoordinationInformation,
	SgNBModificationRequest_IEs__value_PR_SplitSRBs
} SgNBModificationRequest_IEs__value_PR;
typedef enum SgNBModificationRequestAcknowledge_IEs__value_PR {
	SgNBModificationRequestAcknowledge_IEs__value_PR_NOTHING,	/* No components present */
	SgNBModificationRequestAcknowledge_IEs__value_PR_UE_X2AP_ID,
	SgNBModificationRequestAcknowledge_IEs__value_PR_SgNB_UE_X2AP_ID,
	SgNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeAdded_SgNBModAckList,
	SgNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeModified_SgNBModAckList,
	SgNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeReleased_SgNBModAckList,
	SgNBModificationRequestAcknowledge_IEs__value_PR_E_RAB_List,
	SgNBModificationRequestAcknowledge_IEs__value_PR_SgNBtoMeNBContainer,
	SgNBModificationRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics,
	SgNBModificationRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension,
	SgNBModificationRequestAcknowledge_IEs__value_PR_SgNBResourceCoordinationInformation,
	SgNBModificationRequestAcknowledge_IEs__value_PR_SplitSRBs,
	SgNBModificationRequestAcknowledge_IEs__value_PR_RRC_Config_Ind
} SgNBModificationRequestAcknowledge_IEs__value_PR;
typedef enum SgNBModificationRequestReject_IEs__value_PR {
	SgNBModificationRequestReject_IEs__value_PR_NOTHING,	/* No components present */
	SgNBModificationRequestReject_IEs__value_PR_UE_X2AP_ID,
	SgNBModificationRequestReject_IEs__value_PR_SgNB_UE_X2AP_ID,
	SgNBModificationRequestReject_IEs__value_PR_Cause,
	SgNBModificationRequestReject_IEs__value_PR_CriticalityDiagnostics,
	SgNBModificationRequestReject_IEs__value_PR_UE_X2AP_ID_Extension
} SgNBModificationRequestReject_IEs__value_PR;
typedef enum SgNBModificationRequired_IEs__value_PR {
	SgNBModificationRequired_IEs__value_PR_NOTHING,	/* No components present */
	SgNBModificationRequired_IEs__value_PR_UE_X2AP_ID,
	SgNBModificationRequired_IEs__value_PR_SgNB_UE_X2AP_ID,
	SgNBModificationRequired_IEs__value_PR_Cause,
	SgNBModificationRequired_IEs__value_PR_PDCPChangeIndication,
	SgNBModificationRequired_IEs__value_PR_E_RABs_ToBeReleased_SgNBModReqdList,
	SgNBModificationRequired_IEs__value_PR_SgNBtoMeNBContainer,
	SgNBModificationRequired_IEs__value_PR_UE_X2AP_ID_Extension,
	SgNBModificationRequired_IEs__value_PR_E_RABs_ToBeModified_SgNBModReqdList,
	SgNBModificationRequired_IEs__value_PR_SgNBResourceCoordinationInformation,
	SgNBModificationRequired_IEs__value_PR_RRC_Config_Ind
} SgNBModificationRequired_IEs__value_PR;
typedef enum SgNBModificationConfirm_IEs__value_PR {
	SgNBModificationConfirm_IEs__value_PR_NOTHING,	/* No components present */
	SgNBModificationConfirm_IEs__value_PR_UE_X2AP_ID,
	SgNBModificationConfirm_IEs__value_PR_SgNB_UE_X2AP_ID,
	SgNBModificationConfirm_IEs__value_PR_E_RABs_AdmittedToBeModified_SgNBModConfList,
	SgNBModificationConfirm_IEs__value_PR_MeNBtoSgNBContainer,
	SgNBModificationConfirm_IEs__value_PR_CriticalityDiagnostics,
	SgNBModificationConfirm_IEs__value_PR_UE_X2AP_ID_Extension,
	SgNBModificationConfirm_IEs__value_PR_MeNBResourceCoordinationInformation
} SgNBModificationConfirm_IEs__value_PR;
typedef enum SgNBModificationRefuse_IEs__value_PR {
	SgNBModificationRefuse_IEs__value_PR_NOTHING,	/* No components present */
	SgNBModificationRefuse_IEs__value_PR_UE_X2AP_ID,
	SgNBModificationRefuse_IEs__value_PR_SgNB_UE_X2AP_ID,
	SgNBModificationRefuse_IEs__value_PR_Cause,
	SgNBModificationRefuse_IEs__value_PR_MeNBtoSgNBContainer,
	SgNBModificationRefuse_IEs__value_PR_CriticalityDiagnostics,
	SgNBModificationRefuse_IEs__value_PR_UE_X2AP_ID_Extension
} SgNBModificationRefuse_IEs__value_PR;
typedef enum SgNBReleaseRequest_IEs__value_PR {
	SgNBReleaseRequest_IEs__value_PR_NOTHING,	/* No components present */
	SgNBReleaseRequest_IEs__value_PR_UE_X2AP_ID,
	SgNBReleaseRequest_IEs__value_PR_SgNB_UE_X2AP_ID,
	SgNBReleaseRequest_IEs__value_PR_Cause,
	SgNBReleaseRequest_IEs__value_PR_E_RABs_ToBeReleased_SgNBRelReqList,
	SgNBReleaseRequest_IEs__value_PR_UE_ContextKeptIndicator,
	SgNBReleaseRequest_IEs__value_PR_UE_X2AP_ID_Extension,
	SgNBReleaseRequest_IEs__value_PR_MeNBtoSgNBContainer
} SgNBReleaseRequest_IEs__value_PR;
typedef enum SgNBReleaseRequestAcknowledge_IEs__value_PR {
	SgNBReleaseRequestAcknowledge_IEs__value_PR_NOTHING,	/* No components present */
	SgNBReleaseRequestAcknowledge_IEs__value_PR_UE_X2AP_ID,
	SgNBReleaseRequestAcknowledge_IEs__value_PR_SgNB_UE_X2AP_ID,
	SgNBReleaseRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics,
	SgNBReleaseRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension,
	SgNBReleaseRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList
} SgNBReleaseRequestAcknowledge_IEs__value_PR;
typedef enum SgNBReleaseRequestReject_IEs__value_PR {
	SgNBReleaseRequestReject_IEs__value_PR_NOTHING,	/* No components present */
	SgNBReleaseRequestReject_IEs__value_PR_UE_X2AP_ID,
	SgNBReleaseRequestReject_IEs__value_PR_SgNB_UE_X2AP_ID,
	SgNBReleaseRequestReject_IEs__value_PR_Cause,
	SgNBReleaseRequestReject_IEs__value_PR_CriticalityDiagnostics,
	SgNBReleaseRequestReject_IEs__value_PR_UE_X2AP_ID_Extension
} SgNBReleaseRequestReject_IEs__value_PR;
typedef enum SgNBReleaseRequired_IEs__value_PR {
	SgNBReleaseRequired_IEs__value_PR_NOTHING,	/* No components present */
	SgNBReleaseRequired_IEs__value_PR_UE_X2AP_ID,
	SgNBReleaseRequired_IEs__value_PR_SgNB_UE_X2AP_ID,
	SgNBReleaseRequired_IEs__value_PR_Cause,
	SgNBReleaseRequired_IEs__value_PR_UE_X2AP_ID_Extension,
	SgNBReleaseRequired_IEs__value_PR_E_RABs_ToBeReleased_SgNBRelReqdList
} SgNBReleaseRequired_IEs__value_PR;
typedef enum SgNBReleaseConfirm_IEs__value_PR {
	SgNBReleaseConfirm_IEs__value_PR_NOTHING,	/* No components present */
	SgNBReleaseConfirm_IEs__value_PR_UE_X2AP_ID,
	SgNBReleaseConfirm_IEs__value_PR_SgNB_UE_X2AP_ID,
	SgNBReleaseConfirm_IEs__value_PR_E_RABs_ToBeReleased_SgNBRelConfList,
	SgNBReleaseConfirm_IEs__value_PR_CriticalityDiagnostics,
	SgNBReleaseConfirm_IEs__value_PR_UE_X2AP_ID_Extension
} SgNBReleaseConfirm_IEs__value_PR;
typedef enum SgNBCounterCheckRequest_IEs__value_PR {
	SgNBCounterCheckRequest_IEs__value_PR_NOTHING,	/* No components present */
	SgNBCounterCheckRequest_IEs__value_PR_UE_X2AP_ID,
	SgNBCounterCheckRequest_IEs__value_PR_SgNB_UE_X2AP_ID,
	SgNBCounterCheckRequest_IEs__value_PR_E_RABs_SubjectToSgNBCounterCheck_List,
	SgNBCounterCheckRequest_IEs__value_PR_UE_X2AP_ID_Extension
} SgNBCounterCheckRequest_IEs__value_PR;
typedef enum SgNBChangeRequired_IEs__value_PR {
	SgNBChangeRequired_IEs__value_PR_NOTHING,	/* No components present */
	SgNBChangeRequired_IEs__value_PR_UE_X2AP_ID,
	SgNBChangeRequired_IEs__value_PR_SgNB_UE_X2AP_ID,
	SgNBChangeRequired_IEs__value_PR_GlobalGNB_ID,
	SgNBChangeRequired_IEs__value_PR_Cause,
	SgNBChangeRequired_IEs__value_PR_SgNBtoMeNBContainer,
	SgNBChangeRequired_IEs__value_PR_UE_X2AP_ID_Extension
} SgNBChangeRequired_IEs__value_PR;
typedef enum SgNBChangeConfirm_IEs__value_PR {
	SgNBChangeConfirm_IEs__value_PR_NOTHING,	/* No components present */
	SgNBChangeConfirm_IEs__value_PR_UE_X2AP_ID,
	SgNBChangeConfirm_IEs__value_PR_SgNB_UE_X2AP_ID,
	SgNBChangeConfirm_IEs__value_PR_E_RABs_ToBeReleased_SgNBChaConfList,
	SgNBChangeConfirm_IEs__value_PR_CriticalityDiagnostics,
	SgNBChangeConfirm_IEs__value_PR_UE_X2AP_ID_Extension
} SgNBChangeConfirm_IEs__value_PR;
typedef enum RRCTransfer_IEs__value_PR {
	RRCTransfer_IEs__value_PR_NOTHING,	/* No components present */
	RRCTransfer_IEs__value_PR_UE_X2AP_ID,
	RRCTransfer_IEs__value_PR_SgNB_UE_X2AP_ID,
	RRCTransfer_IEs__value_PR_SplitSRB,
	RRCTransfer_IEs__value_PR_UENRMeasurement,
	RRCTransfer_IEs__value_PR_UE_X2AP_ID_Extension
} RRCTransfer_IEs__value_PR;
typedef enum SgNBChangeRefuse_IEs__value_PR {
	SgNBChangeRefuse_IEs__value_PR_NOTHING,	/* No components present */
	SgNBChangeRefuse_IEs__value_PR_UE_X2AP_ID,
	SgNBChangeRefuse_IEs__value_PR_SgNB_UE_X2AP_ID,
	SgNBChangeRefuse_IEs__value_PR_Cause,
	SgNBChangeRefuse_IEs__value_PR_CriticalityDiagnostics,
	SgNBChangeRefuse_IEs__value_PR_UE_X2AP_ID_Extension
} SgNBChangeRefuse_IEs__value_PR;
typedef enum ENDCX2SetupRequest_IEs__value_PR {
	ENDCX2SetupRequest_IEs__value_PR_NOTHING,	/* No components present */
	ENDCX2SetupRequest_IEs__value_PR_InitiatingNodeType_EndcX2Setup
} ENDCX2SetupRequest_IEs__value_PR;
typedef enum ENB_ENDCX2SetupReqIEs__value_PR {
	ENB_ENDCX2SetupReqIEs__value_PR_NOTHING,	/* No components present */
	ENB_ENDCX2SetupReqIEs__value_PR_GlobalENB_ID,
	ENB_ENDCX2SetupReqIEs__value_PR_ServedEUTRAcellsENDCX2ManagementList
} ENB_ENDCX2SetupReqIEs__value_PR;
typedef enum En_gNB_ENDCX2SetupReqIEs__value_PR {
	En_gNB_ENDCX2SetupReqIEs__value_PR_NOTHING,	/* No components present */
	En_gNB_ENDCX2SetupReqIEs__value_PR_GlobalGNB_ID,
	En_gNB_ENDCX2SetupReqIEs__value_PR_ServedNRcellsENDCX2ManagementList
} En_gNB_ENDCX2SetupReqIEs__value_PR;
typedef enum ENDCX2SetupResponse_IEs__value_PR {
	ENDCX2SetupResponse_IEs__value_PR_NOTHING,	/* No components present */
	ENDCX2SetupResponse_IEs__value_PR_RespondingNodeType_EndcX2Setup
} ENDCX2SetupResponse_IEs__value_PR;
typedef enum ENB_ENDCX2SetupReqAckIEs__value_PR {
	ENB_ENDCX2SetupReqAckIEs__value_PR_NOTHING,	/* No components present */
	ENB_ENDCX2SetupReqAckIEs__value_PR_GlobalENB_ID,
	ENB_ENDCX2SetupReqAckIEs__value_PR_ServedEUTRAcellsENDCX2ManagementList
} ENB_ENDCX2SetupReqAckIEs__value_PR;
typedef enum En_gNB_ENDCX2SetupReqAckIEs__value_PR {
	En_gNB_ENDCX2SetupReqAckIEs__value_PR_NOTHING,	/* No components present */
	En_gNB_ENDCX2SetupReqAckIEs__value_PR_GlobalGNB_ID,
	En_gNB_ENDCX2SetupReqAckIEs__value_PR_ServedNRcellsENDCX2ManagementList
} En_gNB_ENDCX2SetupReqAckIEs__value_PR;
typedef enum ENDCX2SetupFailure_IEs__value_PR {
	ENDCX2SetupFailure_IEs__value_PR_NOTHING,	/* No components present */
	ENDCX2SetupFailure_IEs__value_PR_Cause,
	ENDCX2SetupFailure_IEs__value_PR_CriticalityDiagnostics,
	ENDCX2SetupFailure_IEs__value_PR_TimeToWait
} ENDCX2SetupFailure_IEs__value_PR;
typedef enum ENDCConfigurationUpdate_IEs__value_PR {
	ENDCConfigurationUpdate_IEs__value_PR_NOTHING,	/* No components present */
	ENDCConfigurationUpdate_IEs__value_PR_InitiatingNodeType_EndcConfigUpdate
} ENDCConfigurationUpdate_IEs__value_PR;
typedef enum ENB_ENDCConfigUpdateIEs__value_PR {
	ENB_ENDCConfigUpdateIEs__value_PR_NOTHING,	/* No components present */
	ENB_ENDCConfigUpdateIEs__value_PR_CellAssistanceInformation,
	ENB_ENDCConfigUpdateIEs__value_PR_ServedEUTRAcellsENDCX2ManagementList,
	ENB_ENDCConfigUpdateIEs__value_PR_ServedEUTRAcellsToModifyListENDCConfUpd,
	ENB_ENDCConfigUpdateIEs__value_PR_ServedEUTRAcellsToDeleteListENDCConfUpd
} ENB_ENDCConfigUpdateIEs__value_PR;
typedef enum En_gNB_ENDCConfigUpdateIEs__value_PR {
	En_gNB_ENDCConfigUpdateIEs__value_PR_NOTHING,	/* No components present */
	En_gNB_ENDCConfigUpdateIEs__value_PR_ServedNRcellsENDCX2ManagementList,
	En_gNB_ENDCConfigUpdateIEs__value_PR_ServedNRcellsToModifyENDCConfUpdList,
	En_gNB_ENDCConfigUpdateIEs__value_PR_ServedNRcellsToDeleteENDCConfUpdList
} En_gNB_ENDCConfigUpdateIEs__value_PR;
typedef enum ENDCConfigurationUpdateAcknowledge_IEs__value_PR {
	ENDCConfigurationUpdateAcknowledge_IEs__value_PR_NOTHING,	/* No components present */
	ENDCConfigurationUpdateAcknowledge_IEs__value_PR_RespondingNodeType_EndcConfigUpdate
} ENDCConfigurationUpdateAcknowledge_IEs__value_PR;
typedef enum ENB_ENDCConfigUpdateAckIEs__value_PR {
	ENB_ENDCConfigUpdateAckIEs__value_PR_NOTHING	/* No components present */
	
} ENB_ENDCConfigUpdateAckIEs__value_PR;
typedef enum En_gNB_ENDCConfigUpdateAckIEs__value_PR {
	En_gNB_ENDCConfigUpdateAckIEs__value_PR_NOTHING,	/* No components present */
	En_gNB_ENDCConfigUpdateAckIEs__value_PR_ServedNRcellsENDCX2ManagementList
} En_gNB_ENDCConfigUpdateAckIEs__value_PR;
typedef enum ENDCConfigurationUpdateFailure_IEs__value_PR {
	ENDCConfigurationUpdateFailure_IEs__value_PR_NOTHING,	/* No components present */
	ENDCConfigurationUpdateFailure_IEs__value_PR_Cause,
	ENDCConfigurationUpdateFailure_IEs__value_PR_CriticalityDiagnostics,
	ENDCConfigurationUpdateFailure_IEs__value_PR_TimeToWait
} ENDCConfigurationUpdateFailure_IEs__value_PR;
typedef enum ENDCCellActivationRequest_IEs__value_PR {
	ENDCCellActivationRequest_IEs__value_PR_NOTHING,	/* No components present */
	ENDCCellActivationRequest_IEs__value_PR_ServedNRCellsToActivate,
	ENDCCellActivationRequest_IEs__value_PR_ActivationID
} ENDCCellActivationRequest_IEs__value_PR;
typedef enum ENDCCellActivationResponse_IEs__value_PR {
	ENDCCellActivationResponse_IEs__value_PR_NOTHING,	/* No components present */
	ENDCCellActivationResponse_IEs__value_PR_ActivatedNRCellList,
	ENDCCellActivationResponse_IEs__value_PR_ActivationID,
	ENDCCellActivationResponse_IEs__value_PR_CriticalityDiagnostics
} ENDCCellActivationResponse_IEs__value_PR;
typedef enum ENDCCellActivationFailure_IEs__value_PR {
	ENDCCellActivationFailure_IEs__value_PR_NOTHING,	/* No components present */
	ENDCCellActivationFailure_IEs__value_PR_ActivationID,
	ENDCCellActivationFailure_IEs__value_PR_Cause,
	ENDCCellActivationFailure_IEs__value_PR_CriticalityDiagnostics
} ENDCCellActivationFailure_IEs__value_PR;
typedef enum SecondaryRATDataUsageReport_IEs__value_PR {
	SecondaryRATDataUsageReport_IEs__value_PR_NOTHING,	/* No components present */
	SecondaryRATDataUsageReport_IEs__value_PR_UE_X2AP_ID,
	SecondaryRATDataUsageReport_IEs__value_PR_SgNB_UE_X2AP_ID,
	SecondaryRATDataUsageReport_IEs__value_PR_SecondaryRATUsageReportList,
	SecondaryRATDataUsageReport_IEs__value_PR_UE_X2AP_ID_Extension
} SecondaryRATDataUsageReport_IEs__value_PR;
typedef enum SgNBActivityNotification_IEs__value_PR {
	SgNBActivityNotification_IEs__value_PR_NOTHING,	/* No components present */
	SgNBActivityNotification_IEs__value_PR_UE_X2AP_ID,
	SgNBActivityNotification_IEs__value_PR_SgNB_UE_X2AP_ID,
	SgNBActivityNotification_IEs__value_PR_UserPlaneTrafficActivityReport,
	SgNBActivityNotification_IEs__value_PR_ERABActivityNotifyItemList,
	SgNBActivityNotification_IEs__value_PR_UE_X2AP_ID_Extension
} SgNBActivityNotification_IEs__value_PR;
typedef enum ENDCPartialResetRequired_IEs__value_PR {
	ENDCPartialResetRequired_IEs__value_PR_NOTHING,	/* No components present */
	ENDCPartialResetRequired_IEs__value_PR_UEsToBeResetList,
	ENDCPartialResetRequired_IEs__value_PR_Cause
} ENDCPartialResetRequired_IEs__value_PR;
typedef enum ENDCPartialResetConfirm_IEs__value_PR {
	ENDCPartialResetConfirm_IEs__value_PR_NOTHING,	/* No components present */
	ENDCPartialResetConfirm_IEs__value_PR_UEsToBeResetList
} ENDCPartialResetConfirm_IEs__value_PR;
typedef enum EUTRANRCellResourceCoordinationRequest_IEs__value_PR {
	EUTRANRCellResourceCoordinationRequest_IEs__value_PR_NOTHING,	/* No components present */
	EUTRANRCellResourceCoordinationRequest_IEs__value_PR_InitiatingNodeType_EutranrCellResourceCoordination
} EUTRANRCellResourceCoordinationRequest_IEs__value_PR;
typedef enum ENB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR {
	ENB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_NOTHING,	/* No components present */
	ENB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_DataTrafficResourceIndication,
	ENB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_SpectrumSharingGroupID,
	ENB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_ListofEUTRACellsinEUTRACoordinationReq
} ENB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR;
typedef enum En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR {
	En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_NOTHING,	/* No components present */
	En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_DataTrafficResourceIndication,
	En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_ListofEUTRACellsinNRCoordinationReq,
	En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_SpectrumSharingGroupID,
	En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR_ListofNRCellsinNRCoordinationReq
} En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR;
typedef enum EUTRANRCellResourceCoordinationResponse_IEs__value_PR {
	EUTRANRCellResourceCoordinationResponse_IEs__value_PR_NOTHING,	/* No components present */
	EUTRANRCellResourceCoordinationResponse_IEs__value_PR_RespondingNodeType_EutranrCellResourceCoordination
} EUTRANRCellResourceCoordinationResponse_IEs__value_PR;
typedef enum ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR {
	ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR_NOTHING,	/* No components present */
	ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR_DataTrafficResourceIndication,
	ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR_SpectrumSharingGroupID,
	ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR_ListofEUTRACellsinEUTRACoordinationResp
} ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR;
typedef enum En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR {
	En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR_NOTHING,	/* No components present */
	En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR_DataTrafficResourceIndication,
	En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR_SpectrumSharingGroupID,
	En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR_ListofNRCellsinNRCoordinationResp
} En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR;
typedef enum ENDCX2RemovalRequest_IEs__value_PR {
	ENDCX2RemovalRequest_IEs__value_PR_NOTHING,	/* No components present */
	ENDCX2RemovalRequest_IEs__value_PR_InitiatingNodeType_EndcX2Removal
} ENDCX2RemovalRequest_IEs__value_PR;
typedef enum ENB_ENDCX2RemovalReqIEs__value_PR {
	ENB_ENDCX2RemovalReqIEs__value_PR_NOTHING,	/* No components present */
	ENB_ENDCX2RemovalReqIEs__value_PR_GlobalENB_ID
} ENB_ENDCX2RemovalReqIEs__value_PR;
typedef enum En_gNB_ENDCX2RemovalReqIEs__value_PR {
	En_gNB_ENDCX2RemovalReqIEs__value_PR_NOTHING,	/* No components present */
	En_gNB_ENDCX2RemovalReqIEs__value_PR_GlobalGNB_ID
} En_gNB_ENDCX2RemovalReqIEs__value_PR;
typedef enum ENDCX2RemovalResponse_IEs__value_PR {
	ENDCX2RemovalResponse_IEs__value_PR_NOTHING,	/* No components present */
	ENDCX2RemovalResponse_IEs__value_PR_RespondingNodeType_EndcX2Removal
} ENDCX2RemovalResponse_IEs__value_PR;
typedef enum ENB_ENDCX2RemovalReqAckIEs__value_PR {
	ENB_ENDCX2RemovalReqAckIEs__value_PR_NOTHING,	/* No components present */
	ENB_ENDCX2RemovalReqAckIEs__value_PR_GlobalENB_ID
} ENB_ENDCX2RemovalReqAckIEs__value_PR;
typedef enum En_gNB_ENDCX2RemovalReqAckIEs__value_PR {
	En_gNB_ENDCX2RemovalReqAckIEs__value_PR_NOTHING,	/* No components present */
	En_gNB_ENDCX2RemovalReqAckIEs__value_PR_GlobalGNB_ID
} En_gNB_ENDCX2RemovalReqAckIEs__value_PR;
typedef enum ENDCX2RemovalFailure_IEs__value_PR {
	ENDCX2RemovalFailure_IEs__value_PR_NOTHING,	/* No components present */
	ENDCX2RemovalFailure_IEs__value_PR_Cause,
	ENDCX2RemovalFailure_IEs__value_PR_CriticalityDiagnostics
} ENDCX2RemovalFailure_IEs__value_PR;
typedef enum DataForwardingAddressIndication_IEs__value_PR {
	DataForwardingAddressIndication_IEs__value_PR_NOTHING,	/* No components present */
	DataForwardingAddressIndication_IEs__value_PR_UE_X2AP_ID_Extension,
	DataForwardingAddressIndication_IEs__value_PR_UE_X2AP_ID,
	DataForwardingAddressIndication_IEs__value_PR_E_RABs_DataForwardingAddress_List
} DataForwardingAddressIndication_IEs__value_PR;
typedef enum GNBStatusIndicationIEs__value_PR {
	GNBStatusIndicationIEs__value_PR_NOTHING,	/* No components present */
	GNBStatusIndicationIEs__value_PR_GNBOverloadInformation
} GNBStatusIndicationIEs__value_PR;
typedef enum E_RAB_ItemIEs__value_PR {
	E_RAB_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RAB_ItemIEs__value_PR_E_RAB_Item
} E_RAB_ItemIEs__value_PR;
typedef enum E_RABUsageReport_ItemIEs__value_PR {
	E_RABUsageReport_ItemIEs__value_PR_NOTHING,	/* No components present */
	E_RABUsageReport_ItemIEs__value_PR_E_RABUsageReport_Item
} E_RABUsageReport_ItemIEs__value_PR;
typedef enum SecondaryRATUsageReport_ItemIEs__value_PR {
	SecondaryRATUsageReport_ItemIEs__value_PR_NOTHING,	/* No components present */
	SecondaryRATUsageReport_ItemIEs__value_PR_SecondaryRATUsageReport_Item
} SecondaryRATUsageReport_ItemIEs__value_PR;

/* ProtocolIE-Field */
typedef struct RICaction_ToBeSetup_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct RICaction_ToBeSetup_ItemIEs__value {
		RICaction_ToBeSetup_ItemIEs__value_PR present;
		union RICaction_ToBeSetup_ItemIEs__value_u {
			RICaction_ToBeSetup_Item_t	 RICaction_ToBeSetup_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RICaction_ToBeSetup_ItemIEs_t;
typedef struct RICaction_Admitted_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct RICaction_Admitted_ItemIEs__value {
		RICaction_Admitted_ItemIEs__value_PR present;
		union RICaction_Admitted_ItemIEs__value_u {
			RICaction_Admitted_Item_t	 RICaction_Admitted_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RICaction_Admitted_ItemIEs_t;
typedef struct RICaction_NotAdmitted_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct RICaction_NotAdmitted_ItemIEs__value {
		RICaction_NotAdmitted_ItemIEs__value_PR present;
		union RICaction_NotAdmitted_ItemIEs__value_u {
			RICaction_NotAdmitted_Item_t	 RICaction_NotAdmitted_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RICaction_NotAdmitted_ItemIEs_t;
typedef struct RANfunction_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct RANfunction_ItemIEs__value {
		RANfunction_ItemIEs__value_PR present;
		union RANfunction_ItemIEs__value_u {
			RANfunction_Item_t	 RANfunction_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RANfunction_ItemIEs_t;
typedef struct RANfunctionID_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct RANfunctionID_ItemIEs__value {
		RANfunctionID_ItemIEs__value_PR present;
		union RANfunctionID_ItemIEs__value_u {
			RANfunctionID_Item_t	 RANfunctionID_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RANfunctionID_ItemIEs_t;
typedef struct RANfunctionIDcause_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct RANfunctionIDcause_ItemIEs__value {
		RANfunctionIDcause_ItemIEs__value_PR present;
		union RANfunctionIDcause_ItemIEs__value_u {
			RANfunctionIDcause_Item_t	 RANfunctionIDcause_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RANfunctionIDcause_ItemIEs_t;
typedef struct E_RABs_ToBeSetup_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_ToBeSetup_ItemIEs__value {
		E_RABs_ToBeSetup_ItemIEs__value_PR present;
		union E_RABs_ToBeSetup_ItemIEs__value_u {
			E_RABs_ToBeSetup_Item_t	 E_RABs_ToBeSetup_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_ToBeSetup_ItemIEs_t;
typedef struct E_RABs_Admitted_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_Admitted_ItemIEs__value {
		E_RABs_Admitted_ItemIEs__value_PR present;
		union E_RABs_Admitted_ItemIEs__value_u {
			E_RABs_Admitted_Item_t	 E_RABs_Admitted_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_Admitted_ItemIEs_t;
typedef struct E_RABs_SubjectToStatusTransfer_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_SubjectToStatusTransfer_ItemIEs__value {
		E_RABs_SubjectToStatusTransfer_ItemIEs__value_PR present;
		union E_RABs_SubjectToStatusTransfer_ItemIEs__value_u {
			E_RABs_SubjectToStatusTransfer_Item_t	 E_RABs_SubjectToStatusTransfer_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_SubjectToStatusTransfer_ItemIEs_t;
typedef struct CellInformation_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct CellInformation_ItemIEs__value {
		CellInformation_ItemIEs__value_PR present;
		union CellInformation_ItemIEs__value_u {
			CellInformation_Item_t	 CellInformation_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} CellInformation_ItemIEs_t;
typedef struct CellToReport_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct CellToReport_ItemIEs__value {
		CellToReport_ItemIEs__value_PR present;
		union CellToReport_ItemIEs__value_u {
			CellToReport_Item_t	 CellToReport_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} CellToReport_ItemIEs_t;
typedef struct MeasurementInitiationResult_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct MeasurementInitiationResult_ItemIEs__value {
		MeasurementInitiationResult_ItemIEs__value_PR present;
		union MeasurementInitiationResult_ItemIEs__value_u {
			MeasurementInitiationResult_Item_t	 MeasurementInitiationResult_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} MeasurementInitiationResult_ItemIEs_t;
typedef struct MeasurementFailureCause_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct MeasurementFailureCause_ItemIEs__value {
		MeasurementFailureCause_ItemIEs__value_PR present;
		union MeasurementFailureCause_ItemIEs__value_u {
			MeasurementFailureCause_Item_t	 MeasurementFailureCause_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} MeasurementFailureCause_ItemIEs_t;
typedef struct CompleteFailureCauseInformation_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct CompleteFailureCauseInformation_ItemIEs__value {
		CompleteFailureCauseInformation_ItemIEs__value_PR present;
		union CompleteFailureCauseInformation_ItemIEs__value_u {
			CompleteFailureCauseInformation_Item_t	 CompleteFailureCauseInformation_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} CompleteFailureCauseInformation_ItemIEs_t;
typedef struct CellMeasurementResult_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct CellMeasurementResult_ItemIEs__value {
		CellMeasurementResult_ItemIEs__value_PR present;
		union CellMeasurementResult_ItemIEs__value_u {
			CellMeasurementResult_Item_t	 CellMeasurementResult_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} CellMeasurementResult_ItemIEs_t;
typedef struct E_RABs_ToBeAdded_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_ToBeAdded_ItemIEs__value {
		E_RABs_ToBeAdded_ItemIEs__value_PR present;
		union E_RABs_ToBeAdded_ItemIEs__value_u {
			E_RABs_ToBeAdded_Item_t	 E_RABs_ToBeAdded_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_ToBeAdded_ItemIEs_t;
typedef struct E_RABs_Admitted_ToBeAdded_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_Admitted_ToBeAdded_ItemIEs__value {
		E_RABs_Admitted_ToBeAdded_ItemIEs__value_PR present;
		union E_RABs_Admitted_ToBeAdded_ItemIEs__value_u {
			E_RABs_Admitted_ToBeAdded_Item_t	 E_RABs_Admitted_ToBeAdded_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_Admitted_ToBeAdded_ItemIEs_t;
typedef struct E_RABs_ToBeAdded_ModReqItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_ToBeAdded_ModReqItemIEs__value {
		E_RABs_ToBeAdded_ModReqItemIEs__value_PR present;
		union E_RABs_ToBeAdded_ModReqItemIEs__value_u {
			E_RABs_ToBeAdded_ModReqItem_t	 E_RABs_ToBeAdded_ModReqItem;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_ToBeAdded_ModReqItemIEs_t;
typedef struct E_RABs_ToBeModified_ModReqItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_ToBeModified_ModReqItemIEs__value {
		E_RABs_ToBeModified_ModReqItemIEs__value_PR present;
		union E_RABs_ToBeModified_ModReqItemIEs__value_u {
			E_RABs_ToBeModified_ModReqItem_t	 E_RABs_ToBeModified_ModReqItem;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_ToBeModified_ModReqItemIEs_t;
typedef struct E_RABs_ToBeReleased_ModReqItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_ToBeReleased_ModReqItemIEs__value {
		E_RABs_ToBeReleased_ModReqItemIEs__value_PR present;
		union E_RABs_ToBeReleased_ModReqItemIEs__value_u {
			E_RABs_ToBeReleased_ModReqItem_t	 E_RABs_ToBeReleased_ModReqItem;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_ToBeReleased_ModReqItemIEs_t;
typedef struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value {
		E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value_PR present;
		union E_RABs_Admitted_ToBeAdded_ModAckItemIEs__value_u {
			E_RABs_Admitted_ToBeAdded_ModAckItem_t	 E_RABs_Admitted_ToBeAdded_ModAckItem;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_Admitted_ToBeAdded_ModAckItemIEs_t;
typedef struct E_RABs_Admitted_ToBeModified_ModAckItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_Admitted_ToBeModified_ModAckItemIEs__value {
		E_RABs_Admitted_ToBeModified_ModAckItemIEs__value_PR present;
		union E_RABs_Admitted_ToBeModified_ModAckItemIEs__value_u {
			E_RABs_Admitted_ToBeModified_ModAckItem_t	 E_RABs_Admitted_ToBeModified_ModAckItem;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_Admitted_ToBeModified_ModAckItemIEs_t;
typedef struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value {
		E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value_PR present;
		union E_RABs_Admitted_ToBeReleased_ModAckItemIEs__value_u {
			E_RABs_Admitted_ToReleased_ModAckItem_t	 E_RABs_Admitted_ToReleased_ModAckItem;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_Admitted_ToBeReleased_ModAckItemIEs_t;
typedef struct E_RABs_ToBeReleased_ModReqdItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_ToBeReleased_ModReqdItemIEs__value {
		E_RABs_ToBeReleased_ModReqdItemIEs__value_PR present;
		union E_RABs_ToBeReleased_ModReqdItemIEs__value_u {
			E_RABs_ToBeReleased_ModReqdItem_t	 E_RABs_ToBeReleased_ModReqdItem;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_ToBeReleased_ModReqdItemIEs_t;
typedef struct E_RABs_ToBeReleased_RelReqItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_ToBeReleased_RelReqItemIEs__value {
		E_RABs_ToBeReleased_RelReqItemIEs__value_PR present;
		union E_RABs_ToBeReleased_RelReqItemIEs__value_u {
			E_RABs_ToBeReleased_RelReqItem_t	 E_RABs_ToBeReleased_RelReqItem;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_ToBeReleased_RelReqItemIEs_t;
typedef struct E_RABs_ToBeReleased_RelConfItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_ToBeReleased_RelConfItemIEs__value {
		E_RABs_ToBeReleased_RelConfItemIEs__value_PR present;
		union E_RABs_ToBeReleased_RelConfItemIEs__value_u {
			E_RABs_ToBeReleased_RelConfItem_t	 E_RABs_ToBeReleased_RelConfItem;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_ToBeReleased_RelConfItemIEs_t;
typedef struct E_RABs_SubjectToCounterCheckItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_SubjectToCounterCheckItemIEs__value {
		E_RABs_SubjectToCounterCheckItemIEs__value_PR present;
		union E_RABs_SubjectToCounterCheckItemIEs__value_u {
			E_RABs_SubjectToCounterCheckItem_t	 E_RABs_SubjectToCounterCheckItem;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_SubjectToCounterCheckItemIEs_t;
typedef struct E_RABs_ToBeSetupRetrieve_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_ToBeSetupRetrieve_ItemIEs__value {
		E_RABs_ToBeSetupRetrieve_ItemIEs__value_PR present;
		union E_RABs_ToBeSetupRetrieve_ItemIEs__value_u {
			E_RABs_ToBeSetupRetrieve_Item_t	 E_RABs_ToBeSetupRetrieve_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_ToBeSetupRetrieve_ItemIEs_t;
typedef struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value {
		E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value_PR present;
		union E_RABs_ToBeAdded_SgNBAddReq_ItemIEs__value_u {
			E_RABs_ToBeAdded_SgNBAddReq_Item_t	 E_RABs_ToBeAdded_SgNBAddReq_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_t;
typedef struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value {
		E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value_PR present;
		union E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs__value_u {
			E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_t	 E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_t;
typedef struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value {
		E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value_PR present;
		union E_RABs_ToBeAdded_SgNBModReq_ItemIEs__value_u {
			E_RABs_ToBeAdded_SgNBModReq_Item_t	 E_RABs_ToBeAdded_SgNBModReq_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_ToBeAdded_SgNBModReq_ItemIEs_t;
typedef struct E_RABs_ToBeModified_SgNBModReq_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_ToBeModified_SgNBModReq_ItemIEs__value {
		E_RABs_ToBeModified_SgNBModReq_ItemIEs__value_PR present;
		union E_RABs_ToBeModified_SgNBModReq_ItemIEs__value_u {
			E_RABs_ToBeModified_SgNBModReq_Item_t	 E_RABs_ToBeModified_SgNBModReq_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_ToBeModified_SgNBModReq_ItemIEs_t;
typedef struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value {
		E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value_PR present;
		union E_RABs_ToBeReleased_SgNBModReq_ItemIEs__value_u {
			E_RABs_ToBeReleased_SgNBModReq_Item_t	 E_RABs_ToBeReleased_SgNBModReq_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_ToBeReleased_SgNBModReq_ItemIEs_t;
typedef struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value {
		E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value_PR present;
		union E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs__value_u {
			E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_t	 E_RABs_Admitted_ToBeAdded_SgNBModAck_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_t;
typedef struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value {
		E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value_PR present;
		union E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs__value_u {
			E_RABs_Admitted_ToBeModified_SgNBModAck_Item_t	 E_RABs_Admitted_ToBeModified_SgNBModAck_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_t;
typedef struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value {
		E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value_PR present;
		union E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs__value_u {
			E_RABs_Admitted_ToReleased_SgNBModAck_Item_t	 E_RABs_Admitted_ToReleased_SgNBModAck_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_t;
typedef struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value {
		E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value_PR present;
		union E_RABs_ToBeReleased_SgNBModReqd_ItemIEs__value_u {
			E_RABs_ToBeReleased_SgNBModReqd_Item_t	 E_RABs_ToBeReleased_SgNBModReqd_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_t;
typedef struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value {
		E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value_PR present;
		union E_RABs_ToBeModified_SgNBModReqd_ItemIEs__value_u {
			E_RABs_ToBeModified_SgNBModReqd_Item_t	 E_RABs_ToBeModified_SgNBModReqd_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_ToBeModified_SgNBModReqd_ItemIEs_t;
typedef struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value {
		E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value_PR present;
		union E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs__value_u {
			E_RABs_AdmittedToBeModified_SgNBModConf_Item_t	 E_RABs_AdmittedToBeModified_SgNBModConf_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_t;
typedef struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value {
		E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value_PR present;
		union E_RABs_ToBeReleased_SgNBRelReq_ItemIEs__value_u {
			E_RABs_ToBeReleased_SgNBRelReq_Item_t	 E_RABs_ToBeReleased_SgNBRelReq_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_t;
typedef struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value {
		E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value_PR present;
		union E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs__value_u {
			E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item_t	 E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_t;
typedef struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value {
		E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value_PR present;
		union E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs__value_u {
			E_RABs_ToBeReleased_SgNBRelReqd_Item_t	 E_RABs_ToBeReleased_SgNBRelReqd_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_t;
typedef struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value {
		E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value_PR present;
		union E_RABs_ToBeReleased_SgNBRelConf_ItemIEs__value_u {
			E_RABs_ToBeReleased_SgNBRelConf_Item_t	 E_RABs_ToBeReleased_SgNBRelConf_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_t;
typedef struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value {
		E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value_PR present;
		union E_RABs_SubjectToSgNBCounterCheck_ItemIEs__value_u {
			E_RABs_SubjectToSgNBCounterCheck_Item_t	 E_RABs_SubjectToSgNBCounterCheck_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_SubjectToSgNBCounterCheck_ItemIEs_t;
typedef struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value {
		E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value_PR present;
		union E_RABs_ToBeReleased_SgNBChaConf_ItemIEs__value_u {
			E_RABs_ToBeReleased_SgNBChaConf_Item_t	 E_RABs_ToBeReleased_SgNBChaConf_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_t;
typedef struct E_RABs_DataForwardingAddress_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABs_DataForwardingAddress_ItemIEs__value {
		E_RABs_DataForwardingAddress_ItemIEs__value_PR present;
		union E_RABs_DataForwardingAddress_ItemIEs__value_u {
			E_RABs_DataForwardingAddress_Item_t	 E_RABs_DataForwardingAddress_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABs_DataForwardingAddress_ItemIEs_t;
typedef struct RICsubscriptionRequest_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct RICsubscriptionRequest_IEs__value {
		RICsubscriptionRequest_IEs__value_PR present;
		union RICsubscriptionRequest_IEs__value_u {
			RICrequestID_t	 RICrequestID;
			RANfunctionID_t	 RANfunctionID;
			RICsubscription_t	 RICsubscription;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RICsubscriptionRequest_IEs_t;
typedef struct RICsubscriptionResponse_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct RICsubscriptionResponse_IEs__value {
		RICsubscriptionResponse_IEs__value_PR present;
		union RICsubscriptionResponse_IEs__value_u {
			RICrequestID_t	 RICrequestID;
			RANfunctionID_t	 RANfunctionID;
			RICaction_Admitted_List_t	 RICaction_Admitted_List;
			RICaction_NotAdmitted_List_t	 RICaction_NotAdmitted_List;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RICsubscriptionResponse_IEs_t;
typedef struct RICsubscriptionFailure_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct RICsubscriptionFailure_IEs__value {
		RICsubscriptionFailure_IEs__value_PR present;
		union RICsubscriptionFailure_IEs__value_u {
			RICrequestID_t	 RICrequestID;
			RANfunctionID_t	 RANfunctionID;
			RICaction_NotAdmitted_List_t	 RICaction_NotAdmitted_List;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RICsubscriptionFailure_IEs_t;
typedef struct RICsubscriptionDeleteRequest_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct RICsubscriptionDeleteRequest_IEs__value {
		RICsubscriptionDeleteRequest_IEs__value_PR present;
		union RICsubscriptionDeleteRequest_IEs__value_u {
			RICrequestID_t	 RICrequestID;
			RANfunctionID_t	 RANfunctionID;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RICsubscriptionDeleteRequest_IEs_t;
typedef struct RICsubscriptionDeleteResponse_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct RICsubscriptionDeleteResponse_IEs__value {
		RICsubscriptionDeleteResponse_IEs__value_PR present;
		union RICsubscriptionDeleteResponse_IEs__value_u {
			RICrequestID_t	 RICrequestID;
			RANfunctionID_t	 RANfunctionID;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RICsubscriptionDeleteResponse_IEs_t;
typedef struct RICsubscriptionDeleteFailure_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct RICsubscriptionDeleteFailure_IEs__value {
		RICsubscriptionDeleteFailure_IEs__value_PR present;
		union RICsubscriptionDeleteFailure_IEs__value_u {
			RICrequestID_t	 RICrequestID;
			RANfunctionID_t	 RANfunctionID;
			RICcause_t	 RICcause;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RICsubscriptionDeleteFailure_IEs_t;
typedef struct RICindication_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct RICindication_IEs__value {
		RICindication_IEs__value_PR present;
		union RICindication_IEs__value_u {
			RICrequestID_t	 RICrequestID;
			RANfunctionID_t	 RANfunctionID;
			RICactionID_t	 RICactionID;
			RICindicationSN_t	 RICindicationSN;
			RICindicationType_t	 RICindicationType;
			RICindicationHeader_t	 RICindicationHeader;
			RICindicationMessage_t	 RICindicationMessage;
			RICcallProcessID_t	 RICcallProcessID;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RICindication_IEs_t;
typedef struct RICcontrolRequest_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct RICcontrolRequest_IEs__value {
		RICcontrolRequest_IEs__value_PR present;
		union RICcontrolRequest_IEs__value_u {
			RICrequestID_t	 RICrequestID;
			RANfunctionID_t	 RANfunctionID;
			RICcallProcessID_t	 RICcallProcessID;
			RICcontrolHeader_t	 RICcontrolHeader;
			RICcontrolMessage_t	 RICcontrolMessage;
			RICcontrolAckRequest_t	 RICcontrolAckRequest;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RICcontrolRequest_IEs_t;
typedef struct RICcontrolAcknowledge_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct RICcontrolAcknowledge_IEs__value {
		RICcontrolAcknowledge_IEs__value_PR present;
		union RICcontrolAcknowledge_IEs__value_u {
			RICrequestID_t	 RICrequestID;
			RANfunctionID_t	 RANfunctionID;
			RICcallProcessID_t	 RICcallProcessID;
			RICcontrolStatus_t	 RICcontrolStatus;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RICcontrolAcknowledge_IEs_t;
typedef struct RICcontrolFailure_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct RICcontrolFailure_IEs__value {
		RICcontrolFailure_IEs__value_PR present;
		union RICcontrolFailure_IEs__value_u {
			RICrequestID_t	 RICrequestID;
			RANfunctionID_t	 RANfunctionID;
			RICcallProcessID_t	 RICcallProcessID;
			RICcause_t	 RICcause;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RICcontrolFailure_IEs_t;
typedef struct RICserviceUpdate_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct RICserviceUpdate_IEs__value {
		RICserviceUpdate_IEs__value_PR present;
		union RICserviceUpdate_IEs__value_u {
			RANfunctions_List_t	 RANfunctions_List;
			RANfunctionsID_List_t	 RANfunctionsID_List;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RICserviceUpdate_IEs_t;
typedef struct RICserviceUpdateAcknowledge_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct RICserviceUpdateAcknowledge_IEs__value {
		RICserviceUpdateAcknowledge_IEs__value_PR present;
		union RICserviceUpdateAcknowledge_IEs__value_u {
			RANfunctionsID_List_t	 RANfunctionsID_List;
			RANfunctionsIDcause_List_t	 RANfunctionsIDcause_List;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RICserviceUpdateAcknowledge_IEs_t;
typedef struct RICserviceUpdateFailure_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct RICserviceUpdateFailure_IEs__value {
		RICserviceUpdateFailure_IEs__value_PR present;
		union RICserviceUpdateFailure_IEs__value_u {
			RANfunctionsIDcause_List_t	 RANfunctionsIDcause_List;
			TimeToWait_t	 TimeToWait;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RICserviceUpdateFailure_IEs_t;
typedef struct RICserviceQuery_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct RICserviceQuery_IEs__value {
		RICserviceQuery_IEs__value_PR present;
		union RICserviceQuery_IEs__value_u {
			RANfunctionsID_List_t	 RANfunctionsID_List;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RICserviceQuery_IEs_t;
typedef struct HandoverRequest_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct HandoverRequest_IEs__value {
		HandoverRequest_IEs__value_PR present;
		union HandoverRequest_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			Cause_t	 Cause;
			ECGI_t	 ECGI;
			GUMMEI_t	 GUMMEI;
			UE_ContextInformation_t	 UE_ContextInformation;
			UE_HistoryInformation_t	 UE_HistoryInformation;
			TraceActivation_t	 TraceActivation;
			SRVCCOperationPossible_t	 SRVCCOperationPossible;
			CSGMembershipStatus_t	 CSGMembershipStatus;
			MobilityInformation_t	 MobilityInformation;
			Masked_IMEISV_t	 Masked_IMEISV;
			UE_HistoryInformationFromTheUE_t	 UE_HistoryInformationFromTheUE;
			ExpectedUEBehaviour_t	 ExpectedUEBehaviour;
			ProSeAuthorized_t	 ProSeAuthorized;
			UE_ContextReferenceAtSeNB_t	 UE_ContextReferenceAtSeNB;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
			V2XServicesAuthorized_t	 V2XServicesAuthorized;
			UE_ContextReferenceAtWT_t	 UE_ContextReferenceAtWT;
			NRUESecurityCapabilities_t	 NRUESecurityCapabilities;
			UE_ContextReferenceAtSgNB_t	 UE_ContextReferenceAtSgNB;
			AerialUEsubscriptionInformation_t	 AerialUEsubscriptionInformation;
			Subscription_Based_UE_DifferentiationInfo_t	 Subscription_Based_UE_DifferentiationInfo;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} HandoverRequest_IEs_t;
typedef struct HandoverRequestAcknowledge_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct HandoverRequestAcknowledge_IEs__value {
		HandoverRequestAcknowledge_IEs__value_PR present;
		union HandoverRequestAcknowledge_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			E_RABs_Admitted_List_t	 E_RABs_Admitted_List;
			E_RAB_List_t	 E_RAB_List;
			TargeteNBtoSource_eNBTransparentContainer_t	 TargeteNBtoSource_eNBTransparentContainer;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			UE_ContextKeptIndicator_t	 UE_ContextKeptIndicator;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} HandoverRequestAcknowledge_IEs_t;
typedef struct HandoverPreparationFailure_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct HandoverPreparationFailure_IEs__value {
		HandoverPreparationFailure_IEs__value_PR present;
		union HandoverPreparationFailure_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			Cause_t	 Cause;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} HandoverPreparationFailure_IEs_t;
typedef struct HandoverReport_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct HandoverReport_IEs__value {
		HandoverReport_IEs__value_PR present;
		union HandoverReport_IEs__value_u {
			HandoverReportType_t	 HandoverReportType;
			Cause_t	 Cause;
			ECGI_t	 ECGI;
			TargetCellInUTRAN_t	 TargetCellInUTRAN;
			CRNTI_t	 CRNTI;
			MobilityInformation_t	 MobilityInformation;
			UE_RLF_Report_Container_t	 UE_RLF_Report_Container;
			UE_RLF_Report_Container_for_extended_bands_t	 UE_RLF_Report_Container_for_extended_bands;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} HandoverReport_IEs_t;
typedef struct SNStatusTransfer_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SNStatusTransfer_IEs__value {
		SNStatusTransfer_IEs__value_PR present;
		union SNStatusTransfer_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			E_RABs_SubjectToStatusTransfer_List_t	 E_RABs_SubjectToStatusTransfer_List;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
			SgNB_UE_X2AP_ID_t	 SgNB_UE_X2AP_ID;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SNStatusTransfer_IEs_t;
typedef struct UEContextRelease_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct UEContextRelease_IEs__value {
		UEContextRelease_IEs__value_PR present;
		union UEContextRelease_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
			SIPTOBearerDeactivationIndication_t	 SIPTOBearerDeactivationIndication;
			SgNB_UE_X2AP_ID_t	 SgNB_UE_X2AP_ID;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} UEContextRelease_IEs_t;
typedef struct HandoverCancel_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct HandoverCancel_IEs__value {
		HandoverCancel_IEs__value_PR present;
		union HandoverCancel_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			Cause_t	 Cause;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} HandoverCancel_IEs_t;
typedef struct ErrorIndication_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ErrorIndication_IEs__value {
		ErrorIndication_IEs__value_PR present;
		union ErrorIndication_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			Cause_t	 Cause;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
			SgNB_UE_X2AP_ID_t	 SgNB_UE_X2AP_ID;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ErrorIndication_IEs_t;
typedef struct ResetRequest_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ResetRequest_IEs__value {
		ResetRequest_IEs__value_PR present;
		union ResetRequest_IEs__value_u {
			Cause_t	 Cause;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ResetRequest_IEs_t;
typedef struct ResetResponse_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ResetResponse_IEs__value {
		ResetResponse_IEs__value_PR present;
		union ResetResponse_IEs__value_u {
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ResetResponse_IEs_t;
typedef struct X2SetupRequest_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct X2SetupRequest_IEs__value {
		X2SetupRequest_IEs__value_PR present;
		union X2SetupRequest_IEs__value_u {
			GlobalENB_ID_t	 GlobalENB_ID;
			ServedCells_t	 ServedCells;
			GUGroupIDList_t	 GUGroupIDList;
			LHN_ID_t	 LHN_ID;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} X2SetupRequest_IEs_t;
typedef struct X2SetupResponse_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct X2SetupResponse_IEs__value {
		X2SetupResponse_IEs__value_PR present;
		union X2SetupResponse_IEs__value_u {
			GlobalENB_ID_t	 GlobalENB_ID;
			ServedCells_t	 ServedCells;
			GUGroupIDList_t	 GUGroupIDList;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			LHN_ID_t	 LHN_ID;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} X2SetupResponse_IEs_t;
typedef struct X2SetupFailure_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct X2SetupFailure_IEs__value {
		X2SetupFailure_IEs__value_PR present;
		union X2SetupFailure_IEs__value_u {
			Cause_t	 Cause;
			TimeToWait_t	 TimeToWait;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} X2SetupFailure_IEs_t;
typedef struct LoadInformation_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct LoadInformation_IEs__value {
		LoadInformation_IEs__value_PR present;
		union LoadInformation_IEs__value_u {
			CellInformation_List_t	 CellInformation_List;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} LoadInformation_IEs_t;
typedef struct ENBConfigurationUpdate_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ENBConfigurationUpdate_IEs__value {
		ENBConfigurationUpdate_IEs__value_PR present;
		union ENBConfigurationUpdate_IEs__value_u {
			ServedCells_t	 ServedCells;
			ServedCellsToModify_t	 ServedCellsToModify;
			Old_ECGIs_t	 Old_ECGIs;
			GUGroupIDList_t	 GUGroupIDList;
			CoverageModificationList_t	 CoverageModificationList;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ENBConfigurationUpdate_IEs_t;
typedef struct ENBConfigurationUpdateAcknowledge_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ENBConfigurationUpdateAcknowledge_IEs__value {
		ENBConfigurationUpdateAcknowledge_IEs__value_PR present;
		union ENBConfigurationUpdateAcknowledge_IEs__value_u {
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ENBConfigurationUpdateAcknowledge_IEs_t;
typedef struct ENBConfigurationUpdateFailure_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ENBConfigurationUpdateFailure_IEs__value {
		ENBConfigurationUpdateFailure_IEs__value_PR present;
		union ENBConfigurationUpdateFailure_IEs__value_u {
			Cause_t	 Cause;
			TimeToWait_t	 TimeToWait;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ENBConfigurationUpdateFailure_IEs_t;
typedef struct ResourceStatusRequest_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ResourceStatusRequest_IEs__value {
		ResourceStatusRequest_IEs__value_PR present;
		union ResourceStatusRequest_IEs__value_u {
			Measurement_ID_t	 Measurement_ID;
			Registration_Request_t	 Registration_Request;
			ReportCharacteristics_t	 ReportCharacteristics;
			CellToReport_List_t	 CellToReport_List;
			ReportingPeriodicity_t	 ReportingPeriodicity;
			PartialSuccessIndicator_t	 PartialSuccessIndicator;
			ReportingPeriodicityRSRPMR_t	 ReportingPeriodicityRSRPMR;
			ReportingPeriodicityCSIR_t	 ReportingPeriodicityCSIR;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ResourceStatusRequest_IEs_t;
typedef struct ResourceStatusResponse_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ResourceStatusResponse_IEs__value {
		ResourceStatusResponse_IEs__value_PR present;
		union ResourceStatusResponse_IEs__value_u {
			Measurement_ID_t	 Measurement_ID;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			MeasurementInitiationResult_List_t	 MeasurementInitiationResult_List;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ResourceStatusResponse_IEs_t;
typedef struct ResourceStatusFailure_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ResourceStatusFailure_IEs__value {
		ResourceStatusFailure_IEs__value_PR present;
		union ResourceStatusFailure_IEs__value_u {
			Measurement_ID_t	 Measurement_ID;
			Cause_t	 Cause;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			CompleteFailureCauseInformation_List_t	 CompleteFailureCauseInformation_List;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ResourceStatusFailure_IEs_t;
typedef struct ResourceStatusUpdate_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ResourceStatusUpdate_IEs__value {
		ResourceStatusUpdate_IEs__value_PR present;
		union ResourceStatusUpdate_IEs__value_u {
			Measurement_ID_t	 Measurement_ID;
			CellMeasurementResult_List_t	 CellMeasurementResult_List;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ResourceStatusUpdate_IEs_t;
typedef struct MobilityChangeRequest_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct MobilityChangeRequest_IEs__value {
		MobilityChangeRequest_IEs__value_PR present;
		union MobilityChangeRequest_IEs__value_u {
			ECGI_t	 ECGI;
			MobilityParametersInformation_t	 MobilityParametersInformation;
			Cause_t	 Cause;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} MobilityChangeRequest_IEs_t;
typedef struct MobilityChangeAcknowledge_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct MobilityChangeAcknowledge_IEs__value {
		MobilityChangeAcknowledge_IEs__value_PR present;
		union MobilityChangeAcknowledge_IEs__value_u {
			ECGI_t	 ECGI;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} MobilityChangeAcknowledge_IEs_t;
typedef struct MobilityChangeFailure_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct MobilityChangeFailure_IEs__value {
		MobilityChangeFailure_IEs__value_PR present;
		union MobilityChangeFailure_IEs__value_u {
			ECGI_t	 ECGI;
			Cause_t	 Cause;
			MobilityParametersModificationRange_t	 MobilityParametersModificationRange;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} MobilityChangeFailure_IEs_t;
typedef struct RLFIndication_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct RLFIndication_IEs__value {
		RLFIndication_IEs__value_PR present;
		union RLFIndication_IEs__value_u {
			PCI_t	 PCI;
			ECGI_t	 ECGI;
			CRNTI_t	 CRNTI;
			ShortMAC_I_t	 ShortMAC_I;
			UE_RLF_Report_Container_t	 UE_RLF_Report_Container;
			RRCConnSetupIndicator_t	 RRCConnSetupIndicator;
			RRCConnReestabIndicator_t	 RRCConnReestabIndicator;
			UE_RLF_Report_Container_for_extended_bands_t	 UE_RLF_Report_Container_for_extended_bands;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RLFIndication_IEs_t;
typedef struct CellActivationRequest_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct CellActivationRequest_IEs__value {
		CellActivationRequest_IEs__value_PR present;
		union CellActivationRequest_IEs__value_u {
			ServedCellsToActivate_t	 ServedCellsToActivate;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} CellActivationRequest_IEs_t;
typedef struct CellActivationResponse_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct CellActivationResponse_IEs__value {
		CellActivationResponse_IEs__value_PR present;
		union CellActivationResponse_IEs__value_u {
			ActivatedCellList_t	 ActivatedCellList;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} CellActivationResponse_IEs_t;
typedef struct CellActivationFailure_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct CellActivationFailure_IEs__value {
		CellActivationFailure_IEs__value_PR present;
		union CellActivationFailure_IEs__value_u {
			Cause_t	 Cause;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} CellActivationFailure_IEs_t;
typedef struct X2Release_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct X2Release_IEs__value {
		X2Release_IEs__value_PR present;
		union X2Release_IEs__value_u {
			GlobalENB_ID_t	 GlobalENB_ID;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} X2Release_IEs_t;
typedef struct X2APMessageTransfer_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct X2APMessageTransfer_IEs__value {
		X2APMessageTransfer_IEs__value_PR present;
		union X2APMessageTransfer_IEs__value_u {
			RNL_Header_t	 RNL_Header;
			X2AP_Message_t	 X2AP_Message;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} X2APMessageTransfer_IEs_t;
typedef struct SeNBAdditionRequest_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SeNBAdditionRequest_IEs__value {
		SeNBAdditionRequest_IEs__value_PR present;
		union SeNBAdditionRequest_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			UESecurityCapabilities_t	 UESecurityCapabilities;
			SeNBSecurityKey_t	 SeNBSecurityKey;
			UEAggregateMaximumBitRate_t	 UEAggregateMaximumBitRate;
			PLMN_Identity_t	 PLMN_Identity;
			E_RABs_ToBeAdded_List_t	 E_RABs_ToBeAdded_List;
			MeNBtoSeNBContainer_t	 MeNBtoSeNBContainer;
			CSGMembershipStatus_t	 CSGMembershipStatus;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
			ExpectedUEBehaviour_t	 ExpectedUEBehaviour;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SeNBAdditionRequest_IEs_t;
typedef struct SeNBAdditionRequestAcknowledge_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SeNBAdditionRequestAcknowledge_IEs__value {
		SeNBAdditionRequestAcknowledge_IEs__value_PR present;
		union SeNBAdditionRequestAcknowledge_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			E_RABs_Admitted_ToBeAdded_List_t	 E_RABs_Admitted_ToBeAdded_List;
			E_RAB_List_t	 E_RAB_List;
			SeNBtoMeNBContainer_t	 SeNBtoMeNBContainer;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			TransportLayerAddress_t	 TransportLayerAddress;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
			TunnelInformation_t	 TunnelInformation;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SeNBAdditionRequestAcknowledge_IEs_t;
typedef struct SeNBAdditionRequestReject_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SeNBAdditionRequestReject_IEs__value {
		SeNBAdditionRequestReject_IEs__value_PR present;
		union SeNBAdditionRequestReject_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			Cause_t	 Cause;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SeNBAdditionRequestReject_IEs_t;
typedef struct SeNBReconfigurationComplete_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SeNBReconfigurationComplete_IEs__value {
		SeNBReconfigurationComplete_IEs__value_PR present;
		union SeNBReconfigurationComplete_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			ResponseInformationSeNBReconfComp_t	 ResponseInformationSeNBReconfComp;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SeNBReconfigurationComplete_IEs_t;
typedef struct SeNBModificationRequest_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SeNBModificationRequest_IEs__value {
		SeNBModificationRequest_IEs__value_PR present;
		union SeNBModificationRequest_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			Cause_t	 Cause;
			SCGChangeIndication_t	 SCGChangeIndication;
			PLMN_Identity_t	 PLMN_Identity;
			UE_ContextInformationSeNBModReq_t	 UE_ContextInformationSeNBModReq;
			MeNBtoSeNBContainer_t	 MeNBtoSeNBContainer;
			CSGMembershipStatus_t	 CSGMembershipStatus;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SeNBModificationRequest_IEs_t;
typedef struct SeNBModificationRequestAcknowledge_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SeNBModificationRequestAcknowledge_IEs__value {
		SeNBModificationRequestAcknowledge_IEs__value_PR present;
		union SeNBModificationRequestAcknowledge_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			E_RABs_Admitted_ToBeAdded_ModAckList_t	 E_RABs_Admitted_ToBeAdded_ModAckList;
			E_RABs_Admitted_ToBeModified_ModAckList_t	 E_RABs_Admitted_ToBeModified_ModAckList;
			E_RABs_Admitted_ToBeReleased_ModAckList_t	 E_RABs_Admitted_ToBeReleased_ModAckList;
			E_RAB_List_t	 E_RAB_List;
			SeNBtoMeNBContainer_t	 SeNBtoMeNBContainer;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SeNBModificationRequestAcknowledge_IEs_t;
typedef struct SeNBModificationRequestReject_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SeNBModificationRequestReject_IEs__value {
		SeNBModificationRequestReject_IEs__value_PR present;
		union SeNBModificationRequestReject_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			Cause_t	 Cause;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SeNBModificationRequestReject_IEs_t;
typedef struct SeNBModificationRequired_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SeNBModificationRequired_IEs__value {
		SeNBModificationRequired_IEs__value_PR present;
		union SeNBModificationRequired_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			Cause_t	 Cause;
			SCGChangeIndication_t	 SCGChangeIndication;
			E_RABs_ToBeReleased_ModReqd_t	 E_RABs_ToBeReleased_ModReqd;
			SeNBtoMeNBContainer_t	 SeNBtoMeNBContainer;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SeNBModificationRequired_IEs_t;
typedef struct SeNBModificationConfirm_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SeNBModificationConfirm_IEs__value {
		SeNBModificationConfirm_IEs__value_PR present;
		union SeNBModificationConfirm_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			MeNBtoSeNBContainer_t	 MeNBtoSeNBContainer;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SeNBModificationConfirm_IEs_t;
typedef struct SeNBModificationRefuse_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SeNBModificationRefuse_IEs__value {
		SeNBModificationRefuse_IEs__value_PR present;
		union SeNBModificationRefuse_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			Cause_t	 Cause;
			MeNBtoSeNBContainer_t	 MeNBtoSeNBContainer;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SeNBModificationRefuse_IEs_t;
typedef struct SeNBReleaseRequest_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SeNBReleaseRequest_IEs__value {
		SeNBReleaseRequest_IEs__value_PR present;
		union SeNBReleaseRequest_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			Cause_t	 Cause;
			E_RABs_ToBeReleased_List_RelReq_t	 E_RABs_ToBeReleased_List_RelReq;
			UE_ContextKeptIndicator_t	 UE_ContextKeptIndicator;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
			MakeBeforeBreakIndicator_t	 MakeBeforeBreakIndicator;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SeNBReleaseRequest_IEs_t;
typedef struct SeNBReleaseRequired_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SeNBReleaseRequired_IEs__value {
		SeNBReleaseRequired_IEs__value_PR present;
		union SeNBReleaseRequired_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			Cause_t	 Cause;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SeNBReleaseRequired_IEs_t;
typedef struct SeNBReleaseConfirm_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SeNBReleaseConfirm_IEs__value {
		SeNBReleaseConfirm_IEs__value_PR present;
		union SeNBReleaseConfirm_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			E_RABs_ToBeReleased_List_RelConf_t	 E_RABs_ToBeReleased_List_RelConf;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SeNBReleaseConfirm_IEs_t;
typedef struct SeNBCounterCheckRequest_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SeNBCounterCheckRequest_IEs__value {
		SeNBCounterCheckRequest_IEs__value_PR present;
		union SeNBCounterCheckRequest_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			E_RABs_SubjectToCounterCheck_List_t	 E_RABs_SubjectToCounterCheck_List;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SeNBCounterCheckRequest_IEs_t;
typedef struct X2RemovalRequest_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct X2RemovalRequest_IEs__value {
		X2RemovalRequest_IEs__value_PR present;
		union X2RemovalRequest_IEs__value_u {
			GlobalENB_ID_t	 GlobalENB_ID;
			X2BenefitValue_t	 X2BenefitValue;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} X2RemovalRequest_IEs_t;
typedef struct X2RemovalResponse_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct X2RemovalResponse_IEs__value {
		X2RemovalResponse_IEs__value_PR present;
		union X2RemovalResponse_IEs__value_u {
			GlobalENB_ID_t	 GlobalENB_ID;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} X2RemovalResponse_IEs_t;
typedef struct X2RemovalFailure_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct X2RemovalFailure_IEs__value {
		X2RemovalFailure_IEs__value_PR present;
		union X2RemovalFailure_IEs__value_u {
			Cause_t	 Cause;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} X2RemovalFailure_IEs_t;
typedef struct RetrieveUEContextRequest_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct RetrieveUEContextRequest_IEs__value {
		RetrieveUEContextRequest_IEs__value_PR present;
		union RetrieveUEContextRequest_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
			ResumeID_t	 ResumeID;
			ShortMAC_I_t	 ShortMAC_I;
			EUTRANCellIdentifier_t	 EUTRANCellIdentifier;
			CRNTI_t	 CRNTI;
			PCI_t	 PCI;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RetrieveUEContextRequest_IEs_t;
typedef struct RetrieveUEContextResponse_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct RetrieveUEContextResponse_IEs__value {
		RetrieveUEContextResponse_IEs__value_PR present;
		union RetrieveUEContextResponse_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
			GUMMEI_t	 GUMMEI;
			UE_ContextInformationRetrieve_t	 UE_ContextInformationRetrieve;
			TraceActivation_t	 TraceActivation;
			SRVCCOperationPossible_t	 SRVCCOperationPossible;
			Masked_IMEISV_t	 Masked_IMEISV;
			ExpectedUEBehaviour_t	 ExpectedUEBehaviour;
			ProSeAuthorized_t	 ProSeAuthorized;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			V2XServicesAuthorized_t	 V2XServicesAuthorized;
			AerialUEsubscriptionInformation_t	 AerialUEsubscriptionInformation;
			Subscription_Based_UE_DifferentiationInfo_t	 Subscription_Based_UE_DifferentiationInfo;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RetrieveUEContextResponse_IEs_t;
typedef struct RetrieveUEContextFailure_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct RetrieveUEContextFailure_IEs__value {
		RetrieveUEContextFailure_IEs__value_PR present;
		union RetrieveUEContextFailure_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
			Cause_t	 Cause;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RetrieveUEContextFailure_IEs_t;
typedef struct SgNBAdditionRequest_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SgNBAdditionRequest_IEs__value {
		SgNBAdditionRequest_IEs__value_PR present;
		union SgNBAdditionRequest_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			NRUESecurityCapabilities_t	 NRUESecurityCapabilities;
			SgNBSecurityKey_t	 SgNBSecurityKey;
			UEAggregateMaximumBitRate_t	 UEAggregateMaximumBitRate;
			PLMN_Identity_t	 PLMN_Identity;
			HandoverRestrictionList_t	 HandoverRestrictionList;
			E_RABs_ToBeAdded_SgNBAddReqList_t	 E_RABs_ToBeAdded_SgNBAddReqList;
			MeNBtoSgNBContainer_t	 MeNBtoSgNBContainer;
			SgNB_UE_X2AP_ID_t	 SgNB_UE_X2AP_ID;
			ExpectedUEBehaviour_t	 ExpectedUEBehaviour;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
			SplitSRBs_t	 SplitSRBs;
			MeNBResourceCoordinationInformation_t	 MeNBResourceCoordinationInformation;
			SGNB_Addition_Trigger_Ind_t	 SGNB_Addition_Trigger_Ind;
			SubscriberProfileIDforRFP_t	 SubscriberProfileIDforRFP;
			ECGI_t	 ECGI;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SgNBAdditionRequest_IEs_t;
typedef struct SgNBAdditionRequestAcknowledge_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SgNBAdditionRequestAcknowledge_IEs__value {
		SgNBAdditionRequestAcknowledge_IEs__value_PR present;
		union SgNBAdditionRequestAcknowledge_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			SgNB_UE_X2AP_ID_t	 SgNB_UE_X2AP_ID;
			E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList_t	 E_RABs_Admitted_ToBeAdded_SgNBAddReqAckList;
			E_RAB_List_t	 E_RAB_List;
			SgNBtoMeNBContainer_t	 SgNBtoMeNBContainer;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
			SplitSRBs_t	 SplitSRBs;
			SgNBResourceCoordinationInformation_t	 SgNBResourceCoordinationInformation;
			RRC_Config_Ind_t	 RRC_Config_Ind;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SgNBAdditionRequestAcknowledge_IEs_t;
typedef struct SgNBAdditionRequestReject_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SgNBAdditionRequestReject_IEs__value {
		SgNBAdditionRequestReject_IEs__value_PR present;
		union SgNBAdditionRequestReject_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			SgNB_UE_X2AP_ID_t	 SgNB_UE_X2AP_ID;
			Cause_t	 Cause;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SgNBAdditionRequestReject_IEs_t;
typedef struct SgNBReconfigurationComplete_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SgNBReconfigurationComplete_IEs__value {
		SgNBReconfigurationComplete_IEs__value_PR present;
		union SgNBReconfigurationComplete_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			SgNB_UE_X2AP_ID_t	 SgNB_UE_X2AP_ID;
			ResponseInformationSgNBReconfComp_t	 ResponseInformationSgNBReconfComp;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SgNBReconfigurationComplete_IEs_t;
typedef struct SgNBModificationRequest_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SgNBModificationRequest_IEs__value {
		SgNBModificationRequest_IEs__value_PR present;
		union SgNBModificationRequest_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			SgNB_UE_X2AP_ID_t	 SgNB_UE_X2AP_ID;
			Cause_t	 Cause;
			PLMN_Identity_t	 PLMN_Identity;
			HandoverRestrictionList_t	 HandoverRestrictionList;
			SCGConfigurationQuery_t	 SCGConfigurationQuery;
			UE_ContextInformation_SgNBModReq_t	 UE_ContextInformation_SgNBModReq;
			MeNBtoSgNBContainer_t	 MeNBtoSgNBContainer;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
			MeNBResourceCoordinationInformation_t	 MeNBResourceCoordinationInformation;
			SplitSRBs_t	 SplitSRBs;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SgNBModificationRequest_IEs_t;
typedef struct SgNBModificationRequestAcknowledge_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SgNBModificationRequestAcknowledge_IEs__value {
		SgNBModificationRequestAcknowledge_IEs__value_PR present;
		union SgNBModificationRequestAcknowledge_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			SgNB_UE_X2AP_ID_t	 SgNB_UE_X2AP_ID;
			E_RABs_Admitted_ToBeAdded_SgNBModAckList_t	 E_RABs_Admitted_ToBeAdded_SgNBModAckList;
			E_RABs_Admitted_ToBeModified_SgNBModAckList_t	 E_RABs_Admitted_ToBeModified_SgNBModAckList;
			E_RABs_Admitted_ToBeReleased_SgNBModAckList_t	 E_RABs_Admitted_ToBeReleased_SgNBModAckList;
			E_RAB_List_t	 E_RAB_List;
			SgNBtoMeNBContainer_t	 SgNBtoMeNBContainer;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
			SgNBResourceCoordinationInformation_t	 SgNBResourceCoordinationInformation;
			SplitSRBs_t	 SplitSRBs;
			RRC_Config_Ind_t	 RRC_Config_Ind;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SgNBModificationRequestAcknowledge_IEs_t;
typedef struct SgNBModificationRequestReject_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SgNBModificationRequestReject_IEs__value {
		SgNBModificationRequestReject_IEs__value_PR present;
		union SgNBModificationRequestReject_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			SgNB_UE_X2AP_ID_t	 SgNB_UE_X2AP_ID;
			Cause_t	 Cause;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SgNBModificationRequestReject_IEs_t;
typedef struct SgNBModificationRequired_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SgNBModificationRequired_IEs__value {
		SgNBModificationRequired_IEs__value_PR present;
		union SgNBModificationRequired_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			SgNB_UE_X2AP_ID_t	 SgNB_UE_X2AP_ID;
			Cause_t	 Cause;
			PDCPChangeIndication_t	 PDCPChangeIndication;
			E_RABs_ToBeReleased_SgNBModReqdList_t	 E_RABs_ToBeReleased_SgNBModReqdList;
			SgNBtoMeNBContainer_t	 SgNBtoMeNBContainer;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
			E_RABs_ToBeModified_SgNBModReqdList_t	 E_RABs_ToBeModified_SgNBModReqdList;
			SgNBResourceCoordinationInformation_t	 SgNBResourceCoordinationInformation;
			RRC_Config_Ind_t	 RRC_Config_Ind;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SgNBModificationRequired_IEs_t;
typedef struct SgNBModificationConfirm_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SgNBModificationConfirm_IEs__value {
		SgNBModificationConfirm_IEs__value_PR present;
		union SgNBModificationConfirm_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			SgNB_UE_X2AP_ID_t	 SgNB_UE_X2AP_ID;
			E_RABs_AdmittedToBeModified_SgNBModConfList_t	 E_RABs_AdmittedToBeModified_SgNBModConfList;
			MeNBtoSgNBContainer_t	 MeNBtoSgNBContainer;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
			MeNBResourceCoordinationInformation_t	 MeNBResourceCoordinationInformation;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SgNBModificationConfirm_IEs_t;
typedef struct SgNBModificationRefuse_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SgNBModificationRefuse_IEs__value {
		SgNBModificationRefuse_IEs__value_PR present;
		union SgNBModificationRefuse_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			SgNB_UE_X2AP_ID_t	 SgNB_UE_X2AP_ID;
			Cause_t	 Cause;
			MeNBtoSgNBContainer_t	 MeNBtoSgNBContainer;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SgNBModificationRefuse_IEs_t;
typedef struct SgNBReleaseRequest_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SgNBReleaseRequest_IEs__value {
		SgNBReleaseRequest_IEs__value_PR present;
		union SgNBReleaseRequest_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			SgNB_UE_X2AP_ID_t	 SgNB_UE_X2AP_ID;
			Cause_t	 Cause;
			E_RABs_ToBeReleased_SgNBRelReqList_t	 E_RABs_ToBeReleased_SgNBRelReqList;
			UE_ContextKeptIndicator_t	 UE_ContextKeptIndicator;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
			MeNBtoSgNBContainer_t	 MeNBtoSgNBContainer;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SgNBReleaseRequest_IEs_t;
typedef struct SgNBReleaseRequestAcknowledge_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SgNBReleaseRequestAcknowledge_IEs__value {
		SgNBReleaseRequestAcknowledge_IEs__value_PR present;
		union SgNBReleaseRequestAcknowledge_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			SgNB_UE_X2AP_ID_t	 SgNB_UE_X2AP_ID;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
			E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList_t	 E_RABs_Admitted_ToBeReleased_SgNBRelReqAckList;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SgNBReleaseRequestAcknowledge_IEs_t;
typedef struct SgNBReleaseRequestReject_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SgNBReleaseRequestReject_IEs__value {
		SgNBReleaseRequestReject_IEs__value_PR present;
		union SgNBReleaseRequestReject_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			SgNB_UE_X2AP_ID_t	 SgNB_UE_X2AP_ID;
			Cause_t	 Cause;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SgNBReleaseRequestReject_IEs_t;
typedef struct SgNBReleaseRequired_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SgNBReleaseRequired_IEs__value {
		SgNBReleaseRequired_IEs__value_PR present;
		union SgNBReleaseRequired_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			SgNB_UE_X2AP_ID_t	 SgNB_UE_X2AP_ID;
			Cause_t	 Cause;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
			E_RABs_ToBeReleased_SgNBRelReqdList_t	 E_RABs_ToBeReleased_SgNBRelReqdList;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SgNBReleaseRequired_IEs_t;
typedef struct SgNBReleaseConfirm_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SgNBReleaseConfirm_IEs__value {
		SgNBReleaseConfirm_IEs__value_PR present;
		union SgNBReleaseConfirm_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			SgNB_UE_X2AP_ID_t	 SgNB_UE_X2AP_ID;
			E_RABs_ToBeReleased_SgNBRelConfList_t	 E_RABs_ToBeReleased_SgNBRelConfList;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SgNBReleaseConfirm_IEs_t;
typedef struct SgNBCounterCheckRequest_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SgNBCounterCheckRequest_IEs__value {
		SgNBCounterCheckRequest_IEs__value_PR present;
		union SgNBCounterCheckRequest_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			SgNB_UE_X2AP_ID_t	 SgNB_UE_X2AP_ID;
			E_RABs_SubjectToSgNBCounterCheck_List_t	 E_RABs_SubjectToSgNBCounterCheck_List;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SgNBCounterCheckRequest_IEs_t;
typedef struct SgNBChangeRequired_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SgNBChangeRequired_IEs__value {
		SgNBChangeRequired_IEs__value_PR present;
		union SgNBChangeRequired_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			SgNB_UE_X2AP_ID_t	 SgNB_UE_X2AP_ID;
			GlobalGNB_ID_t	 GlobalGNB_ID;
			Cause_t	 Cause;
			SgNBtoMeNBContainer_t	 SgNBtoMeNBContainer;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SgNBChangeRequired_IEs_t;
typedef struct SgNBChangeConfirm_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SgNBChangeConfirm_IEs__value {
		SgNBChangeConfirm_IEs__value_PR present;
		union SgNBChangeConfirm_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			SgNB_UE_X2AP_ID_t	 SgNB_UE_X2AP_ID;
			E_RABs_ToBeReleased_SgNBChaConfList_t	 E_RABs_ToBeReleased_SgNBChaConfList;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SgNBChangeConfirm_IEs_t;
typedef struct RRCTransfer_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct RRCTransfer_IEs__value {
		RRCTransfer_IEs__value_PR present;
		union RRCTransfer_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			SgNB_UE_X2AP_ID_t	 SgNB_UE_X2AP_ID;
			SplitSRB_t	 SplitSRB;
			UENRMeasurement_t	 UENRMeasurement;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RRCTransfer_IEs_t;
typedef struct SgNBChangeRefuse_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SgNBChangeRefuse_IEs__value {
		SgNBChangeRefuse_IEs__value_PR present;
		union SgNBChangeRefuse_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			SgNB_UE_X2AP_ID_t	 SgNB_UE_X2AP_ID;
			Cause_t	 Cause;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SgNBChangeRefuse_IEs_t;
typedef struct ENDCX2SetupRequest_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ENDCX2SetupRequest_IEs__value {
		ENDCX2SetupRequest_IEs__value_PR present;
		union ENDCX2SetupRequest_IEs__value_u {
			InitiatingNodeType_EndcX2Setup_t	 InitiatingNodeType_EndcX2Setup;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ENDCX2SetupRequest_IEs_t;
typedef struct ENB_ENDCX2SetupReqIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ENB_ENDCX2SetupReqIEs__value {
		ENB_ENDCX2SetupReqIEs__value_PR present;
		union ENB_ENDCX2SetupReqIEs__value_u {
			GlobalENB_ID_t	 GlobalENB_ID;
			ServedEUTRAcellsENDCX2ManagementList_t	 ServedEUTRAcellsENDCX2ManagementList;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ENB_ENDCX2SetupReqIEs_t;
typedef struct En_gNB_ENDCX2SetupReqIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct En_gNB_ENDCX2SetupReqIEs__value {
		En_gNB_ENDCX2SetupReqIEs__value_PR present;
		union En_gNB_ENDCX2SetupReqIEs__value_u {
			GlobalGNB_ID_t	 GlobalGNB_ID;
			ServedNRcellsENDCX2ManagementList_t	 ServedNRcellsENDCX2ManagementList;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} En_gNB_ENDCX2SetupReqIEs_t;
typedef struct ENDCX2SetupResponse_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ENDCX2SetupResponse_IEs__value {
		ENDCX2SetupResponse_IEs__value_PR present;
		union ENDCX2SetupResponse_IEs__value_u {
			RespondingNodeType_EndcX2Setup_t	 RespondingNodeType_EndcX2Setup;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ENDCX2SetupResponse_IEs_t;
typedef struct ENB_ENDCX2SetupReqAckIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ENB_ENDCX2SetupReqAckIEs__value {
		ENB_ENDCX2SetupReqAckIEs__value_PR present;
		union ENB_ENDCX2SetupReqAckIEs__value_u {
			GlobalENB_ID_t	 GlobalENB_ID;
			ServedEUTRAcellsENDCX2ManagementList_t	 ServedEUTRAcellsENDCX2ManagementList;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ENB_ENDCX2SetupReqAckIEs_t;
typedef struct En_gNB_ENDCX2SetupReqAckIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct En_gNB_ENDCX2SetupReqAckIEs__value {
		En_gNB_ENDCX2SetupReqAckIEs__value_PR present;
		union En_gNB_ENDCX2SetupReqAckIEs__value_u {
			GlobalGNB_ID_t	 GlobalGNB_ID;
			ServedNRcellsENDCX2ManagementList_t	 ServedNRcellsENDCX2ManagementList;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} En_gNB_ENDCX2SetupReqAckIEs_t;
typedef struct ENDCX2SetupFailure_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ENDCX2SetupFailure_IEs__value {
		ENDCX2SetupFailure_IEs__value_PR present;
		union ENDCX2SetupFailure_IEs__value_u {
			Cause_t	 Cause;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			TimeToWait_t	 TimeToWait;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ENDCX2SetupFailure_IEs_t;
typedef struct ENDCConfigurationUpdate_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ENDCConfigurationUpdate_IEs__value {
		ENDCConfigurationUpdate_IEs__value_PR present;
		union ENDCConfigurationUpdate_IEs__value_u {
			InitiatingNodeType_EndcConfigUpdate_t	 InitiatingNodeType_EndcConfigUpdate;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ENDCConfigurationUpdate_IEs_t;
typedef struct ENB_ENDCConfigUpdateIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ENB_ENDCConfigUpdateIEs__value {
		ENB_ENDCConfigUpdateIEs__value_PR present;
		union ENB_ENDCConfigUpdateIEs__value_u {
			CellAssistanceInformation_t	 CellAssistanceInformation;
			ServedEUTRAcellsENDCX2ManagementList_t	 ServedEUTRAcellsENDCX2ManagementList;
			ServedEUTRAcellsToModifyListENDCConfUpd_t	 ServedEUTRAcellsToModifyListENDCConfUpd;
			ServedEUTRAcellsToDeleteListENDCConfUpd_t	 ServedEUTRAcellsToDeleteListENDCConfUpd;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ENB_ENDCConfigUpdateIEs_t;
typedef struct En_gNB_ENDCConfigUpdateIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct En_gNB_ENDCConfigUpdateIEs__value {
		En_gNB_ENDCConfigUpdateIEs__value_PR present;
		union En_gNB_ENDCConfigUpdateIEs__value_u {
			ServedNRcellsENDCX2ManagementList_t	 ServedNRcellsENDCX2ManagementList;
			ServedNRcellsToModifyENDCConfUpdList_t	 ServedNRcellsToModifyENDCConfUpdList;
			ServedNRcellsToDeleteENDCConfUpdList_t	 ServedNRcellsToDeleteENDCConfUpdList;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} En_gNB_ENDCConfigUpdateIEs_t;
typedef struct ENDCConfigurationUpdateAcknowledge_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ENDCConfigurationUpdateAcknowledge_IEs__value {
		ENDCConfigurationUpdateAcknowledge_IEs__value_PR present;
		union ENDCConfigurationUpdateAcknowledge_IEs__value_u {
			RespondingNodeType_EndcConfigUpdate_t	 RespondingNodeType_EndcConfigUpdate;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ENDCConfigurationUpdateAcknowledge_IEs_t;
typedef struct ENB_ENDCConfigUpdateAckIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ENB_ENDCConfigUpdateAckIEs__value {
		ENB_ENDCConfigUpdateAckIEs__value_PR present;
		union ENB_ENDCConfigUpdateAckIEs__value_u {
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ENB_ENDCConfigUpdateAckIEs_t;
typedef struct En_gNB_ENDCConfigUpdateAckIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct En_gNB_ENDCConfigUpdateAckIEs__value {
		En_gNB_ENDCConfigUpdateAckIEs__value_PR present;
		union En_gNB_ENDCConfigUpdateAckIEs__value_u {
			ServedNRcellsENDCX2ManagementList_t	 ServedNRcellsENDCX2ManagementList;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} En_gNB_ENDCConfigUpdateAckIEs_t;
typedef struct ENDCConfigurationUpdateFailure_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ENDCConfigurationUpdateFailure_IEs__value {
		ENDCConfigurationUpdateFailure_IEs__value_PR present;
		union ENDCConfigurationUpdateFailure_IEs__value_u {
			Cause_t	 Cause;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
			TimeToWait_t	 TimeToWait;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ENDCConfigurationUpdateFailure_IEs_t;
typedef struct ENDCCellActivationRequest_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ENDCCellActivationRequest_IEs__value {
		ENDCCellActivationRequest_IEs__value_PR present;
		union ENDCCellActivationRequest_IEs__value_u {
			ServedNRCellsToActivate_t	 ServedNRCellsToActivate;
			ActivationID_t	 ActivationID;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ENDCCellActivationRequest_IEs_t;
typedef struct ENDCCellActivationResponse_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ENDCCellActivationResponse_IEs__value {
		ENDCCellActivationResponse_IEs__value_PR present;
		union ENDCCellActivationResponse_IEs__value_u {
			ActivatedNRCellList_t	 ActivatedNRCellList;
			ActivationID_t	 ActivationID;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ENDCCellActivationResponse_IEs_t;
typedef struct ENDCCellActivationFailure_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ENDCCellActivationFailure_IEs__value {
		ENDCCellActivationFailure_IEs__value_PR present;
		union ENDCCellActivationFailure_IEs__value_u {
			ActivationID_t	 ActivationID;
			Cause_t	 Cause;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ENDCCellActivationFailure_IEs_t;
typedef struct SecondaryRATDataUsageReport_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SecondaryRATDataUsageReport_IEs__value {
		SecondaryRATDataUsageReport_IEs__value_PR present;
		union SecondaryRATDataUsageReport_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			SgNB_UE_X2AP_ID_t	 SgNB_UE_X2AP_ID;
			SecondaryRATUsageReportList_t	 SecondaryRATUsageReportList;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SecondaryRATDataUsageReport_IEs_t;
typedef struct SgNBActivityNotification_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SgNBActivityNotification_IEs__value {
		SgNBActivityNotification_IEs__value_PR present;
		union SgNBActivityNotification_IEs__value_u {
			UE_X2AP_ID_t	 UE_X2AP_ID;
			SgNB_UE_X2AP_ID_t	 SgNB_UE_X2AP_ID;
			UserPlaneTrafficActivityReport_t	 UserPlaneTrafficActivityReport;
			ERABActivityNotifyItemList_t	 ERABActivityNotifyItemList;
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SgNBActivityNotification_IEs_t;
typedef struct ENDCPartialResetRequired_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ENDCPartialResetRequired_IEs__value {
		ENDCPartialResetRequired_IEs__value_PR present;
		union ENDCPartialResetRequired_IEs__value_u {
			UEsToBeResetList_t	 UEsToBeResetList;
			Cause_t	 Cause;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ENDCPartialResetRequired_IEs_t;
typedef struct ENDCPartialResetConfirm_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ENDCPartialResetConfirm_IEs__value {
		ENDCPartialResetConfirm_IEs__value_PR present;
		union ENDCPartialResetConfirm_IEs__value_u {
			UEsToBeResetList_t	 UEsToBeResetList;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ENDCPartialResetConfirm_IEs_t;
typedef struct EUTRANRCellResourceCoordinationRequest_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct EUTRANRCellResourceCoordinationRequest_IEs__value {
		EUTRANRCellResourceCoordinationRequest_IEs__value_PR present;
		union EUTRANRCellResourceCoordinationRequest_IEs__value_u {
			InitiatingNodeType_EutranrCellResourceCoordination_t	 InitiatingNodeType_EutranrCellResourceCoordination;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} EUTRANRCellResourceCoordinationRequest_IEs_t;
typedef struct ENB_EUTRA_NRCellResourceCoordinationReqIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ENB_EUTRA_NRCellResourceCoordinationReqIEs__value {
		ENB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR present;
		union ENB_EUTRA_NRCellResourceCoordinationReqIEs__value_u {
			DataTrafficResourceIndication_t	 DataTrafficResourceIndication;
			SpectrumSharingGroupID_t	 SpectrumSharingGroupID;
			ListofEUTRACellsinEUTRACoordinationReq_t	 ListofEUTRACellsinEUTRACoordinationReq;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ENB_EUTRA_NRCellResourceCoordinationReqIEs_t;
typedef struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value {
		En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_PR present;
		union En_gNB_EUTRA_NRCellResourceCoordinationReqIEs__value_u {
			DataTrafficResourceIndication_t	 DataTrafficResourceIndication;
			ListofEUTRACellsinNRCoordinationReq_t	 ListofEUTRACellsinNRCoordinationReq;
			SpectrumSharingGroupID_t	 SpectrumSharingGroupID;
			ListofNRCellsinNRCoordinationReq_t	 ListofNRCellsinNRCoordinationReq;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_t;
typedef struct EUTRANRCellResourceCoordinationResponse_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct EUTRANRCellResourceCoordinationResponse_IEs__value {
		EUTRANRCellResourceCoordinationResponse_IEs__value_PR present;
		union EUTRANRCellResourceCoordinationResponse_IEs__value_u {
			RespondingNodeType_EutranrCellResourceCoordination_t	 RespondingNodeType_EutranrCellResourceCoordination;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} EUTRANRCellResourceCoordinationResponse_IEs_t;
typedef struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value {
		ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR present;
		union ENB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_u {
			DataTrafficResourceIndication_t	 DataTrafficResourceIndication;
			SpectrumSharingGroupID_t	 SpectrumSharingGroupID;
			ListofEUTRACellsinEUTRACoordinationResp_t	 ListofEUTRACellsinEUTRACoordinationResp;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_t;
typedef struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value {
		En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_PR present;
		union En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs__value_u {
			DataTrafficResourceIndication_t	 DataTrafficResourceIndication;
			SpectrumSharingGroupID_t	 SpectrumSharingGroupID;
			ListofNRCellsinNRCoordinationResp_t	 ListofNRCellsinNRCoordinationResp;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_t;
typedef struct ENDCX2RemovalRequest_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ENDCX2RemovalRequest_IEs__value {
		ENDCX2RemovalRequest_IEs__value_PR present;
		union ENDCX2RemovalRequest_IEs__value_u {
			InitiatingNodeType_EndcX2Removal_t	 InitiatingNodeType_EndcX2Removal;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ENDCX2RemovalRequest_IEs_t;
typedef struct ENB_ENDCX2RemovalReqIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ENB_ENDCX2RemovalReqIEs__value {
		ENB_ENDCX2RemovalReqIEs__value_PR present;
		union ENB_ENDCX2RemovalReqIEs__value_u {
			GlobalENB_ID_t	 GlobalENB_ID;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ENB_ENDCX2RemovalReqIEs_t;
typedef struct En_gNB_ENDCX2RemovalReqIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct En_gNB_ENDCX2RemovalReqIEs__value {
		En_gNB_ENDCX2RemovalReqIEs__value_PR present;
		union En_gNB_ENDCX2RemovalReqIEs__value_u {
			GlobalGNB_ID_t	 GlobalGNB_ID;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} En_gNB_ENDCX2RemovalReqIEs_t;
typedef struct ENDCX2RemovalResponse_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ENDCX2RemovalResponse_IEs__value {
		ENDCX2RemovalResponse_IEs__value_PR present;
		union ENDCX2RemovalResponse_IEs__value_u {
			RespondingNodeType_EndcX2Removal_t	 RespondingNodeType_EndcX2Removal;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ENDCX2RemovalResponse_IEs_t;
typedef struct ENB_ENDCX2RemovalReqAckIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ENB_ENDCX2RemovalReqAckIEs__value {
		ENB_ENDCX2RemovalReqAckIEs__value_PR present;
		union ENB_ENDCX2RemovalReqAckIEs__value_u {
			GlobalENB_ID_t	 GlobalENB_ID;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ENB_ENDCX2RemovalReqAckIEs_t;
typedef struct En_gNB_ENDCX2RemovalReqAckIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct En_gNB_ENDCX2RemovalReqAckIEs__value {
		En_gNB_ENDCX2RemovalReqAckIEs__value_PR present;
		union En_gNB_ENDCX2RemovalReqAckIEs__value_u {
			GlobalGNB_ID_t	 GlobalGNB_ID;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} En_gNB_ENDCX2RemovalReqAckIEs_t;
typedef struct ENDCX2RemovalFailure_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct ENDCX2RemovalFailure_IEs__value {
		ENDCX2RemovalFailure_IEs__value_PR present;
		union ENDCX2RemovalFailure_IEs__value_u {
			Cause_t	 Cause;
			CriticalityDiagnostics_t	 CriticalityDiagnostics;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ENDCX2RemovalFailure_IEs_t;
typedef struct DataForwardingAddressIndication_IEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct DataForwardingAddressIndication_IEs__value {
		DataForwardingAddressIndication_IEs__value_PR present;
		union DataForwardingAddressIndication_IEs__value_u {
			UE_X2AP_ID_Extension_t	 UE_X2AP_ID_Extension;
			UE_X2AP_ID_t	 UE_X2AP_ID;
			E_RABs_DataForwardingAddress_List_t	 E_RABs_DataForwardingAddress_List;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} DataForwardingAddressIndication_IEs_t;
typedef struct GNBStatusIndicationIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct GNBStatusIndicationIEs__value {
		GNBStatusIndicationIEs__value_PR present;
		union GNBStatusIndicationIEs__value_u {
			GNBOverloadInformation_t	 GNBOverloadInformation;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} GNBStatusIndicationIEs_t;
typedef struct E_RAB_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RAB_ItemIEs__value {
		E_RAB_ItemIEs__value_PR present;
		union E_RAB_ItemIEs__value_u {
			E_RAB_Item_t	 E_RAB_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RAB_ItemIEs_t;
typedef struct E_RABUsageReport_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct E_RABUsageReport_ItemIEs__value {
		E_RABUsageReport_ItemIEs__value_PR present;
		union E_RABUsageReport_ItemIEs__value_u {
			E_RABUsageReport_Item_t	 E_RABUsageReport_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} E_RABUsageReport_ItemIEs_t;
typedef struct SecondaryRATUsageReport_ItemIEs {
	ProtocolIE_ID_t	 id;
	Criticality_t	 criticality;
	struct SecondaryRATUsageReport_ItemIEs__value {
		SecondaryRATUsageReport_ItemIEs__value_PR present;
		union SecondaryRATUsageReport_ItemIEs__value_u {
			SecondaryRATUsageReport_Item_t	 SecondaryRATUsageReport_Item;
		} choice;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} SecondaryRATUsageReport_ItemIEs_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1;
extern asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_ItemIEs_1[3];
extern asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_ItemIEs_specs_5;
extern asn_TYPE_member_t asn_MBR_RICaction_Admitted_ItemIEs_5[3];
extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9;
extern asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_ItemIEs_9[3];
extern asn_TYPE_descriptor_t asn_DEF_RANfunction_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_13;
extern asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_13[3];
extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_17;
extern asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_17[3];
extern asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_21;
extern asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_21[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetup_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeSetup_ItemIEs_specs_25;
extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetup_ItemIEs_25[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ItemIEs_specs_29;
extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ItemIEs_29[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToStatusTransfer_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToStatusTransfer_ItemIEs_specs_33;
extern asn_TYPE_member_t asn_MBR_E_RABs_SubjectToStatusTransfer_ItemIEs_33[3];
extern asn_TYPE_descriptor_t asn_DEF_CellInformation_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_CellInformation_ItemIEs_specs_37;
extern asn_TYPE_member_t asn_MBR_CellInformation_ItemIEs_37[3];
extern asn_TYPE_descriptor_t asn_DEF_CellToReport_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_CellToReport_ItemIEs_specs_41;
extern asn_TYPE_member_t asn_MBR_CellToReport_ItemIEs_41[3];
extern asn_TYPE_descriptor_t asn_DEF_MeasurementInitiationResult_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_MeasurementInitiationResult_ItemIEs_specs_45;
extern asn_TYPE_member_t asn_MBR_MeasurementInitiationResult_ItemIEs_45[3];
extern asn_TYPE_descriptor_t asn_DEF_MeasurementFailureCause_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_MeasurementFailureCause_ItemIEs_specs_49;
extern asn_TYPE_member_t asn_MBR_MeasurementFailureCause_ItemIEs_49[3];
extern asn_TYPE_descriptor_t asn_DEF_CompleteFailureCauseInformation_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_CompleteFailureCauseInformation_ItemIEs_specs_53;
extern asn_TYPE_member_t asn_MBR_CompleteFailureCauseInformation_ItemIEs_53[3];
extern asn_TYPE_descriptor_t asn_DEF_CellMeasurementResult_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_CellMeasurementResult_ItemIEs_specs_57;
extern asn_TYPE_member_t asn_MBR_CellMeasurementResult_ItemIEs_57[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ItemIEs_specs_61;
extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ItemIEs_61[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ItemIEs_specs_65;
extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ItemIEs_65[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_ModReqItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_ModReqItemIEs_specs_69;
extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_ModReqItemIEs_69[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_ModReqItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_ModReqItemIEs_specs_73;
extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_ModReqItemIEs_73[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqItemIEs_specs_77;
extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqItemIEs_77[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_ModAckItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_specs_81;
extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_ModAckItemIEs_81[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_ModAckItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_ModAckItemIEs_specs_85;
extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_ModAckItemIEs_85[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_ModAckItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_specs_89;
extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_ModAckItemIEs_89[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_ModReqdItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_ModReqdItemIEs_specs_93;
extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_ModReqdItemIEs_93[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelReqItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelReqItemIEs_specs_97;
extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelReqItemIEs_97[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_RelConfItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_RelConfItemIEs_specs_101;
extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_RelConfItemIEs_101[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToCounterCheckItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToCounterCheckItemIEs_specs_105;
extern asn_TYPE_member_t asn_MBR_E_RABs_SubjectToCounterCheckItemIEs_105[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeSetupRetrieve_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeSetupRetrieve_ItemIEs_specs_109;
extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeSetupRetrieve_ItemIEs_109[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_specs_113;
extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_113[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_specs_117;
extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_ItemIEs_117[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeAdded_SgNBModReq_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_specs_121;
extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeAdded_SgNBModReq_ItemIEs_121[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReq_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReq_ItemIEs_specs_125;
extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReq_ItemIEs_125[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReq_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_specs_129;
extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReq_ItemIEs_129[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_specs_133;
extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeAdded_SgNBModAck_ItemIEs_133[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_specs_137;
extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeModified_SgNBModAck_ItemIEs_137[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_specs_141;
extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBModAck_ItemIEs_141[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_specs_145;
extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBModReqd_ItemIEs_145[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeModified_SgNBModReqd_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_specs_149;
extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeModified_SgNBModReqd_ItemIEs_149[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_specs_153;
extern asn_TYPE_member_t asn_MBR_E_RABs_AdmittedToBeModified_SgNBModConf_ItemIEs_153[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_specs_157;
extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReq_ItemIEs_157[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_specs_161;
extern asn_TYPE_member_t asn_MBR_E_RABs_Admitted_ToBeReleased_SgNBRelReqAck_ItemIEs_161[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_specs_165;
extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelReqd_ItemIEs_165[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_specs_169;
extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBRelConf_ItemIEs_169[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_SubjectToSgNBCounterCheck_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_specs_173;
extern asn_TYPE_member_t asn_MBR_E_RABs_SubjectToSgNBCounterCheck_ItemIEs_173[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_specs_177;
extern asn_TYPE_member_t asn_MBR_E_RABs_ToBeReleased_SgNBChaConf_ItemIEs_177[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABs_DataForwardingAddress_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABs_DataForwardingAddress_ItemIEs_specs_181;
extern asn_TYPE_member_t asn_MBR_E_RABs_DataForwardingAddress_ItemIEs_181[3];
extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_185;
extern asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_185[3];
extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_189;
extern asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_189[3];
extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_193;
extern asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_193[3];
extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_197;
extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_197[3];
extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_201;
extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_201[3];
extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_205;
extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_205[3];
extern asn_TYPE_descriptor_t asn_DEF_RICindication_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_209;
extern asn_TYPE_member_t asn_MBR_RICindication_IEs_209[3];
extern asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_213;
extern asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_213[3];
extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_217;
extern asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_217[3];
extern asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_221;
extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_221[3];
extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_225;
extern asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_225[3];
extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_229;
extern asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_229[3];
extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_233;
extern asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_233[3];
extern asn_TYPE_descriptor_t asn_DEF_RICserviceQuery_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_237;
extern asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_237[3];
extern asn_TYPE_descriptor_t asn_DEF_HandoverRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_HandoverRequest_IEs_specs_241;
extern asn_TYPE_member_t asn_MBR_HandoverRequest_IEs_241[3];
extern asn_TYPE_descriptor_t asn_DEF_HandoverRequestAcknowledge_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_HandoverRequestAcknowledge_IEs_specs_245;
extern asn_TYPE_member_t asn_MBR_HandoverRequestAcknowledge_IEs_245[3];
extern asn_TYPE_descriptor_t asn_DEF_HandoverPreparationFailure_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_HandoverPreparationFailure_IEs_specs_249;
extern asn_TYPE_member_t asn_MBR_HandoverPreparationFailure_IEs_249[3];
extern asn_TYPE_descriptor_t asn_DEF_HandoverReport_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_HandoverReport_IEs_specs_253;
extern asn_TYPE_member_t asn_MBR_HandoverReport_IEs_253[3];
extern asn_TYPE_descriptor_t asn_DEF_SNStatusTransfer_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SNStatusTransfer_IEs_specs_257;
extern asn_TYPE_member_t asn_MBR_SNStatusTransfer_IEs_257[3];
extern asn_TYPE_descriptor_t asn_DEF_UEContextRelease_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_UEContextRelease_IEs_specs_261;
extern asn_TYPE_member_t asn_MBR_UEContextRelease_IEs_261[3];
extern asn_TYPE_descriptor_t asn_DEF_HandoverCancel_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_HandoverCancel_IEs_specs_265;
extern asn_TYPE_member_t asn_MBR_HandoverCancel_IEs_265[3];
extern asn_TYPE_descriptor_t asn_DEF_ErrorIndication_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndication_IEs_specs_269;
extern asn_TYPE_member_t asn_MBR_ErrorIndication_IEs_269[3];
extern asn_TYPE_descriptor_t asn_DEF_ResetRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ResetRequest_IEs_specs_273;
extern asn_TYPE_member_t asn_MBR_ResetRequest_IEs_273[3];
extern asn_TYPE_descriptor_t asn_DEF_ResetResponse_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ResetResponse_IEs_specs_277;
extern asn_TYPE_member_t asn_MBR_ResetResponse_IEs_277[3];
extern asn_TYPE_descriptor_t asn_DEF_X2SetupRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_X2SetupRequest_IEs_specs_281;
extern asn_TYPE_member_t asn_MBR_X2SetupRequest_IEs_281[3];
extern asn_TYPE_descriptor_t asn_DEF_X2SetupResponse_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_X2SetupResponse_IEs_specs_285;
extern asn_TYPE_member_t asn_MBR_X2SetupResponse_IEs_285[3];
extern asn_TYPE_descriptor_t asn_DEF_X2SetupFailure_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_X2SetupFailure_IEs_specs_289;
extern asn_TYPE_member_t asn_MBR_X2SetupFailure_IEs_289[3];
extern asn_TYPE_descriptor_t asn_DEF_LoadInformation_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_LoadInformation_IEs_specs_293;
extern asn_TYPE_member_t asn_MBR_LoadInformation_IEs_293[3];
extern asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdate_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdate_IEs_specs_297;
extern asn_TYPE_member_t asn_MBR_ENBConfigurationUpdate_IEs_297[3];
extern asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdateAcknowledge_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdateAcknowledge_IEs_specs_301;
extern asn_TYPE_member_t asn_MBR_ENBConfigurationUpdateAcknowledge_IEs_301[3];
extern asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdateFailure_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ENBConfigurationUpdateFailure_IEs_specs_305;
extern asn_TYPE_member_t asn_MBR_ENBConfigurationUpdateFailure_IEs_305[3];
extern asn_TYPE_descriptor_t asn_DEF_ResourceStatusRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusRequest_IEs_specs_309;
extern asn_TYPE_member_t asn_MBR_ResourceStatusRequest_IEs_309[3];
extern asn_TYPE_descriptor_t asn_DEF_ResourceStatusResponse_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusResponse_IEs_specs_313;
extern asn_TYPE_member_t asn_MBR_ResourceStatusResponse_IEs_313[3];
extern asn_TYPE_descriptor_t asn_DEF_ResourceStatusFailure_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusFailure_IEs_specs_317;
extern asn_TYPE_member_t asn_MBR_ResourceStatusFailure_IEs_317[3];
extern asn_TYPE_descriptor_t asn_DEF_ResourceStatusUpdate_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ResourceStatusUpdate_IEs_specs_321;
extern asn_TYPE_member_t asn_MBR_ResourceStatusUpdate_IEs_321[3];
extern asn_TYPE_descriptor_t asn_DEF_MobilityChangeRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_MobilityChangeRequest_IEs_specs_325;
extern asn_TYPE_member_t asn_MBR_MobilityChangeRequest_IEs_325[3];
extern asn_TYPE_descriptor_t asn_DEF_MobilityChangeAcknowledge_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_MobilityChangeAcknowledge_IEs_specs_329;
extern asn_TYPE_member_t asn_MBR_MobilityChangeAcknowledge_IEs_329[3];
extern asn_TYPE_descriptor_t asn_DEF_MobilityChangeFailure_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_MobilityChangeFailure_IEs_specs_333;
extern asn_TYPE_member_t asn_MBR_MobilityChangeFailure_IEs_333[3];
extern asn_TYPE_descriptor_t asn_DEF_RLFIndication_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RLFIndication_IEs_specs_337;
extern asn_TYPE_member_t asn_MBR_RLFIndication_IEs_337[3];
extern asn_TYPE_descriptor_t asn_DEF_CellActivationRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_CellActivationRequest_IEs_specs_341;
extern asn_TYPE_member_t asn_MBR_CellActivationRequest_IEs_341[3];
extern asn_TYPE_descriptor_t asn_DEF_CellActivationResponse_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_CellActivationResponse_IEs_specs_345;
extern asn_TYPE_member_t asn_MBR_CellActivationResponse_IEs_345[3];
extern asn_TYPE_descriptor_t asn_DEF_CellActivationFailure_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_CellActivationFailure_IEs_specs_349;
extern asn_TYPE_member_t asn_MBR_CellActivationFailure_IEs_349[3];
extern asn_TYPE_descriptor_t asn_DEF_X2Release_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_X2Release_IEs_specs_353;
extern asn_TYPE_member_t asn_MBR_X2Release_IEs_353[3];
extern asn_TYPE_descriptor_t asn_DEF_X2APMessageTransfer_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_X2APMessageTransfer_IEs_specs_357;
extern asn_TYPE_member_t asn_MBR_X2APMessageTransfer_IEs_357[3];
extern asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SeNBAdditionRequest_IEs_specs_361;
extern asn_TYPE_member_t asn_MBR_SeNBAdditionRequest_IEs_361[3];
extern asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequestAcknowledge_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SeNBAdditionRequestAcknowledge_IEs_specs_365;
extern asn_TYPE_member_t asn_MBR_SeNBAdditionRequestAcknowledge_IEs_365[3];
extern asn_TYPE_descriptor_t asn_DEF_SeNBAdditionRequestReject_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SeNBAdditionRequestReject_IEs_specs_369;
extern asn_TYPE_member_t asn_MBR_SeNBAdditionRequestReject_IEs_369[3];
extern asn_TYPE_descriptor_t asn_DEF_SeNBReconfigurationComplete_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SeNBReconfigurationComplete_IEs_specs_373;
extern asn_TYPE_member_t asn_MBR_SeNBReconfigurationComplete_IEs_373[3];
extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequest_IEs_specs_377;
extern asn_TYPE_member_t asn_MBR_SeNBModificationRequest_IEs_377[3];
extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequestAcknowledge_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequestAcknowledge_IEs_specs_381;
extern asn_TYPE_member_t asn_MBR_SeNBModificationRequestAcknowledge_IEs_381[3];
extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequestReject_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequestReject_IEs_specs_385;
extern asn_TYPE_member_t asn_MBR_SeNBModificationRequestReject_IEs_385[3];
extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationRequired_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRequired_IEs_specs_389;
extern asn_TYPE_member_t asn_MBR_SeNBModificationRequired_IEs_389[3];
extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationConfirm_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationConfirm_IEs_specs_393;
extern asn_TYPE_member_t asn_MBR_SeNBModificationConfirm_IEs_393[3];
extern asn_TYPE_descriptor_t asn_DEF_SeNBModificationRefuse_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SeNBModificationRefuse_IEs_specs_397;
extern asn_TYPE_member_t asn_MBR_SeNBModificationRefuse_IEs_397[3];
extern asn_TYPE_descriptor_t asn_DEF_SeNBReleaseRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SeNBReleaseRequest_IEs_specs_401;
extern asn_TYPE_member_t asn_MBR_SeNBReleaseRequest_IEs_401[3];
extern asn_TYPE_descriptor_t asn_DEF_SeNBReleaseRequired_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SeNBReleaseRequired_IEs_specs_405;
extern asn_TYPE_member_t asn_MBR_SeNBReleaseRequired_IEs_405[3];
extern asn_TYPE_descriptor_t asn_DEF_SeNBReleaseConfirm_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SeNBReleaseConfirm_IEs_specs_409;
extern asn_TYPE_member_t asn_MBR_SeNBReleaseConfirm_IEs_409[3];
extern asn_TYPE_descriptor_t asn_DEF_SeNBCounterCheckRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SeNBCounterCheckRequest_IEs_specs_413;
extern asn_TYPE_member_t asn_MBR_SeNBCounterCheckRequest_IEs_413[3];
extern asn_TYPE_descriptor_t asn_DEF_X2RemovalRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_X2RemovalRequest_IEs_specs_417;
extern asn_TYPE_member_t asn_MBR_X2RemovalRequest_IEs_417[3];
extern asn_TYPE_descriptor_t asn_DEF_X2RemovalResponse_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_X2RemovalResponse_IEs_specs_421;
extern asn_TYPE_member_t asn_MBR_X2RemovalResponse_IEs_421[3];
extern asn_TYPE_descriptor_t asn_DEF_X2RemovalFailure_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_X2RemovalFailure_IEs_specs_425;
extern asn_TYPE_member_t asn_MBR_X2RemovalFailure_IEs_425[3];
extern asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RetrieveUEContextRequest_IEs_specs_429;
extern asn_TYPE_member_t asn_MBR_RetrieveUEContextRequest_IEs_429[3];
extern asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextResponse_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RetrieveUEContextResponse_IEs_specs_433;
extern asn_TYPE_member_t asn_MBR_RetrieveUEContextResponse_IEs_433[3];
extern asn_TYPE_descriptor_t asn_DEF_RetrieveUEContextFailure_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RetrieveUEContextFailure_IEs_specs_437;
extern asn_TYPE_member_t asn_MBR_RetrieveUEContextFailure_IEs_437[3];
extern asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SgNBAdditionRequest_IEs_specs_441;
extern asn_TYPE_member_t asn_MBR_SgNBAdditionRequest_IEs_441[3];
extern asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequestAcknowledge_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SgNBAdditionRequestAcknowledge_IEs_specs_445;
extern asn_TYPE_member_t asn_MBR_SgNBAdditionRequestAcknowledge_IEs_445[3];
extern asn_TYPE_descriptor_t asn_DEF_SgNBAdditionRequestReject_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SgNBAdditionRequestReject_IEs_specs_449;
extern asn_TYPE_member_t asn_MBR_SgNBAdditionRequestReject_IEs_449[3];
extern asn_TYPE_descriptor_t asn_DEF_SgNBReconfigurationComplete_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SgNBReconfigurationComplete_IEs_specs_453;
extern asn_TYPE_member_t asn_MBR_SgNBReconfigurationComplete_IEs_453[3];
extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequest_IEs_specs_457;
extern asn_TYPE_member_t asn_MBR_SgNBModificationRequest_IEs_457[3];
extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequestAcknowledge_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequestAcknowledge_IEs_specs_461;
extern asn_TYPE_member_t asn_MBR_SgNBModificationRequestAcknowledge_IEs_461[3];
extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequestReject_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequestReject_IEs_specs_465;
extern asn_TYPE_member_t asn_MBR_SgNBModificationRequestReject_IEs_465[3];
extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationRequired_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRequired_IEs_specs_469;
extern asn_TYPE_member_t asn_MBR_SgNBModificationRequired_IEs_469[3];
extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationConfirm_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationConfirm_IEs_specs_473;
extern asn_TYPE_member_t asn_MBR_SgNBModificationConfirm_IEs_473[3];
extern asn_TYPE_descriptor_t asn_DEF_SgNBModificationRefuse_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SgNBModificationRefuse_IEs_specs_477;
extern asn_TYPE_member_t asn_MBR_SgNBModificationRefuse_IEs_477[3];
extern asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequest_IEs_specs_481;
extern asn_TYPE_member_t asn_MBR_SgNBReleaseRequest_IEs_481[3];
extern asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequestAcknowledge_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequestAcknowledge_IEs_specs_485;
extern asn_TYPE_member_t asn_MBR_SgNBReleaseRequestAcknowledge_IEs_485[3];
extern asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequestReject_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequestReject_IEs_specs_489;
extern asn_TYPE_member_t asn_MBR_SgNBReleaseRequestReject_IEs_489[3];
extern asn_TYPE_descriptor_t asn_DEF_SgNBReleaseRequired_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseRequired_IEs_specs_493;
extern asn_TYPE_member_t asn_MBR_SgNBReleaseRequired_IEs_493[3];
extern asn_TYPE_descriptor_t asn_DEF_SgNBReleaseConfirm_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SgNBReleaseConfirm_IEs_specs_497;
extern asn_TYPE_member_t asn_MBR_SgNBReleaseConfirm_IEs_497[3];
extern asn_TYPE_descriptor_t asn_DEF_SgNBCounterCheckRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SgNBCounterCheckRequest_IEs_specs_501;
extern asn_TYPE_member_t asn_MBR_SgNBCounterCheckRequest_IEs_501[3];
extern asn_TYPE_descriptor_t asn_DEF_SgNBChangeRequired_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SgNBChangeRequired_IEs_specs_505;
extern asn_TYPE_member_t asn_MBR_SgNBChangeRequired_IEs_505[3];
extern asn_TYPE_descriptor_t asn_DEF_SgNBChangeConfirm_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SgNBChangeConfirm_IEs_specs_509;
extern asn_TYPE_member_t asn_MBR_SgNBChangeConfirm_IEs_509[3];
extern asn_TYPE_descriptor_t asn_DEF_RRCTransfer_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_RRCTransfer_IEs_specs_513;
extern asn_TYPE_member_t asn_MBR_RRCTransfer_IEs_513[3];
extern asn_TYPE_descriptor_t asn_DEF_SgNBChangeRefuse_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SgNBChangeRefuse_IEs_specs_517;
extern asn_TYPE_member_t asn_MBR_SgNBChangeRefuse_IEs_517[3];
extern asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupRequest_IEs_specs_521;
extern asn_TYPE_member_t asn_MBR_ENDCX2SetupRequest_IEs_521[3];
extern asn_TYPE_descriptor_t asn_DEF_ENB_ENDCX2SetupReqIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCX2SetupReqIEs_specs_525;
extern asn_TYPE_member_t asn_MBR_ENB_ENDCX2SetupReqIEs_525[3];
extern asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCX2SetupReqIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCX2SetupReqIEs_specs_529;
extern asn_TYPE_member_t asn_MBR_En_gNB_ENDCX2SetupReqIEs_529[3];
extern asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupResponse_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupResponse_IEs_specs_533;
extern asn_TYPE_member_t asn_MBR_ENDCX2SetupResponse_IEs_533[3];
extern asn_TYPE_descriptor_t asn_DEF_ENB_ENDCX2SetupReqAckIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCX2SetupReqAckIEs_specs_537;
extern asn_TYPE_member_t asn_MBR_ENB_ENDCX2SetupReqAckIEs_537[3];
extern asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCX2SetupReqAckIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCX2SetupReqAckIEs_specs_541;
extern asn_TYPE_member_t asn_MBR_En_gNB_ENDCX2SetupReqAckIEs_541[3];
extern asn_TYPE_descriptor_t asn_DEF_ENDCX2SetupFailure_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2SetupFailure_IEs_specs_545;
extern asn_TYPE_member_t asn_MBR_ENDCX2SetupFailure_IEs_545[3];
extern asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdate_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdate_IEs_specs_549;
extern asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdate_IEs_549[3];
extern asn_TYPE_descriptor_t asn_DEF_ENB_ENDCConfigUpdateIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCConfigUpdateIEs_specs_553;
extern asn_TYPE_member_t asn_MBR_ENB_ENDCConfigUpdateIEs_553[3];
extern asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCConfigUpdateIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCConfigUpdateIEs_specs_557;
extern asn_TYPE_member_t asn_MBR_En_gNB_ENDCConfigUpdateIEs_557[3];
extern asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdateAcknowledge_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdateAcknowledge_IEs_specs_561;
extern asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdateAcknowledge_IEs_561[3];
extern asn_TYPE_descriptor_t asn_DEF_ENB_ENDCConfigUpdateAckIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCConfigUpdateAckIEs_specs_565;
extern asn_TYPE_member_t asn_MBR_ENB_ENDCConfigUpdateAckIEs_565[3];
extern asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCConfigUpdateAckIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCConfigUpdateAckIEs_specs_569;
extern asn_TYPE_member_t asn_MBR_En_gNB_ENDCConfigUpdateAckIEs_569[3];
extern asn_TYPE_descriptor_t asn_DEF_ENDCConfigurationUpdateFailure_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ENDCConfigurationUpdateFailure_IEs_specs_573;
extern asn_TYPE_member_t asn_MBR_ENDCConfigurationUpdateFailure_IEs_573[3];
extern asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ENDCCellActivationRequest_IEs_specs_577;
extern asn_TYPE_member_t asn_MBR_ENDCCellActivationRequest_IEs_577[3];
extern asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationResponse_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ENDCCellActivationResponse_IEs_specs_581;
extern asn_TYPE_member_t asn_MBR_ENDCCellActivationResponse_IEs_581[3];
extern asn_TYPE_descriptor_t asn_DEF_ENDCCellActivationFailure_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ENDCCellActivationFailure_IEs_specs_585;
extern asn_TYPE_member_t asn_MBR_ENDCCellActivationFailure_IEs_585[3];
extern asn_TYPE_descriptor_t asn_DEF_SecondaryRATDataUsageReport_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SecondaryRATDataUsageReport_IEs_specs_589;
extern asn_TYPE_member_t asn_MBR_SecondaryRATDataUsageReport_IEs_589[3];
extern asn_TYPE_descriptor_t asn_DEF_SgNBActivityNotification_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SgNBActivityNotification_IEs_specs_593;
extern asn_TYPE_member_t asn_MBR_SgNBActivityNotification_IEs_593[3];
extern asn_TYPE_descriptor_t asn_DEF_ENDCPartialResetRequired_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ENDCPartialResetRequired_IEs_specs_597;
extern asn_TYPE_member_t asn_MBR_ENDCPartialResetRequired_IEs_597[3];
extern asn_TYPE_descriptor_t asn_DEF_ENDCPartialResetConfirm_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ENDCPartialResetConfirm_IEs_specs_601;
extern asn_TYPE_member_t asn_MBR_ENDCPartialResetConfirm_IEs_601[3];
extern asn_TYPE_descriptor_t asn_DEF_EUTRANRCellResourceCoordinationRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_EUTRANRCellResourceCoordinationRequest_IEs_specs_605;
extern asn_TYPE_member_t asn_MBR_EUTRANRCellResourceCoordinationRequest_IEs_605[3];
extern asn_TYPE_descriptor_t asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ENB_EUTRA_NRCellResourceCoordinationReqIEs_specs_609;
extern asn_TYPE_member_t asn_MBR_ENB_EUTRA_NRCellResourceCoordinationReqIEs_609[3];
extern asn_TYPE_descriptor_t asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_specs_613;
extern asn_TYPE_member_t asn_MBR_En_gNB_EUTRA_NRCellResourceCoordinationReqIEs_613[3];
extern asn_TYPE_descriptor_t asn_DEF_EUTRANRCellResourceCoordinationResponse_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_EUTRANRCellResourceCoordinationResponse_IEs_specs_617;
extern asn_TYPE_member_t asn_MBR_EUTRANRCellResourceCoordinationResponse_IEs_617[3];
extern asn_TYPE_descriptor_t asn_DEF_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_specs_621;
extern asn_TYPE_member_t asn_MBR_ENB_EUTRA_NRCellResourceCoordinationReqAckIEs_621[3];
extern asn_TYPE_descriptor_t asn_DEF_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_specs_625;
extern asn_TYPE_member_t asn_MBR_En_gNB_EUTRA_NRCellResourceCoordinationReqAckIEs_625[3];
extern asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalRequest_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2RemovalRequest_IEs_specs_629;
extern asn_TYPE_member_t asn_MBR_ENDCX2RemovalRequest_IEs_629[3];
extern asn_TYPE_descriptor_t asn_DEF_ENB_ENDCX2RemovalReqIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCX2RemovalReqIEs_specs_633;
extern asn_TYPE_member_t asn_MBR_ENB_ENDCX2RemovalReqIEs_633[3];
extern asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCX2RemovalReqIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCX2RemovalReqIEs_specs_637;
extern asn_TYPE_member_t asn_MBR_En_gNB_ENDCX2RemovalReqIEs_637[3];
extern asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalResponse_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2RemovalResponse_IEs_specs_641;
extern asn_TYPE_member_t asn_MBR_ENDCX2RemovalResponse_IEs_641[3];
extern asn_TYPE_descriptor_t asn_DEF_ENB_ENDCX2RemovalReqAckIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ENB_ENDCX2RemovalReqAckIEs_specs_645;
extern asn_TYPE_member_t asn_MBR_ENB_ENDCX2RemovalReqAckIEs_645[3];
extern asn_TYPE_descriptor_t asn_DEF_En_gNB_ENDCX2RemovalReqAckIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_En_gNB_ENDCX2RemovalReqAckIEs_specs_649;
extern asn_TYPE_member_t asn_MBR_En_gNB_ENDCX2RemovalReqAckIEs_649[3];
extern asn_TYPE_descriptor_t asn_DEF_ENDCX2RemovalFailure_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_ENDCX2RemovalFailure_IEs_specs_653;
extern asn_TYPE_member_t asn_MBR_ENDCX2RemovalFailure_IEs_653[3];
extern asn_TYPE_descriptor_t asn_DEF_DataForwardingAddressIndication_IEs;
extern asn_SEQUENCE_specifics_t asn_SPC_DataForwardingAddressIndication_IEs_specs_657;
extern asn_TYPE_member_t asn_MBR_DataForwardingAddressIndication_IEs_657[3];
extern asn_TYPE_descriptor_t asn_DEF_GNBStatusIndicationIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_GNBStatusIndicationIEs_specs_661;
extern asn_TYPE_member_t asn_MBR_GNBStatusIndicationIEs_661[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RAB_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RAB_ItemIEs_specs_665;
extern asn_TYPE_member_t asn_MBR_E_RAB_ItemIEs_665[3];
extern asn_TYPE_descriptor_t asn_DEF_E_RABUsageReport_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_E_RABUsageReport_ItemIEs_specs_669;
extern asn_TYPE_member_t asn_MBR_E_RABUsageReport_ItemIEs_669[3];
extern asn_TYPE_descriptor_t asn_DEF_SecondaryRATUsageReport_ItemIEs;
extern asn_SEQUENCE_specifics_t asn_SPC_SecondaryRATUsageReport_ItemIEs_specs_673;
extern asn_TYPE_member_t asn_MBR_SecondaryRATUsageReport_ItemIEs_673[3];

#ifdef __cplusplus
}
#endif

#endif	/* _ProtocolIE_Field_H_ */
#include "asn_internal.h"
