/*
 * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
 * From ASN.1 module "RANAP-IEs"
 * 	found in "../../asn1/ranap/RANAP-IEs.asn"
 */
#include <constr_CHOICE.h>

#ifndef	_RANAP_IMSI_H_
#define	_RANAP_IMSI_H_


#include <asn_application.h>

/* Including external dependencies */
#include "RANAP_TBCD-STRING.h"

#ifdef __cplusplus
extern "C" {
#endif

/* RANAP_IMSI */
typedef RANAP_TBCD_STRING_t	 RANAP_IMSI_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RANAP_IMSI;
asn_struct_free_f RANAP_IMSI_free;
asn_struct_print_f RANAP_IMSI_print;
asn_constr_check_f RANAP_IMSI_constraint;
ber_type_decoder_f RANAP_IMSI_decode_ber;
der_type_encoder_f RANAP_IMSI_encode_der;
xer_type_decoder_f RANAP_IMSI_decode_xer;
xer_type_encoder_f RANAP_IMSI_encode_xer;
per_type_decoder_f RANAP_IMSI_decode_uper;
per_type_encoder_f RANAP_IMSI_encode_uper;
per_type_decoder_f RANAP_IMSI_decode_aper;
per_type_encoder_f RANAP_IMSI_encode_aper;

#ifdef __cplusplus
}
#endif

#endif	/* _RANAP_IMSI_H_ */
#include <asn_internal.h>
