// This C++ header file was generated by the TTCN-3 compiler
// of the TTCN-3 Test Executor version 11.1.0
// The generation of user and time information were disabled by the -D flag.

// Copyright (c) 2000-2025 Ericsson Telecom AB

// Do not edit this file unless you know what you are doing.

#ifndef MobileL3__CommonIE__Types_HH
#define MobileL3__CommonIE__Types_HH

#ifdef TITAN_RUNTIME_2
#error Generated code does not match with used runtime.\
 Code was generated without -R option but -DTITAN_RUNTIME_2 was used.
#endif

/* Header file includes */

#include <TTCN3.hh>
#include "General_Types.hh"

#if TTCN3_VERSION != 110100
#error Version mismatch detected.\
 Please check the version of the TTCN-3 compiler and the base library.\
 Run make clean and rebuild the project if the version of the compiler changed recently.
#endif

#ifndef LINUX
#error This file should be compiled on LINUX
#endif

#undef MobileL3__CommonIE__Types_HH
#endif

namespace MobileL3__CommonIE__Types {

/* Forward declarations of classes */

class MS__parameters;
class MS__parameters_template;
class Type1__V;
class Type1__V_template;
class Type1__TV;
class Type1__TV_template;
class Type2;
class Type2_template;
class Type3__V;
class Type3__V_template;
class Type3__TV;
class Type3__TV_template;
class Type4__LV;
class Type4__LV_template;
class Type4__TLV;
class Type4__TLV_template;
class ML3__NotifySS__Arg;
class ML3__NotifySS__Arg_template;
class CellIdentity;
class CellIdentity_template;
class CipheringKeySequenceNumberV;
class CipheringKeySequenceNumberV_template;
class CipheringKeySequenceNumberTV;
class CipheringKeySequenceNumberTV_template;
class LocationAreaIdentification__V;
class LocationAreaIdentification__V_template;
class LocationAreaIdentification__TV;
class LocationAreaIdentification__TV_template;
class OddEvenInd__Identity;
class OddEvenInd__Identity_template;
class IMSI__L3;
class IMSI__L3_template;
class IMEI__L3;
class IMEI__L3_template;
class IMEI__SV;
class IMEI__SV_template;
class TMSI__PTMSI;
class TMSI__PTMSI_template;
class TMGI__and__MBMS__SessionID;
class TMGI__and__MBMS__SessionID_template;
class No__Identity;
class No__Identity_template;
class MobileIdentityV;
class MobileIdentityV_template;
class MobileIdentityLV;
class MobileIdentityLV_template;
class MobileIdentityTLV;
class MobileIdentityTLV_template;
class MobileStationClassmark1__TV;
class MobileStationClassmark1__TV_template;
class MobileStationClassmark1__V;
class MobileStationClassmark1__V_template;
class MobileStationClassmark2__oct4;
class MobileStationClassmark2__oct4_template;
class MobileStationClassmark2__oct5;
class MobileStationClassmark2__oct5_template;
class MobileStationClassmark2__LV;
class MobileStationClassmark2__LV_template;
class MobileStationClassmark2__TLV;
class MobileStationClassmark2__TLV_template;
class ClassmarkInformationType2__forUMTS;
class ClassmarkInformationType2__forUMTS_template;
class MobileStationClassmark3__TLV;
class MobileStationClassmark3__TLV_template;
class MobileStationClassmark3__LV;
class MobileStationClassmark3__LV_template;
class UTRACSGCellsReporting;
class UTRACSGCellsReporting_template;
class VAMOSLevel;
class VAMOSLevel_template;
class DescriptiveGroupOrBroadcastCallReference__V;
class DescriptiveGroupOrBroadcastCallReference__V_template;
class groupCipherKeyNumber__TV;
class groupCipherKeyNumber__TV_template;
class PdAndSapi;
class PdAndSapi_template;
class PriorityLevel__ML3;
class PriorityLevel__ML3_template;
class PLMNListTLV;
class PLMNListTLV_template;
class MS__NetworkFeatureSupportTV;
class MS__NetworkFeatureSupportTV_template;
class GPRSTimer3V;
class GPRSTimer3V_template;
class GPRSTimer3TLV;
class GPRSTimer3TLV_template;
class Diagnostics;
class Diagnostics_template;
class ML3__Cause__oct3;
class ML3__Cause__oct3_template;
class ML3__Cause__oct4;
class ML3__Cause__oct4_template;
class ML3__Cause__LV;
class ML3__Cause__LV_template;
class ML3__Cause__TLV;
class ML3__Cause__TLV_template;
class Facility__TLV;
class Facility__TLV_template;
class Facility__LV;
class Facility__LV_template;
class SS__VersionIndicator;
class SS__VersionIndicator_template;
class codec;
class codec_template;
class CodecList__ML3;
class CodecList__ML3_template;
class SupportedCodecList;
class SupportedCodecList_template;
class DevicePropertiesTV;
class DevicePropertiesTV_template;
class P__TMSISignature2TLV;
class P__TMSISignature2TLV_template;
class P__TMSI__TypeTV;
class P__TMSI__TypeTV_template;
class RoutingAreaIdentification2TLV;
class RoutingAreaIdentification2TLV_template;
class AdditionalUpdateParameterTV;
class AdditionalUpdateParameterTV_template;

} /* end of namespace */

#ifndef MobileL3__CommonIE__Types_HH
#define MobileL3__CommonIE__Types_HH

namespace MobileL3__CommonIE__Types {

/* Type definitions */

typedef BITSTRING groupCipherKeyNumber__V;
typedef BITSTRING_template groupCipherKeyNumber__V_template;

/* Class definitions */

class MS__parameters : public Base_Type {
  INTEGER field_imsi__length;
  BITSTRING field_imsi__firstdigit;
  OCTETSTRING field_imsi;
  OCTETSTRING field_number;
  INTEGER field_SCCP__connId;
  INTEGER field_L3__NSD;
  BITSTRING field_tiFlag;
public:
  MS__parameters();
  MS__parameters(const INTEGER& par_imsi__length,
    const BITSTRING& par_imsi__firstdigit,
    const OCTETSTRING& par_imsi,
    const OCTETSTRING& par_number,
    const INTEGER& par_SCCP__connId,
    const INTEGER& par_L3__NSD,
    const BITSTRING& par_tiFlag);
  MS__parameters(const MS__parameters& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  MS__parameters& operator=(const MS__parameters& other_value);
  boolean operator==(const MS__parameters& other_value) const;
  inline boolean operator!=(const MS__parameters& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline INTEGER& imsi__length()
    {return field_imsi__length;}
  inline const INTEGER& imsi__length() const
    {return field_imsi__length;}
  inline BITSTRING& imsi__firstdigit()
    {return field_imsi__firstdigit;}
  inline const BITSTRING& imsi__firstdigit() const
    {return field_imsi__firstdigit;}
  inline OCTETSTRING& imsi()
    {return field_imsi;}
  inline const OCTETSTRING& imsi() const
    {return field_imsi;}
  inline OCTETSTRING& number()
    {return field_number;}
  inline const OCTETSTRING& number() const
    {return field_number;}
  inline INTEGER& SCCP__connId()
    {return field_SCCP__connId;}
  inline const INTEGER& SCCP__connId() const
    {return field_SCCP__connId;}
  inline INTEGER& L3__NSD()
    {return field_L3__NSD;}
  inline const INTEGER& L3__NSD() const
    {return field_L3__NSD;}
  inline BITSTRING& tiFlag()
    {return field_tiFlag;}
  inline const BITSTRING& tiFlag() const
    {return field_tiFlag;}
  inline int size_of() const
    {return 7;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class MS__parameters_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
MS__parameters_template *list_value;
} value_list;
struct {
MS__parameters_template* precondition;
MS__parameters_template* implied_template;
} implication_;
dynmatch_struct<MS__parameters>* dyn_match;
};

void set_specific();
void copy_value(const MS__parameters& other_value);
void copy_template(const MS__parameters_template& other_value);

public:
MS__parameters_template();
MS__parameters_template(template_sel other_value);
MS__parameters_template(const MS__parameters& other_value);
MS__parameters_template(const OPTIONAL<MS__parameters>& other_value);
MS__parameters_template(MS__parameters_template* p_precondition, MS__parameters_template* p_implied_template);
MS__parameters_template(Dynamic_Match_Interface<MS__parameters>* p_dyn_match);
MS__parameters_template(const MS__parameters_template& other_value);
~MS__parameters_template();
MS__parameters_template& operator=(template_sel other_value);
MS__parameters_template& operator=(const MS__parameters& other_value);
MS__parameters_template& operator=(const OPTIONAL<MS__parameters>& other_value);
MS__parameters_template& operator=(const MS__parameters_template& other_value);
boolean match(const MS__parameters& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
MS__parameters valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
MS__parameters_template& list_item(unsigned int list_index) const;
INTEGER_template& imsi__length();
const INTEGER_template& imsi__length() const;
BITSTRING_template& imsi__firstdigit();
const BITSTRING_template& imsi__firstdigit() const;
OCTETSTRING_template& imsi();
const OCTETSTRING_template& imsi() const;
OCTETSTRING_template& number();
const OCTETSTRING_template& number() const;
INTEGER_template& SCCP__connId();
const INTEGER_template& SCCP__connId() const;
INTEGER_template& L3__NSD();
const INTEGER_template& L3__NSD() const;
BITSTRING_template& tiFlag();
const BITSTRING_template& tiFlag() const;
int size_of() const;
void log() const;
void log_match(const MS__parameters& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class Type1__V : public Base_Type {
  BITSTRING field_dummy;
  BITSTRING field_valuePart;
public:
  Type1__V();
  Type1__V(const BITSTRING& par_dummy,
    const BITSTRING& par_valuePart);
  Type1__V(const Type1__V& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  Type1__V& operator=(const Type1__V& other_value);
  boolean operator==(const Type1__V& other_value) const;
  inline boolean operator!=(const Type1__V& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& dummy()
    {return field_dummy;}
  inline const BITSTRING& dummy() const
    {return field_dummy;}
  inline BITSTRING& valuePart()
    {return field_valuePart;}
  inline const BITSTRING& valuePart() const
    {return field_valuePart;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class Type1__V_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
Type1__V_template *list_value;
} value_list;
struct {
Type1__V_template* precondition;
Type1__V_template* implied_template;
} implication_;
dynmatch_struct<Type1__V>* dyn_match;
};

void set_specific();
void copy_value(const Type1__V& other_value);
void copy_template(const Type1__V_template& other_value);

public:
Type1__V_template();
Type1__V_template(template_sel other_value);
Type1__V_template(const Type1__V& other_value);
Type1__V_template(const OPTIONAL<Type1__V>& other_value);
Type1__V_template(Type1__V_template* p_precondition, Type1__V_template* p_implied_template);
Type1__V_template(Dynamic_Match_Interface<Type1__V>* p_dyn_match);
Type1__V_template(const Type1__V_template& other_value);
~Type1__V_template();
Type1__V_template& operator=(template_sel other_value);
Type1__V_template& operator=(const Type1__V& other_value);
Type1__V_template& operator=(const OPTIONAL<Type1__V>& other_value);
Type1__V_template& operator=(const Type1__V_template& other_value);
boolean match(const Type1__V& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
Type1__V valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
Type1__V_template& list_item(unsigned int list_index) const;
BITSTRING_template& dummy();
const BITSTRING_template& dummy() const;
BITSTRING_template& valuePart();
const BITSTRING_template& valuePart() const;
int size_of() const;
void log() const;
void log_match(const Type1__V& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class Type1__TV : public Base_Type {
  BITSTRING field_valuePart;
  BITSTRING field_elementIdentifier;
public:
  Type1__TV();
  Type1__TV(const BITSTRING& par_valuePart,
    const BITSTRING& par_elementIdentifier);
  Type1__TV(const Type1__TV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  Type1__TV& operator=(const Type1__TV& other_value);
  boolean operator==(const Type1__TV& other_value) const;
  inline boolean operator!=(const Type1__TV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& valuePart()
    {return field_valuePart;}
  inline const BITSTRING& valuePart() const
    {return field_valuePart;}
  inline BITSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const BITSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class Type1__TV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
Type1__TV_template *list_value;
} value_list;
struct {
Type1__TV_template* precondition;
Type1__TV_template* implied_template;
} implication_;
dynmatch_struct<Type1__TV>* dyn_match;
};

void set_specific();
void copy_value(const Type1__TV& other_value);
void copy_template(const Type1__TV_template& other_value);

public:
Type1__TV_template();
Type1__TV_template(template_sel other_value);
Type1__TV_template(const Type1__TV& other_value);
Type1__TV_template(const OPTIONAL<Type1__TV>& other_value);
Type1__TV_template(Type1__TV_template* p_precondition, Type1__TV_template* p_implied_template);
Type1__TV_template(Dynamic_Match_Interface<Type1__TV>* p_dyn_match);
Type1__TV_template(const Type1__TV_template& other_value);
~Type1__TV_template();
Type1__TV_template& operator=(template_sel other_value);
Type1__TV_template& operator=(const Type1__TV& other_value);
Type1__TV_template& operator=(const OPTIONAL<Type1__TV>& other_value);
Type1__TV_template& operator=(const Type1__TV_template& other_value);
boolean match(const Type1__TV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
Type1__TV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
Type1__TV_template& list_item(unsigned int list_index) const;
BITSTRING_template& valuePart();
const BITSTRING_template& valuePart() const;
BITSTRING_template& elementIdentifier();
const BITSTRING_template& elementIdentifier() const;
int size_of() const;
void log() const;
void log_match(const Type1__TV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class Type2 : public Base_Type {
  OCTETSTRING field_elementIdentifier;
public:
  Type2();
  Type2(const OCTETSTRING& par_elementIdentifier);
  Type2(const Type2& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  Type2& operator=(const Type2& other_value);
  boolean operator==(const Type2& other_value) const;
  inline boolean operator!=(const Type2& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline OCTETSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const OCTETSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline int size_of() const
    {return 1;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class Type2_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
Type2_template *list_value;
} value_list;
struct {
Type2_template* precondition;
Type2_template* implied_template;
} implication_;
dynmatch_struct<Type2>* dyn_match;
};

void set_specific();
void copy_value(const Type2& other_value);
void copy_template(const Type2_template& other_value);

public:
Type2_template();
Type2_template(template_sel other_value);
Type2_template(const Type2& other_value);
Type2_template(const OPTIONAL<Type2>& other_value);
Type2_template(Type2_template* p_precondition, Type2_template* p_implied_template);
Type2_template(Dynamic_Match_Interface<Type2>* p_dyn_match);
Type2_template(const Type2_template& other_value);
~Type2_template();
Type2_template& operator=(template_sel other_value);
Type2_template& operator=(const Type2& other_value);
Type2_template& operator=(const OPTIONAL<Type2>& other_value);
Type2_template& operator=(const Type2_template& other_value);
boolean match(const Type2& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
Type2 valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
Type2_template& list_item(unsigned int list_index) const;
OCTETSTRING_template& elementIdentifier();
const OCTETSTRING_template& elementIdentifier() const;
int size_of() const;
void log() const;
void log_match(const Type2& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class Type3__V : public Base_Type {
  OCTETSTRING field_valuePart;
public:
  Type3__V();
  Type3__V(const OCTETSTRING& par_valuePart);
  Type3__V(const Type3__V& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  Type3__V& operator=(const Type3__V& other_value);
  boolean operator==(const Type3__V& other_value) const;
  inline boolean operator!=(const Type3__V& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline OCTETSTRING& valuePart()
    {return field_valuePart;}
  inline const OCTETSTRING& valuePart() const
    {return field_valuePart;}
  inline int size_of() const
    {return 1;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class Type3__V_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
Type3__V_template *list_value;
} value_list;
struct {
Type3__V_template* precondition;
Type3__V_template* implied_template;
} implication_;
dynmatch_struct<Type3__V>* dyn_match;
};

void set_specific();
void copy_value(const Type3__V& other_value);
void copy_template(const Type3__V_template& other_value);

public:
Type3__V_template();
Type3__V_template(template_sel other_value);
Type3__V_template(const Type3__V& other_value);
Type3__V_template(const OPTIONAL<Type3__V>& other_value);
Type3__V_template(Type3__V_template* p_precondition, Type3__V_template* p_implied_template);
Type3__V_template(Dynamic_Match_Interface<Type3__V>* p_dyn_match);
Type3__V_template(const Type3__V_template& other_value);
~Type3__V_template();
Type3__V_template& operator=(template_sel other_value);
Type3__V_template& operator=(const Type3__V& other_value);
Type3__V_template& operator=(const OPTIONAL<Type3__V>& other_value);
Type3__V_template& operator=(const Type3__V_template& other_value);
boolean match(const Type3__V& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
Type3__V valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
Type3__V_template& list_item(unsigned int list_index) const;
OCTETSTRING_template& valuePart();
const OCTETSTRING_template& valuePart() const;
int size_of() const;
void log() const;
void log_match(const Type3__V& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class Type3__TV : public Base_Type {
  OCTETSTRING field_elementIdentifier;
  OCTETSTRING field_valuePart;
public:
  Type3__TV();
  Type3__TV(const OCTETSTRING& par_elementIdentifier,
    const OCTETSTRING& par_valuePart);
  Type3__TV(const Type3__TV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  Type3__TV& operator=(const Type3__TV& other_value);
  boolean operator==(const Type3__TV& other_value) const;
  inline boolean operator!=(const Type3__TV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline OCTETSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const OCTETSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline OCTETSTRING& valuePart()
    {return field_valuePart;}
  inline const OCTETSTRING& valuePart() const
    {return field_valuePart;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class Type3__TV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
Type3__TV_template *list_value;
} value_list;
struct {
Type3__TV_template* precondition;
Type3__TV_template* implied_template;
} implication_;
dynmatch_struct<Type3__TV>* dyn_match;
};

void set_specific();
void copy_value(const Type3__TV& other_value);
void copy_template(const Type3__TV_template& other_value);

public:
Type3__TV_template();
Type3__TV_template(template_sel other_value);
Type3__TV_template(const Type3__TV& other_value);
Type3__TV_template(const OPTIONAL<Type3__TV>& other_value);
Type3__TV_template(Type3__TV_template* p_precondition, Type3__TV_template* p_implied_template);
Type3__TV_template(Dynamic_Match_Interface<Type3__TV>* p_dyn_match);
Type3__TV_template(const Type3__TV_template& other_value);
~Type3__TV_template();
Type3__TV_template& operator=(template_sel other_value);
Type3__TV_template& operator=(const Type3__TV& other_value);
Type3__TV_template& operator=(const OPTIONAL<Type3__TV>& other_value);
Type3__TV_template& operator=(const Type3__TV_template& other_value);
boolean match(const Type3__TV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
Type3__TV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
Type3__TV_template& list_item(unsigned int list_index) const;
OCTETSTRING_template& elementIdentifier();
const OCTETSTRING_template& elementIdentifier() const;
OCTETSTRING_template& valuePart();
const OCTETSTRING_template& valuePart() const;
int size_of() const;
void log() const;
void log_match(const Type3__TV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class Type4__LV : public Base_Type {
  INTEGER field_lengthIndicator;
  OCTETSTRING field_valuePart;
public:
  Type4__LV();
  Type4__LV(const INTEGER& par_lengthIndicator,
    const OCTETSTRING& par_valuePart);
  Type4__LV(const Type4__LV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  Type4__LV& operator=(const Type4__LV& other_value);
  boolean operator==(const Type4__LV& other_value) const;
  inline boolean operator!=(const Type4__LV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline INTEGER& lengthIndicator()
    {return field_lengthIndicator;}
  inline const INTEGER& lengthIndicator() const
    {return field_lengthIndicator;}
  inline OCTETSTRING& valuePart()
    {return field_valuePart;}
  inline const OCTETSTRING& valuePart() const
    {return field_valuePart;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class Type4__LV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
Type4__LV_template *list_value;
} value_list;
struct {
Type4__LV_template* precondition;
Type4__LV_template* implied_template;
} implication_;
dynmatch_struct<Type4__LV>* dyn_match;
};

void set_specific();
void copy_value(const Type4__LV& other_value);
void copy_template(const Type4__LV_template& other_value);

public:
Type4__LV_template();
Type4__LV_template(template_sel other_value);
Type4__LV_template(const Type4__LV& other_value);
Type4__LV_template(const OPTIONAL<Type4__LV>& other_value);
Type4__LV_template(Type4__LV_template* p_precondition, Type4__LV_template* p_implied_template);
Type4__LV_template(Dynamic_Match_Interface<Type4__LV>* p_dyn_match);
Type4__LV_template(const Type4__LV_template& other_value);
~Type4__LV_template();
Type4__LV_template& operator=(template_sel other_value);
Type4__LV_template& operator=(const Type4__LV& other_value);
Type4__LV_template& operator=(const OPTIONAL<Type4__LV>& other_value);
Type4__LV_template& operator=(const Type4__LV_template& other_value);
boolean match(const Type4__LV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
Type4__LV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
Type4__LV_template& list_item(unsigned int list_index) const;
INTEGER_template& lengthIndicator();
const INTEGER_template& lengthIndicator() const;
OCTETSTRING_template& valuePart();
const OCTETSTRING_template& valuePart() const;
int size_of() const;
void log() const;
void log_match(const Type4__LV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class Type4__TLV : public Base_Type {
  OCTETSTRING field_elementIdentifier;
  INTEGER field_lengthIndicator;
  OCTETSTRING field_valuePart;
public:
  Type4__TLV();
  Type4__TLV(const OCTETSTRING& par_elementIdentifier,
    const INTEGER& par_lengthIndicator,
    const OCTETSTRING& par_valuePart);
  Type4__TLV(const Type4__TLV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  Type4__TLV& operator=(const Type4__TLV& other_value);
  boolean operator==(const Type4__TLV& other_value) const;
  inline boolean operator!=(const Type4__TLV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline OCTETSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const OCTETSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline INTEGER& lengthIndicator()
    {return field_lengthIndicator;}
  inline const INTEGER& lengthIndicator() const
    {return field_lengthIndicator;}
  inline OCTETSTRING& valuePart()
    {return field_valuePart;}
  inline const OCTETSTRING& valuePart() const
    {return field_valuePart;}
  inline int size_of() const
    {return 3;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class Type4__TLV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
Type4__TLV_template *list_value;
} value_list;
struct {
Type4__TLV_template* precondition;
Type4__TLV_template* implied_template;
} implication_;
dynmatch_struct<Type4__TLV>* dyn_match;
};

void set_specific();
void copy_value(const Type4__TLV& other_value);
void copy_template(const Type4__TLV_template& other_value);

public:
Type4__TLV_template();
Type4__TLV_template(template_sel other_value);
Type4__TLV_template(const Type4__TLV& other_value);
Type4__TLV_template(const OPTIONAL<Type4__TLV>& other_value);
Type4__TLV_template(Type4__TLV_template* p_precondition, Type4__TLV_template* p_implied_template);
Type4__TLV_template(Dynamic_Match_Interface<Type4__TLV>* p_dyn_match);
Type4__TLV_template(const Type4__TLV_template& other_value);
~Type4__TLV_template();
Type4__TLV_template& operator=(template_sel other_value);
Type4__TLV_template& operator=(const Type4__TLV& other_value);
Type4__TLV_template& operator=(const OPTIONAL<Type4__TLV>& other_value);
Type4__TLV_template& operator=(const Type4__TLV_template& other_value);
boolean match(const Type4__TLV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
Type4__TLV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
Type4__TLV_template& list_item(unsigned int list_index) const;
OCTETSTRING_template& elementIdentifier();
const OCTETSTRING_template& elementIdentifier() const;
INTEGER_template& lengthIndicator();
const INTEGER_template& lengthIndicator() const;
OCTETSTRING_template& valuePart();
const OCTETSTRING_template& valuePart() const;
int size_of() const;
void log() const;
void log_match(const Type4__TLV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class ML3__NotifySS__Arg : public Base_Type {
  OCTETSTRING field_sequenceTag;
  OCTETSTRING field_sequenceLength;
  OCTETSTRING field_ssCodeTag;
  OCTETSTRING field_ssCodeLength;
  OCTETSTRING field_ssCodeValue;
  OCTETSTRING field_ssIndicatorTag;
  OCTETSTRING field_ssIndicatorLength;
  OCTETSTRING field_ssIndicatorValue;
public:
  ML3__NotifySS__Arg();
  ML3__NotifySS__Arg(const OCTETSTRING& par_sequenceTag,
    const OCTETSTRING& par_sequenceLength,
    const OCTETSTRING& par_ssCodeTag,
    const OCTETSTRING& par_ssCodeLength,
    const OCTETSTRING& par_ssCodeValue,
    const OCTETSTRING& par_ssIndicatorTag,
    const OCTETSTRING& par_ssIndicatorLength,
    const OCTETSTRING& par_ssIndicatorValue);
  ML3__NotifySS__Arg(const ML3__NotifySS__Arg& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  ML3__NotifySS__Arg& operator=(const ML3__NotifySS__Arg& other_value);
  boolean operator==(const ML3__NotifySS__Arg& other_value) const;
  inline boolean operator!=(const ML3__NotifySS__Arg& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline OCTETSTRING& sequenceTag()
    {return field_sequenceTag;}
  inline const OCTETSTRING& sequenceTag() const
    {return field_sequenceTag;}
  inline OCTETSTRING& sequenceLength()
    {return field_sequenceLength;}
  inline const OCTETSTRING& sequenceLength() const
    {return field_sequenceLength;}
  inline OCTETSTRING& ssCodeTag()
    {return field_ssCodeTag;}
  inline const OCTETSTRING& ssCodeTag() const
    {return field_ssCodeTag;}
  inline OCTETSTRING& ssCodeLength()
    {return field_ssCodeLength;}
  inline const OCTETSTRING& ssCodeLength() const
    {return field_ssCodeLength;}
  inline OCTETSTRING& ssCodeValue()
    {return field_ssCodeValue;}
  inline const OCTETSTRING& ssCodeValue() const
    {return field_ssCodeValue;}
  inline OCTETSTRING& ssIndicatorTag()
    {return field_ssIndicatorTag;}
  inline const OCTETSTRING& ssIndicatorTag() const
    {return field_ssIndicatorTag;}
  inline OCTETSTRING& ssIndicatorLength()
    {return field_ssIndicatorLength;}
  inline const OCTETSTRING& ssIndicatorLength() const
    {return field_ssIndicatorLength;}
  inline OCTETSTRING& ssIndicatorValue()
    {return field_ssIndicatorValue;}
  inline const OCTETSTRING& ssIndicatorValue() const
    {return field_ssIndicatorValue;}
  inline int size_of() const
    {return 8;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class ML3__NotifySS__Arg_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
ML3__NotifySS__Arg_template *list_value;
} value_list;
struct {
ML3__NotifySS__Arg_template* precondition;
ML3__NotifySS__Arg_template* implied_template;
} implication_;
dynmatch_struct<ML3__NotifySS__Arg>* dyn_match;
};

void set_specific();
void copy_value(const ML3__NotifySS__Arg& other_value);
void copy_template(const ML3__NotifySS__Arg_template& other_value);

public:
ML3__NotifySS__Arg_template();
ML3__NotifySS__Arg_template(template_sel other_value);
ML3__NotifySS__Arg_template(const ML3__NotifySS__Arg& other_value);
ML3__NotifySS__Arg_template(const OPTIONAL<ML3__NotifySS__Arg>& other_value);
ML3__NotifySS__Arg_template(ML3__NotifySS__Arg_template* p_precondition, ML3__NotifySS__Arg_template* p_implied_template);
ML3__NotifySS__Arg_template(Dynamic_Match_Interface<ML3__NotifySS__Arg>* p_dyn_match);
ML3__NotifySS__Arg_template(const ML3__NotifySS__Arg_template& other_value);
~ML3__NotifySS__Arg_template();
ML3__NotifySS__Arg_template& operator=(template_sel other_value);
ML3__NotifySS__Arg_template& operator=(const ML3__NotifySS__Arg& other_value);
ML3__NotifySS__Arg_template& operator=(const OPTIONAL<ML3__NotifySS__Arg>& other_value);
ML3__NotifySS__Arg_template& operator=(const ML3__NotifySS__Arg_template& other_value);
boolean match(const ML3__NotifySS__Arg& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
ML3__NotifySS__Arg valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
ML3__NotifySS__Arg_template& list_item(unsigned int list_index) const;
OCTETSTRING_template& sequenceTag();
const OCTETSTRING_template& sequenceTag() const;
OCTETSTRING_template& sequenceLength();
const OCTETSTRING_template& sequenceLength() const;
OCTETSTRING_template& ssCodeTag();
const OCTETSTRING_template& ssCodeTag() const;
OCTETSTRING_template& ssCodeLength();
const OCTETSTRING_template& ssCodeLength() const;
OCTETSTRING_template& ssCodeValue();
const OCTETSTRING_template& ssCodeValue() const;
OCTETSTRING_template& ssIndicatorTag();
const OCTETSTRING_template& ssIndicatorTag() const;
OCTETSTRING_template& ssIndicatorLength();
const OCTETSTRING_template& ssIndicatorLength() const;
OCTETSTRING_template& ssIndicatorValue();
const OCTETSTRING_template& ssIndicatorValue() const;
int size_of() const;
void log() const;
void log_match(const ML3__NotifySS__Arg& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class CellIdentity : public Base_Type {
  OCTETSTRING field_elementIdentifier;
  OCTETSTRING field_cIvalue;
public:
  CellIdentity();
  CellIdentity(const OCTETSTRING& par_elementIdentifier,
    const OCTETSTRING& par_cIvalue);
  CellIdentity(const CellIdentity& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  CellIdentity& operator=(const CellIdentity& other_value);
  boolean operator==(const CellIdentity& other_value) const;
  inline boolean operator!=(const CellIdentity& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline OCTETSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const OCTETSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline OCTETSTRING& cIvalue()
    {return field_cIvalue;}
  inline const OCTETSTRING& cIvalue() const
    {return field_cIvalue;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class CellIdentity_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
CellIdentity_template *list_value;
} value_list;
struct {
CellIdentity_template* precondition;
CellIdentity_template* implied_template;
} implication_;
dynmatch_struct<CellIdentity>* dyn_match;
};

void set_specific();
void copy_value(const CellIdentity& other_value);
void copy_template(const CellIdentity_template& other_value);

public:
CellIdentity_template();
CellIdentity_template(template_sel other_value);
CellIdentity_template(const CellIdentity& other_value);
CellIdentity_template(const OPTIONAL<CellIdentity>& other_value);
CellIdentity_template(CellIdentity_template* p_precondition, CellIdentity_template* p_implied_template);
CellIdentity_template(Dynamic_Match_Interface<CellIdentity>* p_dyn_match);
CellIdentity_template(const CellIdentity_template& other_value);
~CellIdentity_template();
CellIdentity_template& operator=(template_sel other_value);
CellIdentity_template& operator=(const CellIdentity& other_value);
CellIdentity_template& operator=(const OPTIONAL<CellIdentity>& other_value);
CellIdentity_template& operator=(const CellIdentity_template& other_value);
boolean match(const CellIdentity& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
CellIdentity valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
CellIdentity_template& list_item(unsigned int list_index) const;
OCTETSTRING_template& elementIdentifier();
const OCTETSTRING_template& elementIdentifier() const;
OCTETSTRING_template& cIvalue();
const OCTETSTRING_template& cIvalue() const;
int size_of() const;
void log() const;
void log_match(const CellIdentity& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class CipheringKeySequenceNumberV : public Base_Type {
  BITSTRING field_keySequence;
  BITSTRING field_spare;
public:
  CipheringKeySequenceNumberV();
  CipheringKeySequenceNumberV(const BITSTRING& par_keySequence,
    const BITSTRING& par_spare);
  CipheringKeySequenceNumberV(const CipheringKeySequenceNumberV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  CipheringKeySequenceNumberV& operator=(const CipheringKeySequenceNumberV& other_value);
  boolean operator==(const CipheringKeySequenceNumberV& other_value) const;
  inline boolean operator!=(const CipheringKeySequenceNumberV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& keySequence()
    {return field_keySequence;}
  inline const BITSTRING& keySequence() const
    {return field_keySequence;}
  inline BITSTRING& spare()
    {return field_spare;}
  inline const BITSTRING& spare() const
    {return field_spare;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class CipheringKeySequenceNumberV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
CipheringKeySequenceNumberV_template *list_value;
} value_list;
struct {
CipheringKeySequenceNumberV_template* precondition;
CipheringKeySequenceNumberV_template* implied_template;
} implication_;
dynmatch_struct<CipheringKeySequenceNumberV>* dyn_match;
};

void set_specific();
void copy_value(const CipheringKeySequenceNumberV& other_value);
void copy_template(const CipheringKeySequenceNumberV_template& other_value);

public:
CipheringKeySequenceNumberV_template();
CipheringKeySequenceNumberV_template(template_sel other_value);
CipheringKeySequenceNumberV_template(const CipheringKeySequenceNumberV& other_value);
CipheringKeySequenceNumberV_template(const OPTIONAL<CipheringKeySequenceNumberV>& other_value);
CipheringKeySequenceNumberV_template(CipheringKeySequenceNumberV_template* p_precondition, CipheringKeySequenceNumberV_template* p_implied_template);
CipheringKeySequenceNumberV_template(Dynamic_Match_Interface<CipheringKeySequenceNumberV>* p_dyn_match);
CipheringKeySequenceNumberV_template(const CipheringKeySequenceNumberV_template& other_value);
~CipheringKeySequenceNumberV_template();
CipheringKeySequenceNumberV_template& operator=(template_sel other_value);
CipheringKeySequenceNumberV_template& operator=(const CipheringKeySequenceNumberV& other_value);
CipheringKeySequenceNumberV_template& operator=(const OPTIONAL<CipheringKeySequenceNumberV>& other_value);
CipheringKeySequenceNumberV_template& operator=(const CipheringKeySequenceNumberV_template& other_value);
boolean match(const CipheringKeySequenceNumberV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
CipheringKeySequenceNumberV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
CipheringKeySequenceNumberV_template& list_item(unsigned int list_index) const;
BITSTRING_template& keySequence();
const BITSTRING_template& keySequence() const;
BITSTRING_template& spare();
const BITSTRING_template& spare() const;
int size_of() const;
void log() const;
void log_match(const CipheringKeySequenceNumberV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class CipheringKeySequenceNumberTV : public Base_Type {
  CipheringKeySequenceNumberV field_keySequence;
  BITSTRING field_elementIdentifier;
public:
  CipheringKeySequenceNumberTV();
  CipheringKeySequenceNumberTV(const CipheringKeySequenceNumberV& par_keySequence,
    const BITSTRING& par_elementIdentifier);
  CipheringKeySequenceNumberTV(const CipheringKeySequenceNumberTV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  CipheringKeySequenceNumberTV& operator=(const CipheringKeySequenceNumberTV& other_value);
  boolean operator==(const CipheringKeySequenceNumberTV& other_value) const;
  inline boolean operator!=(const CipheringKeySequenceNumberTV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline CipheringKeySequenceNumberV& keySequence()
    {return field_keySequence;}
  inline const CipheringKeySequenceNumberV& keySequence() const
    {return field_keySequence;}
  inline BITSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const BITSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class CipheringKeySequenceNumberTV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
CipheringKeySequenceNumberTV_template *list_value;
} value_list;
struct {
CipheringKeySequenceNumberTV_template* precondition;
CipheringKeySequenceNumberTV_template* implied_template;
} implication_;
dynmatch_struct<CipheringKeySequenceNumberTV>* dyn_match;
};

void set_specific();
void copy_value(const CipheringKeySequenceNumberTV& other_value);
void copy_template(const CipheringKeySequenceNumberTV_template& other_value);

public:
CipheringKeySequenceNumberTV_template();
CipheringKeySequenceNumberTV_template(template_sel other_value);
CipheringKeySequenceNumberTV_template(const CipheringKeySequenceNumberTV& other_value);
CipheringKeySequenceNumberTV_template(const OPTIONAL<CipheringKeySequenceNumberTV>& other_value);
CipheringKeySequenceNumberTV_template(CipheringKeySequenceNumberTV_template* p_precondition, CipheringKeySequenceNumberTV_template* p_implied_template);
CipheringKeySequenceNumberTV_template(Dynamic_Match_Interface<CipheringKeySequenceNumberTV>* p_dyn_match);
CipheringKeySequenceNumberTV_template(const CipheringKeySequenceNumberTV_template& other_value);
~CipheringKeySequenceNumberTV_template();
CipheringKeySequenceNumberTV_template& operator=(template_sel other_value);
CipheringKeySequenceNumberTV_template& operator=(const CipheringKeySequenceNumberTV& other_value);
CipheringKeySequenceNumberTV_template& operator=(const OPTIONAL<CipheringKeySequenceNumberTV>& other_value);
CipheringKeySequenceNumberTV_template& operator=(const CipheringKeySequenceNumberTV_template& other_value);
boolean match(const CipheringKeySequenceNumberTV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
CipheringKeySequenceNumberTV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
CipheringKeySequenceNumberTV_template& list_item(unsigned int list_index) const;
CipheringKeySequenceNumberV_template& keySequence();
const CipheringKeySequenceNumberV_template& keySequence() const;
BITSTRING_template& elementIdentifier();
const BITSTRING_template& elementIdentifier() const;
int size_of() const;
void log() const;
void log_match(const CipheringKeySequenceNumberTV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class LocationAreaIdentification__V : public Base_Type {
  OCTETSTRING field_mcc__mnc;
  OCTETSTRING field_lac;
public:
  LocationAreaIdentification__V();
  LocationAreaIdentification__V(const OCTETSTRING& par_mcc__mnc,
    const OCTETSTRING& par_lac);
  LocationAreaIdentification__V(const LocationAreaIdentification__V& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  LocationAreaIdentification__V& operator=(const LocationAreaIdentification__V& other_value);
  boolean operator==(const LocationAreaIdentification__V& other_value) const;
  inline boolean operator!=(const LocationAreaIdentification__V& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline OCTETSTRING& mcc__mnc()
    {return field_mcc__mnc;}
  inline const OCTETSTRING& mcc__mnc() const
    {return field_mcc__mnc;}
  inline OCTETSTRING& lac()
    {return field_lac;}
  inline const OCTETSTRING& lac() const
    {return field_lac;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class LocationAreaIdentification__V_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
LocationAreaIdentification__V_template *list_value;
} value_list;
struct {
LocationAreaIdentification__V_template* precondition;
LocationAreaIdentification__V_template* implied_template;
} implication_;
dynmatch_struct<LocationAreaIdentification__V>* dyn_match;
};

void set_specific();
void copy_value(const LocationAreaIdentification__V& other_value);
void copy_template(const LocationAreaIdentification__V_template& other_value);

public:
LocationAreaIdentification__V_template();
LocationAreaIdentification__V_template(template_sel other_value);
LocationAreaIdentification__V_template(const LocationAreaIdentification__V& other_value);
LocationAreaIdentification__V_template(const OPTIONAL<LocationAreaIdentification__V>& other_value);
LocationAreaIdentification__V_template(LocationAreaIdentification__V_template* p_precondition, LocationAreaIdentification__V_template* p_implied_template);
LocationAreaIdentification__V_template(Dynamic_Match_Interface<LocationAreaIdentification__V>* p_dyn_match);
LocationAreaIdentification__V_template(const LocationAreaIdentification__V_template& other_value);
~LocationAreaIdentification__V_template();
LocationAreaIdentification__V_template& operator=(template_sel other_value);
LocationAreaIdentification__V_template& operator=(const LocationAreaIdentification__V& other_value);
LocationAreaIdentification__V_template& operator=(const OPTIONAL<LocationAreaIdentification__V>& other_value);
LocationAreaIdentification__V_template& operator=(const LocationAreaIdentification__V_template& other_value);
boolean match(const LocationAreaIdentification__V& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
LocationAreaIdentification__V valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
LocationAreaIdentification__V_template& list_item(unsigned int list_index) const;
OCTETSTRING_template& mcc__mnc();
const OCTETSTRING_template& mcc__mnc() const;
OCTETSTRING_template& lac();
const OCTETSTRING_template& lac() const;
int size_of() const;
void log() const;
void log_match(const LocationAreaIdentification__V& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class LocationAreaIdentification__TV : public Base_Type {
  OCTETSTRING field_elementIdentifier;
  OCTETSTRING field_mcc__mnc;
  OCTETSTRING field_lac;
public:
  LocationAreaIdentification__TV();
  LocationAreaIdentification__TV(const OCTETSTRING& par_elementIdentifier,
    const OCTETSTRING& par_mcc__mnc,
    const OCTETSTRING& par_lac);
  LocationAreaIdentification__TV(const LocationAreaIdentification__TV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  LocationAreaIdentification__TV& operator=(const LocationAreaIdentification__TV& other_value);
  boolean operator==(const LocationAreaIdentification__TV& other_value) const;
  inline boolean operator!=(const LocationAreaIdentification__TV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline OCTETSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const OCTETSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline OCTETSTRING& mcc__mnc()
    {return field_mcc__mnc;}
  inline const OCTETSTRING& mcc__mnc() const
    {return field_mcc__mnc;}
  inline OCTETSTRING& lac()
    {return field_lac;}
  inline const OCTETSTRING& lac() const
    {return field_lac;}
  inline int size_of() const
    {return 3;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class LocationAreaIdentification__TV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
LocationAreaIdentification__TV_template *list_value;
} value_list;
struct {
LocationAreaIdentification__TV_template* precondition;
LocationAreaIdentification__TV_template* implied_template;
} implication_;
dynmatch_struct<LocationAreaIdentification__TV>* dyn_match;
};

void set_specific();
void copy_value(const LocationAreaIdentification__TV& other_value);
void copy_template(const LocationAreaIdentification__TV_template& other_value);

public:
LocationAreaIdentification__TV_template();
LocationAreaIdentification__TV_template(template_sel other_value);
LocationAreaIdentification__TV_template(const LocationAreaIdentification__TV& other_value);
LocationAreaIdentification__TV_template(const OPTIONAL<LocationAreaIdentification__TV>& other_value);
LocationAreaIdentification__TV_template(LocationAreaIdentification__TV_template* p_precondition, LocationAreaIdentification__TV_template* p_implied_template);
LocationAreaIdentification__TV_template(Dynamic_Match_Interface<LocationAreaIdentification__TV>* p_dyn_match);
LocationAreaIdentification__TV_template(const LocationAreaIdentification__TV_template& other_value);
~LocationAreaIdentification__TV_template();
LocationAreaIdentification__TV_template& operator=(template_sel other_value);
LocationAreaIdentification__TV_template& operator=(const LocationAreaIdentification__TV& other_value);
LocationAreaIdentification__TV_template& operator=(const OPTIONAL<LocationAreaIdentification__TV>& other_value);
LocationAreaIdentification__TV_template& operator=(const LocationAreaIdentification__TV_template& other_value);
boolean match(const LocationAreaIdentification__TV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
LocationAreaIdentification__TV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
LocationAreaIdentification__TV_template& list_item(unsigned int list_index) const;
OCTETSTRING_template& elementIdentifier();
const OCTETSTRING_template& elementIdentifier() const;
OCTETSTRING_template& mcc__mnc();
const OCTETSTRING_template& mcc__mnc() const;
OCTETSTRING_template& lac();
const OCTETSTRING_template& lac() const;
int size_of() const;
void log() const;
void log_match(const LocationAreaIdentification__TV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class OddEvenInd__Identity : public Base_Type {
public:
enum union_selection_type { UNBOUND_VALUE = 0, ALT_imsi = 1, ALT_imei = 2, ALT_imei__sv = 3, ALT_tmsi__ptmsi = 4, ALT_tmgi__and__MBMS__SessionID = 5, ALT_no__identity = 6 };
private:
union_selection_type union_selection;
union {
IMSI__L3 *field_imsi;
IMEI__L3 *field_imei;
IMEI__SV *field_imei__sv;
TMSI__PTMSI *field_tmsi__ptmsi;
TMGI__and__MBMS__SessionID *field_tmgi__and__MBMS__SessionID;
No__Identity *field_no__identity;
};
void copy_value(const OddEvenInd__Identity& other_value);

public:
OddEvenInd__Identity();
OddEvenInd__Identity(const OddEvenInd__Identity& other_value);
~OddEvenInd__Identity();
OddEvenInd__Identity& operator=(const OddEvenInd__Identity& other_value);
boolean operator==(const OddEvenInd__Identity& other_value) const;
inline boolean operator!=(const OddEvenInd__Identity& other_value) const { return !(*this == other_value); }
IMSI__L3& imsi();
const IMSI__L3& imsi() const;
IMEI__L3& imei();
const IMEI__L3& imei() const;
IMEI__SV& imei__sv();
const IMEI__SV& imei__sv() const;
TMSI__PTMSI& tmsi__ptmsi();
const TMSI__PTMSI& tmsi__ptmsi() const;
TMGI__and__MBMS__SessionID& tmgi__and__MBMS__SessionID();
const TMGI__and__MBMS__SessionID& tmgi__and__MBMS__SessionID() const;
No__Identity& no__identity();
const No__Identity& no__identity() const;
inline union_selection_type get_selection() const { return union_selection; }
boolean ischosen(union_selection_type checked_selection) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
inline boolean is_present() const { return is_bound(); }
void log() const;
void set_param(Module_Param& param);
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class OddEvenInd__Identity_template : public Base_Template {
union {
struct {
OddEvenInd__Identity::union_selection_type union_selection;
union {
IMSI__L3_template *field_imsi;
IMEI__L3_template *field_imei;
IMEI__SV_template *field_imei__sv;
TMSI__PTMSI_template *field_tmsi__ptmsi;
TMGI__and__MBMS__SessionID_template *field_tmgi__and__MBMS__SessionID;
No__Identity_template *field_no__identity;
};
} single_value;
struct {
unsigned int n_values;
OddEvenInd__Identity_template *list_value;
} value_list;
struct {
OddEvenInd__Identity_template* precondition;
OddEvenInd__Identity_template* implied_template;
} implication_;
dynmatch_struct<OddEvenInd__Identity>* dyn_match;
};
void copy_value(const OddEvenInd__Identity& other_value);

void copy_template(const OddEvenInd__Identity_template& other_value);

public:
OddEvenInd__Identity_template();
OddEvenInd__Identity_template(template_sel other_value);
OddEvenInd__Identity_template(const OddEvenInd__Identity& other_value);
OddEvenInd__Identity_template(const OPTIONAL<OddEvenInd__Identity>& other_value);
OddEvenInd__Identity_template(OddEvenInd__Identity_template* p_precondition, OddEvenInd__Identity_template* p_implied_template);
OddEvenInd__Identity_template(Dynamic_Match_Interface<OddEvenInd__Identity>* p_dyn_match);
OddEvenInd__Identity_template(const OddEvenInd__Identity_template& other_value);
~OddEvenInd__Identity_template();
void clean_up();
OddEvenInd__Identity_template& operator=(template_sel other_value);
OddEvenInd__Identity_template& operator=(const OddEvenInd__Identity& other_value);
OddEvenInd__Identity_template& operator=(const OPTIONAL<OddEvenInd__Identity>& other_value);
OddEvenInd__Identity_template& operator=(const OddEvenInd__Identity_template& other_value);
boolean match(const OddEvenInd__Identity& other_value, boolean legacy = FALSE) const;
boolean is_value() const;OddEvenInd__Identity valueof() const;
OddEvenInd__Identity_template& list_item(unsigned int list_index) const;
void set_type(template_sel template_type, unsigned int list_length);
IMSI__L3_template& imsi();
const IMSI__L3_template& imsi() const;
IMEI__L3_template& imei();
const IMEI__L3_template& imei() const;
IMEI__SV_template& imei__sv();
const IMEI__SV_template& imei__sv() const;
TMSI__PTMSI_template& tmsi__ptmsi();
const TMSI__PTMSI_template& tmsi__ptmsi() const;
TMGI__and__MBMS__SessionID_template& tmgi__and__MBMS__SessionID();
const TMGI__and__MBMS__SessionID_template& tmgi__and__MBMS__SessionID() const;
No__Identity_template& no__identity();
const No__Identity_template& no__identity() const;
boolean ischosen(OddEvenInd__Identity::union_selection_type checked_selection) const;
void log() const;
void log_match(const OddEvenInd__Identity& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
};

class IMSI__L3 : public Base_Type {
  BITSTRING field_oddevenIndicator;
  HEXSTRING field_digits;
  OPTIONAL< BITSTRING > field_fillerDigit;
public:
  IMSI__L3();
  IMSI__L3(const BITSTRING& par_oddevenIndicator,
    const HEXSTRING& par_digits,
    const OPTIONAL< BITSTRING >& par_fillerDigit);
  IMSI__L3(const IMSI__L3& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  IMSI__L3& operator=(const IMSI__L3& other_value);
  boolean operator==(const IMSI__L3& other_value) const;
  inline boolean operator!=(const IMSI__L3& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& oddevenIndicator()
    {return field_oddevenIndicator;}
  inline const BITSTRING& oddevenIndicator() const
    {return field_oddevenIndicator;}
  inline HEXSTRING& digits()
    {return field_digits;}
  inline const HEXSTRING& digits() const
    {return field_digits;}
  inline OPTIONAL< BITSTRING >& fillerDigit()
    {return field_fillerDigit;}
  inline const OPTIONAL< BITSTRING >& fillerDigit() const
    {return field_fillerDigit;}
  int size_of() const;
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class IMSI__L3_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
IMSI__L3_template *list_value;
} value_list;
struct {
IMSI__L3_template* precondition;
IMSI__L3_template* implied_template;
} implication_;
dynmatch_struct<IMSI__L3>* dyn_match;
};

void set_specific();
void copy_value(const IMSI__L3& other_value);
void copy_template(const IMSI__L3_template& other_value);

public:
IMSI__L3_template();
IMSI__L3_template(template_sel other_value);
IMSI__L3_template(const IMSI__L3& other_value);
IMSI__L3_template(const OPTIONAL<IMSI__L3>& other_value);
IMSI__L3_template(IMSI__L3_template* p_precondition, IMSI__L3_template* p_implied_template);
IMSI__L3_template(Dynamic_Match_Interface<IMSI__L3>* p_dyn_match);
IMSI__L3_template(const IMSI__L3_template& other_value);
~IMSI__L3_template();
IMSI__L3_template& operator=(template_sel other_value);
IMSI__L3_template& operator=(const IMSI__L3& other_value);
IMSI__L3_template& operator=(const OPTIONAL<IMSI__L3>& other_value);
IMSI__L3_template& operator=(const IMSI__L3_template& other_value);
boolean match(const IMSI__L3& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
IMSI__L3 valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
IMSI__L3_template& list_item(unsigned int list_index) const;
BITSTRING_template& oddevenIndicator();
const BITSTRING_template& oddevenIndicator() const;
HEXSTRING_template& digits();
const HEXSTRING_template& digits() const;
BITSTRING_template& fillerDigit();
const BITSTRING_template& fillerDigit() const;
int size_of() const;
void log() const;
void log_match(const IMSI__L3& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class IMEI__L3 : public Base_Type {
  BITSTRING field_oddevenIndicator;
  HEXSTRING field_digits;
public:
  IMEI__L3();
  IMEI__L3(const BITSTRING& par_oddevenIndicator,
    const HEXSTRING& par_digits);
  IMEI__L3(const IMEI__L3& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  IMEI__L3& operator=(const IMEI__L3& other_value);
  boolean operator==(const IMEI__L3& other_value) const;
  inline boolean operator!=(const IMEI__L3& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& oddevenIndicator()
    {return field_oddevenIndicator;}
  inline const BITSTRING& oddevenIndicator() const
    {return field_oddevenIndicator;}
  inline HEXSTRING& digits()
    {return field_digits;}
  inline const HEXSTRING& digits() const
    {return field_digits;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class IMEI__L3_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
IMEI__L3_template *list_value;
} value_list;
struct {
IMEI__L3_template* precondition;
IMEI__L3_template* implied_template;
} implication_;
dynmatch_struct<IMEI__L3>* dyn_match;
};

void set_specific();
void copy_value(const IMEI__L3& other_value);
void copy_template(const IMEI__L3_template& other_value);

public:
IMEI__L3_template();
IMEI__L3_template(template_sel other_value);
IMEI__L3_template(const IMEI__L3& other_value);
IMEI__L3_template(const OPTIONAL<IMEI__L3>& other_value);
IMEI__L3_template(IMEI__L3_template* p_precondition, IMEI__L3_template* p_implied_template);
IMEI__L3_template(Dynamic_Match_Interface<IMEI__L3>* p_dyn_match);
IMEI__L3_template(const IMEI__L3_template& other_value);
~IMEI__L3_template();
IMEI__L3_template& operator=(template_sel other_value);
IMEI__L3_template& operator=(const IMEI__L3& other_value);
IMEI__L3_template& operator=(const OPTIONAL<IMEI__L3>& other_value);
IMEI__L3_template& operator=(const IMEI__L3_template& other_value);
boolean match(const IMEI__L3& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
IMEI__L3 valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
IMEI__L3_template& list_item(unsigned int list_index) const;
BITSTRING_template& oddevenIndicator();
const BITSTRING_template& oddevenIndicator() const;
HEXSTRING_template& digits();
const HEXSTRING_template& digits() const;
int size_of() const;
void log() const;
void log_match(const IMEI__L3& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class IMEI__SV : public Base_Type {
  BITSTRING field_oddevenIndicator;
  HEXSTRING field_digits;
  BITSTRING field_fillerDigit;
public:
  IMEI__SV();
  IMEI__SV(const BITSTRING& par_oddevenIndicator,
    const HEXSTRING& par_digits,
    const BITSTRING& par_fillerDigit);
  IMEI__SV(const IMEI__SV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  IMEI__SV& operator=(const IMEI__SV& other_value);
  boolean operator==(const IMEI__SV& other_value) const;
  inline boolean operator!=(const IMEI__SV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& oddevenIndicator()
    {return field_oddevenIndicator;}
  inline const BITSTRING& oddevenIndicator() const
    {return field_oddevenIndicator;}
  inline HEXSTRING& digits()
    {return field_digits;}
  inline const HEXSTRING& digits() const
    {return field_digits;}
  inline BITSTRING& fillerDigit()
    {return field_fillerDigit;}
  inline const BITSTRING& fillerDigit() const
    {return field_fillerDigit;}
  inline int size_of() const
    {return 3;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class IMEI__SV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
IMEI__SV_template *list_value;
} value_list;
struct {
IMEI__SV_template* precondition;
IMEI__SV_template* implied_template;
} implication_;
dynmatch_struct<IMEI__SV>* dyn_match;
};

void set_specific();
void copy_value(const IMEI__SV& other_value);
void copy_template(const IMEI__SV_template& other_value);

public:
IMEI__SV_template();
IMEI__SV_template(template_sel other_value);
IMEI__SV_template(const IMEI__SV& other_value);
IMEI__SV_template(const OPTIONAL<IMEI__SV>& other_value);
IMEI__SV_template(IMEI__SV_template* p_precondition, IMEI__SV_template* p_implied_template);
IMEI__SV_template(Dynamic_Match_Interface<IMEI__SV>* p_dyn_match);
IMEI__SV_template(const IMEI__SV_template& other_value);
~IMEI__SV_template();
IMEI__SV_template& operator=(template_sel other_value);
IMEI__SV_template& operator=(const IMEI__SV& other_value);
IMEI__SV_template& operator=(const OPTIONAL<IMEI__SV>& other_value);
IMEI__SV_template& operator=(const IMEI__SV_template& other_value);
boolean match(const IMEI__SV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
IMEI__SV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
IMEI__SV_template& list_item(unsigned int list_index) const;
BITSTRING_template& oddevenIndicator();
const BITSTRING_template& oddevenIndicator() const;
HEXSTRING_template& digits();
const HEXSTRING_template& digits() const;
BITSTRING_template& fillerDigit();
const BITSTRING_template& fillerDigit() const;
int size_of() const;
void log() const;
void log_match(const IMEI__SV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class TMSI__PTMSI : public Base_Type {
  BITSTRING field_oddevenIndicator;
  BITSTRING field_fillerDigit;
  OCTETSTRING field_octets;
public:
  TMSI__PTMSI();
  TMSI__PTMSI(const BITSTRING& par_oddevenIndicator,
    const BITSTRING& par_fillerDigit,
    const OCTETSTRING& par_octets);
  TMSI__PTMSI(const TMSI__PTMSI& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  TMSI__PTMSI& operator=(const TMSI__PTMSI& other_value);
  boolean operator==(const TMSI__PTMSI& other_value) const;
  inline boolean operator!=(const TMSI__PTMSI& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& oddevenIndicator()
    {return field_oddevenIndicator;}
  inline const BITSTRING& oddevenIndicator() const
    {return field_oddevenIndicator;}
  inline BITSTRING& fillerDigit()
    {return field_fillerDigit;}
  inline const BITSTRING& fillerDigit() const
    {return field_fillerDigit;}
  inline OCTETSTRING& octets()
    {return field_octets;}
  inline const OCTETSTRING& octets() const
    {return field_octets;}
  inline int size_of() const
    {return 3;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class TMSI__PTMSI_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
TMSI__PTMSI_template *list_value;
} value_list;
struct {
TMSI__PTMSI_template* precondition;
TMSI__PTMSI_template* implied_template;
} implication_;
dynmatch_struct<TMSI__PTMSI>* dyn_match;
};

void set_specific();
void copy_value(const TMSI__PTMSI& other_value);
void copy_template(const TMSI__PTMSI_template& other_value);

public:
TMSI__PTMSI_template();
TMSI__PTMSI_template(template_sel other_value);
TMSI__PTMSI_template(const TMSI__PTMSI& other_value);
TMSI__PTMSI_template(const OPTIONAL<TMSI__PTMSI>& other_value);
TMSI__PTMSI_template(TMSI__PTMSI_template* p_precondition, TMSI__PTMSI_template* p_implied_template);
TMSI__PTMSI_template(Dynamic_Match_Interface<TMSI__PTMSI>* p_dyn_match);
TMSI__PTMSI_template(const TMSI__PTMSI_template& other_value);
~TMSI__PTMSI_template();
TMSI__PTMSI_template& operator=(template_sel other_value);
TMSI__PTMSI_template& operator=(const TMSI__PTMSI& other_value);
TMSI__PTMSI_template& operator=(const OPTIONAL<TMSI__PTMSI>& other_value);
TMSI__PTMSI_template& operator=(const TMSI__PTMSI_template& other_value);
boolean match(const TMSI__PTMSI& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
TMSI__PTMSI valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
TMSI__PTMSI_template& list_item(unsigned int list_index) const;
BITSTRING_template& oddevenIndicator();
const BITSTRING_template& oddevenIndicator() const;
BITSTRING_template& fillerDigit();
const BITSTRING_template& fillerDigit() const;
OCTETSTRING_template& octets();
const OCTETSTRING_template& octets() const;
int size_of() const;
void log() const;
void log_match(const TMSI__PTMSI& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class TMGI__and__MBMS__SessionID : public Base_Type {
  BITSTRING field_oddevenIndicator;
  BITSTRING field_mCC__MNCIndicator;
  BITSTRING field_mBMS__SessionIdentityIndicator;
  BITSTRING field_spare;
  OCTETSTRING field_mBMS__ServiceID;
  HEXSTRING field_mccDigit1;
  HEXSTRING field_mccDigit2;
  HEXSTRING field_mccDigit3;
  HEXSTRING field_mncDigit3;
  HEXSTRING field_mncDigit1;
  HEXSTRING field_mncDigit2;
  OCTETSTRING field_mBMS__SessionIdentity;
public:
  TMGI__and__MBMS__SessionID();
  TMGI__and__MBMS__SessionID(const BITSTRING& par_oddevenIndicator,
    const BITSTRING& par_mCC__MNCIndicator,
    const BITSTRING& par_mBMS__SessionIdentityIndicator,
    const BITSTRING& par_spare,
    const OCTETSTRING& par_mBMS__ServiceID,
    const HEXSTRING& par_mccDigit1,
    const HEXSTRING& par_mccDigit2,
    const HEXSTRING& par_mccDigit3,
    const HEXSTRING& par_mncDigit3,
    const HEXSTRING& par_mncDigit1,
    const HEXSTRING& par_mncDigit2,
    const OCTETSTRING& par_mBMS__SessionIdentity);
  TMGI__and__MBMS__SessionID(const TMGI__and__MBMS__SessionID& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  TMGI__and__MBMS__SessionID& operator=(const TMGI__and__MBMS__SessionID& other_value);
  boolean operator==(const TMGI__and__MBMS__SessionID& other_value) const;
  inline boolean operator!=(const TMGI__and__MBMS__SessionID& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& oddevenIndicator()
    {return field_oddevenIndicator;}
  inline const BITSTRING& oddevenIndicator() const
    {return field_oddevenIndicator;}
  inline BITSTRING& mCC__MNCIndicator()
    {return field_mCC__MNCIndicator;}
  inline const BITSTRING& mCC__MNCIndicator() const
    {return field_mCC__MNCIndicator;}
  inline BITSTRING& mBMS__SessionIdentityIndicator()
    {return field_mBMS__SessionIdentityIndicator;}
  inline const BITSTRING& mBMS__SessionIdentityIndicator() const
    {return field_mBMS__SessionIdentityIndicator;}
  inline BITSTRING& spare()
    {return field_spare;}
  inline const BITSTRING& spare() const
    {return field_spare;}
  inline OCTETSTRING& mBMS__ServiceID()
    {return field_mBMS__ServiceID;}
  inline const OCTETSTRING& mBMS__ServiceID() const
    {return field_mBMS__ServiceID;}
  inline HEXSTRING& mccDigit1()
    {return field_mccDigit1;}
  inline const HEXSTRING& mccDigit1() const
    {return field_mccDigit1;}
  inline HEXSTRING& mccDigit2()
    {return field_mccDigit2;}
  inline const HEXSTRING& mccDigit2() const
    {return field_mccDigit2;}
  inline HEXSTRING& mccDigit3()
    {return field_mccDigit3;}
  inline const HEXSTRING& mccDigit3() const
    {return field_mccDigit3;}
  inline HEXSTRING& mncDigit3()
    {return field_mncDigit3;}
  inline const HEXSTRING& mncDigit3() const
    {return field_mncDigit3;}
  inline HEXSTRING& mncDigit1()
    {return field_mncDigit1;}
  inline const HEXSTRING& mncDigit1() const
    {return field_mncDigit1;}
  inline HEXSTRING& mncDigit2()
    {return field_mncDigit2;}
  inline const HEXSTRING& mncDigit2() const
    {return field_mncDigit2;}
  inline OCTETSTRING& mBMS__SessionIdentity()
    {return field_mBMS__SessionIdentity;}
  inline const OCTETSTRING& mBMS__SessionIdentity() const
    {return field_mBMS__SessionIdentity;}
  inline int size_of() const
    {return 12;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class TMGI__and__MBMS__SessionID_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
TMGI__and__MBMS__SessionID_template *list_value;
} value_list;
struct {
TMGI__and__MBMS__SessionID_template* precondition;
TMGI__and__MBMS__SessionID_template* implied_template;
} implication_;
dynmatch_struct<TMGI__and__MBMS__SessionID>* dyn_match;
};

void set_specific();
void copy_value(const TMGI__and__MBMS__SessionID& other_value);
void copy_template(const TMGI__and__MBMS__SessionID_template& other_value);

public:
TMGI__and__MBMS__SessionID_template();
TMGI__and__MBMS__SessionID_template(template_sel other_value);
TMGI__and__MBMS__SessionID_template(const TMGI__and__MBMS__SessionID& other_value);
TMGI__and__MBMS__SessionID_template(const OPTIONAL<TMGI__and__MBMS__SessionID>& other_value);
TMGI__and__MBMS__SessionID_template(TMGI__and__MBMS__SessionID_template* p_precondition, TMGI__and__MBMS__SessionID_template* p_implied_template);
TMGI__and__MBMS__SessionID_template(Dynamic_Match_Interface<TMGI__and__MBMS__SessionID>* p_dyn_match);
TMGI__and__MBMS__SessionID_template(const TMGI__and__MBMS__SessionID_template& other_value);
~TMGI__and__MBMS__SessionID_template();
TMGI__and__MBMS__SessionID_template& operator=(template_sel other_value);
TMGI__and__MBMS__SessionID_template& operator=(const TMGI__and__MBMS__SessionID& other_value);
TMGI__and__MBMS__SessionID_template& operator=(const OPTIONAL<TMGI__and__MBMS__SessionID>& other_value);
TMGI__and__MBMS__SessionID_template& operator=(const TMGI__and__MBMS__SessionID_template& other_value);
boolean match(const TMGI__and__MBMS__SessionID& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
TMGI__and__MBMS__SessionID valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
TMGI__and__MBMS__SessionID_template& list_item(unsigned int list_index) const;
BITSTRING_template& oddevenIndicator();
const BITSTRING_template& oddevenIndicator() const;
BITSTRING_template& mCC__MNCIndicator();
const BITSTRING_template& mCC__MNCIndicator() const;
BITSTRING_template& mBMS__SessionIdentityIndicator();
const BITSTRING_template& mBMS__SessionIdentityIndicator() const;
BITSTRING_template& spare();
const BITSTRING_template& spare() const;
OCTETSTRING_template& mBMS__ServiceID();
const OCTETSTRING_template& mBMS__ServiceID() const;
HEXSTRING_template& mccDigit1();
const HEXSTRING_template& mccDigit1() const;
HEXSTRING_template& mccDigit2();
const HEXSTRING_template& mccDigit2() const;
HEXSTRING_template& mccDigit3();
const HEXSTRING_template& mccDigit3() const;
HEXSTRING_template& mncDigit3();
const HEXSTRING_template& mncDigit3() const;
HEXSTRING_template& mncDigit1();
const HEXSTRING_template& mncDigit1() const;
HEXSTRING_template& mncDigit2();
const HEXSTRING_template& mncDigit2() const;
OCTETSTRING_template& mBMS__SessionIdentity();
const OCTETSTRING_template& mBMS__SessionIdentity() const;
int size_of() const;
void log() const;
void log_match(const TMGI__and__MBMS__SessionID& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class No__Identity : public Base_Type {
  BITSTRING field_oddevenIndicator;
  HEXSTRING field_fillerDigits;
public:
  No__Identity();
  No__Identity(const BITSTRING& par_oddevenIndicator,
    const HEXSTRING& par_fillerDigits);
  No__Identity(const No__Identity& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  No__Identity& operator=(const No__Identity& other_value);
  boolean operator==(const No__Identity& other_value) const;
  inline boolean operator!=(const No__Identity& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& oddevenIndicator()
    {return field_oddevenIndicator;}
  inline const BITSTRING& oddevenIndicator() const
    {return field_oddevenIndicator;}
  inline HEXSTRING& fillerDigits()
    {return field_fillerDigits;}
  inline const HEXSTRING& fillerDigits() const
    {return field_fillerDigits;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class No__Identity_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
No__Identity_template *list_value;
} value_list;
struct {
No__Identity_template* precondition;
No__Identity_template* implied_template;
} implication_;
dynmatch_struct<No__Identity>* dyn_match;
};

void set_specific();
void copy_value(const No__Identity& other_value);
void copy_template(const No__Identity_template& other_value);

public:
No__Identity_template();
No__Identity_template(template_sel other_value);
No__Identity_template(const No__Identity& other_value);
No__Identity_template(const OPTIONAL<No__Identity>& other_value);
No__Identity_template(No__Identity_template* p_precondition, No__Identity_template* p_implied_template);
No__Identity_template(Dynamic_Match_Interface<No__Identity>* p_dyn_match);
No__Identity_template(const No__Identity_template& other_value);
~No__Identity_template();
No__Identity_template& operator=(template_sel other_value);
No__Identity_template& operator=(const No__Identity& other_value);
No__Identity_template& operator=(const OPTIONAL<No__Identity>& other_value);
No__Identity_template& operator=(const No__Identity_template& other_value);
boolean match(const No__Identity& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
No__Identity valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
No__Identity_template& list_item(unsigned int list_index) const;
BITSTRING_template& oddevenIndicator();
const BITSTRING_template& oddevenIndicator() const;
HEXSTRING_template& fillerDigits();
const HEXSTRING_template& fillerDigits() const;
int size_of() const;
void log() const;
void log_match(const No__Identity& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class MobileIdentityV : public Base_Type {
  BITSTRING field_typeOfIdentity;
  OddEvenInd__Identity field_oddEvenInd__identity;
public:
  MobileIdentityV();
  MobileIdentityV(const BITSTRING& par_typeOfIdentity,
    const OddEvenInd__Identity& par_oddEvenInd__identity);
  MobileIdentityV(const MobileIdentityV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  MobileIdentityV& operator=(const MobileIdentityV& other_value);
  boolean operator==(const MobileIdentityV& other_value) const;
  inline boolean operator!=(const MobileIdentityV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& typeOfIdentity()
    {return field_typeOfIdentity;}
  inline const BITSTRING& typeOfIdentity() const
    {return field_typeOfIdentity;}
  inline OddEvenInd__Identity& oddEvenInd__identity()
    {return field_oddEvenInd__identity;}
  inline const OddEvenInd__Identity& oddEvenInd__identity() const
    {return field_oddEvenInd__identity;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class MobileIdentityV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
MobileIdentityV_template *list_value;
} value_list;
struct {
MobileIdentityV_template* precondition;
MobileIdentityV_template* implied_template;
} implication_;
dynmatch_struct<MobileIdentityV>* dyn_match;
};

void set_specific();
void copy_value(const MobileIdentityV& other_value);
void copy_template(const MobileIdentityV_template& other_value);

public:
MobileIdentityV_template();
MobileIdentityV_template(template_sel other_value);
MobileIdentityV_template(const MobileIdentityV& other_value);
MobileIdentityV_template(const OPTIONAL<MobileIdentityV>& other_value);
MobileIdentityV_template(MobileIdentityV_template* p_precondition, MobileIdentityV_template* p_implied_template);
MobileIdentityV_template(Dynamic_Match_Interface<MobileIdentityV>* p_dyn_match);
MobileIdentityV_template(const MobileIdentityV_template& other_value);
~MobileIdentityV_template();
MobileIdentityV_template& operator=(template_sel other_value);
MobileIdentityV_template& operator=(const MobileIdentityV& other_value);
MobileIdentityV_template& operator=(const OPTIONAL<MobileIdentityV>& other_value);
MobileIdentityV_template& operator=(const MobileIdentityV_template& other_value);
boolean match(const MobileIdentityV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
MobileIdentityV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
MobileIdentityV_template& list_item(unsigned int list_index) const;
BITSTRING_template& typeOfIdentity();
const BITSTRING_template& typeOfIdentity() const;
OddEvenInd__Identity_template& oddEvenInd__identity();
const OddEvenInd__Identity_template& oddEvenInd__identity() const;
int size_of() const;
void log() const;
void log_match(const MobileIdentityV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class MobileIdentityLV : public Base_Type {
  INTEGER field_lengthIndicator;
  MobileIdentityV field_mobileIdentityV;
public:
  MobileIdentityLV();
  MobileIdentityLV(const INTEGER& par_lengthIndicator,
    const MobileIdentityV& par_mobileIdentityV);
  MobileIdentityLV(const MobileIdentityLV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  MobileIdentityLV& operator=(const MobileIdentityLV& other_value);
  boolean operator==(const MobileIdentityLV& other_value) const;
  inline boolean operator!=(const MobileIdentityLV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline INTEGER& lengthIndicator()
    {return field_lengthIndicator;}
  inline const INTEGER& lengthIndicator() const
    {return field_lengthIndicator;}
  inline MobileIdentityV& mobileIdentityV()
    {return field_mobileIdentityV;}
  inline const MobileIdentityV& mobileIdentityV() const
    {return field_mobileIdentityV;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class MobileIdentityLV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
MobileIdentityLV_template *list_value;
} value_list;
struct {
MobileIdentityLV_template* precondition;
MobileIdentityLV_template* implied_template;
} implication_;
dynmatch_struct<MobileIdentityLV>* dyn_match;
};

void set_specific();
void copy_value(const MobileIdentityLV& other_value);
void copy_template(const MobileIdentityLV_template& other_value);

public:
MobileIdentityLV_template();
MobileIdentityLV_template(template_sel other_value);
MobileIdentityLV_template(const MobileIdentityLV& other_value);
MobileIdentityLV_template(const OPTIONAL<MobileIdentityLV>& other_value);
MobileIdentityLV_template(MobileIdentityLV_template* p_precondition, MobileIdentityLV_template* p_implied_template);
MobileIdentityLV_template(Dynamic_Match_Interface<MobileIdentityLV>* p_dyn_match);
MobileIdentityLV_template(const MobileIdentityLV_template& other_value);
~MobileIdentityLV_template();
MobileIdentityLV_template& operator=(template_sel other_value);
MobileIdentityLV_template& operator=(const MobileIdentityLV& other_value);
MobileIdentityLV_template& operator=(const OPTIONAL<MobileIdentityLV>& other_value);
MobileIdentityLV_template& operator=(const MobileIdentityLV_template& other_value);
boolean match(const MobileIdentityLV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
MobileIdentityLV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
MobileIdentityLV_template& list_item(unsigned int list_index) const;
INTEGER_template& lengthIndicator();
const INTEGER_template& lengthIndicator() const;
MobileIdentityV_template& mobileIdentityV();
const MobileIdentityV_template& mobileIdentityV() const;
int size_of() const;
void log() const;
void log_match(const MobileIdentityLV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class MobileIdentityTLV : public Base_Type {
  BITSTRING field_elementIdentifier;
  BITSTRING field_spare1;
  MobileIdentityLV field_mobileIdentityLV;
public:
  MobileIdentityTLV();
  MobileIdentityTLV(const BITSTRING& par_elementIdentifier,
    const BITSTRING& par_spare1,
    const MobileIdentityLV& par_mobileIdentityLV);
  MobileIdentityTLV(const MobileIdentityTLV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  MobileIdentityTLV& operator=(const MobileIdentityTLV& other_value);
  boolean operator==(const MobileIdentityTLV& other_value) const;
  inline boolean operator!=(const MobileIdentityTLV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const BITSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline BITSTRING& spare1()
    {return field_spare1;}
  inline const BITSTRING& spare1() const
    {return field_spare1;}
  inline MobileIdentityLV& mobileIdentityLV()
    {return field_mobileIdentityLV;}
  inline const MobileIdentityLV& mobileIdentityLV() const
    {return field_mobileIdentityLV;}
  inline int size_of() const
    {return 3;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class MobileIdentityTLV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
MobileIdentityTLV_template *list_value;
} value_list;
struct {
MobileIdentityTLV_template* precondition;
MobileIdentityTLV_template* implied_template;
} implication_;
dynmatch_struct<MobileIdentityTLV>* dyn_match;
};

void set_specific();
void copy_value(const MobileIdentityTLV& other_value);
void copy_template(const MobileIdentityTLV_template& other_value);

public:
MobileIdentityTLV_template();
MobileIdentityTLV_template(template_sel other_value);
MobileIdentityTLV_template(const MobileIdentityTLV& other_value);
MobileIdentityTLV_template(const OPTIONAL<MobileIdentityTLV>& other_value);
MobileIdentityTLV_template(MobileIdentityTLV_template* p_precondition, MobileIdentityTLV_template* p_implied_template);
MobileIdentityTLV_template(Dynamic_Match_Interface<MobileIdentityTLV>* p_dyn_match);
MobileIdentityTLV_template(const MobileIdentityTLV_template& other_value);
~MobileIdentityTLV_template();
MobileIdentityTLV_template& operator=(template_sel other_value);
MobileIdentityTLV_template& operator=(const MobileIdentityTLV& other_value);
MobileIdentityTLV_template& operator=(const OPTIONAL<MobileIdentityTLV>& other_value);
MobileIdentityTLV_template& operator=(const MobileIdentityTLV_template& other_value);
boolean match(const MobileIdentityTLV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
MobileIdentityTLV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
MobileIdentityTLV_template& list_item(unsigned int list_index) const;
BITSTRING_template& elementIdentifier();
const BITSTRING_template& elementIdentifier() const;
BITSTRING_template& spare1();
const BITSTRING_template& spare1() const;
MobileIdentityLV_template& mobileIdentityLV();
const MobileIdentityLV_template& mobileIdentityLV() const;
int size_of() const;
void log() const;
void log_match(const MobileIdentityTLV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class MobileStationClassmark1__TV : public Base_Type {
  OCTETSTRING field_elementIdentifier;
  BITSTRING field_rf__PowerCapability;
  BITSTRING field_a5__1;
  BITSTRING field_esind;
  BITSTRING field_revisionLevel;
  BITSTRING field_spare1__1;
public:
  MobileStationClassmark1__TV();
  MobileStationClassmark1__TV(const OCTETSTRING& par_elementIdentifier,
    const BITSTRING& par_rf__PowerCapability,
    const BITSTRING& par_a5__1,
    const BITSTRING& par_esind,
    const BITSTRING& par_revisionLevel,
    const BITSTRING& par_spare1__1);
  MobileStationClassmark1__TV(const MobileStationClassmark1__TV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  MobileStationClassmark1__TV& operator=(const MobileStationClassmark1__TV& other_value);
  boolean operator==(const MobileStationClassmark1__TV& other_value) const;
  inline boolean operator!=(const MobileStationClassmark1__TV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline OCTETSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const OCTETSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline BITSTRING& rf__PowerCapability()
    {return field_rf__PowerCapability;}
  inline const BITSTRING& rf__PowerCapability() const
    {return field_rf__PowerCapability;}
  inline BITSTRING& a5__1()
    {return field_a5__1;}
  inline const BITSTRING& a5__1() const
    {return field_a5__1;}
  inline BITSTRING& esind()
    {return field_esind;}
  inline const BITSTRING& esind() const
    {return field_esind;}
  inline BITSTRING& revisionLevel()
    {return field_revisionLevel;}
  inline const BITSTRING& revisionLevel() const
    {return field_revisionLevel;}
  inline BITSTRING& spare1__1()
    {return field_spare1__1;}
  inline const BITSTRING& spare1__1() const
    {return field_spare1__1;}
  inline int size_of() const
    {return 6;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class MobileStationClassmark1__TV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
MobileStationClassmark1__TV_template *list_value;
} value_list;
struct {
MobileStationClassmark1__TV_template* precondition;
MobileStationClassmark1__TV_template* implied_template;
} implication_;
dynmatch_struct<MobileStationClassmark1__TV>* dyn_match;
};

void set_specific();
void copy_value(const MobileStationClassmark1__TV& other_value);
void copy_template(const MobileStationClassmark1__TV_template& other_value);

public:
MobileStationClassmark1__TV_template();
MobileStationClassmark1__TV_template(template_sel other_value);
MobileStationClassmark1__TV_template(const MobileStationClassmark1__TV& other_value);
MobileStationClassmark1__TV_template(const OPTIONAL<MobileStationClassmark1__TV>& other_value);
MobileStationClassmark1__TV_template(MobileStationClassmark1__TV_template* p_precondition, MobileStationClassmark1__TV_template* p_implied_template);
MobileStationClassmark1__TV_template(Dynamic_Match_Interface<MobileStationClassmark1__TV>* p_dyn_match);
MobileStationClassmark1__TV_template(const MobileStationClassmark1__TV_template& other_value);
~MobileStationClassmark1__TV_template();
MobileStationClassmark1__TV_template& operator=(template_sel other_value);
MobileStationClassmark1__TV_template& operator=(const MobileStationClassmark1__TV& other_value);
MobileStationClassmark1__TV_template& operator=(const OPTIONAL<MobileStationClassmark1__TV>& other_value);
MobileStationClassmark1__TV_template& operator=(const MobileStationClassmark1__TV_template& other_value);
boolean match(const MobileStationClassmark1__TV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
MobileStationClassmark1__TV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
MobileStationClassmark1__TV_template& list_item(unsigned int list_index) const;
OCTETSTRING_template& elementIdentifier();
const OCTETSTRING_template& elementIdentifier() const;
BITSTRING_template& rf__PowerCapability();
const BITSTRING_template& rf__PowerCapability() const;
BITSTRING_template& a5__1();
const BITSTRING_template& a5__1() const;
BITSTRING_template& esind();
const BITSTRING_template& esind() const;
BITSTRING_template& revisionLevel();
const BITSTRING_template& revisionLevel() const;
BITSTRING_template& spare1__1();
const BITSTRING_template& spare1__1() const;
int size_of() const;
void log() const;
void log_match(const MobileStationClassmark1__TV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class MobileStationClassmark1__V : public Base_Type {
  BITSTRING field_rf__PowerCapability;
  BITSTRING field_a5__1;
  BITSTRING field_esind;
  BITSTRING field_revisionLevel;
  BITSTRING field_spare1__1;
public:
  MobileStationClassmark1__V();
  MobileStationClassmark1__V(const BITSTRING& par_rf__PowerCapability,
    const BITSTRING& par_a5__1,
    const BITSTRING& par_esind,
    const BITSTRING& par_revisionLevel,
    const BITSTRING& par_spare1__1);
  MobileStationClassmark1__V(const MobileStationClassmark1__V& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  MobileStationClassmark1__V& operator=(const MobileStationClassmark1__V& other_value);
  boolean operator==(const MobileStationClassmark1__V& other_value) const;
  inline boolean operator!=(const MobileStationClassmark1__V& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& rf__PowerCapability()
    {return field_rf__PowerCapability;}
  inline const BITSTRING& rf__PowerCapability() const
    {return field_rf__PowerCapability;}
  inline BITSTRING& a5__1()
    {return field_a5__1;}
  inline const BITSTRING& a5__1() const
    {return field_a5__1;}
  inline BITSTRING& esind()
    {return field_esind;}
  inline const BITSTRING& esind() const
    {return field_esind;}
  inline BITSTRING& revisionLevel()
    {return field_revisionLevel;}
  inline const BITSTRING& revisionLevel() const
    {return field_revisionLevel;}
  inline BITSTRING& spare1__1()
    {return field_spare1__1;}
  inline const BITSTRING& spare1__1() const
    {return field_spare1__1;}
  inline int size_of() const
    {return 5;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class MobileStationClassmark1__V_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
MobileStationClassmark1__V_template *list_value;
} value_list;
struct {
MobileStationClassmark1__V_template* precondition;
MobileStationClassmark1__V_template* implied_template;
} implication_;
dynmatch_struct<MobileStationClassmark1__V>* dyn_match;
};

void set_specific();
void copy_value(const MobileStationClassmark1__V& other_value);
void copy_template(const MobileStationClassmark1__V_template& other_value);

public:
MobileStationClassmark1__V_template();
MobileStationClassmark1__V_template(template_sel other_value);
MobileStationClassmark1__V_template(const MobileStationClassmark1__V& other_value);
MobileStationClassmark1__V_template(const OPTIONAL<MobileStationClassmark1__V>& other_value);
MobileStationClassmark1__V_template(MobileStationClassmark1__V_template* p_precondition, MobileStationClassmark1__V_template* p_implied_template);
MobileStationClassmark1__V_template(Dynamic_Match_Interface<MobileStationClassmark1__V>* p_dyn_match);
MobileStationClassmark1__V_template(const MobileStationClassmark1__V_template& other_value);
~MobileStationClassmark1__V_template();
MobileStationClassmark1__V_template& operator=(template_sel other_value);
MobileStationClassmark1__V_template& operator=(const MobileStationClassmark1__V& other_value);
MobileStationClassmark1__V_template& operator=(const OPTIONAL<MobileStationClassmark1__V>& other_value);
MobileStationClassmark1__V_template& operator=(const MobileStationClassmark1__V_template& other_value);
boolean match(const MobileStationClassmark1__V& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
MobileStationClassmark1__V valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
MobileStationClassmark1__V_template& list_item(unsigned int list_index) const;
BITSTRING_template& rf__PowerCapability();
const BITSTRING_template& rf__PowerCapability() const;
BITSTRING_template& a5__1();
const BITSTRING_template& a5__1() const;
BITSTRING_template& esind();
const BITSTRING_template& esind() const;
BITSTRING_template& revisionLevel();
const BITSTRING_template& revisionLevel() const;
BITSTRING_template& spare1__1();
const BITSTRING_template& spare1__1() const;
int size_of() const;
void log() const;
void log_match(const MobileStationClassmark1__V& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class MobileStationClassmark2__oct4 : public Base_Type {
  BITSTRING field_fc;
  BITSTRING field_vgcs;
  BITSTRING field_vbs;
  BITSTRING field_sm__Capability;
  BITSTRING field_ss__ScreenIndicator;
  BITSTRING field_ps__Capability;
  BITSTRING field_spare2__1;
public:
  MobileStationClassmark2__oct4();
  MobileStationClassmark2__oct4(const BITSTRING& par_fc,
    const BITSTRING& par_vgcs,
    const BITSTRING& par_vbs,
    const BITSTRING& par_sm__Capability,
    const BITSTRING& par_ss__ScreenIndicator,
    const BITSTRING& par_ps__Capability,
    const BITSTRING& par_spare2__1);
  MobileStationClassmark2__oct4(const MobileStationClassmark2__oct4& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  MobileStationClassmark2__oct4& operator=(const MobileStationClassmark2__oct4& other_value);
  boolean operator==(const MobileStationClassmark2__oct4& other_value) const;
  inline boolean operator!=(const MobileStationClassmark2__oct4& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& fc()
    {return field_fc;}
  inline const BITSTRING& fc() const
    {return field_fc;}
  inline BITSTRING& vgcs()
    {return field_vgcs;}
  inline const BITSTRING& vgcs() const
    {return field_vgcs;}
  inline BITSTRING& vbs()
    {return field_vbs;}
  inline const BITSTRING& vbs() const
    {return field_vbs;}
  inline BITSTRING& sm__Capability()
    {return field_sm__Capability;}
  inline const BITSTRING& sm__Capability() const
    {return field_sm__Capability;}
  inline BITSTRING& ss__ScreenIndicator()
    {return field_ss__ScreenIndicator;}
  inline const BITSTRING& ss__ScreenIndicator() const
    {return field_ss__ScreenIndicator;}
  inline BITSTRING& ps__Capability()
    {return field_ps__Capability;}
  inline const BITSTRING& ps__Capability() const
    {return field_ps__Capability;}
  inline BITSTRING& spare2__1()
    {return field_spare2__1;}
  inline const BITSTRING& spare2__1() const
    {return field_spare2__1;}
  inline int size_of() const
    {return 7;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class MobileStationClassmark2__oct4_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
MobileStationClassmark2__oct4_template *list_value;
} value_list;
struct {
MobileStationClassmark2__oct4_template* precondition;
MobileStationClassmark2__oct4_template* implied_template;
} implication_;
dynmatch_struct<MobileStationClassmark2__oct4>* dyn_match;
};

void set_specific();
void copy_value(const MobileStationClassmark2__oct4& other_value);
void copy_template(const MobileStationClassmark2__oct4_template& other_value);

public:
MobileStationClassmark2__oct4_template();
MobileStationClassmark2__oct4_template(template_sel other_value);
MobileStationClassmark2__oct4_template(const MobileStationClassmark2__oct4& other_value);
MobileStationClassmark2__oct4_template(const OPTIONAL<MobileStationClassmark2__oct4>& other_value);
MobileStationClassmark2__oct4_template(MobileStationClassmark2__oct4_template* p_precondition, MobileStationClassmark2__oct4_template* p_implied_template);
MobileStationClassmark2__oct4_template(Dynamic_Match_Interface<MobileStationClassmark2__oct4>* p_dyn_match);
MobileStationClassmark2__oct4_template(const MobileStationClassmark2__oct4_template& other_value);
~MobileStationClassmark2__oct4_template();
MobileStationClassmark2__oct4_template& operator=(template_sel other_value);
MobileStationClassmark2__oct4_template& operator=(const MobileStationClassmark2__oct4& other_value);
MobileStationClassmark2__oct4_template& operator=(const OPTIONAL<MobileStationClassmark2__oct4>& other_value);
MobileStationClassmark2__oct4_template& operator=(const MobileStationClassmark2__oct4_template& other_value);
boolean match(const MobileStationClassmark2__oct4& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
MobileStationClassmark2__oct4 valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
MobileStationClassmark2__oct4_template& list_item(unsigned int list_index) const;
BITSTRING_template& fc();
const BITSTRING_template& fc() const;
BITSTRING_template& vgcs();
const BITSTRING_template& vgcs() const;
BITSTRING_template& vbs();
const BITSTRING_template& vbs() const;
BITSTRING_template& sm__Capability();
const BITSTRING_template& sm__Capability() const;
BITSTRING_template& ss__ScreenIndicator();
const BITSTRING_template& ss__ScreenIndicator() const;
BITSTRING_template& ps__Capability();
const BITSTRING_template& ps__Capability() const;
BITSTRING_template& spare2__1();
const BITSTRING_template& spare2__1() const;
int size_of() const;
void log() const;
void log_match(const MobileStationClassmark2__oct4& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class MobileStationClassmark2__oct5 : public Base_Type {
  BITSTRING field_a5__2;
  BITSTRING field_a5__3;
  BITSTRING field_cmsp;
  BITSTRING field_solsa;
  BITSTRING field_ucs2;
  BITSTRING field_lcsva__cap;
  BITSTRING field_spare5__7;
  BITSTRING field_cm3;
public:
  MobileStationClassmark2__oct5();
  MobileStationClassmark2__oct5(const BITSTRING& par_a5__2,
    const BITSTRING& par_a5__3,
    const BITSTRING& par_cmsp,
    const BITSTRING& par_solsa,
    const BITSTRING& par_ucs2,
    const BITSTRING& par_lcsva__cap,
    const BITSTRING& par_spare5__7,
    const BITSTRING& par_cm3);
  MobileStationClassmark2__oct5(const MobileStationClassmark2__oct5& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  MobileStationClassmark2__oct5& operator=(const MobileStationClassmark2__oct5& other_value);
  boolean operator==(const MobileStationClassmark2__oct5& other_value) const;
  inline boolean operator!=(const MobileStationClassmark2__oct5& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& a5__2()
    {return field_a5__2;}
  inline const BITSTRING& a5__2() const
    {return field_a5__2;}
  inline BITSTRING& a5__3()
    {return field_a5__3;}
  inline const BITSTRING& a5__3() const
    {return field_a5__3;}
  inline BITSTRING& cmsp()
    {return field_cmsp;}
  inline const BITSTRING& cmsp() const
    {return field_cmsp;}
  inline BITSTRING& solsa()
    {return field_solsa;}
  inline const BITSTRING& solsa() const
    {return field_solsa;}
  inline BITSTRING& ucs2()
    {return field_ucs2;}
  inline const BITSTRING& ucs2() const
    {return field_ucs2;}
  inline BITSTRING& lcsva__cap()
    {return field_lcsva__cap;}
  inline const BITSTRING& lcsva__cap() const
    {return field_lcsva__cap;}
  inline BITSTRING& spare5__7()
    {return field_spare5__7;}
  inline const BITSTRING& spare5__7() const
    {return field_spare5__7;}
  inline BITSTRING& cm3()
    {return field_cm3;}
  inline const BITSTRING& cm3() const
    {return field_cm3;}
  inline int size_of() const
    {return 8;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class MobileStationClassmark2__oct5_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
MobileStationClassmark2__oct5_template *list_value;
} value_list;
struct {
MobileStationClassmark2__oct5_template* precondition;
MobileStationClassmark2__oct5_template* implied_template;
} implication_;
dynmatch_struct<MobileStationClassmark2__oct5>* dyn_match;
};

void set_specific();
void copy_value(const MobileStationClassmark2__oct5& other_value);
void copy_template(const MobileStationClassmark2__oct5_template& other_value);

public:
MobileStationClassmark2__oct5_template();
MobileStationClassmark2__oct5_template(template_sel other_value);
MobileStationClassmark2__oct5_template(const MobileStationClassmark2__oct5& other_value);
MobileStationClassmark2__oct5_template(const OPTIONAL<MobileStationClassmark2__oct5>& other_value);
MobileStationClassmark2__oct5_template(MobileStationClassmark2__oct5_template* p_precondition, MobileStationClassmark2__oct5_template* p_implied_template);
MobileStationClassmark2__oct5_template(Dynamic_Match_Interface<MobileStationClassmark2__oct5>* p_dyn_match);
MobileStationClassmark2__oct5_template(const MobileStationClassmark2__oct5_template& other_value);
~MobileStationClassmark2__oct5_template();
MobileStationClassmark2__oct5_template& operator=(template_sel other_value);
MobileStationClassmark2__oct5_template& operator=(const MobileStationClassmark2__oct5& other_value);
MobileStationClassmark2__oct5_template& operator=(const OPTIONAL<MobileStationClassmark2__oct5>& other_value);
MobileStationClassmark2__oct5_template& operator=(const MobileStationClassmark2__oct5_template& other_value);
boolean match(const MobileStationClassmark2__oct5& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
MobileStationClassmark2__oct5 valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
MobileStationClassmark2__oct5_template& list_item(unsigned int list_index) const;
BITSTRING_template& a5__2();
const BITSTRING_template& a5__2() const;
BITSTRING_template& a5__3();
const BITSTRING_template& a5__3() const;
BITSTRING_template& cmsp();
const BITSTRING_template& cmsp() const;
BITSTRING_template& solsa();
const BITSTRING_template& solsa() const;
BITSTRING_template& ucs2();
const BITSTRING_template& ucs2() const;
BITSTRING_template& lcsva__cap();
const BITSTRING_template& lcsva__cap() const;
BITSTRING_template& spare5__7();
const BITSTRING_template& spare5__7() const;
BITSTRING_template& cm3();
const BITSTRING_template& cm3() const;
int size_of() const;
void log() const;
void log_match(const MobileStationClassmark2__oct5& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class MobileStationClassmark2__LV : public Base_Type {
  INTEGER field_lengthIndicator;
  BITSTRING field_rf__PowerCapability;
  BITSTRING field_a5__1;
  BITSTRING field_esind;
  BITSTRING field_revisionLevel;
  BITSTRING field_spare1__1;
  OPTIONAL< MobileStationClassmark2__oct4 > field_mobileStationClassmark2__oct4;
  OPTIONAL< MobileStationClassmark2__oct5 > field_mobileStationClassmark2__oct5;
public:
  MobileStationClassmark2__LV();
  MobileStationClassmark2__LV(const INTEGER& par_lengthIndicator,
    const BITSTRING& par_rf__PowerCapability,
    const BITSTRING& par_a5__1,
    const BITSTRING& par_esind,
    const BITSTRING& par_revisionLevel,
    const BITSTRING& par_spare1__1,
    const OPTIONAL< MobileStationClassmark2__oct4 >& par_mobileStationClassmark2__oct4,
    const OPTIONAL< MobileStationClassmark2__oct5 >& par_mobileStationClassmark2__oct5);
  MobileStationClassmark2__LV(const MobileStationClassmark2__LV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  MobileStationClassmark2__LV& operator=(const MobileStationClassmark2__LV& other_value);
  boolean operator==(const MobileStationClassmark2__LV& other_value) const;
  inline boolean operator!=(const MobileStationClassmark2__LV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline INTEGER& lengthIndicator()
    {return field_lengthIndicator;}
  inline const INTEGER& lengthIndicator() const
    {return field_lengthIndicator;}
  inline BITSTRING& rf__PowerCapability()
    {return field_rf__PowerCapability;}
  inline const BITSTRING& rf__PowerCapability() const
    {return field_rf__PowerCapability;}
  inline BITSTRING& a5__1()
    {return field_a5__1;}
  inline const BITSTRING& a5__1() const
    {return field_a5__1;}
  inline BITSTRING& esind()
    {return field_esind;}
  inline const BITSTRING& esind() const
    {return field_esind;}
  inline BITSTRING& revisionLevel()
    {return field_revisionLevel;}
  inline const BITSTRING& revisionLevel() const
    {return field_revisionLevel;}
  inline BITSTRING& spare1__1()
    {return field_spare1__1;}
  inline const BITSTRING& spare1__1() const
    {return field_spare1__1;}
  inline OPTIONAL< MobileStationClassmark2__oct4 >& mobileStationClassmark2__oct4()
    {return field_mobileStationClassmark2__oct4;}
  inline const OPTIONAL< MobileStationClassmark2__oct4 >& mobileStationClassmark2__oct4() const
    {return field_mobileStationClassmark2__oct4;}
  inline OPTIONAL< MobileStationClassmark2__oct5 >& mobileStationClassmark2__oct5()
    {return field_mobileStationClassmark2__oct5;}
  inline const OPTIONAL< MobileStationClassmark2__oct5 >& mobileStationClassmark2__oct5() const
    {return field_mobileStationClassmark2__oct5;}
  int size_of() const;
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class MobileStationClassmark2__LV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
MobileStationClassmark2__LV_template *list_value;
} value_list;
struct {
MobileStationClassmark2__LV_template* precondition;
MobileStationClassmark2__LV_template* implied_template;
} implication_;
dynmatch_struct<MobileStationClassmark2__LV>* dyn_match;
};

void set_specific();
void copy_value(const MobileStationClassmark2__LV& other_value);
void copy_template(const MobileStationClassmark2__LV_template& other_value);

public:
MobileStationClassmark2__LV_template();
MobileStationClassmark2__LV_template(template_sel other_value);
MobileStationClassmark2__LV_template(const MobileStationClassmark2__LV& other_value);
MobileStationClassmark2__LV_template(const OPTIONAL<MobileStationClassmark2__LV>& other_value);
MobileStationClassmark2__LV_template(MobileStationClassmark2__LV_template* p_precondition, MobileStationClassmark2__LV_template* p_implied_template);
MobileStationClassmark2__LV_template(Dynamic_Match_Interface<MobileStationClassmark2__LV>* p_dyn_match);
MobileStationClassmark2__LV_template(const MobileStationClassmark2__LV_template& other_value);
~MobileStationClassmark2__LV_template();
MobileStationClassmark2__LV_template& operator=(template_sel other_value);
MobileStationClassmark2__LV_template& operator=(const MobileStationClassmark2__LV& other_value);
MobileStationClassmark2__LV_template& operator=(const OPTIONAL<MobileStationClassmark2__LV>& other_value);
MobileStationClassmark2__LV_template& operator=(const MobileStationClassmark2__LV_template& other_value);
boolean match(const MobileStationClassmark2__LV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
MobileStationClassmark2__LV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
MobileStationClassmark2__LV_template& list_item(unsigned int list_index) const;
INTEGER_template& lengthIndicator();
const INTEGER_template& lengthIndicator() const;
BITSTRING_template& rf__PowerCapability();
const BITSTRING_template& rf__PowerCapability() const;
BITSTRING_template& a5__1();
const BITSTRING_template& a5__1() const;
BITSTRING_template& esind();
const BITSTRING_template& esind() const;
BITSTRING_template& revisionLevel();
const BITSTRING_template& revisionLevel() const;
BITSTRING_template& spare1__1();
const BITSTRING_template& spare1__1() const;
MobileStationClassmark2__oct4_template& mobileStationClassmark2__oct4();
const MobileStationClassmark2__oct4_template& mobileStationClassmark2__oct4() const;
MobileStationClassmark2__oct5_template& mobileStationClassmark2__oct5();
const MobileStationClassmark2__oct5_template& mobileStationClassmark2__oct5() const;
int size_of() const;
void log() const;
void log_match(const MobileStationClassmark2__LV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class MobileStationClassmark2__TLV : public Base_Type {
  OCTETSTRING field_elementIdentifier;
  MobileStationClassmark2__LV field_mobileStationClassmark2LV;
public:
  MobileStationClassmark2__TLV();
  MobileStationClassmark2__TLV(const OCTETSTRING& par_elementIdentifier,
    const MobileStationClassmark2__LV& par_mobileStationClassmark2LV);
  MobileStationClassmark2__TLV(const MobileStationClassmark2__TLV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  MobileStationClassmark2__TLV& operator=(const MobileStationClassmark2__TLV& other_value);
  boolean operator==(const MobileStationClassmark2__TLV& other_value) const;
  inline boolean operator!=(const MobileStationClassmark2__TLV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline OCTETSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const OCTETSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline MobileStationClassmark2__LV& mobileStationClassmark2LV()
    {return field_mobileStationClassmark2LV;}
  inline const MobileStationClassmark2__LV& mobileStationClassmark2LV() const
    {return field_mobileStationClassmark2LV;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class MobileStationClassmark2__TLV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
MobileStationClassmark2__TLV_template *list_value;
} value_list;
struct {
MobileStationClassmark2__TLV_template* precondition;
MobileStationClassmark2__TLV_template* implied_template;
} implication_;
dynmatch_struct<MobileStationClassmark2__TLV>* dyn_match;
};

void set_specific();
void copy_value(const MobileStationClassmark2__TLV& other_value);
void copy_template(const MobileStationClassmark2__TLV_template& other_value);

public:
MobileStationClassmark2__TLV_template();
MobileStationClassmark2__TLV_template(template_sel other_value);
MobileStationClassmark2__TLV_template(const MobileStationClassmark2__TLV& other_value);
MobileStationClassmark2__TLV_template(const OPTIONAL<MobileStationClassmark2__TLV>& other_value);
MobileStationClassmark2__TLV_template(MobileStationClassmark2__TLV_template* p_precondition, MobileStationClassmark2__TLV_template* p_implied_template);
MobileStationClassmark2__TLV_template(Dynamic_Match_Interface<MobileStationClassmark2__TLV>* p_dyn_match);
MobileStationClassmark2__TLV_template(const MobileStationClassmark2__TLV_template& other_value);
~MobileStationClassmark2__TLV_template();
MobileStationClassmark2__TLV_template& operator=(template_sel other_value);
MobileStationClassmark2__TLV_template& operator=(const MobileStationClassmark2__TLV& other_value);
MobileStationClassmark2__TLV_template& operator=(const OPTIONAL<MobileStationClassmark2__TLV>& other_value);
MobileStationClassmark2__TLV_template& operator=(const MobileStationClassmark2__TLV_template& other_value);
boolean match(const MobileStationClassmark2__TLV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
MobileStationClassmark2__TLV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
MobileStationClassmark2__TLV_template& list_item(unsigned int list_index) const;
OCTETSTRING_template& elementIdentifier();
const OCTETSTRING_template& elementIdentifier() const;
MobileStationClassmark2__LV_template& mobileStationClassmark2LV();
const MobileStationClassmark2__LV_template& mobileStationClassmark2LV() const;
int size_of() const;
void log() const;
void log_match(const MobileStationClassmark2__TLV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class ClassmarkInformationType2__forUMTS : public Base_Type {
  OCTETSTRING field_elementIdentifier;
  INTEGER field_lengthIndicator;
  BITSTRING field_rf__PowerCapability;
  BITSTRING field_a5__1;
  BITSTRING field_esind;
  BITSTRING field_revisionLevel;
  BITSTRING field_spare1__1;
  BITSTRING field_fc;
  BITSTRING field_vgcs;
  BITSTRING field_vbs;
  BITSTRING field_sm__Capability;
  BITSTRING field_ss__ScreenIndicator;
  BITSTRING field_ps__Capability;
  BITSTRING field_spare2__1;
  BITSTRING field_a5__2;
  BITSTRING field_a5__3;
  BITSTRING field_cmsp;
  BITSTRING field_solsa;
  BITSTRING field_ucs2;
  BITSTRING field_lcsva__cap;
  BITSTRING field_spare5__7;
  BITSTRING field_cm3;
public:
  ClassmarkInformationType2__forUMTS();
  ClassmarkInformationType2__forUMTS(const OCTETSTRING& par_elementIdentifier,
    const INTEGER& par_lengthIndicator,
    const BITSTRING& par_rf__PowerCapability,
    const BITSTRING& par_a5__1,
    const BITSTRING& par_esind,
    const BITSTRING& par_revisionLevel,
    const BITSTRING& par_spare1__1,
    const BITSTRING& par_fc,
    const BITSTRING& par_vgcs,
    const BITSTRING& par_vbs,
    const BITSTRING& par_sm__Capability,
    const BITSTRING& par_ss__ScreenIndicator,
    const BITSTRING& par_ps__Capability,
    const BITSTRING& par_spare2__1,
    const BITSTRING& par_a5__2,
    const BITSTRING& par_a5__3,
    const BITSTRING& par_cmsp,
    const BITSTRING& par_solsa,
    const BITSTRING& par_ucs2,
    const BITSTRING& par_lcsva__cap,
    const BITSTRING& par_spare5__7,
    const BITSTRING& par_cm3);
  ClassmarkInformationType2__forUMTS(const ClassmarkInformationType2__forUMTS& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  ClassmarkInformationType2__forUMTS& operator=(const ClassmarkInformationType2__forUMTS& other_value);
  boolean operator==(const ClassmarkInformationType2__forUMTS& other_value) const;
  inline boolean operator!=(const ClassmarkInformationType2__forUMTS& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline OCTETSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const OCTETSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline INTEGER& lengthIndicator()
    {return field_lengthIndicator;}
  inline const INTEGER& lengthIndicator() const
    {return field_lengthIndicator;}
  inline BITSTRING& rf__PowerCapability()
    {return field_rf__PowerCapability;}
  inline const BITSTRING& rf__PowerCapability() const
    {return field_rf__PowerCapability;}
  inline BITSTRING& a5__1()
    {return field_a5__1;}
  inline const BITSTRING& a5__1() const
    {return field_a5__1;}
  inline BITSTRING& esind()
    {return field_esind;}
  inline const BITSTRING& esind() const
    {return field_esind;}
  inline BITSTRING& revisionLevel()
    {return field_revisionLevel;}
  inline const BITSTRING& revisionLevel() const
    {return field_revisionLevel;}
  inline BITSTRING& spare1__1()
    {return field_spare1__1;}
  inline const BITSTRING& spare1__1() const
    {return field_spare1__1;}
  inline BITSTRING& fc()
    {return field_fc;}
  inline const BITSTRING& fc() const
    {return field_fc;}
  inline BITSTRING& vgcs()
    {return field_vgcs;}
  inline const BITSTRING& vgcs() const
    {return field_vgcs;}
  inline BITSTRING& vbs()
    {return field_vbs;}
  inline const BITSTRING& vbs() const
    {return field_vbs;}
  inline BITSTRING& sm__Capability()
    {return field_sm__Capability;}
  inline const BITSTRING& sm__Capability() const
    {return field_sm__Capability;}
  inline BITSTRING& ss__ScreenIndicator()
    {return field_ss__ScreenIndicator;}
  inline const BITSTRING& ss__ScreenIndicator() const
    {return field_ss__ScreenIndicator;}
  inline BITSTRING& ps__Capability()
    {return field_ps__Capability;}
  inline const BITSTRING& ps__Capability() const
    {return field_ps__Capability;}
  inline BITSTRING& spare2__1()
    {return field_spare2__1;}
  inline const BITSTRING& spare2__1() const
    {return field_spare2__1;}
  inline BITSTRING& a5__2()
    {return field_a5__2;}
  inline const BITSTRING& a5__2() const
    {return field_a5__2;}
  inline BITSTRING& a5__3()
    {return field_a5__3;}
  inline const BITSTRING& a5__3() const
    {return field_a5__3;}
  inline BITSTRING& cmsp()
    {return field_cmsp;}
  inline const BITSTRING& cmsp() const
    {return field_cmsp;}
  inline BITSTRING& solsa()
    {return field_solsa;}
  inline const BITSTRING& solsa() const
    {return field_solsa;}
  inline BITSTRING& ucs2()
    {return field_ucs2;}
  inline const BITSTRING& ucs2() const
    {return field_ucs2;}
  inline BITSTRING& lcsva__cap()
    {return field_lcsva__cap;}
  inline const BITSTRING& lcsva__cap() const
    {return field_lcsva__cap;}
  inline BITSTRING& spare5__7()
    {return field_spare5__7;}
  inline const BITSTRING& spare5__7() const
    {return field_spare5__7;}
  inline BITSTRING& cm3()
    {return field_cm3;}
  inline const BITSTRING& cm3() const
    {return field_cm3;}
  inline int size_of() const
    {return 22;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class ClassmarkInformationType2__forUMTS_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
ClassmarkInformationType2__forUMTS_template *list_value;
} value_list;
struct {
ClassmarkInformationType2__forUMTS_template* precondition;
ClassmarkInformationType2__forUMTS_template* implied_template;
} implication_;
dynmatch_struct<ClassmarkInformationType2__forUMTS>* dyn_match;
};

void set_specific();
void copy_value(const ClassmarkInformationType2__forUMTS& other_value);
void copy_template(const ClassmarkInformationType2__forUMTS_template& other_value);

public:
ClassmarkInformationType2__forUMTS_template();
ClassmarkInformationType2__forUMTS_template(template_sel other_value);
ClassmarkInformationType2__forUMTS_template(const ClassmarkInformationType2__forUMTS& other_value);
ClassmarkInformationType2__forUMTS_template(const OPTIONAL<ClassmarkInformationType2__forUMTS>& other_value);
ClassmarkInformationType2__forUMTS_template(ClassmarkInformationType2__forUMTS_template* p_precondition, ClassmarkInformationType2__forUMTS_template* p_implied_template);
ClassmarkInformationType2__forUMTS_template(Dynamic_Match_Interface<ClassmarkInformationType2__forUMTS>* p_dyn_match);
ClassmarkInformationType2__forUMTS_template(const ClassmarkInformationType2__forUMTS_template& other_value);
~ClassmarkInformationType2__forUMTS_template();
ClassmarkInformationType2__forUMTS_template& operator=(template_sel other_value);
ClassmarkInformationType2__forUMTS_template& operator=(const ClassmarkInformationType2__forUMTS& other_value);
ClassmarkInformationType2__forUMTS_template& operator=(const OPTIONAL<ClassmarkInformationType2__forUMTS>& other_value);
ClassmarkInformationType2__forUMTS_template& operator=(const ClassmarkInformationType2__forUMTS_template& other_value);
boolean match(const ClassmarkInformationType2__forUMTS& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
ClassmarkInformationType2__forUMTS valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
ClassmarkInformationType2__forUMTS_template& list_item(unsigned int list_index) const;
OCTETSTRING_template& elementIdentifier();
const OCTETSTRING_template& elementIdentifier() const;
INTEGER_template& lengthIndicator();
const INTEGER_template& lengthIndicator() const;
BITSTRING_template& rf__PowerCapability();
const BITSTRING_template& rf__PowerCapability() const;
BITSTRING_template& a5__1();
const BITSTRING_template& a5__1() const;
BITSTRING_template& esind();
const BITSTRING_template& esind() const;
BITSTRING_template& revisionLevel();
const BITSTRING_template& revisionLevel() const;
BITSTRING_template& spare1__1();
const BITSTRING_template& spare1__1() const;
BITSTRING_template& fc();
const BITSTRING_template& fc() const;
BITSTRING_template& vgcs();
const BITSTRING_template& vgcs() const;
BITSTRING_template& vbs();
const BITSTRING_template& vbs() const;
BITSTRING_template& sm__Capability();
const BITSTRING_template& sm__Capability() const;
BITSTRING_template& ss__ScreenIndicator();
const BITSTRING_template& ss__ScreenIndicator() const;
BITSTRING_template& ps__Capability();
const BITSTRING_template& ps__Capability() const;
BITSTRING_template& spare2__1();
const BITSTRING_template& spare2__1() const;
BITSTRING_template& a5__2();
const BITSTRING_template& a5__2() const;
BITSTRING_template& a5__3();
const BITSTRING_template& a5__3() const;
BITSTRING_template& cmsp();
const BITSTRING_template& cmsp() const;
BITSTRING_template& solsa();
const BITSTRING_template& solsa() const;
BITSTRING_template& ucs2();
const BITSTRING_template& ucs2() const;
BITSTRING_template& lcsva__cap();
const BITSTRING_template& lcsva__cap() const;
BITSTRING_template& spare5__7();
const BITSTRING_template& spare5__7() const;
BITSTRING_template& cm3();
const BITSTRING_template& cm3() const;
int size_of() const;
void log() const;
void log_match(const ClassmarkInformationType2__forUMTS& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class MobileStationClassmark3__TLV : public Base_Type {
  OCTETSTRING field_elementIdentifier;
  INTEGER field_lengthIndicator;
  OCTETSTRING field_valuePart;
public:
  MobileStationClassmark3__TLV();
  MobileStationClassmark3__TLV(const OCTETSTRING& par_elementIdentifier,
    const INTEGER& par_lengthIndicator,
    const OCTETSTRING& par_valuePart);
  MobileStationClassmark3__TLV(const MobileStationClassmark3__TLV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  MobileStationClassmark3__TLV& operator=(const MobileStationClassmark3__TLV& other_value);
  boolean operator==(const MobileStationClassmark3__TLV& other_value) const;
  inline boolean operator!=(const MobileStationClassmark3__TLV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline OCTETSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const OCTETSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline INTEGER& lengthIndicator()
    {return field_lengthIndicator;}
  inline const INTEGER& lengthIndicator() const
    {return field_lengthIndicator;}
  inline OCTETSTRING& valuePart()
    {return field_valuePart;}
  inline const OCTETSTRING& valuePart() const
    {return field_valuePart;}
  inline int size_of() const
    {return 3;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class MobileStationClassmark3__TLV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
MobileStationClassmark3__TLV_template *list_value;
} value_list;
struct {
MobileStationClassmark3__TLV_template* precondition;
MobileStationClassmark3__TLV_template* implied_template;
} implication_;
dynmatch_struct<MobileStationClassmark3__TLV>* dyn_match;
};

void set_specific();
void copy_value(const MobileStationClassmark3__TLV& other_value);
void copy_template(const MobileStationClassmark3__TLV_template& other_value);

public:
MobileStationClassmark3__TLV_template();
MobileStationClassmark3__TLV_template(template_sel other_value);
MobileStationClassmark3__TLV_template(const MobileStationClassmark3__TLV& other_value);
MobileStationClassmark3__TLV_template(const OPTIONAL<MobileStationClassmark3__TLV>& other_value);
MobileStationClassmark3__TLV_template(MobileStationClassmark3__TLV_template* p_precondition, MobileStationClassmark3__TLV_template* p_implied_template);
MobileStationClassmark3__TLV_template(Dynamic_Match_Interface<MobileStationClassmark3__TLV>* p_dyn_match);
MobileStationClassmark3__TLV_template(const MobileStationClassmark3__TLV_template& other_value);
~MobileStationClassmark3__TLV_template();
MobileStationClassmark3__TLV_template& operator=(template_sel other_value);
MobileStationClassmark3__TLV_template& operator=(const MobileStationClassmark3__TLV& other_value);
MobileStationClassmark3__TLV_template& operator=(const OPTIONAL<MobileStationClassmark3__TLV>& other_value);
MobileStationClassmark3__TLV_template& operator=(const MobileStationClassmark3__TLV_template& other_value);
boolean match(const MobileStationClassmark3__TLV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
MobileStationClassmark3__TLV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
MobileStationClassmark3__TLV_template& list_item(unsigned int list_index) const;
OCTETSTRING_template& elementIdentifier();
const OCTETSTRING_template& elementIdentifier() const;
INTEGER_template& lengthIndicator();
const INTEGER_template& lengthIndicator() const;
OCTETSTRING_template& valuePart();
const OCTETSTRING_template& valuePart() const;
int size_of() const;
void log() const;
void log_match(const MobileStationClassmark3__TLV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class MobileStationClassmark3__LV : public Base_Type {
  INTEGER field_lengthIndicator;
  OCTETSTRING field_valuePart;
public:
  MobileStationClassmark3__LV();
  MobileStationClassmark3__LV(const INTEGER& par_lengthIndicator,
    const OCTETSTRING& par_valuePart);
  MobileStationClassmark3__LV(const MobileStationClassmark3__LV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  MobileStationClassmark3__LV& operator=(const MobileStationClassmark3__LV& other_value);
  boolean operator==(const MobileStationClassmark3__LV& other_value) const;
  inline boolean operator!=(const MobileStationClassmark3__LV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline INTEGER& lengthIndicator()
    {return field_lengthIndicator;}
  inline const INTEGER& lengthIndicator() const
    {return field_lengthIndicator;}
  inline OCTETSTRING& valuePart()
    {return field_valuePart;}
  inline const OCTETSTRING& valuePart() const
    {return field_valuePart;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class MobileStationClassmark3__LV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
MobileStationClassmark3__LV_template *list_value;
} value_list;
struct {
MobileStationClassmark3__LV_template* precondition;
MobileStationClassmark3__LV_template* implied_template;
} implication_;
dynmatch_struct<MobileStationClassmark3__LV>* dyn_match;
};

void set_specific();
void copy_value(const MobileStationClassmark3__LV& other_value);
void copy_template(const MobileStationClassmark3__LV_template& other_value);

public:
MobileStationClassmark3__LV_template();
MobileStationClassmark3__LV_template(template_sel other_value);
MobileStationClassmark3__LV_template(const MobileStationClassmark3__LV& other_value);
MobileStationClassmark3__LV_template(const OPTIONAL<MobileStationClassmark3__LV>& other_value);
MobileStationClassmark3__LV_template(MobileStationClassmark3__LV_template* p_precondition, MobileStationClassmark3__LV_template* p_implied_template);
MobileStationClassmark3__LV_template(Dynamic_Match_Interface<MobileStationClassmark3__LV>* p_dyn_match);
MobileStationClassmark3__LV_template(const MobileStationClassmark3__LV_template& other_value);
~MobileStationClassmark3__LV_template();
MobileStationClassmark3__LV_template& operator=(template_sel other_value);
MobileStationClassmark3__LV_template& operator=(const MobileStationClassmark3__LV& other_value);
MobileStationClassmark3__LV_template& operator=(const OPTIONAL<MobileStationClassmark3__LV>& other_value);
MobileStationClassmark3__LV_template& operator=(const MobileStationClassmark3__LV_template& other_value);
boolean match(const MobileStationClassmark3__LV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
MobileStationClassmark3__LV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
MobileStationClassmark3__LV_template& list_item(unsigned int list_index) const;
INTEGER_template& lengthIndicator();
const INTEGER_template& lengthIndicator() const;
OCTETSTRING_template& valuePart();
const OCTETSTRING_template& valuePart() const;
int size_of() const;
void log() const;
void log_match(const MobileStationClassmark3__LV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class UTRACSGCellsReporting : public Base_Type {
  BITSTRING field_reportingofUTRANCSGCellsSupport;
public:
  UTRACSGCellsReporting();
  UTRACSGCellsReporting(const BITSTRING& par_reportingofUTRANCSGCellsSupport);
  UTRACSGCellsReporting(const UTRACSGCellsReporting& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  UTRACSGCellsReporting& operator=(const UTRACSGCellsReporting& other_value);
  boolean operator==(const UTRACSGCellsReporting& other_value) const;
  inline boolean operator!=(const UTRACSGCellsReporting& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& reportingofUTRANCSGCellsSupport()
    {return field_reportingofUTRANCSGCellsSupport;}
  inline const BITSTRING& reportingofUTRANCSGCellsSupport() const
    {return field_reportingofUTRANCSGCellsSupport;}
  inline int size_of() const
    {return 1;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class UTRACSGCellsReporting_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
UTRACSGCellsReporting_template *list_value;
} value_list;
struct {
UTRACSGCellsReporting_template* precondition;
UTRACSGCellsReporting_template* implied_template;
} implication_;
dynmatch_struct<UTRACSGCellsReporting>* dyn_match;
};

void set_specific();
void copy_value(const UTRACSGCellsReporting& other_value);
void copy_template(const UTRACSGCellsReporting_template& other_value);

public:
UTRACSGCellsReporting_template();
UTRACSGCellsReporting_template(template_sel other_value);
UTRACSGCellsReporting_template(const UTRACSGCellsReporting& other_value);
UTRACSGCellsReporting_template(const OPTIONAL<UTRACSGCellsReporting>& other_value);
UTRACSGCellsReporting_template(UTRACSGCellsReporting_template* p_precondition, UTRACSGCellsReporting_template* p_implied_template);
UTRACSGCellsReporting_template(Dynamic_Match_Interface<UTRACSGCellsReporting>* p_dyn_match);
UTRACSGCellsReporting_template(const UTRACSGCellsReporting_template& other_value);
~UTRACSGCellsReporting_template();
UTRACSGCellsReporting_template& operator=(template_sel other_value);
UTRACSGCellsReporting_template& operator=(const UTRACSGCellsReporting& other_value);
UTRACSGCellsReporting_template& operator=(const OPTIONAL<UTRACSGCellsReporting>& other_value);
UTRACSGCellsReporting_template& operator=(const UTRACSGCellsReporting_template& other_value);
boolean match(const UTRACSGCellsReporting& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
UTRACSGCellsReporting valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
UTRACSGCellsReporting_template& list_item(unsigned int list_index) const;
BITSTRING_template& reportingofUTRANCSGCellsSupport();
const BITSTRING_template& reportingofUTRANCSGCellsSupport() const;
int size_of() const;
void log() const;
void log_match(const UTRACSGCellsReporting& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class VAMOSLevel : public Base_Type {
  BITSTRING field_vAMOSSupport;
public:
  VAMOSLevel();
  VAMOSLevel(const BITSTRING& par_vAMOSSupport);
  VAMOSLevel(const VAMOSLevel& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  VAMOSLevel& operator=(const VAMOSLevel& other_value);
  boolean operator==(const VAMOSLevel& other_value) const;
  inline boolean operator!=(const VAMOSLevel& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& vAMOSSupport()
    {return field_vAMOSSupport;}
  inline const BITSTRING& vAMOSSupport() const
    {return field_vAMOSSupport;}
  inline int size_of() const
    {return 1;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class VAMOSLevel_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
VAMOSLevel_template *list_value;
} value_list;
struct {
VAMOSLevel_template* precondition;
VAMOSLevel_template* implied_template;
} implication_;
dynmatch_struct<VAMOSLevel>* dyn_match;
};

void set_specific();
void copy_value(const VAMOSLevel& other_value);
void copy_template(const VAMOSLevel_template& other_value);

public:
VAMOSLevel_template();
VAMOSLevel_template(template_sel other_value);
VAMOSLevel_template(const VAMOSLevel& other_value);
VAMOSLevel_template(const OPTIONAL<VAMOSLevel>& other_value);
VAMOSLevel_template(VAMOSLevel_template* p_precondition, VAMOSLevel_template* p_implied_template);
VAMOSLevel_template(Dynamic_Match_Interface<VAMOSLevel>* p_dyn_match);
VAMOSLevel_template(const VAMOSLevel_template& other_value);
~VAMOSLevel_template();
VAMOSLevel_template& operator=(template_sel other_value);
VAMOSLevel_template& operator=(const VAMOSLevel& other_value);
VAMOSLevel_template& operator=(const OPTIONAL<VAMOSLevel>& other_value);
VAMOSLevel_template& operator=(const VAMOSLevel_template& other_value);
boolean match(const VAMOSLevel& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
VAMOSLevel valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
VAMOSLevel_template& list_item(unsigned int list_index) const;
BITSTRING_template& vAMOSSupport();
const BITSTRING_template& vAMOSSupport() const;
int size_of() const;
void log() const;
void log_match(const VAMOSLevel& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class DescriptiveGroupOrBroadcastCallReference__V : public Base_Type {
  BITSTRING field_binaryCodingOfGroupOrBroadcastCallReference;
  BITSTRING field_sF;
  BITSTRING field_aF;
  BITSTRING field_callPriority;
  BITSTRING field_cipheringInformation;
  BITSTRING field_spare;
public:
  DescriptiveGroupOrBroadcastCallReference__V();
  DescriptiveGroupOrBroadcastCallReference__V(const BITSTRING& par_binaryCodingOfGroupOrBroadcastCallReference,
    const BITSTRING& par_sF,
    const BITSTRING& par_aF,
    const BITSTRING& par_callPriority,
    const BITSTRING& par_cipheringInformation,
    const BITSTRING& par_spare);
  DescriptiveGroupOrBroadcastCallReference__V(const DescriptiveGroupOrBroadcastCallReference__V& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  DescriptiveGroupOrBroadcastCallReference__V& operator=(const DescriptiveGroupOrBroadcastCallReference__V& other_value);
  boolean operator==(const DescriptiveGroupOrBroadcastCallReference__V& other_value) const;
  inline boolean operator!=(const DescriptiveGroupOrBroadcastCallReference__V& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& binaryCodingOfGroupOrBroadcastCallReference()
    {return field_binaryCodingOfGroupOrBroadcastCallReference;}
  inline const BITSTRING& binaryCodingOfGroupOrBroadcastCallReference() const
    {return field_binaryCodingOfGroupOrBroadcastCallReference;}
  inline BITSTRING& sF()
    {return field_sF;}
  inline const BITSTRING& sF() const
    {return field_sF;}
  inline BITSTRING& aF()
    {return field_aF;}
  inline const BITSTRING& aF() const
    {return field_aF;}
  inline BITSTRING& callPriority()
    {return field_callPriority;}
  inline const BITSTRING& callPriority() const
    {return field_callPriority;}
  inline BITSTRING& cipheringInformation()
    {return field_cipheringInformation;}
  inline const BITSTRING& cipheringInformation() const
    {return field_cipheringInformation;}
  inline BITSTRING& spare()
    {return field_spare;}
  inline const BITSTRING& spare() const
    {return field_spare;}
  inline int size_of() const
    {return 6;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class DescriptiveGroupOrBroadcastCallReference__V_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
DescriptiveGroupOrBroadcastCallReference__V_template *list_value;
} value_list;
struct {
DescriptiveGroupOrBroadcastCallReference__V_template* precondition;
DescriptiveGroupOrBroadcastCallReference__V_template* implied_template;
} implication_;
dynmatch_struct<DescriptiveGroupOrBroadcastCallReference__V>* dyn_match;
};

void set_specific();
void copy_value(const DescriptiveGroupOrBroadcastCallReference__V& other_value);
void copy_template(const DescriptiveGroupOrBroadcastCallReference__V_template& other_value);

public:
DescriptiveGroupOrBroadcastCallReference__V_template();
DescriptiveGroupOrBroadcastCallReference__V_template(template_sel other_value);
DescriptiveGroupOrBroadcastCallReference__V_template(const DescriptiveGroupOrBroadcastCallReference__V& other_value);
DescriptiveGroupOrBroadcastCallReference__V_template(const OPTIONAL<DescriptiveGroupOrBroadcastCallReference__V>& other_value);
DescriptiveGroupOrBroadcastCallReference__V_template(DescriptiveGroupOrBroadcastCallReference__V_template* p_precondition, DescriptiveGroupOrBroadcastCallReference__V_template* p_implied_template);
DescriptiveGroupOrBroadcastCallReference__V_template(Dynamic_Match_Interface<DescriptiveGroupOrBroadcastCallReference__V>* p_dyn_match);
DescriptiveGroupOrBroadcastCallReference__V_template(const DescriptiveGroupOrBroadcastCallReference__V_template& other_value);
~DescriptiveGroupOrBroadcastCallReference__V_template();
DescriptiveGroupOrBroadcastCallReference__V_template& operator=(template_sel other_value);
DescriptiveGroupOrBroadcastCallReference__V_template& operator=(const DescriptiveGroupOrBroadcastCallReference__V& other_value);
DescriptiveGroupOrBroadcastCallReference__V_template& operator=(const OPTIONAL<DescriptiveGroupOrBroadcastCallReference__V>& other_value);
DescriptiveGroupOrBroadcastCallReference__V_template& operator=(const DescriptiveGroupOrBroadcastCallReference__V_template& other_value);
boolean match(const DescriptiveGroupOrBroadcastCallReference__V& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
DescriptiveGroupOrBroadcastCallReference__V valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
DescriptiveGroupOrBroadcastCallReference__V_template& list_item(unsigned int list_index) const;
BITSTRING_template& binaryCodingOfGroupOrBroadcastCallReference();
const BITSTRING_template& binaryCodingOfGroupOrBroadcastCallReference() const;
BITSTRING_template& sF();
const BITSTRING_template& sF() const;
BITSTRING_template& aF();
const BITSTRING_template& aF() const;
BITSTRING_template& callPriority();
const BITSTRING_template& callPriority() const;
BITSTRING_template& cipheringInformation();
const BITSTRING_template& cipheringInformation() const;
BITSTRING_template& spare();
const BITSTRING_template& spare() const;
int size_of() const;
void log() const;
void log_match(const DescriptiveGroupOrBroadcastCallReference__V& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class groupCipherKeyNumber__TV : public Base_Type {
  BITSTRING field_valuePart;
  BITSTRING field_elementIdentifier;
public:
  groupCipherKeyNumber__TV();
  groupCipherKeyNumber__TV(const BITSTRING& par_valuePart,
    const BITSTRING& par_elementIdentifier);
  groupCipherKeyNumber__TV(const groupCipherKeyNumber__TV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  groupCipherKeyNumber__TV& operator=(const groupCipherKeyNumber__TV& other_value);
  boolean operator==(const groupCipherKeyNumber__TV& other_value) const;
  inline boolean operator!=(const groupCipherKeyNumber__TV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& valuePart()
    {return field_valuePart;}
  inline const BITSTRING& valuePart() const
    {return field_valuePart;}
  inline BITSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const BITSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class groupCipherKeyNumber__TV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
groupCipherKeyNumber__TV_template *list_value;
} value_list;
struct {
groupCipherKeyNumber__TV_template* precondition;
groupCipherKeyNumber__TV_template* implied_template;
} implication_;
dynmatch_struct<groupCipherKeyNumber__TV>* dyn_match;
};

void set_specific();
void copy_value(const groupCipherKeyNumber__TV& other_value);
void copy_template(const groupCipherKeyNumber__TV_template& other_value);

public:
groupCipherKeyNumber__TV_template();
groupCipherKeyNumber__TV_template(template_sel other_value);
groupCipherKeyNumber__TV_template(const groupCipherKeyNumber__TV& other_value);
groupCipherKeyNumber__TV_template(const OPTIONAL<groupCipherKeyNumber__TV>& other_value);
groupCipherKeyNumber__TV_template(groupCipherKeyNumber__TV_template* p_precondition, groupCipherKeyNumber__TV_template* p_implied_template);
groupCipherKeyNumber__TV_template(Dynamic_Match_Interface<groupCipherKeyNumber__TV>* p_dyn_match);
groupCipherKeyNumber__TV_template(const groupCipherKeyNumber__TV_template& other_value);
~groupCipherKeyNumber__TV_template();
groupCipherKeyNumber__TV_template& operator=(template_sel other_value);
groupCipherKeyNumber__TV_template& operator=(const groupCipherKeyNumber__TV& other_value);
groupCipherKeyNumber__TV_template& operator=(const OPTIONAL<groupCipherKeyNumber__TV>& other_value);
groupCipherKeyNumber__TV_template& operator=(const groupCipherKeyNumber__TV_template& other_value);
boolean match(const groupCipherKeyNumber__TV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
groupCipherKeyNumber__TV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
groupCipherKeyNumber__TV_template& list_item(unsigned int list_index) const;
BITSTRING_template& valuePart();
const BITSTRING_template& valuePart() const;
BITSTRING_template& elementIdentifier();
const BITSTRING_template& elementIdentifier() const;
int size_of() const;
void log() const;
void log_match(const groupCipherKeyNumber__TV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class PdAndSapi : public Base_Type {
  BITSTRING field_protocolDiscriminator;
  BITSTRING field_sapi;
  BITSTRING field_spare2;
public:
  PdAndSapi();
  PdAndSapi(const BITSTRING& par_protocolDiscriminator,
    const BITSTRING& par_sapi,
    const BITSTRING& par_spare2);
  PdAndSapi(const PdAndSapi& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  PdAndSapi& operator=(const PdAndSapi& other_value);
  boolean operator==(const PdAndSapi& other_value) const;
  inline boolean operator!=(const PdAndSapi& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& protocolDiscriminator()
    {return field_protocolDiscriminator;}
  inline const BITSTRING& protocolDiscriminator() const
    {return field_protocolDiscriminator;}
  inline BITSTRING& sapi()
    {return field_sapi;}
  inline const BITSTRING& sapi() const
    {return field_sapi;}
  inline BITSTRING& spare2()
    {return field_spare2;}
  inline const BITSTRING& spare2() const
    {return field_spare2;}
  inline int size_of() const
    {return 3;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class PdAndSapi_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
PdAndSapi_template *list_value;
} value_list;
struct {
PdAndSapi_template* precondition;
PdAndSapi_template* implied_template;
} implication_;
dynmatch_struct<PdAndSapi>* dyn_match;
};

void set_specific();
void copy_value(const PdAndSapi& other_value);
void copy_template(const PdAndSapi_template& other_value);

public:
PdAndSapi_template();
PdAndSapi_template(template_sel other_value);
PdAndSapi_template(const PdAndSapi& other_value);
PdAndSapi_template(const OPTIONAL<PdAndSapi>& other_value);
PdAndSapi_template(PdAndSapi_template* p_precondition, PdAndSapi_template* p_implied_template);
PdAndSapi_template(Dynamic_Match_Interface<PdAndSapi>* p_dyn_match);
PdAndSapi_template(const PdAndSapi_template& other_value);
~PdAndSapi_template();
PdAndSapi_template& operator=(template_sel other_value);
PdAndSapi_template& operator=(const PdAndSapi& other_value);
PdAndSapi_template& operator=(const OPTIONAL<PdAndSapi>& other_value);
PdAndSapi_template& operator=(const PdAndSapi_template& other_value);
boolean match(const PdAndSapi& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
PdAndSapi valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
PdAndSapi_template& list_item(unsigned int list_index) const;
BITSTRING_template& protocolDiscriminator();
const BITSTRING_template& protocolDiscriminator() const;
BITSTRING_template& sapi();
const BITSTRING_template& sapi() const;
BITSTRING_template& spare2();
const BITSTRING_template& spare2() const;
int size_of() const;
void log() const;
void log_match(const PdAndSapi& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class PriorityLevel__ML3 : public Base_Type {
  BITSTRING field_callPriority;
  BITSTRING field_spare1__1;
  BITSTRING field_elementIdentifier;
public:
  PriorityLevel__ML3();
  PriorityLevel__ML3(const BITSTRING& par_callPriority,
    const BITSTRING& par_spare1__1,
    const BITSTRING& par_elementIdentifier);
  PriorityLevel__ML3(const PriorityLevel__ML3& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  PriorityLevel__ML3& operator=(const PriorityLevel__ML3& other_value);
  boolean operator==(const PriorityLevel__ML3& other_value) const;
  inline boolean operator!=(const PriorityLevel__ML3& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& callPriority()
    {return field_callPriority;}
  inline const BITSTRING& callPriority() const
    {return field_callPriority;}
  inline BITSTRING& spare1__1()
    {return field_spare1__1;}
  inline const BITSTRING& spare1__1() const
    {return field_spare1__1;}
  inline BITSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const BITSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline int size_of() const
    {return 3;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class PriorityLevel__ML3_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
PriorityLevel__ML3_template *list_value;
} value_list;
struct {
PriorityLevel__ML3_template* precondition;
PriorityLevel__ML3_template* implied_template;
} implication_;
dynmatch_struct<PriorityLevel__ML3>* dyn_match;
};

void set_specific();
void copy_value(const PriorityLevel__ML3& other_value);
void copy_template(const PriorityLevel__ML3_template& other_value);

public:
PriorityLevel__ML3_template();
PriorityLevel__ML3_template(template_sel other_value);
PriorityLevel__ML3_template(const PriorityLevel__ML3& other_value);
PriorityLevel__ML3_template(const OPTIONAL<PriorityLevel__ML3>& other_value);
PriorityLevel__ML3_template(PriorityLevel__ML3_template* p_precondition, PriorityLevel__ML3_template* p_implied_template);
PriorityLevel__ML3_template(Dynamic_Match_Interface<PriorityLevel__ML3>* p_dyn_match);
PriorityLevel__ML3_template(const PriorityLevel__ML3_template& other_value);
~PriorityLevel__ML3_template();
PriorityLevel__ML3_template& operator=(template_sel other_value);
PriorityLevel__ML3_template& operator=(const PriorityLevel__ML3& other_value);
PriorityLevel__ML3_template& operator=(const OPTIONAL<PriorityLevel__ML3>& other_value);
PriorityLevel__ML3_template& operator=(const PriorityLevel__ML3_template& other_value);
boolean match(const PriorityLevel__ML3& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
PriorityLevel__ML3 valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
PriorityLevel__ML3_template& list_item(unsigned int list_index) const;
BITSTRING_template& callPriority();
const BITSTRING_template& callPriority() const;
BITSTRING_template& spare1__1();
const BITSTRING_template& spare1__1() const;
BITSTRING_template& elementIdentifier();
const BITSTRING_template& elementIdentifier() const;
int size_of() const;
void log() const;
void log_match(const PriorityLevel__ML3& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class PLMNListTLV : public Base_Type {
  BITSTRING field_elementIdentifier;
  BITSTRING field_spare1;
  INTEGER field_lengthIndicator;
  OCTETSTRING field_digits;
public:
  PLMNListTLV();
  PLMNListTLV(const BITSTRING& par_elementIdentifier,
    const BITSTRING& par_spare1,
    const INTEGER& par_lengthIndicator,
    const OCTETSTRING& par_digits);
  PLMNListTLV(const PLMNListTLV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  PLMNListTLV& operator=(const PLMNListTLV& other_value);
  boolean operator==(const PLMNListTLV& other_value) const;
  inline boolean operator!=(const PLMNListTLV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const BITSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline BITSTRING& spare1()
    {return field_spare1;}
  inline const BITSTRING& spare1() const
    {return field_spare1;}
  inline INTEGER& lengthIndicator()
    {return field_lengthIndicator;}
  inline const INTEGER& lengthIndicator() const
    {return field_lengthIndicator;}
  inline OCTETSTRING& digits()
    {return field_digits;}
  inline const OCTETSTRING& digits() const
    {return field_digits;}
  inline int size_of() const
    {return 4;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class PLMNListTLV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
PLMNListTLV_template *list_value;
} value_list;
struct {
PLMNListTLV_template* precondition;
PLMNListTLV_template* implied_template;
} implication_;
dynmatch_struct<PLMNListTLV>* dyn_match;
};

void set_specific();
void copy_value(const PLMNListTLV& other_value);
void copy_template(const PLMNListTLV_template& other_value);

public:
PLMNListTLV_template();
PLMNListTLV_template(template_sel other_value);
PLMNListTLV_template(const PLMNListTLV& other_value);
PLMNListTLV_template(const OPTIONAL<PLMNListTLV>& other_value);
PLMNListTLV_template(PLMNListTLV_template* p_precondition, PLMNListTLV_template* p_implied_template);
PLMNListTLV_template(Dynamic_Match_Interface<PLMNListTLV>* p_dyn_match);
PLMNListTLV_template(const PLMNListTLV_template& other_value);
~PLMNListTLV_template();
PLMNListTLV_template& operator=(template_sel other_value);
PLMNListTLV_template& operator=(const PLMNListTLV& other_value);
PLMNListTLV_template& operator=(const OPTIONAL<PLMNListTLV>& other_value);
PLMNListTLV_template& operator=(const PLMNListTLV_template& other_value);
boolean match(const PLMNListTLV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
PLMNListTLV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
PLMNListTLV_template& list_item(unsigned int list_index) const;
BITSTRING_template& elementIdentifier();
const BITSTRING_template& elementIdentifier() const;
BITSTRING_template& spare1();
const BITSTRING_template& spare1() const;
INTEGER_template& lengthIndicator();
const INTEGER_template& lengthIndicator() const;
OCTETSTRING_template& digits();
const OCTETSTRING_template& digits() const;
int size_of() const;
void log() const;
void log_match(const PLMNListTLV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class MS__NetworkFeatureSupportTV : public Base_Type {
  BITSTRING field_extendedPeriodicTimers;
  BITSTRING field_spare;
  BITSTRING field_elementIdentifier;
public:
  MS__NetworkFeatureSupportTV();
  MS__NetworkFeatureSupportTV(const BITSTRING& par_extendedPeriodicTimers,
    const BITSTRING& par_spare,
    const BITSTRING& par_elementIdentifier);
  MS__NetworkFeatureSupportTV(const MS__NetworkFeatureSupportTV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  MS__NetworkFeatureSupportTV& operator=(const MS__NetworkFeatureSupportTV& other_value);
  boolean operator==(const MS__NetworkFeatureSupportTV& other_value) const;
  inline boolean operator!=(const MS__NetworkFeatureSupportTV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& extendedPeriodicTimers()
    {return field_extendedPeriodicTimers;}
  inline const BITSTRING& extendedPeriodicTimers() const
    {return field_extendedPeriodicTimers;}
  inline BITSTRING& spare()
    {return field_spare;}
  inline const BITSTRING& spare() const
    {return field_spare;}
  inline BITSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const BITSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline int size_of() const
    {return 3;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class MS__NetworkFeatureSupportTV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
MS__NetworkFeatureSupportTV_template *list_value;
} value_list;
struct {
MS__NetworkFeatureSupportTV_template* precondition;
MS__NetworkFeatureSupportTV_template* implied_template;
} implication_;
dynmatch_struct<MS__NetworkFeatureSupportTV>* dyn_match;
};

void set_specific();
void copy_value(const MS__NetworkFeatureSupportTV& other_value);
void copy_template(const MS__NetworkFeatureSupportTV_template& other_value);

public:
MS__NetworkFeatureSupportTV_template();
MS__NetworkFeatureSupportTV_template(template_sel other_value);
MS__NetworkFeatureSupportTV_template(const MS__NetworkFeatureSupportTV& other_value);
MS__NetworkFeatureSupportTV_template(const OPTIONAL<MS__NetworkFeatureSupportTV>& other_value);
MS__NetworkFeatureSupportTV_template(MS__NetworkFeatureSupportTV_template* p_precondition, MS__NetworkFeatureSupportTV_template* p_implied_template);
MS__NetworkFeatureSupportTV_template(Dynamic_Match_Interface<MS__NetworkFeatureSupportTV>* p_dyn_match);
MS__NetworkFeatureSupportTV_template(const MS__NetworkFeatureSupportTV_template& other_value);
~MS__NetworkFeatureSupportTV_template();
MS__NetworkFeatureSupportTV_template& operator=(template_sel other_value);
MS__NetworkFeatureSupportTV_template& operator=(const MS__NetworkFeatureSupportTV& other_value);
MS__NetworkFeatureSupportTV_template& operator=(const OPTIONAL<MS__NetworkFeatureSupportTV>& other_value);
MS__NetworkFeatureSupportTV_template& operator=(const MS__NetworkFeatureSupportTV_template& other_value);
boolean match(const MS__NetworkFeatureSupportTV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
MS__NetworkFeatureSupportTV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
MS__NetworkFeatureSupportTV_template& list_item(unsigned int list_index) const;
BITSTRING_template& extendedPeriodicTimers();
const BITSTRING_template& extendedPeriodicTimers() const;
BITSTRING_template& spare();
const BITSTRING_template& spare() const;
BITSTRING_template& elementIdentifier();
const BITSTRING_template& elementIdentifier() const;
int size_of() const;
void log() const;
void log_match(const MS__NetworkFeatureSupportTV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class GPRSTimer3V : public Base_Type {
  BITSTRING field_timerValue;
  BITSTRING field_unit;
public:
  GPRSTimer3V();
  GPRSTimer3V(const BITSTRING& par_timerValue,
    const BITSTRING& par_unit);
  GPRSTimer3V(const GPRSTimer3V& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  GPRSTimer3V& operator=(const GPRSTimer3V& other_value);
  boolean operator==(const GPRSTimer3V& other_value) const;
  inline boolean operator!=(const GPRSTimer3V& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& timerValue()
    {return field_timerValue;}
  inline const BITSTRING& timerValue() const
    {return field_timerValue;}
  inline BITSTRING& unit()
    {return field_unit;}
  inline const BITSTRING& unit() const
    {return field_unit;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class GPRSTimer3V_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
GPRSTimer3V_template *list_value;
} value_list;
struct {
GPRSTimer3V_template* precondition;
GPRSTimer3V_template* implied_template;
} implication_;
dynmatch_struct<GPRSTimer3V>* dyn_match;
};

void set_specific();
void copy_value(const GPRSTimer3V& other_value);
void copy_template(const GPRSTimer3V_template& other_value);

public:
GPRSTimer3V_template();
GPRSTimer3V_template(template_sel other_value);
GPRSTimer3V_template(const GPRSTimer3V& other_value);
GPRSTimer3V_template(const OPTIONAL<GPRSTimer3V>& other_value);
GPRSTimer3V_template(GPRSTimer3V_template* p_precondition, GPRSTimer3V_template* p_implied_template);
GPRSTimer3V_template(Dynamic_Match_Interface<GPRSTimer3V>* p_dyn_match);
GPRSTimer3V_template(const GPRSTimer3V_template& other_value);
~GPRSTimer3V_template();
GPRSTimer3V_template& operator=(template_sel other_value);
GPRSTimer3V_template& operator=(const GPRSTimer3V& other_value);
GPRSTimer3V_template& operator=(const OPTIONAL<GPRSTimer3V>& other_value);
GPRSTimer3V_template& operator=(const GPRSTimer3V_template& other_value);
boolean match(const GPRSTimer3V& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
GPRSTimer3V valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
GPRSTimer3V_template& list_item(unsigned int list_index) const;
BITSTRING_template& timerValue();
const BITSTRING_template& timerValue() const;
BITSTRING_template& unit();
const BITSTRING_template& unit() const;
int size_of() const;
void log() const;
void log_match(const GPRSTimer3V& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class GPRSTimer3TLV : public Base_Type {
  OCTETSTRING field_elementIdentifier;
  INTEGER field_lengthIndicator;
  GPRSTimer3V field_gprsTimer3V;
public:
  GPRSTimer3TLV();
  GPRSTimer3TLV(const OCTETSTRING& par_elementIdentifier,
    const INTEGER& par_lengthIndicator,
    const GPRSTimer3V& par_gprsTimer3V);
  GPRSTimer3TLV(const GPRSTimer3TLV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  GPRSTimer3TLV& operator=(const GPRSTimer3TLV& other_value);
  boolean operator==(const GPRSTimer3TLV& other_value) const;
  inline boolean operator!=(const GPRSTimer3TLV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline OCTETSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const OCTETSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline INTEGER& lengthIndicator()
    {return field_lengthIndicator;}
  inline const INTEGER& lengthIndicator() const
    {return field_lengthIndicator;}
  inline GPRSTimer3V& gprsTimer3V()
    {return field_gprsTimer3V;}
  inline const GPRSTimer3V& gprsTimer3V() const
    {return field_gprsTimer3V;}
  inline int size_of() const
    {return 3;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class GPRSTimer3TLV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
GPRSTimer3TLV_template *list_value;
} value_list;
struct {
GPRSTimer3TLV_template* precondition;
GPRSTimer3TLV_template* implied_template;
} implication_;
dynmatch_struct<GPRSTimer3TLV>* dyn_match;
};

void set_specific();
void copy_value(const GPRSTimer3TLV& other_value);
void copy_template(const GPRSTimer3TLV_template& other_value);

public:
GPRSTimer3TLV_template();
GPRSTimer3TLV_template(template_sel other_value);
GPRSTimer3TLV_template(const GPRSTimer3TLV& other_value);
GPRSTimer3TLV_template(const OPTIONAL<GPRSTimer3TLV>& other_value);
GPRSTimer3TLV_template(GPRSTimer3TLV_template* p_precondition, GPRSTimer3TLV_template* p_implied_template);
GPRSTimer3TLV_template(Dynamic_Match_Interface<GPRSTimer3TLV>* p_dyn_match);
GPRSTimer3TLV_template(const GPRSTimer3TLV_template& other_value);
~GPRSTimer3TLV_template();
GPRSTimer3TLV_template& operator=(template_sel other_value);
GPRSTimer3TLV_template& operator=(const GPRSTimer3TLV& other_value);
GPRSTimer3TLV_template& operator=(const OPTIONAL<GPRSTimer3TLV>& other_value);
GPRSTimer3TLV_template& operator=(const GPRSTimer3TLV_template& other_value);
boolean match(const GPRSTimer3TLV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
GPRSTimer3TLV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
GPRSTimer3TLV_template& list_item(unsigned int list_index) const;
OCTETSTRING_template& elementIdentifier();
const OCTETSTRING_template& elementIdentifier() const;
INTEGER_template& lengthIndicator();
const INTEGER_template& lengthIndicator() const;
GPRSTimer3V_template& gprsTimer3V();
const GPRSTimer3V_template& gprsTimer3V() const;
int size_of() const;
void log() const;
void log_match(const GPRSTimer3TLV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class Diagnostics : public Base_Type {
  OCTETSTRING field_data;
public:
  Diagnostics();
  Diagnostics(const OCTETSTRING& par_data);
  Diagnostics(const Diagnostics& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  Diagnostics& operator=(const Diagnostics& other_value);
  boolean operator==(const Diagnostics& other_value) const;
  inline boolean operator!=(const Diagnostics& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline OCTETSTRING& data()
    {return field_data;}
  inline const OCTETSTRING& data() const
    {return field_data;}
  inline int size_of() const
    {return 1;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class Diagnostics_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
Diagnostics_template *list_value;
} value_list;
struct {
Diagnostics_template* precondition;
Diagnostics_template* implied_template;
} implication_;
dynmatch_struct<Diagnostics>* dyn_match;
};

void set_specific();
void copy_value(const Diagnostics& other_value);
void copy_template(const Diagnostics_template& other_value);

public:
Diagnostics_template();
Diagnostics_template(template_sel other_value);
Diagnostics_template(const Diagnostics& other_value);
Diagnostics_template(const OPTIONAL<Diagnostics>& other_value);
Diagnostics_template(Diagnostics_template* p_precondition, Diagnostics_template* p_implied_template);
Diagnostics_template(Dynamic_Match_Interface<Diagnostics>* p_dyn_match);
Diagnostics_template(const Diagnostics_template& other_value);
~Diagnostics_template();
Diagnostics_template& operator=(template_sel other_value);
Diagnostics_template& operator=(const Diagnostics& other_value);
Diagnostics_template& operator=(const OPTIONAL<Diagnostics>& other_value);
Diagnostics_template& operator=(const Diagnostics_template& other_value);
boolean match(const Diagnostics& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
Diagnostics valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
Diagnostics_template& list_item(unsigned int list_index) const;
OCTETSTRING_template& data();
const OCTETSTRING_template& data() const;
int size_of() const;
void log() const;
void log_match(const Diagnostics& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class ML3__Cause__oct3 : public Base_Type {
  BITSTRING field_location;
  BITSTRING field_spare1__1;
  BITSTRING field_codingStandard;
  BITSTRING field_ext1;
  OPTIONAL< BITSTRING > field_recommendation;
  OPTIONAL< BITSTRING > field_ext2;
public:
  ML3__Cause__oct3();
  ML3__Cause__oct3(const BITSTRING& par_location,
    const BITSTRING& par_spare1__1,
    const BITSTRING& par_codingStandard,
    const BITSTRING& par_ext1,
    const OPTIONAL< BITSTRING >& par_recommendation,
    const OPTIONAL< BITSTRING >& par_ext2);
  ML3__Cause__oct3(const ML3__Cause__oct3& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  ML3__Cause__oct3& operator=(const ML3__Cause__oct3& other_value);
  boolean operator==(const ML3__Cause__oct3& other_value) const;
  inline boolean operator!=(const ML3__Cause__oct3& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& location()
    {return field_location;}
  inline const BITSTRING& location() const
    {return field_location;}
  inline BITSTRING& spare1__1()
    {return field_spare1__1;}
  inline const BITSTRING& spare1__1() const
    {return field_spare1__1;}
  inline BITSTRING& codingStandard()
    {return field_codingStandard;}
  inline const BITSTRING& codingStandard() const
    {return field_codingStandard;}
  inline BITSTRING& ext1()
    {return field_ext1;}
  inline const BITSTRING& ext1() const
    {return field_ext1;}
  inline OPTIONAL< BITSTRING >& recommendation()
    {return field_recommendation;}
  inline const OPTIONAL< BITSTRING >& recommendation() const
    {return field_recommendation;}
  inline OPTIONAL< BITSTRING >& ext2()
    {return field_ext2;}
  inline const OPTIONAL< BITSTRING >& ext2() const
    {return field_ext2;}
  int size_of() const;
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class ML3__Cause__oct3_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
ML3__Cause__oct3_template *list_value;
} value_list;
struct {
ML3__Cause__oct3_template* precondition;
ML3__Cause__oct3_template* implied_template;
} implication_;
dynmatch_struct<ML3__Cause__oct3>* dyn_match;
};

void set_specific();
void copy_value(const ML3__Cause__oct3& other_value);
void copy_template(const ML3__Cause__oct3_template& other_value);

public:
ML3__Cause__oct3_template();
ML3__Cause__oct3_template(template_sel other_value);
ML3__Cause__oct3_template(const ML3__Cause__oct3& other_value);
ML3__Cause__oct3_template(const OPTIONAL<ML3__Cause__oct3>& other_value);
ML3__Cause__oct3_template(ML3__Cause__oct3_template* p_precondition, ML3__Cause__oct3_template* p_implied_template);
ML3__Cause__oct3_template(Dynamic_Match_Interface<ML3__Cause__oct3>* p_dyn_match);
ML3__Cause__oct3_template(const ML3__Cause__oct3_template& other_value);
~ML3__Cause__oct3_template();
ML3__Cause__oct3_template& operator=(template_sel other_value);
ML3__Cause__oct3_template& operator=(const ML3__Cause__oct3& other_value);
ML3__Cause__oct3_template& operator=(const OPTIONAL<ML3__Cause__oct3>& other_value);
ML3__Cause__oct3_template& operator=(const ML3__Cause__oct3_template& other_value);
boolean match(const ML3__Cause__oct3& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
ML3__Cause__oct3 valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
ML3__Cause__oct3_template& list_item(unsigned int list_index) const;
BITSTRING_template& location();
const BITSTRING_template& location() const;
BITSTRING_template& spare1__1();
const BITSTRING_template& spare1__1() const;
BITSTRING_template& codingStandard();
const BITSTRING_template& codingStandard() const;
BITSTRING_template& ext1();
const BITSTRING_template& ext1() const;
BITSTRING_template& recommendation();
const BITSTRING_template& recommendation() const;
BITSTRING_template& ext2();
const BITSTRING_template& ext2() const;
int size_of() const;
void log() const;
void log_match(const ML3__Cause__oct3& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class ML3__Cause__oct4 : public Base_Type {
  BITSTRING field_causeValue;
  BITSTRING field_ext3;
public:
  ML3__Cause__oct4();
  ML3__Cause__oct4(const BITSTRING& par_causeValue,
    const BITSTRING& par_ext3);
  ML3__Cause__oct4(const ML3__Cause__oct4& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  ML3__Cause__oct4& operator=(const ML3__Cause__oct4& other_value);
  boolean operator==(const ML3__Cause__oct4& other_value) const;
  inline boolean operator!=(const ML3__Cause__oct4& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& causeValue()
    {return field_causeValue;}
  inline const BITSTRING& causeValue() const
    {return field_causeValue;}
  inline BITSTRING& ext3()
    {return field_ext3;}
  inline const BITSTRING& ext3() const
    {return field_ext3;}
  inline int size_of() const
    {return 2;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class ML3__Cause__oct4_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
ML3__Cause__oct4_template *list_value;
} value_list;
struct {
ML3__Cause__oct4_template* precondition;
ML3__Cause__oct4_template* implied_template;
} implication_;
dynmatch_struct<ML3__Cause__oct4>* dyn_match;
};

void set_specific();
void copy_value(const ML3__Cause__oct4& other_value);
void copy_template(const ML3__Cause__oct4_template& other_value);

public:
ML3__Cause__oct4_template();
ML3__Cause__oct4_template(template_sel other_value);
ML3__Cause__oct4_template(const ML3__Cause__oct4& other_value);
ML3__Cause__oct4_template(const OPTIONAL<ML3__Cause__oct4>& other_value);
ML3__Cause__oct4_template(ML3__Cause__oct4_template* p_precondition, ML3__Cause__oct4_template* p_implied_template);
ML3__Cause__oct4_template(Dynamic_Match_Interface<ML3__Cause__oct4>* p_dyn_match);
ML3__Cause__oct4_template(const ML3__Cause__oct4_template& other_value);
~ML3__Cause__oct4_template();
ML3__Cause__oct4_template& operator=(template_sel other_value);
ML3__Cause__oct4_template& operator=(const ML3__Cause__oct4& other_value);
ML3__Cause__oct4_template& operator=(const OPTIONAL<ML3__Cause__oct4>& other_value);
ML3__Cause__oct4_template& operator=(const ML3__Cause__oct4_template& other_value);
boolean match(const ML3__Cause__oct4& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
ML3__Cause__oct4 valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
ML3__Cause__oct4_template& list_item(unsigned int list_index) const;
BITSTRING_template& causeValue();
const BITSTRING_template& causeValue() const;
BITSTRING_template& ext3();
const BITSTRING_template& ext3() const;
int size_of() const;
void log() const;
void log_match(const ML3__Cause__oct4& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class ML3__Cause__LV : public Base_Type {
  INTEGER field_lengthIndicator;
  ML3__Cause__oct3 field_oct3;
  ML3__Cause__oct4 field_oct4;
  OPTIONAL< Diagnostics > field_diagnostics;
public:
  ML3__Cause__LV();
  ML3__Cause__LV(const INTEGER& par_lengthIndicator,
    const ML3__Cause__oct3& par_oct3,
    const ML3__Cause__oct4& par_oct4,
    const OPTIONAL< Diagnostics >& par_diagnostics);
  ML3__Cause__LV(const ML3__Cause__LV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  ML3__Cause__LV& operator=(const ML3__Cause__LV& other_value);
  boolean operator==(const ML3__Cause__LV& other_value) const;
  inline boolean operator!=(const ML3__Cause__LV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline INTEGER& lengthIndicator()
    {return field_lengthIndicator;}
  inline const INTEGER& lengthIndicator() const
    {return field_lengthIndicator;}
  inline ML3__Cause__oct3& oct3()
    {return field_oct3;}
  inline const ML3__Cause__oct3& oct3() const
    {return field_oct3;}
  inline ML3__Cause__oct4& oct4()
    {return field_oct4;}
  inline const ML3__Cause__oct4& oct4() const
    {return field_oct4;}
  inline OPTIONAL< Diagnostics >& diagnostics()
    {return field_diagnostics;}
  inline const OPTIONAL< Diagnostics >& diagnostics() const
    {return field_diagnostics;}
  int size_of() const;
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class ML3__Cause__LV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
ML3__Cause__LV_template *list_value;
} value_list;
struct {
ML3__Cause__LV_template* precondition;
ML3__Cause__LV_template* implied_template;
} implication_;
dynmatch_struct<ML3__Cause__LV>* dyn_match;
};

void set_specific();
void copy_value(const ML3__Cause__LV& other_value);
void copy_template(const ML3__Cause__LV_template& other_value);

public:
ML3__Cause__LV_template();
ML3__Cause__LV_template(template_sel other_value);
ML3__Cause__LV_template(const ML3__Cause__LV& other_value);
ML3__Cause__LV_template(const OPTIONAL<ML3__Cause__LV>& other_value);
ML3__Cause__LV_template(ML3__Cause__LV_template* p_precondition, ML3__Cause__LV_template* p_implied_template);
ML3__Cause__LV_template(Dynamic_Match_Interface<ML3__Cause__LV>* p_dyn_match);
ML3__Cause__LV_template(const ML3__Cause__LV_template& other_value);
~ML3__Cause__LV_template();
ML3__Cause__LV_template& operator=(template_sel other_value);
ML3__Cause__LV_template& operator=(const ML3__Cause__LV& other_value);
ML3__Cause__LV_template& operator=(const OPTIONAL<ML3__Cause__LV>& other_value);
ML3__Cause__LV_template& operator=(const ML3__Cause__LV_template& other_value);
boolean match(const ML3__Cause__LV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
ML3__Cause__LV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
ML3__Cause__LV_template& list_item(unsigned int list_index) const;
INTEGER_template& lengthIndicator();
const INTEGER_template& lengthIndicator() const;
ML3__Cause__oct3_template& oct3();
const ML3__Cause__oct3_template& oct3() const;
ML3__Cause__oct4_template& oct4();
const ML3__Cause__oct4_template& oct4() const;
Diagnostics_template& diagnostics();
const Diagnostics_template& diagnostics() const;
int size_of() const;
void log() const;
void log_match(const ML3__Cause__LV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class ML3__Cause__TLV : public Base_Type {
  OCTETSTRING field_elementIdentifier;
  INTEGER field_lengthIndicator;
  ML3__Cause__oct3 field_oct3;
  ML3__Cause__oct4 field_oct4;
  OPTIONAL< Diagnostics > field_diagnostics;
public:
  ML3__Cause__TLV();
  ML3__Cause__TLV(const OCTETSTRING& par_elementIdentifier,
    const INTEGER& par_lengthIndicator,
    const ML3__Cause__oct3& par_oct3,
    const ML3__Cause__oct4& par_oct4,
    const OPTIONAL< Diagnostics >& par_diagnostics);
  ML3__Cause__TLV(const ML3__Cause__TLV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  ML3__Cause__TLV& operator=(const ML3__Cause__TLV& other_value);
  boolean operator==(const ML3__Cause__TLV& other_value) const;
  inline boolean operator!=(const ML3__Cause__TLV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline OCTETSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const OCTETSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline INTEGER& lengthIndicator()
    {return field_lengthIndicator;}
  inline const INTEGER& lengthIndicator() const
    {return field_lengthIndicator;}
  inline ML3__Cause__oct3& oct3()
    {return field_oct3;}
  inline const ML3__Cause__oct3& oct3() const
    {return field_oct3;}
  inline ML3__Cause__oct4& oct4()
    {return field_oct4;}
  inline const ML3__Cause__oct4& oct4() const
    {return field_oct4;}
  inline OPTIONAL< Diagnostics >& diagnostics()
    {return field_diagnostics;}
  inline const OPTIONAL< Diagnostics >& diagnostics() const
    {return field_diagnostics;}
  int size_of() const;
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class ML3__Cause__TLV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
ML3__Cause__TLV_template *list_value;
} value_list;
struct {
ML3__Cause__TLV_template* precondition;
ML3__Cause__TLV_template* implied_template;
} implication_;
dynmatch_struct<ML3__Cause__TLV>* dyn_match;
};

void set_specific();
void copy_value(const ML3__Cause__TLV& other_value);
void copy_template(const ML3__Cause__TLV_template& other_value);

public:
ML3__Cause__TLV_template();
ML3__Cause__TLV_template(template_sel other_value);
ML3__Cause__TLV_template(const ML3__Cause__TLV& other_value);
ML3__Cause__TLV_template(const OPTIONAL<ML3__Cause__TLV>& other_value);
ML3__Cause__TLV_template(ML3__Cause__TLV_template* p_precondition, ML3__Cause__TLV_template* p_implied_template);
ML3__Cause__TLV_template(Dynamic_Match_Interface<ML3__Cause__TLV>* p_dyn_match);
ML3__Cause__TLV_template(const ML3__Cause__TLV_template& other_value);
~ML3__Cause__TLV_template();
ML3__Cause__TLV_template& operator=(template_sel other_value);
ML3__Cause__TLV_template& operator=(const ML3__Cause__TLV& other_value);
ML3__Cause__TLV_template& operator=(const OPTIONAL<ML3__Cause__TLV>& other_value);
ML3__Cause__TLV_template& operator=(const ML3__Cause__TLV_template& other_value);
boolean match(const ML3__Cause__TLV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
ML3__Cause__TLV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
ML3__Cause__TLV_template& list_item(unsigned int list_index) const;
OCTETSTRING_template& elementIdentifier();
const OCTETSTRING_template& elementIdentifier() const;
INTEGER_template& lengthIndicator();
const INTEGER_template& lengthIndicator() const;
ML3__Cause__oct3_template& oct3();
const ML3__Cause__oct3_template& oct3() const;
ML3__Cause__oct4_template& oct4();
const ML3__Cause__oct4_template& oct4() const;
Diagnostics_template& diagnostics();
const Diagnostics_template& diagnostics() const;
int size_of() const;
void log() const;
void log_match(const ML3__Cause__TLV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class Facility__TLV : public Base_Type {
  OCTETSTRING field_elementIdentifier;
  INTEGER field_lengthIndicator;
  OPTIONAL< OCTETSTRING > field_facilityInformation;
public:
  Facility__TLV();
  Facility__TLV(const OCTETSTRING& par_elementIdentifier,
    const INTEGER& par_lengthIndicator,
    const OPTIONAL< OCTETSTRING >& par_facilityInformation);
  Facility__TLV(const Facility__TLV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  Facility__TLV& operator=(const Facility__TLV& other_value);
  boolean operator==(const Facility__TLV& other_value) const;
  inline boolean operator!=(const Facility__TLV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline OCTETSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const OCTETSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline INTEGER& lengthIndicator()
    {return field_lengthIndicator;}
  inline const INTEGER& lengthIndicator() const
    {return field_lengthIndicator;}
  inline OPTIONAL< OCTETSTRING >& facilityInformation()
    {return field_facilityInformation;}
  inline const OPTIONAL< OCTETSTRING >& facilityInformation() const
    {return field_facilityInformation;}
  int size_of() const;
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class Facility__TLV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
Facility__TLV_template *list_value;
} value_list;
struct {
Facility__TLV_template* precondition;
Facility__TLV_template* implied_template;
} implication_;
dynmatch_struct<Facility__TLV>* dyn_match;
};

void set_specific();
void copy_value(const Facility__TLV& other_value);
void copy_template(const Facility__TLV_template& other_value);

public:
Facility__TLV_template();
Facility__TLV_template(template_sel other_value);
Facility__TLV_template(const Facility__TLV& other_value);
Facility__TLV_template(const OPTIONAL<Facility__TLV>& other_value);
Facility__TLV_template(Facility__TLV_template* p_precondition, Facility__TLV_template* p_implied_template);
Facility__TLV_template(Dynamic_Match_Interface<Facility__TLV>* p_dyn_match);
Facility__TLV_template(const Facility__TLV_template& other_value);
~Facility__TLV_template();
Facility__TLV_template& operator=(template_sel other_value);
Facility__TLV_template& operator=(const Facility__TLV& other_value);
Facility__TLV_template& operator=(const OPTIONAL<Facility__TLV>& other_value);
Facility__TLV_template& operator=(const Facility__TLV_template& other_value);
boolean match(const Facility__TLV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
Facility__TLV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
Facility__TLV_template& list_item(unsigned int list_index) const;
OCTETSTRING_template& elementIdentifier();
const OCTETSTRING_template& elementIdentifier() const;
INTEGER_template& lengthIndicator();
const INTEGER_template& lengthIndicator() const;
OCTETSTRING_template& facilityInformation();
const OCTETSTRING_template& facilityInformation() const;
int size_of() const;
void log() const;
void log_match(const Facility__TLV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class Facility__LV : public Base_Type {
  INTEGER field_lengthIndicator;
  OPTIONAL< OCTETSTRING > field_facilityInformation;
public:
  Facility__LV();
  Facility__LV(const INTEGER& par_lengthIndicator,
    const OPTIONAL< OCTETSTRING >& par_facilityInformation);
  Facility__LV(const Facility__LV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  Facility__LV& operator=(const Facility__LV& other_value);
  boolean operator==(const Facility__LV& other_value) const;
  inline boolean operator!=(const Facility__LV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline INTEGER& lengthIndicator()
    {return field_lengthIndicator;}
  inline const INTEGER& lengthIndicator() const
    {return field_lengthIndicator;}
  inline OPTIONAL< OCTETSTRING >& facilityInformation()
    {return field_facilityInformation;}
  inline const OPTIONAL< OCTETSTRING >& facilityInformation() const
    {return field_facilityInformation;}
  int size_of() const;
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class Facility__LV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
Facility__LV_template *list_value;
} value_list;
struct {
Facility__LV_template* precondition;
Facility__LV_template* implied_template;
} implication_;
dynmatch_struct<Facility__LV>* dyn_match;
};

void set_specific();
void copy_value(const Facility__LV& other_value);
void copy_template(const Facility__LV_template& other_value);

public:
Facility__LV_template();
Facility__LV_template(template_sel other_value);
Facility__LV_template(const Facility__LV& other_value);
Facility__LV_template(const OPTIONAL<Facility__LV>& other_value);
Facility__LV_template(Facility__LV_template* p_precondition, Facility__LV_template* p_implied_template);
Facility__LV_template(Dynamic_Match_Interface<Facility__LV>* p_dyn_match);
Facility__LV_template(const Facility__LV_template& other_value);
~Facility__LV_template();
Facility__LV_template& operator=(template_sel other_value);
Facility__LV_template& operator=(const Facility__LV& other_value);
Facility__LV_template& operator=(const OPTIONAL<Facility__LV>& other_value);
Facility__LV_template& operator=(const Facility__LV_template& other_value);
boolean match(const Facility__LV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
Facility__LV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
Facility__LV_template& list_item(unsigned int list_index) const;
INTEGER_template& lengthIndicator();
const INTEGER_template& lengthIndicator() const;
OCTETSTRING_template& facilityInformation();
const OCTETSTRING_template& facilityInformation() const;
int size_of() const;
void log() const;
void log_match(const Facility__LV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class SS__VersionIndicator : public Base_Type {
  OCTETSTRING field_elementIdentifier;
  INTEGER field_lengthIndicator;
  OPTIONAL< OCTETSTRING > field_ss__VersionIndicatorContents;
public:
  SS__VersionIndicator();
  SS__VersionIndicator(const OCTETSTRING& par_elementIdentifier,
    const INTEGER& par_lengthIndicator,
    const OPTIONAL< OCTETSTRING >& par_ss__VersionIndicatorContents);
  SS__VersionIndicator(const SS__VersionIndicator& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  SS__VersionIndicator& operator=(const SS__VersionIndicator& other_value);
  boolean operator==(const SS__VersionIndicator& other_value) const;
  inline boolean operator!=(const SS__VersionIndicator& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline OCTETSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const OCTETSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline INTEGER& lengthIndicator()
    {return field_lengthIndicator;}
  inline const INTEGER& lengthIndicator() const
    {return field_lengthIndicator;}
  inline OPTIONAL< OCTETSTRING >& ss__VersionIndicatorContents()
    {return field_ss__VersionIndicatorContents;}
  inline const OPTIONAL< OCTETSTRING >& ss__VersionIndicatorContents() const
    {return field_ss__VersionIndicatorContents;}
  int size_of() const;
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class SS__VersionIndicator_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
SS__VersionIndicator_template *list_value;
} value_list;
struct {
SS__VersionIndicator_template* precondition;
SS__VersionIndicator_template* implied_template;
} implication_;
dynmatch_struct<SS__VersionIndicator>* dyn_match;
};

void set_specific();
void copy_value(const SS__VersionIndicator& other_value);
void copy_template(const SS__VersionIndicator_template& other_value);

public:
SS__VersionIndicator_template();
SS__VersionIndicator_template(template_sel other_value);
SS__VersionIndicator_template(const SS__VersionIndicator& other_value);
SS__VersionIndicator_template(const OPTIONAL<SS__VersionIndicator>& other_value);
SS__VersionIndicator_template(SS__VersionIndicator_template* p_precondition, SS__VersionIndicator_template* p_implied_template);
SS__VersionIndicator_template(Dynamic_Match_Interface<SS__VersionIndicator>* p_dyn_match);
SS__VersionIndicator_template(const SS__VersionIndicator_template& other_value);
~SS__VersionIndicator_template();
SS__VersionIndicator_template& operator=(template_sel other_value);
SS__VersionIndicator_template& operator=(const SS__VersionIndicator& other_value);
SS__VersionIndicator_template& operator=(const OPTIONAL<SS__VersionIndicator>& other_value);
SS__VersionIndicator_template& operator=(const SS__VersionIndicator_template& other_value);
boolean match(const SS__VersionIndicator& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
SS__VersionIndicator valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
SS__VersionIndicator_template& list_item(unsigned int list_index) const;
OCTETSTRING_template& elementIdentifier();
const OCTETSTRING_template& elementIdentifier() const;
INTEGER_template& lengthIndicator();
const INTEGER_template& lengthIndicator() const;
OCTETSTRING_template& ss__VersionIndicatorContents();
const OCTETSTRING_template& ss__VersionIndicatorContents() const;
int size_of() const;
void log() const;
void log_match(const SS__VersionIndicator& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class codec : public Base_Type {
  OCTETSTRING field_systemIdentification1;
  OCTETSTRING field_lengthOfBitmap1;
  OCTETSTRING field_codecBitmap1__bits1to8;
  OCTETSTRING field_codecBitmap1__bits9to16;
public:
  codec();
  codec(const OCTETSTRING& par_systemIdentification1,
    const OCTETSTRING& par_lengthOfBitmap1,
    const OCTETSTRING& par_codecBitmap1__bits1to8,
    const OCTETSTRING& par_codecBitmap1__bits9to16);
  codec(const codec& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  codec& operator=(const codec& other_value);
  boolean operator==(const codec& other_value) const;
  inline boolean operator!=(const codec& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline OCTETSTRING& systemIdentification1()
    {return field_systemIdentification1;}
  inline const OCTETSTRING& systemIdentification1() const
    {return field_systemIdentification1;}
  inline OCTETSTRING& lengthOfBitmap1()
    {return field_lengthOfBitmap1;}
  inline const OCTETSTRING& lengthOfBitmap1() const
    {return field_lengthOfBitmap1;}
  inline OCTETSTRING& codecBitmap1__bits1to8()
    {return field_codecBitmap1__bits1to8;}
  inline const OCTETSTRING& codecBitmap1__bits1to8() const
    {return field_codecBitmap1__bits1to8;}
  inline OCTETSTRING& codecBitmap1__bits9to16()
    {return field_codecBitmap1__bits9to16;}
  inline const OCTETSTRING& codecBitmap1__bits9to16() const
    {return field_codecBitmap1__bits9to16;}
  inline int size_of() const
    {return 4;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class codec_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
codec_template *list_value;
} value_list;
struct {
codec_template* precondition;
codec_template* implied_template;
} implication_;
dynmatch_struct<codec>* dyn_match;
};

void set_specific();
void copy_value(const codec& other_value);
void copy_template(const codec_template& other_value);

public:
codec_template();
codec_template(template_sel other_value);
codec_template(const codec& other_value);
codec_template(const OPTIONAL<codec>& other_value);
codec_template(codec_template* p_precondition, codec_template* p_implied_template);
codec_template(Dynamic_Match_Interface<codec>* p_dyn_match);
codec_template(const codec_template& other_value);
~codec_template();
codec_template& operator=(template_sel other_value);
codec_template& operator=(const codec& other_value);
codec_template& operator=(const OPTIONAL<codec>& other_value);
codec_template& operator=(const codec_template& other_value);
boolean match(const codec& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
codec valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
codec_template& list_item(unsigned int list_index) const;
OCTETSTRING_template& systemIdentification1();
const OCTETSTRING_template& systemIdentification1() const;
OCTETSTRING_template& lengthOfBitmap1();
const OCTETSTRING_template& lengthOfBitmap1() const;
OCTETSTRING_template& codecBitmap1__bits1to8();
const OCTETSTRING_template& codecBitmap1__bits1to8() const;
OCTETSTRING_template& codecBitmap1__bits9to16();
const OCTETSTRING_template& codecBitmap1__bits9to16() const;
int size_of() const;
void log() const;
void log_match(const codec& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class CodecList__ML3 : public Base_Type {
struct recordof_setof_struct {
int ref_count;
int n_elements;
codec **value_elements;
} *val_ptr;

static const codec UNBOUND_ELEM;
private:
friend boolean operator==(null_type null_value, const CodecList__ML3& other_value);

public:
  typedef codec of_type;
CodecList__ML3();
CodecList__ML3(null_type other_value);
CodecList__ML3(const CodecList__ML3& other_value);
~CodecList__ML3();

void clean_up();
CodecList__ML3& operator=(null_type other_value);
CodecList__ML3& operator=(const CodecList__ML3& other_value);

boolean operator==(null_type other_value) const;
boolean operator==(const CodecList__ML3& other_value) const;
inline boolean operator!=(null_type other_value) const { return !(*this == other_value); }
inline boolean operator!=(const CodecList__ML3& other_value) const { return !(*this == other_value); }

codec& operator[](int index_value);
codec& operator[](const INTEGER& index_value);
const codec& operator[](int index_value) const;
const codec& operator[](const INTEGER& index_value) const;

CodecList__ML3 operator<<=(int rotate_count) const;
CodecList__ML3 operator<<=(const INTEGER& rotate_count) const;
CodecList__ML3 operator>>=(int rotate_count) const;
CodecList__ML3 operator>>=(const INTEGER& rotate_count) const;

CodecList__ML3 operator+(const CodecList__ML3& other_value) const;

CodecList__ML3 substr(int index, int returncount) const;

CodecList__ML3 replace(int index, int len, const CodecList__ML3& repl) const;

CodecList__ML3 replace(int index, int len, const CodecList__ML3_template& repl) const;

void set_size(int new_size);
inline boolean is_bound() const {return val_ptr != NULL; }
inline boolean is_present() const { return is_bound(); }
boolean is_value() const;
int size_of() const;
int n_elem() const { return size_of(); }
int lengthof() const;
void log() const;
  void set_implicit_omit();
void set_param(Module_Param& param);
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class CodecList__ML3_template : public Base_Record_Of_Template {
union {
struct {
int n_elements;
codec_template **value_elements;
} single_value;
struct {
unsigned int n_values;
CodecList__ML3_template *list_value;
} value_list;
struct {
CodecList__ML3_template* precondition;
CodecList__ML3_template* implied_template;
} implication_;
dynmatch_struct<CodecList__ML3>* dyn_match;
};
void copy_value(const CodecList__ML3& other_value);
void copy_template(const CodecList__ML3_template& other_value);
static boolean match_function_specific(const Base_Type *value_ptr, int value_index, const Restricted_Length_Template *template_ptr, int template_index, boolean legacy);

public:
CodecList__ML3_template();
CodecList__ML3_template(template_sel other_value);
CodecList__ML3_template(null_type other_value);
CodecList__ML3_template(const CodecList__ML3& other_value);
CodecList__ML3_template(const OPTIONAL<CodecList__ML3>& other_value);
CodecList__ML3_template(CodecList__ML3_template* p_precondition, CodecList__ML3_template* p_implied_template);
CodecList__ML3_template(Dynamic_Match_Interface<CodecList__ML3>* p_dyn_match);
CodecList__ML3_template(const CodecList__ML3_template& other_value);
~CodecList__ML3_template();

void clean_up();
CodecList__ML3_template& operator=(template_sel other_value);
CodecList__ML3_template& operator=(null_type other_value);
CodecList__ML3_template& operator=(const CodecList__ML3& other_value);
CodecList__ML3_template& operator=(const OPTIONAL<CodecList__ML3>& other_value);
CodecList__ML3_template& operator=(const CodecList__ML3_template& other_value);

codec_template& operator[](int index_value);
codec_template& operator[](const INTEGER& index_value);
const codec_template& operator[](int index_value) const;
const codec_template& operator[](const INTEGER& index_value) const;

void set_size(int new_size);
int n_elem() const;
int size_of(boolean is_size) const;
inline int size_of() const { return size_of(TRUE); }
inline int lengthof() const { return size_of(FALSE); }
boolean match(const CodecList__ML3& other_value, boolean legacy = FALSE) const;
inline boolean is_bound() const 
  {return template_selection != UNINITIALIZED_TEMPLATE; }
boolean is_value() const;
CodecList__ML3 valueof() const;
CodecList__ML3 substr(int index, int returncount) const;

CodecList__ML3 replace(int index, int len, const CodecList__ML3_template& repl) const;

CodecList__ML3 replace(int index, int len, const CodecList__ML3& repl) const;

void set_type(template_sel template_type, unsigned int list_length);
CodecList__ML3_template& list_item(unsigned int list_index);
void log() const;
void log_match(const CodecList__ML3& match_value, boolean legacy = FALSE) const;
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
  void set_implicit_omit();
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean get_istemplate_kind(const char* type) const;
};

class SupportedCodecList : public Base_Type {
  OCTETSTRING field_elementIdentifier;
  INTEGER field_lengthIndicator;
  CodecList__ML3 field_codecList;
public:
  SupportedCodecList();
  SupportedCodecList(const OCTETSTRING& par_elementIdentifier,
    const INTEGER& par_lengthIndicator,
    const CodecList__ML3& par_codecList);
  SupportedCodecList(const SupportedCodecList& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  SupportedCodecList& operator=(const SupportedCodecList& other_value);
  boolean operator==(const SupportedCodecList& other_value) const;
  inline boolean operator!=(const SupportedCodecList& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline OCTETSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const OCTETSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline INTEGER& lengthIndicator()
    {return field_lengthIndicator;}
  inline const INTEGER& lengthIndicator() const
    {return field_lengthIndicator;}
  inline CodecList__ML3& codecList()
    {return field_codecList;}
  inline const CodecList__ML3& codecList() const
    {return field_codecList;}
  inline int size_of() const
    {return 3;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class SupportedCodecList_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
SupportedCodecList_template *list_value;
} value_list;
struct {
SupportedCodecList_template* precondition;
SupportedCodecList_template* implied_template;
} implication_;
dynmatch_struct<SupportedCodecList>* dyn_match;
};

void set_specific();
void copy_value(const SupportedCodecList& other_value);
void copy_template(const SupportedCodecList_template& other_value);

public:
SupportedCodecList_template();
SupportedCodecList_template(template_sel other_value);
SupportedCodecList_template(const SupportedCodecList& other_value);
SupportedCodecList_template(const OPTIONAL<SupportedCodecList>& other_value);
SupportedCodecList_template(SupportedCodecList_template* p_precondition, SupportedCodecList_template* p_implied_template);
SupportedCodecList_template(Dynamic_Match_Interface<SupportedCodecList>* p_dyn_match);
SupportedCodecList_template(const SupportedCodecList_template& other_value);
~SupportedCodecList_template();
SupportedCodecList_template& operator=(template_sel other_value);
SupportedCodecList_template& operator=(const SupportedCodecList& other_value);
SupportedCodecList_template& operator=(const OPTIONAL<SupportedCodecList>& other_value);
SupportedCodecList_template& operator=(const SupportedCodecList_template& other_value);
boolean match(const SupportedCodecList& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
SupportedCodecList valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
SupportedCodecList_template& list_item(unsigned int list_index) const;
OCTETSTRING_template& elementIdentifier();
const OCTETSTRING_template& elementIdentifier() const;
INTEGER_template& lengthIndicator();
const INTEGER_template& lengthIndicator() const;
CodecList__ML3_template& codecList();
const CodecList__ML3_template& codecList() const;
int size_of() const;
void log() const;
void log_match(const SupportedCodecList& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class DevicePropertiesTV : public Base_Type {
  BITSTRING field_lowPriority;
  BITSTRING field_spare;
  BITSTRING field_elementIdentifier;
public:
  DevicePropertiesTV();
  DevicePropertiesTV(const BITSTRING& par_lowPriority,
    const BITSTRING& par_spare,
    const BITSTRING& par_elementIdentifier);
  DevicePropertiesTV(const DevicePropertiesTV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  DevicePropertiesTV& operator=(const DevicePropertiesTV& other_value);
  boolean operator==(const DevicePropertiesTV& other_value) const;
  inline boolean operator!=(const DevicePropertiesTV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& lowPriority()
    {return field_lowPriority;}
  inline const BITSTRING& lowPriority() const
    {return field_lowPriority;}
  inline BITSTRING& spare()
    {return field_spare;}
  inline const BITSTRING& spare() const
    {return field_spare;}
  inline BITSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const BITSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline int size_of() const
    {return 3;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class DevicePropertiesTV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
DevicePropertiesTV_template *list_value;
} value_list;
struct {
DevicePropertiesTV_template* precondition;
DevicePropertiesTV_template* implied_template;
} implication_;
dynmatch_struct<DevicePropertiesTV>* dyn_match;
};

void set_specific();
void copy_value(const DevicePropertiesTV& other_value);
void copy_template(const DevicePropertiesTV_template& other_value);

public:
DevicePropertiesTV_template();
DevicePropertiesTV_template(template_sel other_value);
DevicePropertiesTV_template(const DevicePropertiesTV& other_value);
DevicePropertiesTV_template(const OPTIONAL<DevicePropertiesTV>& other_value);
DevicePropertiesTV_template(DevicePropertiesTV_template* p_precondition, DevicePropertiesTV_template* p_implied_template);
DevicePropertiesTV_template(Dynamic_Match_Interface<DevicePropertiesTV>* p_dyn_match);
DevicePropertiesTV_template(const DevicePropertiesTV_template& other_value);
~DevicePropertiesTV_template();
DevicePropertiesTV_template& operator=(template_sel other_value);
DevicePropertiesTV_template& operator=(const DevicePropertiesTV& other_value);
DevicePropertiesTV_template& operator=(const OPTIONAL<DevicePropertiesTV>& other_value);
DevicePropertiesTV_template& operator=(const DevicePropertiesTV_template& other_value);
boolean match(const DevicePropertiesTV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
DevicePropertiesTV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
DevicePropertiesTV_template& list_item(unsigned int list_index) const;
BITSTRING_template& lowPriority();
const BITSTRING_template& lowPriority() const;
BITSTRING_template& spare();
const BITSTRING_template& spare() const;
BITSTRING_template& elementIdentifier();
const BITSTRING_template& elementIdentifier() const;
int size_of() const;
void log() const;
void log_match(const DevicePropertiesTV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class P__TMSISignature2TLV : public Base_Type {
  OCTETSTRING field_elementIdentifier;
  INTEGER field_lengthIndicator;
  OCTETSTRING field_valueField;
public:
  P__TMSISignature2TLV();
  P__TMSISignature2TLV(const OCTETSTRING& par_elementIdentifier,
    const INTEGER& par_lengthIndicator,
    const OCTETSTRING& par_valueField);
  P__TMSISignature2TLV(const P__TMSISignature2TLV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  P__TMSISignature2TLV& operator=(const P__TMSISignature2TLV& other_value);
  boolean operator==(const P__TMSISignature2TLV& other_value) const;
  inline boolean operator!=(const P__TMSISignature2TLV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline OCTETSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const OCTETSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline INTEGER& lengthIndicator()
    {return field_lengthIndicator;}
  inline const INTEGER& lengthIndicator() const
    {return field_lengthIndicator;}
  inline OCTETSTRING& valueField()
    {return field_valueField;}
  inline const OCTETSTRING& valueField() const
    {return field_valueField;}
  inline int size_of() const
    {return 3;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class P__TMSISignature2TLV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
P__TMSISignature2TLV_template *list_value;
} value_list;
struct {
P__TMSISignature2TLV_template* precondition;
P__TMSISignature2TLV_template* implied_template;
} implication_;
dynmatch_struct<P__TMSISignature2TLV>* dyn_match;
};

void set_specific();
void copy_value(const P__TMSISignature2TLV& other_value);
void copy_template(const P__TMSISignature2TLV_template& other_value);

public:
P__TMSISignature2TLV_template();
P__TMSISignature2TLV_template(template_sel other_value);
P__TMSISignature2TLV_template(const P__TMSISignature2TLV& other_value);
P__TMSISignature2TLV_template(const OPTIONAL<P__TMSISignature2TLV>& other_value);
P__TMSISignature2TLV_template(P__TMSISignature2TLV_template* p_precondition, P__TMSISignature2TLV_template* p_implied_template);
P__TMSISignature2TLV_template(Dynamic_Match_Interface<P__TMSISignature2TLV>* p_dyn_match);
P__TMSISignature2TLV_template(const P__TMSISignature2TLV_template& other_value);
~P__TMSISignature2TLV_template();
P__TMSISignature2TLV_template& operator=(template_sel other_value);
P__TMSISignature2TLV_template& operator=(const P__TMSISignature2TLV& other_value);
P__TMSISignature2TLV_template& operator=(const OPTIONAL<P__TMSISignature2TLV>& other_value);
P__TMSISignature2TLV_template& operator=(const P__TMSISignature2TLV_template& other_value);
boolean match(const P__TMSISignature2TLV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
P__TMSISignature2TLV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
P__TMSISignature2TLV_template& list_item(unsigned int list_index) const;
OCTETSTRING_template& elementIdentifier();
const OCTETSTRING_template& elementIdentifier() const;
INTEGER_template& lengthIndicator();
const INTEGER_template& lengthIndicator() const;
OCTETSTRING_template& valueField();
const OCTETSTRING_template& valueField() const;
int size_of() const;
void log() const;
void log_match(const P__TMSISignature2TLV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class P__TMSI__TypeTV : public Base_Type {
  BITSTRING field_pTMSI__TypeValue;
  BITSTRING field_spare;
  BITSTRING field_elementIdentifier;
public:
  P__TMSI__TypeTV();
  P__TMSI__TypeTV(const BITSTRING& par_pTMSI__TypeValue,
    const BITSTRING& par_spare,
    const BITSTRING& par_elementIdentifier);
  P__TMSI__TypeTV(const P__TMSI__TypeTV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  P__TMSI__TypeTV& operator=(const P__TMSI__TypeTV& other_value);
  boolean operator==(const P__TMSI__TypeTV& other_value) const;
  inline boolean operator!=(const P__TMSI__TypeTV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& pTMSI__TypeValue()
    {return field_pTMSI__TypeValue;}
  inline const BITSTRING& pTMSI__TypeValue() const
    {return field_pTMSI__TypeValue;}
  inline BITSTRING& spare()
    {return field_spare;}
  inline const BITSTRING& spare() const
    {return field_spare;}
  inline BITSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const BITSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline int size_of() const
    {return 3;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class P__TMSI__TypeTV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
P__TMSI__TypeTV_template *list_value;
} value_list;
struct {
P__TMSI__TypeTV_template* precondition;
P__TMSI__TypeTV_template* implied_template;
} implication_;
dynmatch_struct<P__TMSI__TypeTV>* dyn_match;
};

void set_specific();
void copy_value(const P__TMSI__TypeTV& other_value);
void copy_template(const P__TMSI__TypeTV_template& other_value);

public:
P__TMSI__TypeTV_template();
P__TMSI__TypeTV_template(template_sel other_value);
P__TMSI__TypeTV_template(const P__TMSI__TypeTV& other_value);
P__TMSI__TypeTV_template(const OPTIONAL<P__TMSI__TypeTV>& other_value);
P__TMSI__TypeTV_template(P__TMSI__TypeTV_template* p_precondition, P__TMSI__TypeTV_template* p_implied_template);
P__TMSI__TypeTV_template(Dynamic_Match_Interface<P__TMSI__TypeTV>* p_dyn_match);
P__TMSI__TypeTV_template(const P__TMSI__TypeTV_template& other_value);
~P__TMSI__TypeTV_template();
P__TMSI__TypeTV_template& operator=(template_sel other_value);
P__TMSI__TypeTV_template& operator=(const P__TMSI__TypeTV& other_value);
P__TMSI__TypeTV_template& operator=(const OPTIONAL<P__TMSI__TypeTV>& other_value);
P__TMSI__TypeTV_template& operator=(const P__TMSI__TypeTV_template& other_value);
boolean match(const P__TMSI__TypeTV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
P__TMSI__TypeTV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
P__TMSI__TypeTV_template& list_item(unsigned int list_index) const;
BITSTRING_template& pTMSI__TypeValue();
const BITSTRING_template& pTMSI__TypeValue() const;
BITSTRING_template& spare();
const BITSTRING_template& spare() const;
BITSTRING_template& elementIdentifier();
const BITSTRING_template& elementIdentifier() const;
int size_of() const;
void log() const;
void log_match(const P__TMSI__TypeTV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class RoutingAreaIdentification2TLV : public Base_Type {
  OCTETSTRING field_elementIdentifier;
  INTEGER field_lengthIndicator;
  OCTETSTRING field_routingAreaIdentification2;
public:
  RoutingAreaIdentification2TLV();
  RoutingAreaIdentification2TLV(const OCTETSTRING& par_elementIdentifier,
    const INTEGER& par_lengthIndicator,
    const OCTETSTRING& par_routingAreaIdentification2);
  RoutingAreaIdentification2TLV(const RoutingAreaIdentification2TLV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  RoutingAreaIdentification2TLV& operator=(const RoutingAreaIdentification2TLV& other_value);
  boolean operator==(const RoutingAreaIdentification2TLV& other_value) const;
  inline boolean operator!=(const RoutingAreaIdentification2TLV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline OCTETSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const OCTETSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline INTEGER& lengthIndicator()
    {return field_lengthIndicator;}
  inline const INTEGER& lengthIndicator() const
    {return field_lengthIndicator;}
  inline OCTETSTRING& routingAreaIdentification2()
    {return field_routingAreaIdentification2;}
  inline const OCTETSTRING& routingAreaIdentification2() const
    {return field_routingAreaIdentification2;}
  inline int size_of() const
    {return 3;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class RoutingAreaIdentification2TLV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
RoutingAreaIdentification2TLV_template *list_value;
} value_list;
struct {
RoutingAreaIdentification2TLV_template* precondition;
RoutingAreaIdentification2TLV_template* implied_template;
} implication_;
dynmatch_struct<RoutingAreaIdentification2TLV>* dyn_match;
};

void set_specific();
void copy_value(const RoutingAreaIdentification2TLV& other_value);
void copy_template(const RoutingAreaIdentification2TLV_template& other_value);

public:
RoutingAreaIdentification2TLV_template();
RoutingAreaIdentification2TLV_template(template_sel other_value);
RoutingAreaIdentification2TLV_template(const RoutingAreaIdentification2TLV& other_value);
RoutingAreaIdentification2TLV_template(const OPTIONAL<RoutingAreaIdentification2TLV>& other_value);
RoutingAreaIdentification2TLV_template(RoutingAreaIdentification2TLV_template* p_precondition, RoutingAreaIdentification2TLV_template* p_implied_template);
RoutingAreaIdentification2TLV_template(Dynamic_Match_Interface<RoutingAreaIdentification2TLV>* p_dyn_match);
RoutingAreaIdentification2TLV_template(const RoutingAreaIdentification2TLV_template& other_value);
~RoutingAreaIdentification2TLV_template();
RoutingAreaIdentification2TLV_template& operator=(template_sel other_value);
RoutingAreaIdentification2TLV_template& operator=(const RoutingAreaIdentification2TLV& other_value);
RoutingAreaIdentification2TLV_template& operator=(const OPTIONAL<RoutingAreaIdentification2TLV>& other_value);
RoutingAreaIdentification2TLV_template& operator=(const RoutingAreaIdentification2TLV_template& other_value);
boolean match(const RoutingAreaIdentification2TLV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
RoutingAreaIdentification2TLV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
RoutingAreaIdentification2TLV_template& list_item(unsigned int list_index) const;
OCTETSTRING_template& elementIdentifier();
const OCTETSTRING_template& elementIdentifier() const;
INTEGER_template& lengthIndicator();
const INTEGER_template& lengthIndicator() const;
OCTETSTRING_template& routingAreaIdentification2();
const OCTETSTRING_template& routingAreaIdentification2() const;
int size_of() const;
void log() const;
void log_match(const RoutingAreaIdentification2TLV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};

class AdditionalUpdateParameterTV : public Base_Type {
  BITSTRING field_cSMT;
  BITSTRING field_cSMO;
  BITSTRING field_spare2;
  BITSTRING field_spare3;
  BITSTRING field_elementIdentifier;
public:
  AdditionalUpdateParameterTV();
  AdditionalUpdateParameterTV(const BITSTRING& par_cSMT,
    const BITSTRING& par_cSMO,
    const BITSTRING& par_spare2,
    const BITSTRING& par_spare3,
    const BITSTRING& par_elementIdentifier);
  AdditionalUpdateParameterTV(const AdditionalUpdateParameterTV& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  AdditionalUpdateParameterTV& operator=(const AdditionalUpdateParameterTV& other_value);
  boolean operator==(const AdditionalUpdateParameterTV& other_value) const;
  inline boolean operator!=(const AdditionalUpdateParameterTV& other_value) const
    { return !(*this == other_value); }

  boolean is_bound() const;

inline boolean is_present() const { return is_bound(); }
  boolean is_value() const;

  inline BITSTRING& cSMT()
    {return field_cSMT;}
  inline const BITSTRING& cSMT() const
    {return field_cSMT;}
  inline BITSTRING& cSMO()
    {return field_cSMO;}
  inline const BITSTRING& cSMO() const
    {return field_cSMO;}
  inline BITSTRING& spare2()
    {return field_spare2;}
  inline const BITSTRING& spare2() const
    {return field_spare2;}
  inline BITSTRING& spare3()
    {return field_spare3;}
  inline const BITSTRING& spare3() const
    {return field_spare3;}
  inline BITSTRING& elementIdentifier()
    {return field_elementIdentifier;}
  inline const BITSTRING& elementIdentifier() const
    {return field_elementIdentifier;}
  inline int size_of() const
    {return 5;}
  void log() const;
  void set_implicit_omit();
  void set_param(Module_Param& param);
  void encode_text(Text_Buf& text_buf) const;
  void decode_text(Text_Buf& text_buf);
void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
int RAW_encode(const TTCN_Typedescriptor_t&, RAW_enc_tree&) const;
int RAW_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, raw_order_t, boolean no_err=FALSE,int sel_field=-1, boolean first_call=TRUE, const RAW_Force_Omit* force_omit = NULL);
};

class AdditionalUpdateParameterTV_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
AdditionalUpdateParameterTV_template *list_value;
} value_list;
struct {
AdditionalUpdateParameterTV_template* precondition;
AdditionalUpdateParameterTV_template* implied_template;
} implication_;
dynmatch_struct<AdditionalUpdateParameterTV>* dyn_match;
};

void set_specific();
void copy_value(const AdditionalUpdateParameterTV& other_value);
void copy_template(const AdditionalUpdateParameterTV_template& other_value);

public:
AdditionalUpdateParameterTV_template();
AdditionalUpdateParameterTV_template(template_sel other_value);
AdditionalUpdateParameterTV_template(const AdditionalUpdateParameterTV& other_value);
AdditionalUpdateParameterTV_template(const OPTIONAL<AdditionalUpdateParameterTV>& other_value);
AdditionalUpdateParameterTV_template(AdditionalUpdateParameterTV_template* p_precondition, AdditionalUpdateParameterTV_template* p_implied_template);
AdditionalUpdateParameterTV_template(Dynamic_Match_Interface<AdditionalUpdateParameterTV>* p_dyn_match);
AdditionalUpdateParameterTV_template(const AdditionalUpdateParameterTV_template& other_value);
~AdditionalUpdateParameterTV_template();
AdditionalUpdateParameterTV_template& operator=(template_sel other_value);
AdditionalUpdateParameterTV_template& operator=(const AdditionalUpdateParameterTV& other_value);
AdditionalUpdateParameterTV_template& operator=(const OPTIONAL<AdditionalUpdateParameterTV>& other_value);
AdditionalUpdateParameterTV_template& operator=(const AdditionalUpdateParameterTV_template& other_value);
boolean match(const AdditionalUpdateParameterTV& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
AdditionalUpdateParameterTV valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
AdditionalUpdateParameterTV_template& list_item(unsigned int list_index) const;
BITSTRING_template& cSMT();
const BITSTRING_template& cSMT() const;
BITSTRING_template& cSMO();
const BITSTRING_template& cSMO() const;
BITSTRING_template& spare2();
const BITSTRING_template& spare2() const;
BITSTRING_template& spare3();
const BITSTRING_template& spare3() const;
BITSTRING_template& elementIdentifier();
const BITSTRING_template& elementIdentifier() const;
int size_of() const;
void log() const;
void log_match(const AdditionalUpdateParameterTV& match_value, boolean legacy = FALSE) const;
  void set_implicit_omit();
void encode_text(Text_Buf& text_buf) const;
void decode_text(Text_Buf& text_buf);
void set_param(Module_Param& param);
void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
boolean is_present(boolean legacy = FALSE) const;
boolean match_omit(boolean legacy = FALSE) const;
};


/* Function prototypes */

extern void MS__parameters_imsi__length_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER MS__parameters_imsi__length_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void MS__parameters_imsi_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER MS__parameters_imsi_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void MS__parameters_number_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER MS__parameters_number_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void MS__parameters_SCCP__connId_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER MS__parameters_SCCP__connId_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void MS__parameters_L3__NSD_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER MS__parameters_L3__NSD_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void MS__parameters_encoder(const MS__parameters& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER MS__parameters_decoder(OCTETSTRING& input_stream, MS__parameters& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void Type1__V_encoder(const Type1__V& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER Type1__V_decoder(OCTETSTRING& input_stream, Type1__V& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void Type1__TV_encoder(const Type1__TV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER Type1__TV_decoder(OCTETSTRING& input_stream, Type1__TV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void Type2_encoder(const Type2& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER Type2_decoder(OCTETSTRING& input_stream, Type2& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void Type3__V_encoder(const Type3__V& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER Type3__V_decoder(OCTETSTRING& input_stream, Type3__V& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void Type3__TV_encoder(const Type3__TV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER Type3__TV_decoder(OCTETSTRING& input_stream, Type3__TV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void Type4__LV_lengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER Type4__LV_lengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void Type4__LV_encoder(const Type4__LV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER Type4__LV_decoder(OCTETSTRING& input_stream, Type4__LV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void Type4__TLV_lengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER Type4__TLV_lengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void Type4__TLV_encoder(const Type4__TLV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER Type4__TLV_decoder(OCTETSTRING& input_stream, Type4__TLV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ML3__NotifySS__Arg_encoder(const ML3__NotifySS__Arg& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ML3__NotifySS__Arg_decoder(OCTETSTRING& input_stream, ML3__NotifySS__Arg& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void CellIdentity_encoder(const CellIdentity& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER CellIdentity_decoder(OCTETSTRING& input_stream, CellIdentity& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void CipheringKeySequenceNumberV_encoder(const CipheringKeySequenceNumberV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER CipheringKeySequenceNumberV_decoder(OCTETSTRING& input_stream, CipheringKeySequenceNumberV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void CipheringKeySequenceNumberTV_encoder(const CipheringKeySequenceNumberTV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER CipheringKeySequenceNumberTV_decoder(OCTETSTRING& input_stream, CipheringKeySequenceNumberTV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void LocationAreaIdentification__V_encoder(const LocationAreaIdentification__V& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER LocationAreaIdentification__V_decoder(OCTETSTRING& input_stream, LocationAreaIdentification__V& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void LocationAreaIdentification__TV_encoder(const LocationAreaIdentification__TV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER LocationAreaIdentification__TV_decoder(OCTETSTRING& input_stream, LocationAreaIdentification__TV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void MobileIdentityLV_lengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER MobileIdentityLV_lengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void IMSI__L3_digits_encoder(const HEXSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER IMSI__L3_digits_decoder(OCTETSTRING& input_stream, HEXSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void IMSI__L3_fillerDigit_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER IMSI__L3_fillerDigit_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void IMSI__L3_encoder(const IMSI__L3& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER IMSI__L3_decoder(OCTETSTRING& input_stream, IMSI__L3& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void IMEI__L3_digits_encoder(const HEXSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER IMEI__L3_digits_decoder(OCTETSTRING& input_stream, HEXSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void IMEI__L3_encoder(const IMEI__L3& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER IMEI__L3_decoder(OCTETSTRING& input_stream, IMEI__L3& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void IMEI__SV_digits_encoder(const HEXSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER IMEI__SV_digits_decoder(OCTETSTRING& input_stream, HEXSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void IMEI__SV_encoder(const IMEI__SV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER IMEI__SV_decoder(OCTETSTRING& input_stream, IMEI__SV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TMSI__PTMSI_encoder(const TMSI__PTMSI& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TMSI__PTMSI_decoder(OCTETSTRING& input_stream, TMSI__PTMSI& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TMGI__and__MBMS__SessionID_encoder(const TMGI__and__MBMS__SessionID& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TMGI__and__MBMS__SessionID_decoder(OCTETSTRING& input_stream, TMGI__and__MBMS__SessionID& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void No__Identity_fillerDigits_encoder(const HEXSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER No__Identity_fillerDigits_decoder(OCTETSTRING& input_stream, HEXSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void No__Identity_encoder(const No__Identity& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER No__Identity_decoder(OCTETSTRING& input_stream, No__Identity& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void OddEvenInd__Identity_encoder(const OddEvenInd__Identity& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER OddEvenInd__Identity_decoder(OCTETSTRING& input_stream, OddEvenInd__Identity& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void MobileIdentityV_oddEvenInd__identity_encoder(const OddEvenInd__Identity& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER MobileIdentityV_oddEvenInd__identity_decoder(OCTETSTRING& input_stream, OddEvenInd__Identity& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void MobileIdentityV_encoder(const MobileIdentityV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER MobileIdentityV_decoder(OCTETSTRING& input_stream, MobileIdentityV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void MobileIdentityLV_encoder(const MobileIdentityLV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER MobileIdentityLV_decoder(OCTETSTRING& input_stream, MobileIdentityLV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void MobileIdentityTLV_encoder(const MobileIdentityTLV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER MobileIdentityTLV_decoder(OCTETSTRING& input_stream, MobileIdentityTLV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void MobileStationClassmark1__TV_encoder(const MobileStationClassmark1__TV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER MobileStationClassmark1__TV_decoder(OCTETSTRING& input_stream, MobileStationClassmark1__TV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void MobileStationClassmark1__V_encoder(const MobileStationClassmark1__V& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER MobileStationClassmark1__V_decoder(OCTETSTRING& input_stream, MobileStationClassmark1__V& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void MobileStationClassmark2__oct4_encoder(const MobileStationClassmark2__oct4& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER MobileStationClassmark2__oct4_decoder(OCTETSTRING& input_stream, MobileStationClassmark2__oct4& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void MobileStationClassmark2__oct5_encoder(const MobileStationClassmark2__oct5& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER MobileStationClassmark2__oct5_decoder(OCTETSTRING& input_stream, MobileStationClassmark2__oct5& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void MobileStationClassmark2__LV_lengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER MobileStationClassmark2__LV_lengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void MobileStationClassmark2__LV_encoder(const MobileStationClassmark2__LV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER MobileStationClassmark2__LV_decoder(OCTETSTRING& input_stream, MobileStationClassmark2__LV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void MobileStationClassmark2__TLV_encoder(const MobileStationClassmark2__TLV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER MobileStationClassmark2__TLV_decoder(OCTETSTRING& input_stream, MobileStationClassmark2__TLV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ClassmarkInformationType2__forUMTS_lengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ClassmarkInformationType2__forUMTS_lengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ClassmarkInformationType2__forUMTS_encoder(const ClassmarkInformationType2__forUMTS& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ClassmarkInformationType2__forUMTS_decoder(OCTETSTRING& input_stream, ClassmarkInformationType2__forUMTS& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void MobileStationClassmark3__TLV_lengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER MobileStationClassmark3__TLV_lengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void MobileStationClassmark3__TLV_encoder(const MobileStationClassmark3__TLV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER MobileStationClassmark3__TLV_decoder(OCTETSTRING& input_stream, MobileStationClassmark3__TLV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void MobileStationClassmark3__LV_lengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER MobileStationClassmark3__LV_lengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void MobileStationClassmark3__LV_encoder(const MobileStationClassmark3__LV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER MobileStationClassmark3__LV_decoder(OCTETSTRING& input_stream, MobileStationClassmark3__LV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void UTRACSGCellsReporting_reportingofUTRANCSGCellsSupport_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER UTRACSGCellsReporting_reportingofUTRANCSGCellsSupport_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void UTRACSGCellsReporting_encoder(const UTRACSGCellsReporting& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER UTRACSGCellsReporting_decoder(OCTETSTRING& input_stream, UTRACSGCellsReporting& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void VAMOSLevel_vAMOSSupport_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER VAMOSLevel_vAMOSSupport_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void VAMOSLevel_encoder(const VAMOSLevel& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER VAMOSLevel_decoder(OCTETSTRING& input_stream, VAMOSLevel& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void DescriptiveGroupOrBroadcastCallReference__V_binaryCodingOfGroupOrBroadcastCallReference_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER DescriptiveGroupOrBroadcastCallReference__V_binaryCodingOfGroupOrBroadcastCallReference_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void DescriptiveGroupOrBroadcastCallReference__V_sF_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER DescriptiveGroupOrBroadcastCallReference__V_sF_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void DescriptiveGroupOrBroadcastCallReference__V_aF_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER DescriptiveGroupOrBroadcastCallReference__V_aF_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void DescriptiveGroupOrBroadcastCallReference__V_callPriority_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER DescriptiveGroupOrBroadcastCallReference__V_callPriority_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void DescriptiveGroupOrBroadcastCallReference__V_cipheringInformation_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER DescriptiveGroupOrBroadcastCallReference__V_cipheringInformation_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void DescriptiveGroupOrBroadcastCallReference__V_spare_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER DescriptiveGroupOrBroadcastCallReference__V_spare_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void DescriptiveGroupOrBroadcastCallReference__V_encoder(const DescriptiveGroupOrBroadcastCallReference__V& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER DescriptiveGroupOrBroadcastCallReference__V_decoder(OCTETSTRING& input_stream, DescriptiveGroupOrBroadcastCallReference__V& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void groupCipherKeyNumber__TV_encoder(const groupCipherKeyNumber__TV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER groupCipherKeyNumber__TV_decoder(OCTETSTRING& input_stream, groupCipherKeyNumber__TV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void PdAndSapi_encoder(const PdAndSapi& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER PdAndSapi_decoder(OCTETSTRING& input_stream, PdAndSapi& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void PriorityLevel__ML3_encoder(const PriorityLevel__ML3& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER PriorityLevel__ML3_decoder(OCTETSTRING& input_stream, PriorityLevel__ML3& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void PLMNListTLV_lengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER PLMNListTLV_lengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void PLMNListTLV_digits_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER PLMNListTLV_digits_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void PLMNListTLV_encoder(const PLMNListTLV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER PLMNListTLV_decoder(OCTETSTRING& input_stream, PLMNListTLV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void MS__NetworkFeatureSupportTV_encoder(const MS__NetworkFeatureSupportTV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER MS__NetworkFeatureSupportTV_decoder(OCTETSTRING& input_stream, MS__NetworkFeatureSupportTV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void GPRSTimer3TLV_lengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER GPRSTimer3TLV_lengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void GPRSTimer3V_encoder(const GPRSTimer3V& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER GPRSTimer3V_decoder(OCTETSTRING& input_stream, GPRSTimer3V& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void GPRSTimer3TLV_encoder(const GPRSTimer3TLV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER GPRSTimer3TLV_decoder(OCTETSTRING& input_stream, GPRSTimer3TLV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void Diagnostics_data_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER Diagnostics_data_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void Diagnostics_encoder(const Diagnostics& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER Diagnostics_decoder(OCTETSTRING& input_stream, Diagnostics& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ML3__Cause__oct3_encoder(const ML3__Cause__oct3& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ML3__Cause__oct3_decoder(OCTETSTRING& input_stream, ML3__Cause__oct3& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ML3__Cause__oct4_encoder(const ML3__Cause__oct4& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ML3__Cause__oct4_decoder(OCTETSTRING& input_stream, ML3__Cause__oct4& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ML3__Cause__LV_lengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ML3__Cause__LV_lengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ML3__Cause__LV_encoder(const ML3__Cause__LV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ML3__Cause__LV_decoder(OCTETSTRING& input_stream, ML3__Cause__LV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ML3__Cause__TLV_lengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ML3__Cause__TLV_lengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ML3__Cause__TLV_encoder(const ML3__Cause__TLV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ML3__Cause__TLV_decoder(OCTETSTRING& input_stream, ML3__Cause__TLV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void Facility__TLV_lengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER Facility__TLV_lengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void Facility__TLV_encoder(const Facility__TLV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER Facility__TLV_decoder(OCTETSTRING& input_stream, Facility__TLV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void Facility__LV_lengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER Facility__LV_lengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void Facility__LV_encoder(const Facility__LV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER Facility__LV_decoder(OCTETSTRING& input_stream, Facility__LV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SS__VersionIndicator_lengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SS__VersionIndicator_lengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SS__VersionIndicator_encoder(const SS__VersionIndicator& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SS__VersionIndicator_decoder(OCTETSTRING& input_stream, SS__VersionIndicator& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void codec_encoder(const codec& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER codec_decoder(OCTETSTRING& input_stream, codec& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern boolean operator==(null_type null_value, const CodecList__ML3& other_value);
inline boolean operator!=(null_type null_value, const CodecList__ML3& other_value) { return !(null_value == other_value); }
extern void CodecList__ML3_encoder(const CodecList__ML3& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER CodecList__ML3_decoder(OCTETSTRING& input_stream, CodecList__ML3& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SupportedCodecList_lengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SupportedCodecList_lengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void SupportedCodecList_encoder(const SupportedCodecList& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER SupportedCodecList_decoder(OCTETSTRING& input_stream, SupportedCodecList& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void DevicePropertiesTV_encoder(const DevicePropertiesTV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER DevicePropertiesTV_decoder(OCTETSTRING& input_stream, DevicePropertiesTV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void P__TMSISignature2TLV_lengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER P__TMSISignature2TLV_lengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void P__TMSISignature2TLV_encoder(const P__TMSISignature2TLV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER P__TMSISignature2TLV_decoder(OCTETSTRING& input_stream, P__TMSISignature2TLV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void P__TMSI__TypeTV_encoder(const P__TMSI__TypeTV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER P__TMSI__TypeTV_decoder(OCTETSTRING& input_stream, P__TMSI__TypeTV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RoutingAreaIdentification2TLV_lengthIndicator_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RoutingAreaIdentification2TLV_lengthIndicator_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void RoutingAreaIdentification2TLV_encoder(const RoutingAreaIdentification2TLV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER RoutingAreaIdentification2TLV_decoder(OCTETSTRING& input_stream, RoutingAreaIdentification2TLV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void AdditionalUpdateParameterTV_encoder(const AdditionalUpdateParameterTV& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER AdditionalUpdateParameterTV_decoder(OCTETSTRING& input_stream, AdditionalUpdateParameterTV& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void pre_init_module();
extern void post_init_module();

/* Global variable declarations */

extern const XERdescriptor_t MS__parameters_imsi__length_xer_;
extern const TTCN_Typedescriptor_t MS__parameters_imsi__length_descr_;
extern UNIVERSAL_CHARSTRING MS__parameters_imsi__length_default_coding;
extern const XERdescriptor_t MS__parameters_imsi__firstdigit_xer_;
extern const TTCN_OERdescriptor_t MS__parameters_imsi__firstdigit_oer_;
extern const TTCN_Typedescriptor_t MS__parameters_imsi__firstdigit_descr_;
extern UNIVERSAL_CHARSTRING MS__parameters_imsi__firstdigit_default_coding;
extern const XERdescriptor_t MS__parameters_imsi_xer_;
extern const TTCN_OERdescriptor_t MS__parameters_imsi_oer_;
extern const TTCN_Typedescriptor_t MS__parameters_imsi_descr_;
extern UNIVERSAL_CHARSTRING MS__parameters_imsi_default_coding;
extern const XERdescriptor_t MS__parameters_number_xer_;
extern const TTCN_OERdescriptor_t MS__parameters_number_oer_;
extern const TTCN_Typedescriptor_t MS__parameters_number_descr_;
extern UNIVERSAL_CHARSTRING MS__parameters_number_default_coding;
extern const XERdescriptor_t MS__parameters_SCCP__connId_xer_;
extern const TTCN_Typedescriptor_t MS__parameters_SCCP__connId_descr_;
extern UNIVERSAL_CHARSTRING MS__parameters_SCCP__connId_default_coding;
extern const XERdescriptor_t MS__parameters_L3__NSD_xer_;
extern const TTCN_Typedescriptor_t MS__parameters_L3__NSD_descr_;
extern UNIVERSAL_CHARSTRING MS__parameters_L3__NSD_default_coding;
extern const XERdescriptor_t MS__parameters_tiFlag_xer_;
extern const TTCN_OERdescriptor_t MS__parameters_tiFlag_oer_;
extern const TTCN_Typedescriptor_t MS__parameters_tiFlag_descr_;
extern UNIVERSAL_CHARSTRING MS__parameters_tiFlag_default_coding;
extern const TTCN_RAWdescriptor_t MS__parameters_raw_;
extern const TTCN_Typedescriptor_t MS__parameters_descr_;
extern UNIVERSAL_CHARSTRING MS__parameters_default_coding;
extern const XERdescriptor_t Type1__V_dummy_xer_;
extern const TTCN_OERdescriptor_t Type1__V_dummy_oer_;
extern const TTCN_Typedescriptor_t Type1__V_dummy_descr_;
extern UNIVERSAL_CHARSTRING Type1__V_dummy_default_coding;
extern const XERdescriptor_t Type1__V_valuePart_xer_;
extern const TTCN_OERdescriptor_t Type1__V_valuePart_oer_;
extern const TTCN_Typedescriptor_t Type1__V_valuePart_descr_;
extern UNIVERSAL_CHARSTRING Type1__V_valuePart_default_coding;
extern const TTCN_RAWdescriptor_t Type1__V_raw_;
extern const TTCN_Typedescriptor_t Type1__V_descr_;
extern UNIVERSAL_CHARSTRING Type1__V_default_coding;
extern const XERdescriptor_t Type1__TV_valuePart_xer_;
extern const TTCN_OERdescriptor_t Type1__TV_valuePart_oer_;
extern const TTCN_Typedescriptor_t Type1__TV_valuePart_descr_;
extern UNIVERSAL_CHARSTRING Type1__TV_valuePart_default_coding;
extern const XERdescriptor_t Type1__TV_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t Type1__TV_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t Type1__TV_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING Type1__TV_elementIdentifier_default_coding;
extern const TTCN_RAWdescriptor_t Type1__TV_raw_;
extern const TTCN_Typedescriptor_t Type1__TV_descr_;
extern UNIVERSAL_CHARSTRING Type1__TV_default_coding;
extern const XERdescriptor_t Type2_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t Type2_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t Type2_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING Type2_elementIdentifier_default_coding;
extern const TTCN_RAWdescriptor_t Type2_raw_;
extern const TTCN_Typedescriptor_t Type2_descr_;
extern UNIVERSAL_CHARSTRING Type2_default_coding;
extern const XERdescriptor_t Type3__V_valuePart_xer_;
extern const TTCN_OERdescriptor_t Type3__V_valuePart_oer_;
extern const TTCN_Typedescriptor_t Type3__V_valuePart_descr_;
extern UNIVERSAL_CHARSTRING Type3__V_valuePart_default_coding;
extern const TTCN_RAWdescriptor_t Type3__V_raw_;
extern const TTCN_Typedescriptor_t Type3__V_descr_;
extern UNIVERSAL_CHARSTRING Type3__V_default_coding;
extern const XERdescriptor_t Type3__TV_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t Type3__TV_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t Type3__TV_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING Type3__TV_elementIdentifier_default_coding;
extern const XERdescriptor_t Type3__TV_valuePart_xer_;
extern const TTCN_OERdescriptor_t Type3__TV_valuePart_oer_;
extern const TTCN_Typedescriptor_t Type3__TV_valuePart_descr_;
extern UNIVERSAL_CHARSTRING Type3__TV_valuePart_default_coding;
extern const TTCN_RAWdescriptor_t Type3__TV_raw_;
extern const TTCN_Typedescriptor_t Type3__TV_descr_;
extern UNIVERSAL_CHARSTRING Type3__TV_default_coding;
extern const TTCN_RAWdescriptor_t Type4__LV_lengthIndicator_raw_;
extern const XERdescriptor_t Type4__LV_lengthIndicator_xer_;
extern const TTCN_OERdescriptor_t Type4__LV_lengthIndicator_oer_;
extern const TTCN_Typedescriptor_t Type4__LV_lengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING Type4__LV_lengthIndicator_default_coding;
extern const XERdescriptor_t Type4__LV_valuePart_xer_;
extern const TTCN_OERdescriptor_t Type4__LV_valuePart_oer_;
extern const TTCN_Typedescriptor_t Type4__LV_valuePart_descr_;
extern UNIVERSAL_CHARSTRING Type4__LV_valuePart_default_coding;
extern const TTCN_RAWdescriptor_t Type4__LV_raw_;
extern const TTCN_Typedescriptor_t Type4__LV_descr_;
extern UNIVERSAL_CHARSTRING Type4__LV_default_coding;
extern const XERdescriptor_t Type4__TLV_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t Type4__TLV_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t Type4__TLV_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING Type4__TLV_elementIdentifier_default_coding;
extern const TTCN_RAWdescriptor_t Type4__TLV_lengthIndicator_raw_;
extern const XERdescriptor_t Type4__TLV_lengthIndicator_xer_;
extern const TTCN_OERdescriptor_t Type4__TLV_lengthIndicator_oer_;
extern const TTCN_Typedescriptor_t Type4__TLV_lengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING Type4__TLV_lengthIndicator_default_coding;
extern const XERdescriptor_t Type4__TLV_valuePart_xer_;
extern const TTCN_OERdescriptor_t Type4__TLV_valuePart_oer_;
extern const TTCN_Typedescriptor_t Type4__TLV_valuePart_descr_;
extern UNIVERSAL_CHARSTRING Type4__TLV_valuePart_default_coding;
extern const TTCN_RAWdescriptor_t Type4__TLV_raw_;
extern const TTCN_Typedescriptor_t Type4__TLV_descr_;
extern UNIVERSAL_CHARSTRING Type4__TLV_default_coding;
extern const XERdescriptor_t ML3__NotifySS__Arg_sequenceTag_xer_;
extern const TTCN_OERdescriptor_t ML3__NotifySS__Arg_sequenceTag_oer_;
extern const TTCN_Typedescriptor_t ML3__NotifySS__Arg_sequenceTag_descr_;
extern UNIVERSAL_CHARSTRING ML3__NotifySS__Arg_sequenceTag_default_coding;
extern const XERdescriptor_t ML3__NotifySS__Arg_sequenceLength_xer_;
extern const TTCN_OERdescriptor_t ML3__NotifySS__Arg_sequenceLength_oer_;
extern const TTCN_Typedescriptor_t ML3__NotifySS__Arg_sequenceLength_descr_;
extern UNIVERSAL_CHARSTRING ML3__NotifySS__Arg_sequenceLength_default_coding;
extern const XERdescriptor_t ML3__NotifySS__Arg_ssCodeTag_xer_;
extern const TTCN_OERdescriptor_t ML3__NotifySS__Arg_ssCodeTag_oer_;
extern const TTCN_Typedescriptor_t ML3__NotifySS__Arg_ssCodeTag_descr_;
extern UNIVERSAL_CHARSTRING ML3__NotifySS__Arg_ssCodeTag_default_coding;
extern const XERdescriptor_t ML3__NotifySS__Arg_ssCodeLength_xer_;
extern const TTCN_OERdescriptor_t ML3__NotifySS__Arg_ssCodeLength_oer_;
extern const TTCN_Typedescriptor_t ML3__NotifySS__Arg_ssCodeLength_descr_;
extern UNIVERSAL_CHARSTRING ML3__NotifySS__Arg_ssCodeLength_default_coding;
extern const XERdescriptor_t ML3__NotifySS__Arg_ssCodeValue_xer_;
extern const TTCN_OERdescriptor_t ML3__NotifySS__Arg_ssCodeValue_oer_;
extern const TTCN_Typedescriptor_t ML3__NotifySS__Arg_ssCodeValue_descr_;
extern UNIVERSAL_CHARSTRING ML3__NotifySS__Arg_ssCodeValue_default_coding;
extern const XERdescriptor_t ML3__NotifySS__Arg_ssIndicatorTag_xer_;
extern const TTCN_OERdescriptor_t ML3__NotifySS__Arg_ssIndicatorTag_oer_;
extern const TTCN_Typedescriptor_t ML3__NotifySS__Arg_ssIndicatorTag_descr_;
extern UNIVERSAL_CHARSTRING ML3__NotifySS__Arg_ssIndicatorTag_default_coding;
extern const XERdescriptor_t ML3__NotifySS__Arg_ssIndicatorLength_xer_;
extern const TTCN_OERdescriptor_t ML3__NotifySS__Arg_ssIndicatorLength_oer_;
extern const TTCN_Typedescriptor_t ML3__NotifySS__Arg_ssIndicatorLength_descr_;
extern UNIVERSAL_CHARSTRING ML3__NotifySS__Arg_ssIndicatorLength_default_coding;
extern const XERdescriptor_t ML3__NotifySS__Arg_ssIndicatorValue_xer_;
extern const TTCN_OERdescriptor_t ML3__NotifySS__Arg_ssIndicatorValue_oer_;
extern const TTCN_Typedescriptor_t ML3__NotifySS__Arg_ssIndicatorValue_descr_;
extern UNIVERSAL_CHARSTRING ML3__NotifySS__Arg_ssIndicatorValue_default_coding;
extern const TTCN_RAWdescriptor_t ML3__NotifySS__Arg_raw_;
extern const TTCN_Typedescriptor_t ML3__NotifySS__Arg_descr_;
extern UNIVERSAL_CHARSTRING ML3__NotifySS__Arg_default_coding;
extern const XERdescriptor_t CellIdentity_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t CellIdentity_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t CellIdentity_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING CellIdentity_elementIdentifier_default_coding;
extern const XERdescriptor_t CellIdentity_cIvalue_xer_;
extern const TTCN_OERdescriptor_t CellIdentity_cIvalue_oer_;
extern const TTCN_Typedescriptor_t CellIdentity_cIvalue_descr_;
extern UNIVERSAL_CHARSTRING CellIdentity_cIvalue_default_coding;
extern const TTCN_RAWdescriptor_t CellIdentity_raw_;
extern const TTCN_Typedescriptor_t CellIdentity_descr_;
extern UNIVERSAL_CHARSTRING CellIdentity_default_coding;
extern const XERdescriptor_t CipheringKeySequenceNumberV_keySequence_xer_;
extern const TTCN_OERdescriptor_t CipheringKeySequenceNumberV_keySequence_oer_;
extern const TTCN_Typedescriptor_t CipheringKeySequenceNumberV_keySequence_descr_;
extern UNIVERSAL_CHARSTRING CipheringKeySequenceNumberV_keySequence_default_coding;
extern const XERdescriptor_t CipheringKeySequenceNumberV_spare_xer_;
extern const TTCN_OERdescriptor_t CipheringKeySequenceNumberV_spare_oer_;
extern const TTCN_Typedescriptor_t CipheringKeySequenceNumberV_spare_descr_;
extern UNIVERSAL_CHARSTRING CipheringKeySequenceNumberV_spare_default_coding;
extern const TTCN_RAWdescriptor_t CipheringKeySequenceNumberV_raw_;
extern const TTCN_Typedescriptor_t CipheringKeySequenceNumberV_descr_;
extern UNIVERSAL_CHARSTRING CipheringKeySequenceNumberV_default_coding;
extern UNIVERSAL_CHARSTRING CipheringKeySequenceNumberTV_keySequence_default_coding;
extern const XERdescriptor_t CipheringKeySequenceNumberTV_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t CipheringKeySequenceNumberTV_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t CipheringKeySequenceNumberTV_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING CipheringKeySequenceNumberTV_elementIdentifier_default_coding;
extern const TTCN_RAWdescriptor_t CipheringKeySequenceNumberTV_raw_;
extern const TTCN_Typedescriptor_t CipheringKeySequenceNumberTV_descr_;
extern UNIVERSAL_CHARSTRING CipheringKeySequenceNumberTV_default_coding;
extern const XERdescriptor_t LocationAreaIdentification__V_mcc__mnc_xer_;
extern const TTCN_OERdescriptor_t LocationAreaIdentification__V_mcc__mnc_oer_;
extern const TTCN_Typedescriptor_t LocationAreaIdentification__V_mcc__mnc_descr_;
extern UNIVERSAL_CHARSTRING LocationAreaIdentification__V_mcc__mnc_default_coding;
extern const XERdescriptor_t LocationAreaIdentification__V_lac_xer_;
extern const TTCN_OERdescriptor_t LocationAreaIdentification__V_lac_oer_;
extern const TTCN_Typedescriptor_t LocationAreaIdentification__V_lac_descr_;
extern UNIVERSAL_CHARSTRING LocationAreaIdentification__V_lac_default_coding;
extern const TTCN_RAWdescriptor_t LocationAreaIdentification__V_raw_;
extern const TTCN_Typedescriptor_t LocationAreaIdentification__V_descr_;
extern UNIVERSAL_CHARSTRING LocationAreaIdentification__V_default_coding;
extern const XERdescriptor_t LocationAreaIdentification__TV_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t LocationAreaIdentification__TV_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t LocationAreaIdentification__TV_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING LocationAreaIdentification__TV_elementIdentifier_default_coding;
extern const XERdescriptor_t LocationAreaIdentification__TV_mcc__mnc_xer_;
extern const TTCN_OERdescriptor_t LocationAreaIdentification__TV_mcc__mnc_oer_;
extern const TTCN_Typedescriptor_t LocationAreaIdentification__TV_mcc__mnc_descr_;
extern UNIVERSAL_CHARSTRING LocationAreaIdentification__TV_mcc__mnc_default_coding;
extern const XERdescriptor_t LocationAreaIdentification__TV_lac_xer_;
extern const TTCN_OERdescriptor_t LocationAreaIdentification__TV_lac_oer_;
extern const TTCN_Typedescriptor_t LocationAreaIdentification__TV_lac_descr_;
extern UNIVERSAL_CHARSTRING LocationAreaIdentification__TV_lac_default_coding;
extern const TTCN_RAWdescriptor_t LocationAreaIdentification__TV_raw_;
extern const TTCN_Typedescriptor_t LocationAreaIdentification__TV_descr_;
extern UNIVERSAL_CHARSTRING LocationAreaIdentification__TV_default_coding;
extern const XERdescriptor_t MobileIdentityTLV_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t MobileIdentityTLV_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t MobileIdentityTLV_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING MobileIdentityTLV_elementIdentifier_default_coding;
extern const XERdescriptor_t MobileIdentityTLV_spare1_xer_;
extern const TTCN_OERdescriptor_t MobileIdentityTLV_spare1_oer_;
extern const TTCN_Typedescriptor_t MobileIdentityTLV_spare1_descr_;
extern UNIVERSAL_CHARSTRING MobileIdentityTLV_spare1_default_coding;
extern const TTCN_RAWdescriptor_t MobileIdentityLV_lengthIndicator_raw_;
extern const XERdescriptor_t MobileIdentityLV_lengthIndicator_xer_;
extern const TTCN_OERdescriptor_t MobileIdentityLV_lengthIndicator_oer_;
extern const TTCN_Typedescriptor_t MobileIdentityLV_lengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING MobileIdentityLV_lengthIndicator_default_coding;
extern const XERdescriptor_t MobileIdentityV_typeOfIdentity_xer_;
extern const TTCN_OERdescriptor_t MobileIdentityV_typeOfIdentity_oer_;
extern const TTCN_Typedescriptor_t MobileIdentityV_typeOfIdentity_descr_;
extern UNIVERSAL_CHARSTRING MobileIdentityV_typeOfIdentity_default_coding;
extern const TTCN_RAWdescriptor_t OddEvenInd__Identity_raw_;
extern const TTCN_Typedescriptor_t OddEvenInd__Identity_descr_;
extern const XERdescriptor_t IMSI__L3_oddevenIndicator_xer_;
extern const TTCN_OERdescriptor_t IMSI__L3_oddevenIndicator_oer_;
extern const TTCN_Typedescriptor_t IMSI__L3_oddevenIndicator_descr_;
extern UNIVERSAL_CHARSTRING IMSI__L3_oddevenIndicator_default_coding;
extern const XERdescriptor_t IMSI__L3_digits_xer_;
extern const TTCN_Typedescriptor_t IMSI__L3_digits_descr_;
extern UNIVERSAL_CHARSTRING IMSI__L3_digits_default_coding;
extern const TTCN_RAWdescriptor_t IMSI__L3_raw_;
extern const TTCN_Typedescriptor_t IMSI__L3_descr_;
extern const TTCN_RAWdescriptor_t IMSI__L3_fillerDigit_raw_;
extern const XERdescriptor_t IMSI__L3_fillerDigit_xer_;
extern const TTCN_OERdescriptor_t IMSI__L3_fillerDigit_oer_;
extern const TTCN_Typedescriptor_t IMSI__L3_fillerDigit_descr_;
extern UNIVERSAL_CHARSTRING IMSI__L3_fillerDigit_default_coding;
extern UNIVERSAL_CHARSTRING IMSI__L3_default_coding;
extern UNIVERSAL_CHARSTRING OddEvenInd__Identity_imsi_default_coding;
extern const XERdescriptor_t IMEI__L3_oddevenIndicator_xer_;
extern const TTCN_OERdescriptor_t IMEI__L3_oddevenIndicator_oer_;
extern const TTCN_Typedescriptor_t IMEI__L3_oddevenIndicator_descr_;
extern UNIVERSAL_CHARSTRING IMEI__L3_oddevenIndicator_default_coding;
extern const TTCN_RAWdescriptor_t IMEI__L3_digits_raw_;
extern const XERdescriptor_t IMEI__L3_digits_xer_;
extern const TTCN_Typedescriptor_t IMEI__L3_digits_descr_;
extern UNIVERSAL_CHARSTRING IMEI__L3_digits_default_coding;
extern const TTCN_RAWdescriptor_t IMEI__L3_raw_;
extern const TTCN_Typedescriptor_t IMEI__L3_descr_;
extern UNIVERSAL_CHARSTRING IMEI__L3_default_coding;
extern UNIVERSAL_CHARSTRING OddEvenInd__Identity_imei_default_coding;
extern const XERdescriptor_t IMEI__SV_oddevenIndicator_xer_;
extern const TTCN_OERdescriptor_t IMEI__SV_oddevenIndicator_oer_;
extern const TTCN_Typedescriptor_t IMEI__SV_oddevenIndicator_descr_;
extern UNIVERSAL_CHARSTRING IMEI__SV_oddevenIndicator_default_coding;
extern const TTCN_RAWdescriptor_t IMEI__SV_digits_raw_;
extern const XERdescriptor_t IMEI__SV_digits_xer_;
extern const TTCN_Typedescriptor_t IMEI__SV_digits_descr_;
extern UNIVERSAL_CHARSTRING IMEI__SV_digits_default_coding;
extern const XERdescriptor_t IMEI__SV_fillerDigit_xer_;
extern const TTCN_OERdescriptor_t IMEI__SV_fillerDigit_oer_;
extern const TTCN_Typedescriptor_t IMEI__SV_fillerDigit_descr_;
extern UNIVERSAL_CHARSTRING IMEI__SV_fillerDigit_default_coding;
extern const TTCN_RAWdescriptor_t IMEI__SV_raw_;
extern const TTCN_Typedescriptor_t IMEI__SV_descr_;
extern UNIVERSAL_CHARSTRING IMEI__SV_default_coding;
extern UNIVERSAL_CHARSTRING OddEvenInd__Identity_imei__sv_default_coding;
extern const XERdescriptor_t TMSI__PTMSI_oddevenIndicator_xer_;
extern const TTCN_OERdescriptor_t TMSI__PTMSI_oddevenIndicator_oer_;
extern const TTCN_Typedescriptor_t TMSI__PTMSI_oddevenIndicator_descr_;
extern UNIVERSAL_CHARSTRING TMSI__PTMSI_oddevenIndicator_default_coding;
extern const XERdescriptor_t TMSI__PTMSI_fillerDigit_xer_;
extern const TTCN_OERdescriptor_t TMSI__PTMSI_fillerDigit_oer_;
extern const TTCN_Typedescriptor_t TMSI__PTMSI_fillerDigit_descr_;
extern UNIVERSAL_CHARSTRING TMSI__PTMSI_fillerDigit_default_coding;
extern const XERdescriptor_t TMSI__PTMSI_octets_xer_;
extern const TTCN_OERdescriptor_t TMSI__PTMSI_octets_oer_;
extern const TTCN_Typedescriptor_t TMSI__PTMSI_octets_descr_;
extern UNIVERSAL_CHARSTRING TMSI__PTMSI_octets_default_coding;
extern const TTCN_RAWdescriptor_t TMSI__PTMSI_raw_;
extern const TTCN_Typedescriptor_t TMSI__PTMSI_descr_;
extern UNIVERSAL_CHARSTRING TMSI__PTMSI_default_coding;
extern UNIVERSAL_CHARSTRING OddEvenInd__Identity_tmsi__ptmsi_default_coding;
extern const XERdescriptor_t TMGI__and__MBMS__SessionID_oddevenIndicator_xer_;
extern const TTCN_OERdescriptor_t TMGI__and__MBMS__SessionID_oddevenIndicator_oer_;
extern const TTCN_Typedescriptor_t TMGI__and__MBMS__SessionID_oddevenIndicator_descr_;
extern UNIVERSAL_CHARSTRING TMGI__and__MBMS__SessionID_oddevenIndicator_default_coding;
extern const XERdescriptor_t TMGI__and__MBMS__SessionID_mCC__MNCIndicator_xer_;
extern const TTCN_OERdescriptor_t TMGI__and__MBMS__SessionID_mCC__MNCIndicator_oer_;
extern const TTCN_Typedescriptor_t TMGI__and__MBMS__SessionID_mCC__MNCIndicator_descr_;
extern UNIVERSAL_CHARSTRING TMGI__and__MBMS__SessionID_mCC__MNCIndicator_default_coding;
extern const XERdescriptor_t TMGI__and__MBMS__SessionID_mBMS__SessionIdentityIndicator_xer_;
extern const TTCN_OERdescriptor_t TMGI__and__MBMS__SessionID_mBMS__SessionIdentityIndicator_oer_;
extern const TTCN_Typedescriptor_t TMGI__and__MBMS__SessionID_mBMS__SessionIdentityIndicator_descr_;
extern UNIVERSAL_CHARSTRING TMGI__and__MBMS__SessionID_mBMS__SessionIdentityIndicator_default_coding;
extern const XERdescriptor_t TMGI__and__MBMS__SessionID_spare_xer_;
extern const TTCN_OERdescriptor_t TMGI__and__MBMS__SessionID_spare_oer_;
extern const TTCN_Typedescriptor_t TMGI__and__MBMS__SessionID_spare_descr_;
extern UNIVERSAL_CHARSTRING TMGI__and__MBMS__SessionID_spare_default_coding;
extern const XERdescriptor_t TMGI__and__MBMS__SessionID_mBMS__ServiceID_xer_;
extern const TTCN_OERdescriptor_t TMGI__and__MBMS__SessionID_mBMS__ServiceID_oer_;
extern const TTCN_Typedescriptor_t TMGI__and__MBMS__SessionID_mBMS__ServiceID_descr_;
extern UNIVERSAL_CHARSTRING TMGI__and__MBMS__SessionID_mBMS__ServiceID_default_coding;
extern const XERdescriptor_t TMGI__and__MBMS__SessionID_mccDigit1_xer_;
extern const TTCN_Typedescriptor_t TMGI__and__MBMS__SessionID_mccDigit1_descr_;
extern UNIVERSAL_CHARSTRING TMGI__and__MBMS__SessionID_mccDigit1_default_coding;
extern const XERdescriptor_t TMGI__and__MBMS__SessionID_mccDigit2_xer_;
extern const TTCN_Typedescriptor_t TMGI__and__MBMS__SessionID_mccDigit2_descr_;
extern UNIVERSAL_CHARSTRING TMGI__and__MBMS__SessionID_mccDigit2_default_coding;
extern const XERdescriptor_t TMGI__and__MBMS__SessionID_mccDigit3_xer_;
extern const TTCN_Typedescriptor_t TMGI__and__MBMS__SessionID_mccDigit3_descr_;
extern UNIVERSAL_CHARSTRING TMGI__and__MBMS__SessionID_mccDigit3_default_coding;
extern const XERdescriptor_t TMGI__and__MBMS__SessionID_mncDigit3_xer_;
extern const TTCN_Typedescriptor_t TMGI__and__MBMS__SessionID_mncDigit3_descr_;
extern UNIVERSAL_CHARSTRING TMGI__and__MBMS__SessionID_mncDigit3_default_coding;
extern const XERdescriptor_t TMGI__and__MBMS__SessionID_mncDigit1_xer_;
extern const TTCN_Typedescriptor_t TMGI__and__MBMS__SessionID_mncDigit1_descr_;
extern UNIVERSAL_CHARSTRING TMGI__and__MBMS__SessionID_mncDigit1_default_coding;
extern const XERdescriptor_t TMGI__and__MBMS__SessionID_mncDigit2_xer_;
extern const TTCN_Typedescriptor_t TMGI__and__MBMS__SessionID_mncDigit2_descr_;
extern UNIVERSAL_CHARSTRING TMGI__and__MBMS__SessionID_mncDigit2_default_coding;
extern const XERdescriptor_t TMGI__and__MBMS__SessionID_mBMS__SessionIdentity_xer_;
extern const TTCN_OERdescriptor_t TMGI__and__MBMS__SessionID_mBMS__SessionIdentity_oer_;
extern const TTCN_Typedescriptor_t TMGI__and__MBMS__SessionID_mBMS__SessionIdentity_descr_;
extern UNIVERSAL_CHARSTRING TMGI__and__MBMS__SessionID_mBMS__SessionIdentity_default_coding;
extern const TTCN_RAWdescriptor_t TMGI__and__MBMS__SessionID_raw_;
extern const TTCN_Typedescriptor_t TMGI__and__MBMS__SessionID_descr_;
extern UNIVERSAL_CHARSTRING TMGI__and__MBMS__SessionID_default_coding;
extern UNIVERSAL_CHARSTRING OddEvenInd__Identity_tmgi__and__MBMS__SessionID_default_coding;
extern const XERdescriptor_t No__Identity_oddevenIndicator_xer_;
extern const TTCN_OERdescriptor_t No__Identity_oddevenIndicator_oer_;
extern const TTCN_Typedescriptor_t No__Identity_oddevenIndicator_descr_;
extern UNIVERSAL_CHARSTRING No__Identity_oddevenIndicator_default_coding;
extern const XERdescriptor_t No__Identity_fillerDigits_xer_;
extern const TTCN_Typedescriptor_t No__Identity_fillerDigits_descr_;
extern UNIVERSAL_CHARSTRING No__Identity_fillerDigits_default_coding;
extern const TTCN_RAWdescriptor_t No__Identity_raw_;
extern const TTCN_Typedescriptor_t No__Identity_descr_;
extern UNIVERSAL_CHARSTRING No__Identity_default_coding;
extern UNIVERSAL_CHARSTRING OddEvenInd__Identity_no__identity_default_coding;
extern UNIVERSAL_CHARSTRING OddEvenInd__Identity_default_coding;
extern const TTCN_RAWdescriptor_t MobileIdentityV_oddEvenInd__identity_raw_;
extern const TTCN_Typedescriptor_t MobileIdentityV_oddEvenInd__identity_descr_;
extern UNIVERSAL_CHARSTRING MobileIdentityV_oddEvenInd__identity_default_coding;
extern const TTCN_RAWdescriptor_t MobileIdentityV_raw_;
extern const TTCN_Typedescriptor_t MobileIdentityV_descr_;
extern UNIVERSAL_CHARSTRING MobileIdentityV_default_coding;
extern UNIVERSAL_CHARSTRING MobileIdentityLV_mobileIdentityV_default_coding;
extern const TTCN_RAWdescriptor_t MobileIdentityLV_raw_;
extern const TTCN_Typedescriptor_t MobileIdentityLV_descr_;
extern UNIVERSAL_CHARSTRING MobileIdentityLV_default_coding;
extern UNIVERSAL_CHARSTRING MobileIdentityTLV_mobileIdentityLV_default_coding;
extern const TTCN_RAWdescriptor_t MobileIdentityTLV_raw_;
extern const TTCN_Typedescriptor_t MobileIdentityTLV_descr_;
extern UNIVERSAL_CHARSTRING MobileIdentityTLV_default_coding;
extern const XERdescriptor_t MobileStationClassmark1__TV_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark1__TV_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark1__TV_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark1__TV_elementIdentifier_default_coding;
extern const XERdescriptor_t MobileStationClassmark1__TV_rf__PowerCapability_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark1__TV_rf__PowerCapability_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark1__TV_rf__PowerCapability_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark1__TV_rf__PowerCapability_default_coding;
extern const XERdescriptor_t MobileStationClassmark1__TV_a5__1_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark1__TV_a5__1_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark1__TV_a5__1_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark1__TV_a5__1_default_coding;
extern const XERdescriptor_t MobileStationClassmark1__TV_esind_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark1__TV_esind_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark1__TV_esind_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark1__TV_esind_default_coding;
extern const XERdescriptor_t MobileStationClassmark1__TV_revisionLevel_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark1__TV_revisionLevel_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark1__TV_revisionLevel_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark1__TV_revisionLevel_default_coding;
extern const XERdescriptor_t MobileStationClassmark1__TV_spare1__1_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark1__TV_spare1__1_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark1__TV_spare1__1_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark1__TV_spare1__1_default_coding;
extern const TTCN_RAWdescriptor_t MobileStationClassmark1__TV_raw_;
extern const TTCN_Typedescriptor_t MobileStationClassmark1__TV_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark1__TV_default_coding;
extern const XERdescriptor_t MobileStationClassmark1__V_rf__PowerCapability_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark1__V_rf__PowerCapability_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark1__V_rf__PowerCapability_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark1__V_rf__PowerCapability_default_coding;
extern const XERdescriptor_t MobileStationClassmark1__V_a5__1_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark1__V_a5__1_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark1__V_a5__1_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark1__V_a5__1_default_coding;
extern const XERdescriptor_t MobileStationClassmark1__V_esind_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark1__V_esind_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark1__V_esind_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark1__V_esind_default_coding;
extern const XERdescriptor_t MobileStationClassmark1__V_revisionLevel_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark1__V_revisionLevel_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark1__V_revisionLevel_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark1__V_revisionLevel_default_coding;
extern const XERdescriptor_t MobileStationClassmark1__V_spare1__1_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark1__V_spare1__1_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark1__V_spare1__1_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark1__V_spare1__1_default_coding;
extern const TTCN_RAWdescriptor_t MobileStationClassmark1__V_raw_;
extern const TTCN_Typedescriptor_t MobileStationClassmark1__V_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark1__V_default_coding;
extern const XERdescriptor_t MobileStationClassmark2__oct4_fc_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark2__oct4_fc_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__oct4_fc_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__oct4_fc_default_coding;
extern const XERdescriptor_t MobileStationClassmark2__oct4_vgcs_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark2__oct4_vgcs_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__oct4_vgcs_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__oct4_vgcs_default_coding;
extern const XERdescriptor_t MobileStationClassmark2__oct4_vbs_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark2__oct4_vbs_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__oct4_vbs_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__oct4_vbs_default_coding;
extern const XERdescriptor_t MobileStationClassmark2__oct4_sm__Capability_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark2__oct4_sm__Capability_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__oct4_sm__Capability_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__oct4_sm__Capability_default_coding;
extern const XERdescriptor_t MobileStationClassmark2__oct4_ss__ScreenIndicator_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark2__oct4_ss__ScreenIndicator_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__oct4_ss__ScreenIndicator_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__oct4_ss__ScreenIndicator_default_coding;
extern const XERdescriptor_t MobileStationClassmark2__oct4_ps__Capability_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark2__oct4_ps__Capability_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__oct4_ps__Capability_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__oct4_ps__Capability_default_coding;
extern const XERdescriptor_t MobileStationClassmark2__oct4_spare2__1_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark2__oct4_spare2__1_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__oct4_spare2__1_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__oct4_spare2__1_default_coding;
extern const TTCN_RAWdescriptor_t MobileStationClassmark2__oct4_raw_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__oct4_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__oct4_default_coding;
extern const XERdescriptor_t MobileStationClassmark2__oct5_a5__2_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark2__oct5_a5__2_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__oct5_a5__2_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__oct5_a5__2_default_coding;
extern const XERdescriptor_t MobileStationClassmark2__oct5_a5__3_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark2__oct5_a5__3_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__oct5_a5__3_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__oct5_a5__3_default_coding;
extern const XERdescriptor_t MobileStationClassmark2__oct5_cmsp_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark2__oct5_cmsp_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__oct5_cmsp_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__oct5_cmsp_default_coding;
extern const XERdescriptor_t MobileStationClassmark2__oct5_solsa_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark2__oct5_solsa_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__oct5_solsa_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__oct5_solsa_default_coding;
extern const XERdescriptor_t MobileStationClassmark2__oct5_ucs2_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark2__oct5_ucs2_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__oct5_ucs2_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__oct5_ucs2_default_coding;
extern const XERdescriptor_t MobileStationClassmark2__oct5_lcsva__cap_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark2__oct5_lcsva__cap_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__oct5_lcsva__cap_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__oct5_lcsva__cap_default_coding;
extern const XERdescriptor_t MobileStationClassmark2__oct5_spare5__7_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark2__oct5_spare5__7_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__oct5_spare5__7_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__oct5_spare5__7_default_coding;
extern const XERdescriptor_t MobileStationClassmark2__oct5_cm3_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark2__oct5_cm3_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__oct5_cm3_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__oct5_cm3_default_coding;
extern const TTCN_RAWdescriptor_t MobileStationClassmark2__oct5_raw_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__oct5_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__oct5_default_coding;
extern const TTCN_RAWdescriptor_t MobileStationClassmark2__LV_lengthIndicator_raw_;
extern const XERdescriptor_t MobileStationClassmark2__LV_lengthIndicator_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark2__LV_lengthIndicator_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__LV_lengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__LV_lengthIndicator_default_coding;
extern const XERdescriptor_t MobileStationClassmark2__LV_rf__PowerCapability_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark2__LV_rf__PowerCapability_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__LV_rf__PowerCapability_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__LV_rf__PowerCapability_default_coding;
extern const XERdescriptor_t MobileStationClassmark2__LV_a5__1_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark2__LV_a5__1_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__LV_a5__1_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__LV_a5__1_default_coding;
extern const XERdescriptor_t MobileStationClassmark2__LV_esind_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark2__LV_esind_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__LV_esind_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__LV_esind_default_coding;
extern const XERdescriptor_t MobileStationClassmark2__LV_revisionLevel_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark2__LV_revisionLevel_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__LV_revisionLevel_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__LV_revisionLevel_default_coding;
extern const XERdescriptor_t MobileStationClassmark2__LV_spare1__1_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark2__LV_spare1__1_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__LV_spare1__1_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__LV_spare1__1_default_coding;
extern const TTCN_RAWdescriptor_t MobileStationClassmark2__LV_raw_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__LV_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__LV_mobileStationClassmark2__oct4_default_coding;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__LV_mobileStationClassmark2__oct5_default_coding;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__LV_default_coding;
extern const XERdescriptor_t MobileStationClassmark2__TLV_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark2__TLV_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__TLV_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__TLV_elementIdentifier_default_coding;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__TLV_mobileStationClassmark2LV_default_coding;
extern const TTCN_RAWdescriptor_t MobileStationClassmark2__TLV_raw_;
extern const TTCN_Typedescriptor_t MobileStationClassmark2__TLV_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark2__TLV_default_coding;
extern const XERdescriptor_t ClassmarkInformationType2__forUMTS_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t ClassmarkInformationType2__forUMTS_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t ClassmarkInformationType2__forUMTS_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING ClassmarkInformationType2__forUMTS_elementIdentifier_default_coding;
extern const TTCN_RAWdescriptor_t ClassmarkInformationType2__forUMTS_lengthIndicator_raw_;
extern const XERdescriptor_t ClassmarkInformationType2__forUMTS_lengthIndicator_xer_;
extern const TTCN_OERdescriptor_t ClassmarkInformationType2__forUMTS_lengthIndicator_oer_;
extern const TTCN_Typedescriptor_t ClassmarkInformationType2__forUMTS_lengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING ClassmarkInformationType2__forUMTS_lengthIndicator_default_coding;
extern const XERdescriptor_t ClassmarkInformationType2__forUMTS_rf__PowerCapability_xer_;
extern const TTCN_OERdescriptor_t ClassmarkInformationType2__forUMTS_rf__PowerCapability_oer_;
extern const TTCN_Typedescriptor_t ClassmarkInformationType2__forUMTS_rf__PowerCapability_descr_;
extern UNIVERSAL_CHARSTRING ClassmarkInformationType2__forUMTS_rf__PowerCapability_default_coding;
extern const XERdescriptor_t ClassmarkInformationType2__forUMTS_a5__1_xer_;
extern const TTCN_OERdescriptor_t ClassmarkInformationType2__forUMTS_a5__1_oer_;
extern const TTCN_Typedescriptor_t ClassmarkInformationType2__forUMTS_a5__1_descr_;
extern UNIVERSAL_CHARSTRING ClassmarkInformationType2__forUMTS_a5__1_default_coding;
extern const XERdescriptor_t ClassmarkInformationType2__forUMTS_esind_xer_;
extern const TTCN_OERdescriptor_t ClassmarkInformationType2__forUMTS_esind_oer_;
extern const TTCN_Typedescriptor_t ClassmarkInformationType2__forUMTS_esind_descr_;
extern UNIVERSAL_CHARSTRING ClassmarkInformationType2__forUMTS_esind_default_coding;
extern const XERdescriptor_t ClassmarkInformationType2__forUMTS_revisionLevel_xer_;
extern const TTCN_OERdescriptor_t ClassmarkInformationType2__forUMTS_revisionLevel_oer_;
extern const TTCN_Typedescriptor_t ClassmarkInformationType2__forUMTS_revisionLevel_descr_;
extern UNIVERSAL_CHARSTRING ClassmarkInformationType2__forUMTS_revisionLevel_default_coding;
extern const XERdescriptor_t ClassmarkInformationType2__forUMTS_spare1__1_xer_;
extern const TTCN_OERdescriptor_t ClassmarkInformationType2__forUMTS_spare1__1_oer_;
extern const TTCN_Typedescriptor_t ClassmarkInformationType2__forUMTS_spare1__1_descr_;
extern UNIVERSAL_CHARSTRING ClassmarkInformationType2__forUMTS_spare1__1_default_coding;
extern const XERdescriptor_t ClassmarkInformationType2__forUMTS_fc_xer_;
extern const TTCN_OERdescriptor_t ClassmarkInformationType2__forUMTS_fc_oer_;
extern const TTCN_Typedescriptor_t ClassmarkInformationType2__forUMTS_fc_descr_;
extern UNIVERSAL_CHARSTRING ClassmarkInformationType2__forUMTS_fc_default_coding;
extern const XERdescriptor_t ClassmarkInformationType2__forUMTS_vgcs_xer_;
extern const TTCN_OERdescriptor_t ClassmarkInformationType2__forUMTS_vgcs_oer_;
extern const TTCN_Typedescriptor_t ClassmarkInformationType2__forUMTS_vgcs_descr_;
extern UNIVERSAL_CHARSTRING ClassmarkInformationType2__forUMTS_vgcs_default_coding;
extern const XERdescriptor_t ClassmarkInformationType2__forUMTS_vbs_xer_;
extern const TTCN_OERdescriptor_t ClassmarkInformationType2__forUMTS_vbs_oer_;
extern const TTCN_Typedescriptor_t ClassmarkInformationType2__forUMTS_vbs_descr_;
extern UNIVERSAL_CHARSTRING ClassmarkInformationType2__forUMTS_vbs_default_coding;
extern const XERdescriptor_t ClassmarkInformationType2__forUMTS_sm__Capability_xer_;
extern const TTCN_OERdescriptor_t ClassmarkInformationType2__forUMTS_sm__Capability_oer_;
extern const TTCN_Typedescriptor_t ClassmarkInformationType2__forUMTS_sm__Capability_descr_;
extern UNIVERSAL_CHARSTRING ClassmarkInformationType2__forUMTS_sm__Capability_default_coding;
extern const XERdescriptor_t ClassmarkInformationType2__forUMTS_ss__ScreenIndicator_xer_;
extern const TTCN_OERdescriptor_t ClassmarkInformationType2__forUMTS_ss__ScreenIndicator_oer_;
extern const TTCN_Typedescriptor_t ClassmarkInformationType2__forUMTS_ss__ScreenIndicator_descr_;
extern UNIVERSAL_CHARSTRING ClassmarkInformationType2__forUMTS_ss__ScreenIndicator_default_coding;
extern const XERdescriptor_t ClassmarkInformationType2__forUMTS_ps__Capability_xer_;
extern const TTCN_OERdescriptor_t ClassmarkInformationType2__forUMTS_ps__Capability_oer_;
extern const TTCN_Typedescriptor_t ClassmarkInformationType2__forUMTS_ps__Capability_descr_;
extern UNIVERSAL_CHARSTRING ClassmarkInformationType2__forUMTS_ps__Capability_default_coding;
extern const XERdescriptor_t ClassmarkInformationType2__forUMTS_spare2__1_xer_;
extern const TTCN_OERdescriptor_t ClassmarkInformationType2__forUMTS_spare2__1_oer_;
extern const TTCN_Typedescriptor_t ClassmarkInformationType2__forUMTS_spare2__1_descr_;
extern UNIVERSAL_CHARSTRING ClassmarkInformationType2__forUMTS_spare2__1_default_coding;
extern const XERdescriptor_t ClassmarkInformationType2__forUMTS_a5__2_xer_;
extern const TTCN_OERdescriptor_t ClassmarkInformationType2__forUMTS_a5__2_oer_;
extern const TTCN_Typedescriptor_t ClassmarkInformationType2__forUMTS_a5__2_descr_;
extern UNIVERSAL_CHARSTRING ClassmarkInformationType2__forUMTS_a5__2_default_coding;
extern const XERdescriptor_t ClassmarkInformationType2__forUMTS_a5__3_xer_;
extern const TTCN_OERdescriptor_t ClassmarkInformationType2__forUMTS_a5__3_oer_;
extern const TTCN_Typedescriptor_t ClassmarkInformationType2__forUMTS_a5__3_descr_;
extern UNIVERSAL_CHARSTRING ClassmarkInformationType2__forUMTS_a5__3_default_coding;
extern const XERdescriptor_t ClassmarkInformationType2__forUMTS_cmsp_xer_;
extern const TTCN_OERdescriptor_t ClassmarkInformationType2__forUMTS_cmsp_oer_;
extern const TTCN_Typedescriptor_t ClassmarkInformationType2__forUMTS_cmsp_descr_;
extern UNIVERSAL_CHARSTRING ClassmarkInformationType2__forUMTS_cmsp_default_coding;
extern const XERdescriptor_t ClassmarkInformationType2__forUMTS_solsa_xer_;
extern const TTCN_OERdescriptor_t ClassmarkInformationType2__forUMTS_solsa_oer_;
extern const TTCN_Typedescriptor_t ClassmarkInformationType2__forUMTS_solsa_descr_;
extern UNIVERSAL_CHARSTRING ClassmarkInformationType2__forUMTS_solsa_default_coding;
extern const XERdescriptor_t ClassmarkInformationType2__forUMTS_ucs2_xer_;
extern const TTCN_OERdescriptor_t ClassmarkInformationType2__forUMTS_ucs2_oer_;
extern const TTCN_Typedescriptor_t ClassmarkInformationType2__forUMTS_ucs2_descr_;
extern UNIVERSAL_CHARSTRING ClassmarkInformationType2__forUMTS_ucs2_default_coding;
extern const XERdescriptor_t ClassmarkInformationType2__forUMTS_lcsva__cap_xer_;
extern const TTCN_OERdescriptor_t ClassmarkInformationType2__forUMTS_lcsva__cap_oer_;
extern const TTCN_Typedescriptor_t ClassmarkInformationType2__forUMTS_lcsva__cap_descr_;
extern UNIVERSAL_CHARSTRING ClassmarkInformationType2__forUMTS_lcsva__cap_default_coding;
extern const XERdescriptor_t ClassmarkInformationType2__forUMTS_spare5__7_xer_;
extern const TTCN_OERdescriptor_t ClassmarkInformationType2__forUMTS_spare5__7_oer_;
extern const TTCN_Typedescriptor_t ClassmarkInformationType2__forUMTS_spare5__7_descr_;
extern UNIVERSAL_CHARSTRING ClassmarkInformationType2__forUMTS_spare5__7_default_coding;
extern const XERdescriptor_t ClassmarkInformationType2__forUMTS_cm3_xer_;
extern const TTCN_OERdescriptor_t ClassmarkInformationType2__forUMTS_cm3_oer_;
extern const TTCN_Typedescriptor_t ClassmarkInformationType2__forUMTS_cm3_descr_;
extern UNIVERSAL_CHARSTRING ClassmarkInformationType2__forUMTS_cm3_default_coding;
extern const TTCN_RAWdescriptor_t ClassmarkInformationType2__forUMTS_raw_;
extern const TTCN_Typedescriptor_t ClassmarkInformationType2__forUMTS_descr_;
extern UNIVERSAL_CHARSTRING ClassmarkInformationType2__forUMTS_default_coding;
extern const XERdescriptor_t MobileStationClassmark3__TLV_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark3__TLV_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark3__TLV_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark3__TLV_elementIdentifier_default_coding;
extern const TTCN_RAWdescriptor_t MobileStationClassmark3__TLV_lengthIndicator_raw_;
extern const XERdescriptor_t MobileStationClassmark3__TLV_lengthIndicator_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark3__TLV_lengthIndicator_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark3__TLV_lengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark3__TLV_lengthIndicator_default_coding;
extern const XERdescriptor_t MobileStationClassmark3__TLV_valuePart_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark3__TLV_valuePart_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark3__TLV_valuePart_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark3__TLV_valuePart_default_coding;
extern const TTCN_RAWdescriptor_t MobileStationClassmark3__TLV_raw_;
extern const TTCN_Typedescriptor_t MobileStationClassmark3__TLV_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark3__TLV_default_coding;
extern const TTCN_RAWdescriptor_t MobileStationClassmark3__LV_lengthIndicator_raw_;
extern const XERdescriptor_t MobileStationClassmark3__LV_lengthIndicator_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark3__LV_lengthIndicator_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark3__LV_lengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark3__LV_lengthIndicator_default_coding;
extern const XERdescriptor_t MobileStationClassmark3__LV_valuePart_xer_;
extern const TTCN_OERdescriptor_t MobileStationClassmark3__LV_valuePart_oer_;
extern const TTCN_Typedescriptor_t MobileStationClassmark3__LV_valuePart_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark3__LV_valuePart_default_coding;
extern const TTCN_RAWdescriptor_t MobileStationClassmark3__LV_raw_;
extern const TTCN_Typedescriptor_t MobileStationClassmark3__LV_descr_;
extern UNIVERSAL_CHARSTRING MobileStationClassmark3__LV_default_coding;
extern const TTCN_RAWdescriptor_t UTRACSGCellsReporting_reportingofUTRANCSGCellsSupport_raw_;
extern const XERdescriptor_t UTRACSGCellsReporting_reportingofUTRANCSGCellsSupport_xer_;
extern const TTCN_OERdescriptor_t UTRACSGCellsReporting_reportingofUTRANCSGCellsSupport_oer_;
extern const TTCN_Typedescriptor_t UTRACSGCellsReporting_reportingofUTRANCSGCellsSupport_descr_;
extern UNIVERSAL_CHARSTRING UTRACSGCellsReporting_reportingofUTRANCSGCellsSupport_default_coding;
extern const TTCN_RAWdescriptor_t UTRACSGCellsReporting_raw_;
extern const TTCN_Typedescriptor_t UTRACSGCellsReporting_descr_;
extern UNIVERSAL_CHARSTRING UTRACSGCellsReporting_default_coding;
extern const TTCN_RAWdescriptor_t VAMOSLevel_vAMOSSupport_raw_;
extern const XERdescriptor_t VAMOSLevel_vAMOSSupport_xer_;
extern const TTCN_OERdescriptor_t VAMOSLevel_vAMOSSupport_oer_;
extern const TTCN_Typedescriptor_t VAMOSLevel_vAMOSSupport_descr_;
extern UNIVERSAL_CHARSTRING VAMOSLevel_vAMOSSupport_default_coding;
extern const TTCN_RAWdescriptor_t VAMOSLevel_raw_;
extern const TTCN_Typedescriptor_t VAMOSLevel_descr_;
extern UNIVERSAL_CHARSTRING VAMOSLevel_default_coding;
extern const TTCN_RAWdescriptor_t DescriptiveGroupOrBroadcastCallReference__V_binaryCodingOfGroupOrBroadcastCallReference_raw_;
extern const XERdescriptor_t DescriptiveGroupOrBroadcastCallReference__V_binaryCodingOfGroupOrBroadcastCallReference_xer_;
extern const TTCN_Typedescriptor_t DescriptiveGroupOrBroadcastCallReference__V_binaryCodingOfGroupOrBroadcastCallReference_descr_;
extern UNIVERSAL_CHARSTRING DescriptiveGroupOrBroadcastCallReference__V_binaryCodingOfGroupOrBroadcastCallReference_default_coding;
extern const TTCN_RAWdescriptor_t DescriptiveGroupOrBroadcastCallReference__V_sF_raw_;
extern const XERdescriptor_t DescriptiveGroupOrBroadcastCallReference__V_sF_xer_;
extern const TTCN_OERdescriptor_t DescriptiveGroupOrBroadcastCallReference__V_sF_oer_;
extern const TTCN_Typedescriptor_t DescriptiveGroupOrBroadcastCallReference__V_sF_descr_;
extern UNIVERSAL_CHARSTRING DescriptiveGroupOrBroadcastCallReference__V_sF_default_coding;
extern const TTCN_RAWdescriptor_t DescriptiveGroupOrBroadcastCallReference__V_aF_raw_;
extern const XERdescriptor_t DescriptiveGroupOrBroadcastCallReference__V_aF_xer_;
extern const TTCN_OERdescriptor_t DescriptiveGroupOrBroadcastCallReference__V_aF_oer_;
extern const TTCN_Typedescriptor_t DescriptiveGroupOrBroadcastCallReference__V_aF_descr_;
extern UNIVERSAL_CHARSTRING DescriptiveGroupOrBroadcastCallReference__V_aF_default_coding;
extern const TTCN_RAWdescriptor_t DescriptiveGroupOrBroadcastCallReference__V_callPriority_raw_;
extern const XERdescriptor_t DescriptiveGroupOrBroadcastCallReference__V_callPriority_xer_;
extern const TTCN_OERdescriptor_t DescriptiveGroupOrBroadcastCallReference__V_callPriority_oer_;
extern const TTCN_Typedescriptor_t DescriptiveGroupOrBroadcastCallReference__V_callPriority_descr_;
extern UNIVERSAL_CHARSTRING DescriptiveGroupOrBroadcastCallReference__V_callPriority_default_coding;
extern const TTCN_RAWdescriptor_t DescriptiveGroupOrBroadcastCallReference__V_cipheringInformation_raw_;
extern const XERdescriptor_t DescriptiveGroupOrBroadcastCallReference__V_cipheringInformation_xer_;
extern const TTCN_OERdescriptor_t DescriptiveGroupOrBroadcastCallReference__V_cipheringInformation_oer_;
extern const TTCN_Typedescriptor_t DescriptiveGroupOrBroadcastCallReference__V_cipheringInformation_descr_;
extern UNIVERSAL_CHARSTRING DescriptiveGroupOrBroadcastCallReference__V_cipheringInformation_default_coding;
extern const TTCN_RAWdescriptor_t DescriptiveGroupOrBroadcastCallReference__V_spare_raw_;
extern const XERdescriptor_t DescriptiveGroupOrBroadcastCallReference__V_spare_xer_;
extern const TTCN_OERdescriptor_t DescriptiveGroupOrBroadcastCallReference__V_spare_oer_;
extern const TTCN_Typedescriptor_t DescriptiveGroupOrBroadcastCallReference__V_spare_descr_;
extern UNIVERSAL_CHARSTRING DescriptiveGroupOrBroadcastCallReference__V_spare_default_coding;
extern const TTCN_RAWdescriptor_t DescriptiveGroupOrBroadcastCallReference__V_raw_;
extern const TTCN_Typedescriptor_t DescriptiveGroupOrBroadcastCallReference__V_descr_;
extern UNIVERSAL_CHARSTRING DescriptiveGroupOrBroadcastCallReference__V_default_coding;
extern const XERdescriptor_t groupCipherKeyNumber__TV_valuePart_xer_;
extern const TTCN_OERdescriptor_t groupCipherKeyNumber__TV_valuePart_oer_;
extern const TTCN_Typedescriptor_t groupCipherKeyNumber__TV_valuePart_descr_;
extern UNIVERSAL_CHARSTRING groupCipherKeyNumber__TV_valuePart_default_coding;
extern const XERdescriptor_t groupCipherKeyNumber__TV_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t groupCipherKeyNumber__TV_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t groupCipherKeyNumber__TV_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING groupCipherKeyNumber__TV_elementIdentifier_default_coding;
extern const TTCN_RAWdescriptor_t groupCipherKeyNumber__TV_raw_;
extern const TTCN_Typedescriptor_t groupCipherKeyNumber__TV_descr_;
extern UNIVERSAL_CHARSTRING groupCipherKeyNumber__TV_default_coding;
extern const XERdescriptor_t groupCipherKeyNumber__V_xer_;
extern const TTCN_OERdescriptor_t groupCipherKeyNumber__V_oer_;
extern const TTCN_Typedescriptor_t groupCipherKeyNumber__V_descr_;
extern UNIVERSAL_CHARSTRING groupCipherKeyNumber__V_default_coding;
extern const XERdescriptor_t PdAndSapi_protocolDiscriminator_xer_;
extern const TTCN_OERdescriptor_t PdAndSapi_protocolDiscriminator_oer_;
extern const TTCN_Typedescriptor_t PdAndSapi_protocolDiscriminator_descr_;
extern UNIVERSAL_CHARSTRING PdAndSapi_protocolDiscriminator_default_coding;
extern const XERdescriptor_t PdAndSapi_sapi_xer_;
extern const TTCN_OERdescriptor_t PdAndSapi_sapi_oer_;
extern const TTCN_Typedescriptor_t PdAndSapi_sapi_descr_;
extern UNIVERSAL_CHARSTRING PdAndSapi_sapi_default_coding;
extern const XERdescriptor_t PdAndSapi_spare2_xer_;
extern const TTCN_OERdescriptor_t PdAndSapi_spare2_oer_;
extern const TTCN_Typedescriptor_t PdAndSapi_spare2_descr_;
extern UNIVERSAL_CHARSTRING PdAndSapi_spare2_default_coding;
extern const TTCN_RAWdescriptor_t PdAndSapi_raw_;
extern const TTCN_Typedescriptor_t PdAndSapi_descr_;
extern UNIVERSAL_CHARSTRING PdAndSapi_default_coding;
extern const XERdescriptor_t PriorityLevel__ML3_callPriority_xer_;
extern const TTCN_OERdescriptor_t PriorityLevel__ML3_callPriority_oer_;
extern const TTCN_Typedescriptor_t PriorityLevel__ML3_callPriority_descr_;
extern UNIVERSAL_CHARSTRING PriorityLevel__ML3_callPriority_default_coding;
extern const XERdescriptor_t PriorityLevel__ML3_spare1__1_xer_;
extern const TTCN_OERdescriptor_t PriorityLevel__ML3_spare1__1_oer_;
extern const TTCN_Typedescriptor_t PriorityLevel__ML3_spare1__1_descr_;
extern UNIVERSAL_CHARSTRING PriorityLevel__ML3_spare1__1_default_coding;
extern const XERdescriptor_t PriorityLevel__ML3_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t PriorityLevel__ML3_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t PriorityLevel__ML3_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING PriorityLevel__ML3_elementIdentifier_default_coding;
extern const TTCN_RAWdescriptor_t PriorityLevel__ML3_raw_;
extern const TTCN_Typedescriptor_t PriorityLevel__ML3_descr_;
extern UNIVERSAL_CHARSTRING PriorityLevel__ML3_default_coding;
extern const XERdescriptor_t PLMNListTLV_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t PLMNListTLV_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t PLMNListTLV_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING PLMNListTLV_elementIdentifier_default_coding;
extern const XERdescriptor_t PLMNListTLV_spare1_xer_;
extern const TTCN_OERdescriptor_t PLMNListTLV_spare1_oer_;
extern const TTCN_Typedescriptor_t PLMNListTLV_spare1_descr_;
extern UNIVERSAL_CHARSTRING PLMNListTLV_spare1_default_coding;
extern const TTCN_RAWdescriptor_t PLMNListTLV_lengthIndicator_raw_;
extern const XERdescriptor_t PLMNListTLV_lengthIndicator_xer_;
extern const TTCN_OERdescriptor_t PLMNListTLV_lengthIndicator_oer_;
extern const TTCN_Typedescriptor_t PLMNListTLV_lengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING PLMNListTLV_lengthIndicator_default_coding;
extern const XERdescriptor_t PLMNListTLV_digits_xer_;
extern const TTCN_OERdescriptor_t PLMNListTLV_digits_oer_;
extern const TTCN_Typedescriptor_t PLMNListTLV_digits_descr_;
extern UNIVERSAL_CHARSTRING PLMNListTLV_digits_default_coding;
extern const TTCN_RAWdescriptor_t PLMNListTLV_raw_;
extern const TTCN_Typedescriptor_t PLMNListTLV_descr_;
extern UNIVERSAL_CHARSTRING PLMNListTLV_default_coding;
extern const XERdescriptor_t MS__NetworkFeatureSupportTV_extendedPeriodicTimers_xer_;
extern const TTCN_OERdescriptor_t MS__NetworkFeatureSupportTV_extendedPeriodicTimers_oer_;
extern const TTCN_Typedescriptor_t MS__NetworkFeatureSupportTV_extendedPeriodicTimers_descr_;
extern UNIVERSAL_CHARSTRING MS__NetworkFeatureSupportTV_extendedPeriodicTimers_default_coding;
extern const XERdescriptor_t MS__NetworkFeatureSupportTV_spare_xer_;
extern const TTCN_OERdescriptor_t MS__NetworkFeatureSupportTV_spare_oer_;
extern const TTCN_Typedescriptor_t MS__NetworkFeatureSupportTV_spare_descr_;
extern UNIVERSAL_CHARSTRING MS__NetworkFeatureSupportTV_spare_default_coding;
extern const XERdescriptor_t MS__NetworkFeatureSupportTV_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t MS__NetworkFeatureSupportTV_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t MS__NetworkFeatureSupportTV_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING MS__NetworkFeatureSupportTV_elementIdentifier_default_coding;
extern const TTCN_RAWdescriptor_t MS__NetworkFeatureSupportTV_raw_;
extern const TTCN_Typedescriptor_t MS__NetworkFeatureSupportTV_descr_;
extern UNIVERSAL_CHARSTRING MS__NetworkFeatureSupportTV_default_coding;
extern const XERdescriptor_t GPRSTimer3TLV_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t GPRSTimer3TLV_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t GPRSTimer3TLV_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING GPRSTimer3TLV_elementIdentifier_default_coding;
extern const TTCN_RAWdescriptor_t GPRSTimer3TLV_lengthIndicator_raw_;
extern const XERdescriptor_t GPRSTimer3TLV_lengthIndicator_xer_;
extern const TTCN_OERdescriptor_t GPRSTimer3TLV_lengthIndicator_oer_;
extern const TTCN_Typedescriptor_t GPRSTimer3TLV_lengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING GPRSTimer3TLV_lengthIndicator_default_coding;
extern const XERdescriptor_t GPRSTimer3V_timerValue_xer_;
extern const TTCN_OERdescriptor_t GPRSTimer3V_timerValue_oer_;
extern const TTCN_Typedescriptor_t GPRSTimer3V_timerValue_descr_;
extern UNIVERSAL_CHARSTRING GPRSTimer3V_timerValue_default_coding;
extern const XERdescriptor_t GPRSTimer3V_unit_xer_;
extern const TTCN_OERdescriptor_t GPRSTimer3V_unit_oer_;
extern const TTCN_Typedescriptor_t GPRSTimer3V_unit_descr_;
extern UNIVERSAL_CHARSTRING GPRSTimer3V_unit_default_coding;
extern const TTCN_RAWdescriptor_t GPRSTimer3V_raw_;
extern const TTCN_Typedescriptor_t GPRSTimer3V_descr_;
extern UNIVERSAL_CHARSTRING GPRSTimer3V_default_coding;
extern UNIVERSAL_CHARSTRING GPRSTimer3TLV_gprsTimer3V_default_coding;
extern const TTCN_RAWdescriptor_t GPRSTimer3TLV_raw_;
extern const TTCN_Typedescriptor_t GPRSTimer3TLV_descr_;
extern UNIVERSAL_CHARSTRING GPRSTimer3TLV_default_coding;
extern const XERdescriptor_t Diagnostics_data_xer_;
extern const TTCN_OERdescriptor_t Diagnostics_data_oer_;
extern const TTCN_Typedescriptor_t Diagnostics_data_descr_;
extern UNIVERSAL_CHARSTRING Diagnostics_data_default_coding;
extern const TTCN_RAWdescriptor_t Diagnostics_raw_;
extern const TTCN_Typedescriptor_t Diagnostics_descr_;
extern UNIVERSAL_CHARSTRING Diagnostics_default_coding;
extern const XERdescriptor_t ML3__Cause__oct3_location_xer_;
extern const TTCN_OERdescriptor_t ML3__Cause__oct3_location_oer_;
extern const TTCN_Typedescriptor_t ML3__Cause__oct3_location_descr_;
extern UNIVERSAL_CHARSTRING ML3__Cause__oct3_location_default_coding;
extern const XERdescriptor_t ML3__Cause__oct3_spare1__1_xer_;
extern const TTCN_OERdescriptor_t ML3__Cause__oct3_spare1__1_oer_;
extern const TTCN_Typedescriptor_t ML3__Cause__oct3_spare1__1_descr_;
extern UNIVERSAL_CHARSTRING ML3__Cause__oct3_spare1__1_default_coding;
extern const XERdescriptor_t ML3__Cause__oct3_codingStandard_xer_;
extern const TTCN_OERdescriptor_t ML3__Cause__oct3_codingStandard_oer_;
extern const TTCN_Typedescriptor_t ML3__Cause__oct3_codingStandard_descr_;
extern UNIVERSAL_CHARSTRING ML3__Cause__oct3_codingStandard_default_coding;
extern const XERdescriptor_t ML3__Cause__oct3_ext1_xer_;
extern const TTCN_OERdescriptor_t ML3__Cause__oct3_ext1_oer_;
extern const TTCN_Typedescriptor_t ML3__Cause__oct3_ext1_descr_;
extern UNIVERSAL_CHARSTRING ML3__Cause__oct3_ext1_default_coding;
extern const TTCN_RAWdescriptor_t ML3__Cause__oct3_raw_;
extern const TTCN_Typedescriptor_t ML3__Cause__oct3_descr_;
extern const XERdescriptor_t ML3__Cause__oct3_recommendation_xer_;
extern const TTCN_OERdescriptor_t ML3__Cause__oct3_recommendation_oer_;
extern const TTCN_Typedescriptor_t ML3__Cause__oct3_recommendation_descr_;
extern UNIVERSAL_CHARSTRING ML3__Cause__oct3_recommendation_default_coding;
extern const XERdescriptor_t ML3__Cause__oct3_ext2_xer_;
extern const TTCN_OERdescriptor_t ML3__Cause__oct3_ext2_oer_;
extern const TTCN_Typedescriptor_t ML3__Cause__oct3_ext2_descr_;
extern UNIVERSAL_CHARSTRING ML3__Cause__oct3_ext2_default_coding;
extern UNIVERSAL_CHARSTRING ML3__Cause__oct3_default_coding;
extern const XERdescriptor_t ML3__Cause__oct4_causeValue_xer_;
extern const TTCN_OERdescriptor_t ML3__Cause__oct4_causeValue_oer_;
extern const TTCN_Typedescriptor_t ML3__Cause__oct4_causeValue_descr_;
extern UNIVERSAL_CHARSTRING ML3__Cause__oct4_causeValue_default_coding;
extern const XERdescriptor_t ML3__Cause__oct4_ext3_xer_;
extern const TTCN_OERdescriptor_t ML3__Cause__oct4_ext3_oer_;
extern const TTCN_Typedescriptor_t ML3__Cause__oct4_ext3_descr_;
extern UNIVERSAL_CHARSTRING ML3__Cause__oct4_ext3_default_coding;
extern const TTCN_RAWdescriptor_t ML3__Cause__oct4_raw_;
extern const TTCN_Typedescriptor_t ML3__Cause__oct4_descr_;
extern UNIVERSAL_CHARSTRING ML3__Cause__oct4_default_coding;
extern const TTCN_RAWdescriptor_t ML3__Cause__LV_lengthIndicator_raw_;
extern const XERdescriptor_t ML3__Cause__LV_lengthIndicator_xer_;
extern const TTCN_OERdescriptor_t ML3__Cause__LV_lengthIndicator_oer_;
extern const TTCN_Typedescriptor_t ML3__Cause__LV_lengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING ML3__Cause__LV_lengthIndicator_default_coding;
extern UNIVERSAL_CHARSTRING ML3__Cause__LV_oct3_default_coding;
extern UNIVERSAL_CHARSTRING ML3__Cause__LV_oct4_default_coding;
extern const TTCN_RAWdescriptor_t ML3__Cause__LV_raw_;
extern const TTCN_Typedescriptor_t ML3__Cause__LV_descr_;
extern UNIVERSAL_CHARSTRING ML3__Cause__LV_diagnostics_default_coding;
extern UNIVERSAL_CHARSTRING ML3__Cause__LV_default_coding;
extern const XERdescriptor_t ML3__Cause__TLV_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t ML3__Cause__TLV_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t ML3__Cause__TLV_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING ML3__Cause__TLV_elementIdentifier_default_coding;
extern const TTCN_RAWdescriptor_t ML3__Cause__TLV_lengthIndicator_raw_;
extern const XERdescriptor_t ML3__Cause__TLV_lengthIndicator_xer_;
extern const TTCN_OERdescriptor_t ML3__Cause__TLV_lengthIndicator_oer_;
extern const TTCN_Typedescriptor_t ML3__Cause__TLV_lengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING ML3__Cause__TLV_lengthIndicator_default_coding;
extern UNIVERSAL_CHARSTRING ML3__Cause__TLV_oct3_default_coding;
extern UNIVERSAL_CHARSTRING ML3__Cause__TLV_oct4_default_coding;
extern const TTCN_RAWdescriptor_t ML3__Cause__TLV_raw_;
extern const TTCN_Typedescriptor_t ML3__Cause__TLV_descr_;
extern UNIVERSAL_CHARSTRING ML3__Cause__TLV_diagnostics_default_coding;
extern UNIVERSAL_CHARSTRING ML3__Cause__TLV_default_coding;
extern const XERdescriptor_t Facility__TLV_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t Facility__TLV_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t Facility__TLV_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING Facility__TLV_elementIdentifier_default_coding;
extern const TTCN_RAWdescriptor_t Facility__TLV_lengthIndicator_raw_;
extern const XERdescriptor_t Facility__TLV_lengthIndicator_xer_;
extern const TTCN_OERdescriptor_t Facility__TLV_lengthIndicator_oer_;
extern const TTCN_Typedescriptor_t Facility__TLV_lengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING Facility__TLV_lengthIndicator_default_coding;
extern const TTCN_RAWdescriptor_t Facility__TLV_raw_;
extern const TTCN_Typedescriptor_t Facility__TLV_descr_;
extern const XERdescriptor_t Facility__TLV_facilityInformation_xer_;
extern const TTCN_OERdescriptor_t Facility__TLV_facilityInformation_oer_;
extern const TTCN_Typedescriptor_t Facility__TLV_facilityInformation_descr_;
extern UNIVERSAL_CHARSTRING Facility__TLV_facilityInformation_default_coding;
extern UNIVERSAL_CHARSTRING Facility__TLV_default_coding;
extern const TTCN_RAWdescriptor_t Facility__LV_lengthIndicator_raw_;
extern const XERdescriptor_t Facility__LV_lengthIndicator_xer_;
extern const TTCN_OERdescriptor_t Facility__LV_lengthIndicator_oer_;
extern const TTCN_Typedescriptor_t Facility__LV_lengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING Facility__LV_lengthIndicator_default_coding;
extern const TTCN_RAWdescriptor_t Facility__LV_raw_;
extern const TTCN_Typedescriptor_t Facility__LV_descr_;
extern const XERdescriptor_t Facility__LV_facilityInformation_xer_;
extern const TTCN_OERdescriptor_t Facility__LV_facilityInformation_oer_;
extern const TTCN_Typedescriptor_t Facility__LV_facilityInformation_descr_;
extern UNIVERSAL_CHARSTRING Facility__LV_facilityInformation_default_coding;
extern UNIVERSAL_CHARSTRING Facility__LV_default_coding;
extern const XERdescriptor_t SS__VersionIndicator_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t SS__VersionIndicator_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t SS__VersionIndicator_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING SS__VersionIndicator_elementIdentifier_default_coding;
extern const TTCN_RAWdescriptor_t SS__VersionIndicator_lengthIndicator_raw_;
extern const XERdescriptor_t SS__VersionIndicator_lengthIndicator_xer_;
extern const TTCN_OERdescriptor_t SS__VersionIndicator_lengthIndicator_oer_;
extern const TTCN_Typedescriptor_t SS__VersionIndicator_lengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING SS__VersionIndicator_lengthIndicator_default_coding;
extern const TTCN_RAWdescriptor_t SS__VersionIndicator_raw_;
extern const TTCN_Typedescriptor_t SS__VersionIndicator_descr_;
extern const XERdescriptor_t SS__VersionIndicator_ss__VersionIndicatorContents_xer_;
extern const TTCN_OERdescriptor_t SS__VersionIndicator_ss__VersionIndicatorContents_oer_;
extern const TTCN_Typedescriptor_t SS__VersionIndicator_ss__VersionIndicatorContents_descr_;
extern UNIVERSAL_CHARSTRING SS__VersionIndicator_ss__VersionIndicatorContents_default_coding;
extern UNIVERSAL_CHARSTRING SS__VersionIndicator_default_coding;
extern const XERdescriptor_t codec_systemIdentification1_xer_;
extern const TTCN_OERdescriptor_t codec_systemIdentification1_oer_;
extern const TTCN_Typedescriptor_t codec_systemIdentification1_descr_;
extern UNIVERSAL_CHARSTRING codec_systemIdentification1_default_coding;
extern const XERdescriptor_t codec_lengthOfBitmap1_xer_;
extern const TTCN_OERdescriptor_t codec_lengthOfBitmap1_oer_;
extern const TTCN_Typedescriptor_t codec_lengthOfBitmap1_descr_;
extern UNIVERSAL_CHARSTRING codec_lengthOfBitmap1_default_coding;
extern const XERdescriptor_t codec_codecBitmap1__bits1to8_xer_;
extern const TTCN_OERdescriptor_t codec_codecBitmap1__bits1to8_oer_;
extern const TTCN_Typedescriptor_t codec_codecBitmap1__bits1to8_descr_;
extern UNIVERSAL_CHARSTRING codec_codecBitmap1__bits1to8_default_coding;
extern const XERdescriptor_t codec_codecBitmap1__bits9to16_xer_;
extern const TTCN_OERdescriptor_t codec_codecBitmap1__bits9to16_oer_;
extern const TTCN_Typedescriptor_t codec_codecBitmap1__bits9to16_descr_;
extern UNIVERSAL_CHARSTRING codec_codecBitmap1__bits9to16_default_coding;
extern const TTCN_RAWdescriptor_t codec_raw_;
extern const TTCN_Typedescriptor_t codec_descr_;
extern UNIVERSAL_CHARSTRING codec_default_coding;
extern const TTCN_RAWdescriptor_t CodecList__ML3_raw_;
extern const TTCN_Typedescriptor_t CodecList__ML3_descr_;
extern UNIVERSAL_CHARSTRING CodecList__ML3_0_default_coding;
extern UNIVERSAL_CHARSTRING CodecList__ML3_default_coding;
extern const XERdescriptor_t SupportedCodecList_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t SupportedCodecList_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t SupportedCodecList_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING SupportedCodecList_elementIdentifier_default_coding;
extern const TTCN_RAWdescriptor_t SupportedCodecList_lengthIndicator_raw_;
extern const XERdescriptor_t SupportedCodecList_lengthIndicator_xer_;
extern const TTCN_OERdescriptor_t SupportedCodecList_lengthIndicator_oer_;
extern const TTCN_Typedescriptor_t SupportedCodecList_lengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING SupportedCodecList_lengthIndicator_default_coding;
extern UNIVERSAL_CHARSTRING SupportedCodecList_codecList_default_coding;
extern const TTCN_RAWdescriptor_t SupportedCodecList_raw_;
extern const TTCN_Typedescriptor_t SupportedCodecList_descr_;
extern UNIVERSAL_CHARSTRING SupportedCodecList_default_coding;
extern const XERdescriptor_t DevicePropertiesTV_lowPriority_xer_;
extern const TTCN_OERdescriptor_t DevicePropertiesTV_lowPriority_oer_;
extern const TTCN_Typedescriptor_t DevicePropertiesTV_lowPriority_descr_;
extern UNIVERSAL_CHARSTRING DevicePropertiesTV_lowPriority_default_coding;
extern const XERdescriptor_t DevicePropertiesTV_spare_xer_;
extern const TTCN_OERdescriptor_t DevicePropertiesTV_spare_oer_;
extern const TTCN_Typedescriptor_t DevicePropertiesTV_spare_descr_;
extern UNIVERSAL_CHARSTRING DevicePropertiesTV_spare_default_coding;
extern const XERdescriptor_t DevicePropertiesTV_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t DevicePropertiesTV_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t DevicePropertiesTV_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING DevicePropertiesTV_elementIdentifier_default_coding;
extern const TTCN_RAWdescriptor_t DevicePropertiesTV_raw_;
extern const TTCN_Typedescriptor_t DevicePropertiesTV_descr_;
extern UNIVERSAL_CHARSTRING DevicePropertiesTV_default_coding;
extern const XERdescriptor_t P__TMSISignature2TLV_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t P__TMSISignature2TLV_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t P__TMSISignature2TLV_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING P__TMSISignature2TLV_elementIdentifier_default_coding;
extern const TTCN_RAWdescriptor_t P__TMSISignature2TLV_lengthIndicator_raw_;
extern const XERdescriptor_t P__TMSISignature2TLV_lengthIndicator_xer_;
extern const TTCN_OERdescriptor_t P__TMSISignature2TLV_lengthIndicator_oer_;
extern const TTCN_Typedescriptor_t P__TMSISignature2TLV_lengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING P__TMSISignature2TLV_lengthIndicator_default_coding;
extern const XERdescriptor_t P__TMSISignature2TLV_valueField_xer_;
extern const TTCN_OERdescriptor_t P__TMSISignature2TLV_valueField_oer_;
extern const TTCN_Typedescriptor_t P__TMSISignature2TLV_valueField_descr_;
extern UNIVERSAL_CHARSTRING P__TMSISignature2TLV_valueField_default_coding;
extern const TTCN_RAWdescriptor_t P__TMSISignature2TLV_raw_;
extern const TTCN_Typedescriptor_t P__TMSISignature2TLV_descr_;
extern UNIVERSAL_CHARSTRING P__TMSISignature2TLV_default_coding;
extern const XERdescriptor_t P__TMSI__TypeTV_pTMSI__TypeValue_xer_;
extern const TTCN_OERdescriptor_t P__TMSI__TypeTV_pTMSI__TypeValue_oer_;
extern const TTCN_Typedescriptor_t P__TMSI__TypeTV_pTMSI__TypeValue_descr_;
extern UNIVERSAL_CHARSTRING P__TMSI__TypeTV_pTMSI__TypeValue_default_coding;
extern const XERdescriptor_t P__TMSI__TypeTV_spare_xer_;
extern const TTCN_OERdescriptor_t P__TMSI__TypeTV_spare_oer_;
extern const TTCN_Typedescriptor_t P__TMSI__TypeTV_spare_descr_;
extern UNIVERSAL_CHARSTRING P__TMSI__TypeTV_spare_default_coding;
extern const XERdescriptor_t P__TMSI__TypeTV_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t P__TMSI__TypeTV_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t P__TMSI__TypeTV_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING P__TMSI__TypeTV_elementIdentifier_default_coding;
extern const TTCN_RAWdescriptor_t P__TMSI__TypeTV_raw_;
extern const TTCN_Typedescriptor_t P__TMSI__TypeTV_descr_;
extern UNIVERSAL_CHARSTRING P__TMSI__TypeTV_default_coding;
extern const XERdescriptor_t RoutingAreaIdentification2TLV_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t RoutingAreaIdentification2TLV_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t RoutingAreaIdentification2TLV_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING RoutingAreaIdentification2TLV_elementIdentifier_default_coding;
extern const TTCN_RAWdescriptor_t RoutingAreaIdentification2TLV_lengthIndicator_raw_;
extern const XERdescriptor_t RoutingAreaIdentification2TLV_lengthIndicator_xer_;
extern const TTCN_OERdescriptor_t RoutingAreaIdentification2TLV_lengthIndicator_oer_;
extern const TTCN_Typedescriptor_t RoutingAreaIdentification2TLV_lengthIndicator_descr_;
extern UNIVERSAL_CHARSTRING RoutingAreaIdentification2TLV_lengthIndicator_default_coding;
extern const XERdescriptor_t RoutingAreaIdentification2TLV_routingAreaIdentification2_xer_;
extern const TTCN_OERdescriptor_t RoutingAreaIdentification2TLV_routingAreaIdentification2_oer_;
extern const TTCN_Typedescriptor_t RoutingAreaIdentification2TLV_routingAreaIdentification2_descr_;
extern UNIVERSAL_CHARSTRING RoutingAreaIdentification2TLV_routingAreaIdentification2_default_coding;
extern const TTCN_RAWdescriptor_t RoutingAreaIdentification2TLV_raw_;
extern const TTCN_Typedescriptor_t RoutingAreaIdentification2TLV_descr_;
extern UNIVERSAL_CHARSTRING RoutingAreaIdentification2TLV_default_coding;
extern const XERdescriptor_t AdditionalUpdateParameterTV_cSMT_xer_;
extern const TTCN_OERdescriptor_t AdditionalUpdateParameterTV_cSMT_oer_;
extern const TTCN_Typedescriptor_t AdditionalUpdateParameterTV_cSMT_descr_;
extern UNIVERSAL_CHARSTRING AdditionalUpdateParameterTV_cSMT_default_coding;
extern const XERdescriptor_t AdditionalUpdateParameterTV_cSMO_xer_;
extern const TTCN_OERdescriptor_t AdditionalUpdateParameterTV_cSMO_oer_;
extern const TTCN_Typedescriptor_t AdditionalUpdateParameterTV_cSMO_descr_;
extern UNIVERSAL_CHARSTRING AdditionalUpdateParameterTV_cSMO_default_coding;
extern const XERdescriptor_t AdditionalUpdateParameterTV_spare2_xer_;
extern const TTCN_OERdescriptor_t AdditionalUpdateParameterTV_spare2_oer_;
extern const TTCN_Typedescriptor_t AdditionalUpdateParameterTV_spare2_descr_;
extern UNIVERSAL_CHARSTRING AdditionalUpdateParameterTV_spare2_default_coding;
extern const XERdescriptor_t AdditionalUpdateParameterTV_spare3_xer_;
extern const TTCN_OERdescriptor_t AdditionalUpdateParameterTV_spare3_oer_;
extern const TTCN_Typedescriptor_t AdditionalUpdateParameterTV_spare3_descr_;
extern UNIVERSAL_CHARSTRING AdditionalUpdateParameterTV_spare3_default_coding;
extern const XERdescriptor_t AdditionalUpdateParameterTV_elementIdentifier_xer_;
extern const TTCN_OERdescriptor_t AdditionalUpdateParameterTV_elementIdentifier_oer_;
extern const TTCN_Typedescriptor_t AdditionalUpdateParameterTV_elementIdentifier_descr_;
extern UNIVERSAL_CHARSTRING AdditionalUpdateParameterTV_elementIdentifier_default_coding;
extern const TTCN_RAWdescriptor_t AdditionalUpdateParameterTV_raw_;
extern const TTCN_Typedescriptor_t AdditionalUpdateParameterTV_descr_;
extern UNIVERSAL_CHARSTRING AdditionalUpdateParameterTV_default_coding;
extern const BITSTRING bs_1,
bs_7,
bs_3,
bs_2,
bs_4,
bs_5,
bs_0,
bs_8,
bs_6,
bs_10,
bs_9;
extern const OCTETSTRING os_0,
os_3,
os_4,
os_1,
os_2;
extern const unsigned char module_checksum[];
extern TTCN_Module module_object;
extern const RuntimeVersionChecker ver_checker;

} /* end of namespace */

#endif
