// 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__Types_HH
#define MobileL3__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 "MobileL3_CC_Types.hh"
#include "MobileL3_RRM_Types.hh"
#include "MobileL3_SMS_Types.hh"
#include "MobileL3_SS_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__Types_HH
#endif

namespace MobileL3__Types {

/* Forward declarations of classes */

class L3__TransactionId;
class L3__TransactionId_template;
class L3__TransactionId__not__extended;
class L3__TransactionId__not__extended_template;
class TiOrSkip__not__extended;
class TiOrSkip__not__extended_template;
class TiOrSkip;
class TiOrSkip_template;
class L3__Discr__SGSN__MS;
class L3__Discr__SGSN__MS_template;
class PDU__L3__SGSN__MS__unextended__ti;
class PDU__L3__SGSN__MS__unextended__ti_template;
class PDU__L3__SGSN__MS;
class PDU__L3__SGSN__MS_template;
class L3__Discr__MS__SGSN;
class L3__Discr__MS__SGSN_template;
class PDU__L3__MS__SGSN;
class PDU__L3__MS__SGSN_template;
class ML3__Discr__NW__MS;
class ML3__Discr__NW__MS_template;
class PDU__ML3__NW__MS;
class PDU__ML3__NW__MS_template;
class ML3__Discr__MS__NW;
class ML3__Discr__MS__NW_template;
class PDU__ML3__MS__NW;
class PDU__ML3__MS__NW_template;

} /* end of namespace */

#ifndef MobileL3__Types_HH
#define MobileL3__Types_HH

namespace MobileL3__Types {

/* Class definitions */

class L3__TransactionId : public Base_Type {
  BITSTRING field_tio;
  BITSTRING field_tiFlag;
  OPTIONAL< MobileL3__GMM__SM__Types::TI__Extension > field_tIExtension;
public:
  L3__TransactionId();
  L3__TransactionId(const BITSTRING& par_tio,
    const BITSTRING& par_tiFlag,
    const OPTIONAL< MobileL3__GMM__SM__Types::TI__Extension >& par_tIExtension);
  L3__TransactionId(const L3__TransactionId& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  L3__TransactionId& operator=(const L3__TransactionId& other_value);
  boolean operator==(const L3__TransactionId& other_value) const;
  inline boolean operator!=(const L3__TransactionId& 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& tio()
    {return field_tio;}
  inline const BITSTRING& tio() const
    {return field_tio;}
  inline BITSTRING& tiFlag()
    {return field_tiFlag;}
  inline const BITSTRING& tiFlag() const
    {return field_tiFlag;}
  inline OPTIONAL< MobileL3__GMM__SM__Types::TI__Extension >& tIExtension()
    {return field_tIExtension;}
  inline const OPTIONAL< MobileL3__GMM__SM__Types::TI__Extension >& tIExtension() const
    {return field_tIExtension;}
  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 L3__TransactionId_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
L3__TransactionId_template *list_value;
} value_list;
struct {
L3__TransactionId_template* precondition;
L3__TransactionId_template* implied_template;
} implication_;
dynmatch_struct<L3__TransactionId>* dyn_match;
};

void set_specific();
void copy_value(const L3__TransactionId& other_value);
void copy_template(const L3__TransactionId_template& other_value);

public:
L3__TransactionId_template();
L3__TransactionId_template(template_sel other_value);
L3__TransactionId_template(const L3__TransactionId& other_value);
L3__TransactionId_template(const OPTIONAL<L3__TransactionId>& other_value);
L3__TransactionId_template(L3__TransactionId_template* p_precondition, L3__TransactionId_template* p_implied_template);
L3__TransactionId_template(Dynamic_Match_Interface<L3__TransactionId>* p_dyn_match);
L3__TransactionId_template(const L3__TransactionId_template& other_value);
~L3__TransactionId_template();
L3__TransactionId_template& operator=(template_sel other_value);
L3__TransactionId_template& operator=(const L3__TransactionId& other_value);
L3__TransactionId_template& operator=(const OPTIONAL<L3__TransactionId>& other_value);
L3__TransactionId_template& operator=(const L3__TransactionId_template& other_value);
boolean match(const L3__TransactionId& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
L3__TransactionId valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
L3__TransactionId_template& list_item(unsigned int list_index) const;
BITSTRING_template& tio();
const BITSTRING_template& tio() const;
BITSTRING_template& tiFlag();
const BITSTRING_template& tiFlag() const;
MobileL3__GMM__SM__Types::TI__Extension_template& tIExtension();
const MobileL3__GMM__SM__Types::TI__Extension_template& tIExtension() const;
int size_of() const;
void log() const;
void log_match(const L3__TransactionId& 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 L3__TransactionId__not__extended : public Base_Type {
  BITSTRING field_tio;
  BITSTRING field_tiFlag;
public:
  L3__TransactionId__not__extended();
  L3__TransactionId__not__extended(const BITSTRING& par_tio,
    const BITSTRING& par_tiFlag);
  L3__TransactionId__not__extended(const L3__TransactionId__not__extended& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  L3__TransactionId__not__extended& operator=(const L3__TransactionId__not__extended& other_value);
  boolean operator==(const L3__TransactionId__not__extended& other_value) const;
  inline boolean operator!=(const L3__TransactionId__not__extended& 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& tio()
    {return field_tio;}
  inline const BITSTRING& tio() const
    {return field_tio;}
  inline BITSTRING& tiFlag()
    {return field_tiFlag;}
  inline const BITSTRING& tiFlag() const
    {return field_tiFlag;}
  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 L3__TransactionId__not__extended_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
L3__TransactionId__not__extended_template *list_value;
} value_list;
struct {
L3__TransactionId__not__extended_template* precondition;
L3__TransactionId__not__extended_template* implied_template;
} implication_;
dynmatch_struct<L3__TransactionId__not__extended>* dyn_match;
};

void set_specific();
void copy_value(const L3__TransactionId__not__extended& other_value);
void copy_template(const L3__TransactionId__not__extended_template& other_value);

public:
L3__TransactionId__not__extended_template();
L3__TransactionId__not__extended_template(template_sel other_value);
L3__TransactionId__not__extended_template(const L3__TransactionId__not__extended& other_value);
L3__TransactionId__not__extended_template(const OPTIONAL<L3__TransactionId__not__extended>& other_value);
L3__TransactionId__not__extended_template(L3__TransactionId__not__extended_template* p_precondition, L3__TransactionId__not__extended_template* p_implied_template);
L3__TransactionId__not__extended_template(Dynamic_Match_Interface<L3__TransactionId__not__extended>* p_dyn_match);
L3__TransactionId__not__extended_template(const L3__TransactionId__not__extended_template& other_value);
~L3__TransactionId__not__extended_template();
L3__TransactionId__not__extended_template& operator=(template_sel other_value);
L3__TransactionId__not__extended_template& operator=(const L3__TransactionId__not__extended& other_value);
L3__TransactionId__not__extended_template& operator=(const OPTIONAL<L3__TransactionId__not__extended>& other_value);
L3__TransactionId__not__extended_template& operator=(const L3__TransactionId__not__extended_template& other_value);
boolean match(const L3__TransactionId__not__extended& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
L3__TransactionId__not__extended valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
L3__TransactionId__not__extended_template& list_item(unsigned int list_index) const;
BITSTRING_template& tio();
const BITSTRING_template& tio() const;
BITSTRING_template& tiFlag();
const BITSTRING_template& tiFlag() const;
int size_of() const;
void log() const;
void log_match(const L3__TransactionId__not__extended& 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 TiOrSkip__not__extended : public Base_Type {
public:
enum union_selection_type { UNBOUND_VALUE = 0, ALT_skipIndicator = 1, ALT_transactionId = 2 };
private:
union_selection_type union_selection;
union {
BITSTRING *field_skipIndicator;
L3__TransactionId__not__extended *field_transactionId;
};
void copy_value(const TiOrSkip__not__extended& other_value);

public:
TiOrSkip__not__extended();
TiOrSkip__not__extended(const TiOrSkip__not__extended& other_value);
~TiOrSkip__not__extended();
TiOrSkip__not__extended& operator=(const TiOrSkip__not__extended& other_value);
boolean operator==(const TiOrSkip__not__extended& other_value) const;
inline boolean operator!=(const TiOrSkip__not__extended& other_value) const { return !(*this == other_value); }
BITSTRING& skipIndicator();
const BITSTRING& skipIndicator() const;
L3__TransactionId__not__extended& transactionId();
const L3__TransactionId__not__extended& transactionId() 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 TiOrSkip__not__extended_template : public Base_Template {
union {
struct {
TiOrSkip__not__extended::union_selection_type union_selection;
union {
BITSTRING_template *field_skipIndicator;
L3__TransactionId__not__extended_template *field_transactionId;
};
} single_value;
struct {
unsigned int n_values;
TiOrSkip__not__extended_template *list_value;
} value_list;
struct {
TiOrSkip__not__extended_template* precondition;
TiOrSkip__not__extended_template* implied_template;
} implication_;
dynmatch_struct<TiOrSkip__not__extended>* dyn_match;
};
void copy_value(const TiOrSkip__not__extended& other_value);

void copy_template(const TiOrSkip__not__extended_template& other_value);

public:
TiOrSkip__not__extended_template();
TiOrSkip__not__extended_template(template_sel other_value);
TiOrSkip__not__extended_template(const TiOrSkip__not__extended& other_value);
TiOrSkip__not__extended_template(const OPTIONAL<TiOrSkip__not__extended>& other_value);
TiOrSkip__not__extended_template(TiOrSkip__not__extended_template* p_precondition, TiOrSkip__not__extended_template* p_implied_template);
TiOrSkip__not__extended_template(Dynamic_Match_Interface<TiOrSkip__not__extended>* p_dyn_match);
TiOrSkip__not__extended_template(const TiOrSkip__not__extended_template& other_value);
~TiOrSkip__not__extended_template();
void clean_up();
TiOrSkip__not__extended_template& operator=(template_sel other_value);
TiOrSkip__not__extended_template& operator=(const TiOrSkip__not__extended& other_value);
TiOrSkip__not__extended_template& operator=(const OPTIONAL<TiOrSkip__not__extended>& other_value);
TiOrSkip__not__extended_template& operator=(const TiOrSkip__not__extended_template& other_value);
boolean match(const TiOrSkip__not__extended& other_value, boolean legacy = FALSE) const;
boolean is_value() const;TiOrSkip__not__extended valueof() const;
TiOrSkip__not__extended_template& list_item(unsigned int list_index) const;
void set_type(template_sel template_type, unsigned int list_length);
BITSTRING_template& skipIndicator();
const BITSTRING_template& skipIndicator() const;
L3__TransactionId__not__extended_template& transactionId();
const L3__TransactionId__not__extended_template& transactionId() const;
boolean ischosen(TiOrSkip__not__extended::union_selection_type checked_selection) const;
void log() const;
void log_match(const TiOrSkip__not__extended& 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 TiOrSkip : public Base_Type {
public:
enum union_selection_type { UNBOUND_VALUE = 0, ALT_skipIndicator = 1, ALT_transactionId = 2 };
private:
union_selection_type union_selection;
union {
BITSTRING *field_skipIndicator;
L3__TransactionId *field_transactionId;
};
void copy_value(const TiOrSkip& other_value);

public:
TiOrSkip();
TiOrSkip(const TiOrSkip& other_value);
~TiOrSkip();
TiOrSkip& operator=(const TiOrSkip& other_value);
boolean operator==(const TiOrSkip& other_value) const;
inline boolean operator!=(const TiOrSkip& other_value) const { return !(*this == other_value); }
BITSTRING& skipIndicator();
const BITSTRING& skipIndicator() const;
L3__TransactionId& transactionId();
const L3__TransactionId& transactionId() 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 TiOrSkip_template : public Base_Template {
union {
struct {
TiOrSkip::union_selection_type union_selection;
union {
BITSTRING_template *field_skipIndicator;
L3__TransactionId_template *field_transactionId;
};
} single_value;
struct {
unsigned int n_values;
TiOrSkip_template *list_value;
} value_list;
struct {
TiOrSkip_template* precondition;
TiOrSkip_template* implied_template;
} implication_;
dynmatch_struct<TiOrSkip>* dyn_match;
};
void copy_value(const TiOrSkip& other_value);

void copy_template(const TiOrSkip_template& other_value);

public:
TiOrSkip_template();
TiOrSkip_template(template_sel other_value);
TiOrSkip_template(const TiOrSkip& other_value);
TiOrSkip_template(const OPTIONAL<TiOrSkip>& other_value);
TiOrSkip_template(TiOrSkip_template* p_precondition, TiOrSkip_template* p_implied_template);
TiOrSkip_template(Dynamic_Match_Interface<TiOrSkip>* p_dyn_match);
TiOrSkip_template(const TiOrSkip_template& other_value);
~TiOrSkip_template();
void clean_up();
TiOrSkip_template& operator=(template_sel other_value);
TiOrSkip_template& operator=(const TiOrSkip& other_value);
TiOrSkip_template& operator=(const OPTIONAL<TiOrSkip>& other_value);
TiOrSkip_template& operator=(const TiOrSkip_template& other_value);
boolean match(const TiOrSkip& other_value, boolean legacy = FALSE) const;
boolean is_value() const;TiOrSkip valueof() const;
TiOrSkip_template& list_item(unsigned int list_index) const;
void set_type(template_sel template_type, unsigned int list_length);
BITSTRING_template& skipIndicator();
const BITSTRING_template& skipIndicator() const;
L3__TransactionId_template& transactionId();
const L3__TransactionId_template& transactionId() const;
boolean ischosen(TiOrSkip::union_selection_type checked_selection) const;
void log() const;
void log_match(const TiOrSkip& 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 L3__Discr__SGSN__MS : public Base_Type {
public:
enum union_selection_type { UNBOUND_VALUE = 0, ALT_gcc = 1, ALT_bcc = 2, ALT_cc = 3, ALT_gttp = 4, ALT_mm = 5, ALT_rrm = 6, ALT_gprs__mm = 7, ALT_sms = 8, ALT_gprs__sm = 9, ALT_ss = 10, ALT_loc = 11, ALT_reserved = 12 };
private:
union_selection_type union_selection;
union {
OCTETSTRING *field_gcc;
OCTETSTRING *field_bcc;
OCTETSTRING *field_cc;
OCTETSTRING *field_gttp;
OCTETSTRING *field_mm;
OCTETSTRING *field_rrm;
MobileL3__GMM__SM__Types::L3__GMM__SGSN__MS *field_gprs__mm;
OCTETSTRING *field_sms;
MobileL3__GMM__SM__Types::L3__GSM__SGSN__MS *field_gprs__sm;
OCTETSTRING *field_ss;
OCTETSTRING *field_loc;
OCTETSTRING *field_reserved;
};
void copy_value(const L3__Discr__SGSN__MS& other_value);

public:
L3__Discr__SGSN__MS();
L3__Discr__SGSN__MS(const L3__Discr__SGSN__MS& other_value);
~L3__Discr__SGSN__MS();
L3__Discr__SGSN__MS& operator=(const L3__Discr__SGSN__MS& other_value);
boolean operator==(const L3__Discr__SGSN__MS& other_value) const;
inline boolean operator!=(const L3__Discr__SGSN__MS& other_value) const { return !(*this == other_value); }
OCTETSTRING& gcc();
const OCTETSTRING& gcc() const;
OCTETSTRING& bcc();
const OCTETSTRING& bcc() const;
OCTETSTRING& cc();
const OCTETSTRING& cc() const;
OCTETSTRING& gttp();
const OCTETSTRING& gttp() const;
OCTETSTRING& mm();
const OCTETSTRING& mm() const;
OCTETSTRING& rrm();
const OCTETSTRING& rrm() const;
MobileL3__GMM__SM__Types::L3__GMM__SGSN__MS& gprs__mm();
const MobileL3__GMM__SM__Types::L3__GMM__SGSN__MS& gprs__mm() const;
OCTETSTRING& sms();
const OCTETSTRING& sms() const;
MobileL3__GMM__SM__Types::L3__GSM__SGSN__MS& gprs__sm();
const MobileL3__GMM__SM__Types::L3__GSM__SGSN__MS& gprs__sm() const;
OCTETSTRING& ss();
const OCTETSTRING& ss() const;
OCTETSTRING& loc();
const OCTETSTRING& loc() const;
OCTETSTRING& reserved();
const OCTETSTRING& reserved() 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 L3__Discr__SGSN__MS_template : public Base_Template {
union {
struct {
L3__Discr__SGSN__MS::union_selection_type union_selection;
union {
OCTETSTRING_template *field_gcc;
OCTETSTRING_template *field_bcc;
OCTETSTRING_template *field_cc;
OCTETSTRING_template *field_gttp;
OCTETSTRING_template *field_mm;
OCTETSTRING_template *field_rrm;
MobileL3__GMM__SM__Types::L3__GMM__SGSN__MS_template *field_gprs__mm;
OCTETSTRING_template *field_sms;
MobileL3__GMM__SM__Types::L3__GSM__SGSN__MS_template *field_gprs__sm;
OCTETSTRING_template *field_ss;
OCTETSTRING_template *field_loc;
OCTETSTRING_template *field_reserved;
};
} single_value;
struct {
unsigned int n_values;
L3__Discr__SGSN__MS_template *list_value;
} value_list;
struct {
L3__Discr__SGSN__MS_template* precondition;
L3__Discr__SGSN__MS_template* implied_template;
} implication_;
dynmatch_struct<L3__Discr__SGSN__MS>* dyn_match;
};
void copy_value(const L3__Discr__SGSN__MS& other_value);

void copy_template(const L3__Discr__SGSN__MS_template& other_value);

public:
L3__Discr__SGSN__MS_template();
L3__Discr__SGSN__MS_template(template_sel other_value);
L3__Discr__SGSN__MS_template(const L3__Discr__SGSN__MS& other_value);
L3__Discr__SGSN__MS_template(const OPTIONAL<L3__Discr__SGSN__MS>& other_value);
L3__Discr__SGSN__MS_template(L3__Discr__SGSN__MS_template* p_precondition, L3__Discr__SGSN__MS_template* p_implied_template);
L3__Discr__SGSN__MS_template(Dynamic_Match_Interface<L3__Discr__SGSN__MS>* p_dyn_match);
L3__Discr__SGSN__MS_template(const L3__Discr__SGSN__MS_template& other_value);
~L3__Discr__SGSN__MS_template();
void clean_up();
L3__Discr__SGSN__MS_template& operator=(template_sel other_value);
L3__Discr__SGSN__MS_template& operator=(const L3__Discr__SGSN__MS& other_value);
L3__Discr__SGSN__MS_template& operator=(const OPTIONAL<L3__Discr__SGSN__MS>& other_value);
L3__Discr__SGSN__MS_template& operator=(const L3__Discr__SGSN__MS_template& other_value);
boolean match(const L3__Discr__SGSN__MS& other_value, boolean legacy = FALSE) const;
boolean is_value() const;L3__Discr__SGSN__MS valueof() const;
L3__Discr__SGSN__MS_template& list_item(unsigned int list_index) const;
void set_type(template_sel template_type, unsigned int list_length);
OCTETSTRING_template& gcc();
const OCTETSTRING_template& gcc() const;
OCTETSTRING_template& bcc();
const OCTETSTRING_template& bcc() const;
OCTETSTRING_template& cc();
const OCTETSTRING_template& cc() const;
OCTETSTRING_template& gttp();
const OCTETSTRING_template& gttp() const;
OCTETSTRING_template& mm();
const OCTETSTRING_template& mm() const;
OCTETSTRING_template& rrm();
const OCTETSTRING_template& rrm() const;
MobileL3__GMM__SM__Types::L3__GMM__SGSN__MS_template& gprs__mm();
const MobileL3__GMM__SM__Types::L3__GMM__SGSN__MS_template& gprs__mm() const;
OCTETSTRING_template& sms();
const OCTETSTRING_template& sms() const;
MobileL3__GMM__SM__Types::L3__GSM__SGSN__MS_template& gprs__sm();
const MobileL3__GMM__SM__Types::L3__GSM__SGSN__MS_template& gprs__sm() const;
OCTETSTRING_template& ss();
const OCTETSTRING_template& ss() const;
OCTETSTRING_template& loc();
const OCTETSTRING_template& loc() const;
OCTETSTRING_template& reserved();
const OCTETSTRING_template& reserved() const;
boolean ischosen(L3__Discr__SGSN__MS::union_selection_type checked_selection) const;
void log() const;
void log_match(const L3__Discr__SGSN__MS& 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 PDU__L3__SGSN__MS__unextended__ti : public Base_Type {
  BITSTRING field_discriminator;
  TiOrSkip__not__extended field_tiOrSkip;
  L3__Discr__SGSN__MS field_msgs;
public:
  PDU__L3__SGSN__MS__unextended__ti();
  PDU__L3__SGSN__MS__unextended__ti(const BITSTRING& par_discriminator,
    const TiOrSkip__not__extended& par_tiOrSkip,
    const L3__Discr__SGSN__MS& par_msgs);
  PDU__L3__SGSN__MS__unextended__ti(const PDU__L3__SGSN__MS__unextended__ti& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  PDU__L3__SGSN__MS__unextended__ti& operator=(const PDU__L3__SGSN__MS__unextended__ti& other_value);
  boolean operator==(const PDU__L3__SGSN__MS__unextended__ti& other_value) const;
  inline boolean operator!=(const PDU__L3__SGSN__MS__unextended__ti& 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& discriminator()
    {return field_discriminator;}
  inline const BITSTRING& discriminator() const
    {return field_discriminator;}
  inline TiOrSkip__not__extended& tiOrSkip()
    {return field_tiOrSkip;}
  inline const TiOrSkip__not__extended& tiOrSkip() const
    {return field_tiOrSkip;}
  inline L3__Discr__SGSN__MS& msgs()
    {return field_msgs;}
  inline const L3__Discr__SGSN__MS& msgs() const
    {return field_msgs;}
  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 PDU__L3__SGSN__MS__unextended__ti_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
PDU__L3__SGSN__MS__unextended__ti_template *list_value;
} value_list;
struct {
PDU__L3__SGSN__MS__unextended__ti_template* precondition;
PDU__L3__SGSN__MS__unextended__ti_template* implied_template;
} implication_;
dynmatch_struct<PDU__L3__SGSN__MS__unextended__ti>* dyn_match;
};

void set_specific();
void copy_value(const PDU__L3__SGSN__MS__unextended__ti& other_value);
void copy_template(const PDU__L3__SGSN__MS__unextended__ti_template& other_value);

public:
PDU__L3__SGSN__MS__unextended__ti_template();
PDU__L3__SGSN__MS__unextended__ti_template(template_sel other_value);
PDU__L3__SGSN__MS__unextended__ti_template(const PDU__L3__SGSN__MS__unextended__ti& other_value);
PDU__L3__SGSN__MS__unextended__ti_template(const OPTIONAL<PDU__L3__SGSN__MS__unextended__ti>& other_value);
PDU__L3__SGSN__MS__unextended__ti_template(PDU__L3__SGSN__MS__unextended__ti_template* p_precondition, PDU__L3__SGSN__MS__unextended__ti_template* p_implied_template);
PDU__L3__SGSN__MS__unextended__ti_template(Dynamic_Match_Interface<PDU__L3__SGSN__MS__unextended__ti>* p_dyn_match);
PDU__L3__SGSN__MS__unextended__ti_template(const PDU__L3__SGSN__MS__unextended__ti_template& other_value);
~PDU__L3__SGSN__MS__unextended__ti_template();
PDU__L3__SGSN__MS__unextended__ti_template& operator=(template_sel other_value);
PDU__L3__SGSN__MS__unextended__ti_template& operator=(const PDU__L3__SGSN__MS__unextended__ti& other_value);
PDU__L3__SGSN__MS__unextended__ti_template& operator=(const OPTIONAL<PDU__L3__SGSN__MS__unextended__ti>& other_value);
PDU__L3__SGSN__MS__unextended__ti_template& operator=(const PDU__L3__SGSN__MS__unextended__ti_template& other_value);
boolean match(const PDU__L3__SGSN__MS__unextended__ti& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
PDU__L3__SGSN__MS__unextended__ti valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
PDU__L3__SGSN__MS__unextended__ti_template& list_item(unsigned int list_index) const;
BITSTRING_template& discriminator();
const BITSTRING_template& discriminator() const;
TiOrSkip__not__extended_template& tiOrSkip();
const TiOrSkip__not__extended_template& tiOrSkip() const;
L3__Discr__SGSN__MS_template& msgs();
const L3__Discr__SGSN__MS_template& msgs() const;
int size_of() const;
void log() const;
void log_match(const PDU__L3__SGSN__MS__unextended__ti& 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 PDU__L3__SGSN__MS : public Base_Type {
  BITSTRING field_discriminator;
  TiOrSkip field_tiOrSkip;
  L3__Discr__SGSN__MS field_msgs;
public:
  PDU__L3__SGSN__MS();
  PDU__L3__SGSN__MS(const BITSTRING& par_discriminator,
    const TiOrSkip& par_tiOrSkip,
    const L3__Discr__SGSN__MS& par_msgs);
  PDU__L3__SGSN__MS(const PDU__L3__SGSN__MS& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  PDU__L3__SGSN__MS& operator=(const PDU__L3__SGSN__MS& other_value);
  boolean operator==(const PDU__L3__SGSN__MS& other_value) const;
  inline boolean operator!=(const PDU__L3__SGSN__MS& 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& discriminator()
    {return field_discriminator;}
  inline const BITSTRING& discriminator() const
    {return field_discriminator;}
  inline TiOrSkip& tiOrSkip()
    {return field_tiOrSkip;}
  inline const TiOrSkip& tiOrSkip() const
    {return field_tiOrSkip;}
  inline L3__Discr__SGSN__MS& msgs()
    {return field_msgs;}
  inline const L3__Discr__SGSN__MS& msgs() const
    {return field_msgs;}
  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 PDU__L3__SGSN__MS_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
PDU__L3__SGSN__MS_template *list_value;
} value_list;
struct {
PDU__L3__SGSN__MS_template* precondition;
PDU__L3__SGSN__MS_template* implied_template;
} implication_;
dynmatch_struct<PDU__L3__SGSN__MS>* dyn_match;
};

void set_specific();
void copy_value(const PDU__L3__SGSN__MS& other_value);
void copy_template(const PDU__L3__SGSN__MS_template& other_value);

public:
PDU__L3__SGSN__MS_template();
PDU__L3__SGSN__MS_template(template_sel other_value);
PDU__L3__SGSN__MS_template(const PDU__L3__SGSN__MS& other_value);
PDU__L3__SGSN__MS_template(const OPTIONAL<PDU__L3__SGSN__MS>& other_value);
PDU__L3__SGSN__MS_template(PDU__L3__SGSN__MS_template* p_precondition, PDU__L3__SGSN__MS_template* p_implied_template);
PDU__L3__SGSN__MS_template(Dynamic_Match_Interface<PDU__L3__SGSN__MS>* p_dyn_match);
PDU__L3__SGSN__MS_template(const PDU__L3__SGSN__MS_template& other_value);
~PDU__L3__SGSN__MS_template();
PDU__L3__SGSN__MS_template& operator=(template_sel other_value);
PDU__L3__SGSN__MS_template& operator=(const PDU__L3__SGSN__MS& other_value);
PDU__L3__SGSN__MS_template& operator=(const OPTIONAL<PDU__L3__SGSN__MS>& other_value);
PDU__L3__SGSN__MS_template& operator=(const PDU__L3__SGSN__MS_template& other_value);
boolean match(const PDU__L3__SGSN__MS& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
PDU__L3__SGSN__MS valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
PDU__L3__SGSN__MS_template& list_item(unsigned int list_index) const;
BITSTRING_template& discriminator();
const BITSTRING_template& discriminator() const;
TiOrSkip_template& tiOrSkip();
const TiOrSkip_template& tiOrSkip() const;
L3__Discr__SGSN__MS_template& msgs();
const L3__Discr__SGSN__MS_template& msgs() const;
int size_of() const;
void log() const;
void log_match(const PDU__L3__SGSN__MS& 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 L3__Discr__MS__SGSN : public Base_Type {
public:
enum union_selection_type { UNBOUND_VALUE = 0, ALT_gcc = 1, ALT_bcc = 2, ALT_cc = 3, ALT_gttp = 4, ALT_mm = 5, ALT_rrm = 6, ALT_gprs__mm = 7, ALT_sms = 8, ALT_gprs__sm = 9, ALT_ss = 10, ALT_loc = 11, ALT_reserved = 12 };
private:
union_selection_type union_selection;
union {
OCTETSTRING *field_gcc;
OCTETSTRING *field_bcc;
OCTETSTRING *field_cc;
OCTETSTRING *field_gttp;
OCTETSTRING *field_mm;
OCTETSTRING *field_rrm;
MobileL3__GMM__SM__Types::L3__GMM__MS__SGSN *field_gprs__mm;
OCTETSTRING *field_sms;
MobileL3__GMM__SM__Types::L3__GSM__MS__SGSN *field_gprs__sm;
OCTETSTRING *field_ss;
OCTETSTRING *field_loc;
OCTETSTRING *field_reserved;
};
void copy_value(const L3__Discr__MS__SGSN& other_value);

public:
L3__Discr__MS__SGSN();
L3__Discr__MS__SGSN(const L3__Discr__MS__SGSN& other_value);
~L3__Discr__MS__SGSN();
L3__Discr__MS__SGSN& operator=(const L3__Discr__MS__SGSN& other_value);
boolean operator==(const L3__Discr__MS__SGSN& other_value) const;
inline boolean operator!=(const L3__Discr__MS__SGSN& other_value) const { return !(*this == other_value); }
OCTETSTRING& gcc();
const OCTETSTRING& gcc() const;
OCTETSTRING& bcc();
const OCTETSTRING& bcc() const;
OCTETSTRING& cc();
const OCTETSTRING& cc() const;
OCTETSTRING& gttp();
const OCTETSTRING& gttp() const;
OCTETSTRING& mm();
const OCTETSTRING& mm() const;
OCTETSTRING& rrm();
const OCTETSTRING& rrm() const;
MobileL3__GMM__SM__Types::L3__GMM__MS__SGSN& gprs__mm();
const MobileL3__GMM__SM__Types::L3__GMM__MS__SGSN& gprs__mm() const;
OCTETSTRING& sms();
const OCTETSTRING& sms() const;
MobileL3__GMM__SM__Types::L3__GSM__MS__SGSN& gprs__sm();
const MobileL3__GMM__SM__Types::L3__GSM__MS__SGSN& gprs__sm() const;
OCTETSTRING& ss();
const OCTETSTRING& ss() const;
OCTETSTRING& loc();
const OCTETSTRING& loc() const;
OCTETSTRING& reserved();
const OCTETSTRING& reserved() 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 L3__Discr__MS__SGSN_template : public Base_Template {
union {
struct {
L3__Discr__MS__SGSN::union_selection_type union_selection;
union {
OCTETSTRING_template *field_gcc;
OCTETSTRING_template *field_bcc;
OCTETSTRING_template *field_cc;
OCTETSTRING_template *field_gttp;
OCTETSTRING_template *field_mm;
OCTETSTRING_template *field_rrm;
MobileL3__GMM__SM__Types::L3__GMM__MS__SGSN_template *field_gprs__mm;
OCTETSTRING_template *field_sms;
MobileL3__GMM__SM__Types::L3__GSM__MS__SGSN_template *field_gprs__sm;
OCTETSTRING_template *field_ss;
OCTETSTRING_template *field_loc;
OCTETSTRING_template *field_reserved;
};
} single_value;
struct {
unsigned int n_values;
L3__Discr__MS__SGSN_template *list_value;
} value_list;
struct {
L3__Discr__MS__SGSN_template* precondition;
L3__Discr__MS__SGSN_template* implied_template;
} implication_;
dynmatch_struct<L3__Discr__MS__SGSN>* dyn_match;
};
void copy_value(const L3__Discr__MS__SGSN& other_value);

void copy_template(const L3__Discr__MS__SGSN_template& other_value);

public:
L3__Discr__MS__SGSN_template();
L3__Discr__MS__SGSN_template(template_sel other_value);
L3__Discr__MS__SGSN_template(const L3__Discr__MS__SGSN& other_value);
L3__Discr__MS__SGSN_template(const OPTIONAL<L3__Discr__MS__SGSN>& other_value);
L3__Discr__MS__SGSN_template(L3__Discr__MS__SGSN_template* p_precondition, L3__Discr__MS__SGSN_template* p_implied_template);
L3__Discr__MS__SGSN_template(Dynamic_Match_Interface<L3__Discr__MS__SGSN>* p_dyn_match);
L3__Discr__MS__SGSN_template(const L3__Discr__MS__SGSN_template& other_value);
~L3__Discr__MS__SGSN_template();
void clean_up();
L3__Discr__MS__SGSN_template& operator=(template_sel other_value);
L3__Discr__MS__SGSN_template& operator=(const L3__Discr__MS__SGSN& other_value);
L3__Discr__MS__SGSN_template& operator=(const OPTIONAL<L3__Discr__MS__SGSN>& other_value);
L3__Discr__MS__SGSN_template& operator=(const L3__Discr__MS__SGSN_template& other_value);
boolean match(const L3__Discr__MS__SGSN& other_value, boolean legacy = FALSE) const;
boolean is_value() const;L3__Discr__MS__SGSN valueof() const;
L3__Discr__MS__SGSN_template& list_item(unsigned int list_index) const;
void set_type(template_sel template_type, unsigned int list_length);
OCTETSTRING_template& gcc();
const OCTETSTRING_template& gcc() const;
OCTETSTRING_template& bcc();
const OCTETSTRING_template& bcc() const;
OCTETSTRING_template& cc();
const OCTETSTRING_template& cc() const;
OCTETSTRING_template& gttp();
const OCTETSTRING_template& gttp() const;
OCTETSTRING_template& mm();
const OCTETSTRING_template& mm() const;
OCTETSTRING_template& rrm();
const OCTETSTRING_template& rrm() const;
MobileL3__GMM__SM__Types::L3__GMM__MS__SGSN_template& gprs__mm();
const MobileL3__GMM__SM__Types::L3__GMM__MS__SGSN_template& gprs__mm() const;
OCTETSTRING_template& sms();
const OCTETSTRING_template& sms() const;
MobileL3__GMM__SM__Types::L3__GSM__MS__SGSN_template& gprs__sm();
const MobileL3__GMM__SM__Types::L3__GSM__MS__SGSN_template& gprs__sm() const;
OCTETSTRING_template& ss();
const OCTETSTRING_template& ss() const;
OCTETSTRING_template& loc();
const OCTETSTRING_template& loc() const;
OCTETSTRING_template& reserved();
const OCTETSTRING_template& reserved() const;
boolean ischosen(L3__Discr__MS__SGSN::union_selection_type checked_selection) const;
void log() const;
void log_match(const L3__Discr__MS__SGSN& 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 PDU__L3__MS__SGSN : public Base_Type {
  BITSTRING field_discriminator;
  TiOrSkip field_tiOrSkip;
  L3__Discr__MS__SGSN field_msgs;
public:
  PDU__L3__MS__SGSN();
  PDU__L3__MS__SGSN(const BITSTRING& par_discriminator,
    const TiOrSkip& par_tiOrSkip,
    const L3__Discr__MS__SGSN& par_msgs);
  PDU__L3__MS__SGSN(const PDU__L3__MS__SGSN& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  PDU__L3__MS__SGSN& operator=(const PDU__L3__MS__SGSN& other_value);
  boolean operator==(const PDU__L3__MS__SGSN& other_value) const;
  inline boolean operator!=(const PDU__L3__MS__SGSN& 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& discriminator()
    {return field_discriminator;}
  inline const BITSTRING& discriminator() const
    {return field_discriminator;}
  inline TiOrSkip& tiOrSkip()
    {return field_tiOrSkip;}
  inline const TiOrSkip& tiOrSkip() const
    {return field_tiOrSkip;}
  inline L3__Discr__MS__SGSN& msgs()
    {return field_msgs;}
  inline const L3__Discr__MS__SGSN& msgs() const
    {return field_msgs;}
  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 PDU__L3__MS__SGSN_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
PDU__L3__MS__SGSN_template *list_value;
} value_list;
struct {
PDU__L3__MS__SGSN_template* precondition;
PDU__L3__MS__SGSN_template* implied_template;
} implication_;
dynmatch_struct<PDU__L3__MS__SGSN>* dyn_match;
};

void set_specific();
void copy_value(const PDU__L3__MS__SGSN& other_value);
void copy_template(const PDU__L3__MS__SGSN_template& other_value);

public:
PDU__L3__MS__SGSN_template();
PDU__L3__MS__SGSN_template(template_sel other_value);
PDU__L3__MS__SGSN_template(const PDU__L3__MS__SGSN& other_value);
PDU__L3__MS__SGSN_template(const OPTIONAL<PDU__L3__MS__SGSN>& other_value);
PDU__L3__MS__SGSN_template(PDU__L3__MS__SGSN_template* p_precondition, PDU__L3__MS__SGSN_template* p_implied_template);
PDU__L3__MS__SGSN_template(Dynamic_Match_Interface<PDU__L3__MS__SGSN>* p_dyn_match);
PDU__L3__MS__SGSN_template(const PDU__L3__MS__SGSN_template& other_value);
~PDU__L3__MS__SGSN_template();
PDU__L3__MS__SGSN_template& operator=(template_sel other_value);
PDU__L3__MS__SGSN_template& operator=(const PDU__L3__MS__SGSN& other_value);
PDU__L3__MS__SGSN_template& operator=(const OPTIONAL<PDU__L3__MS__SGSN>& other_value);
PDU__L3__MS__SGSN_template& operator=(const PDU__L3__MS__SGSN_template& other_value);
boolean match(const PDU__L3__MS__SGSN& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
PDU__L3__MS__SGSN valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
PDU__L3__MS__SGSN_template& list_item(unsigned int list_index) const;
BITSTRING_template& discriminator();
const BITSTRING_template& discriminator() const;
TiOrSkip_template& tiOrSkip();
const TiOrSkip_template& tiOrSkip() const;
L3__Discr__MS__SGSN_template& msgs();
const L3__Discr__MS__SGSN_template& msgs() const;
int size_of() const;
void log() const;
void log_match(const PDU__L3__MS__SGSN& 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__Discr__NW__MS : public Base_Type {
public:
enum union_selection_type { UNBOUND_VALUE = 0, ALT_gcc = 1, ALT_bcc = 2, ALT_cc = 3, ALT_gttp = 4, ALT_mm = 5, ALT_rrm = 6, ALT_gprs__mm = 7, ALT_sms = 8, ALT_gprs__sm = 9, ALT_ss = 10, ALT_loc = 11, ALT_reserved = 12 };
private:
union_selection_type union_selection;
union {
OCTETSTRING *field_gcc;
OCTETSTRING *field_bcc;
MobileL3__CC__Types::PDU__ML3__CC__NW__MS *field_cc;
OCTETSTRING *field_gttp;
MobileL3__MM__Types::PDU__ML3__MM *field_mm;
MobileL3__RRM__Types::PDU__RRM__NW__MS *field_rrm;
OCTETSTRING *field_gprs__mm;
MobileL3__SMS__Types::L3__SMS__SGSN__MS *field_sms;
OCTETSTRING *field_gprs__sm;
MobileL3__SS__Types::PDU__ML3__SS__NW__MS *field_ss;
OCTETSTRING *field_loc;
OCTETSTRING *field_reserved;
};
void copy_value(const ML3__Discr__NW__MS& other_value);

public:
ML3__Discr__NW__MS();
ML3__Discr__NW__MS(const ML3__Discr__NW__MS& other_value);
~ML3__Discr__NW__MS();
ML3__Discr__NW__MS& operator=(const ML3__Discr__NW__MS& other_value);
boolean operator==(const ML3__Discr__NW__MS& other_value) const;
inline boolean operator!=(const ML3__Discr__NW__MS& other_value) const { return !(*this == other_value); }
OCTETSTRING& gcc();
const OCTETSTRING& gcc() const;
OCTETSTRING& bcc();
const OCTETSTRING& bcc() const;
MobileL3__CC__Types::PDU__ML3__CC__NW__MS& cc();
const MobileL3__CC__Types::PDU__ML3__CC__NW__MS& cc() const;
OCTETSTRING& gttp();
const OCTETSTRING& gttp() const;
MobileL3__MM__Types::PDU__ML3__MM& mm();
const MobileL3__MM__Types::PDU__ML3__MM& mm() const;
MobileL3__RRM__Types::PDU__RRM__NW__MS& rrm();
const MobileL3__RRM__Types::PDU__RRM__NW__MS& rrm() const;
OCTETSTRING& gprs__mm();
const OCTETSTRING& gprs__mm() const;
MobileL3__SMS__Types::L3__SMS__SGSN__MS& sms();
const MobileL3__SMS__Types::L3__SMS__SGSN__MS& sms() const;
OCTETSTRING& gprs__sm();
const OCTETSTRING& gprs__sm() const;
MobileL3__SS__Types::PDU__ML3__SS__NW__MS& ss();
const MobileL3__SS__Types::PDU__ML3__SS__NW__MS& ss() const;
OCTETSTRING& loc();
const OCTETSTRING& loc() const;
OCTETSTRING& reserved();
const OCTETSTRING& reserved() 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 ML3__Discr__NW__MS_template : public Base_Template {
union {
struct {
ML3__Discr__NW__MS::union_selection_type union_selection;
union {
OCTETSTRING_template *field_gcc;
OCTETSTRING_template *field_bcc;
MobileL3__CC__Types::PDU__ML3__CC__NW__MS_template *field_cc;
OCTETSTRING_template *field_gttp;
MobileL3__MM__Types::PDU__ML3__MM_template *field_mm;
MobileL3__RRM__Types::PDU__RRM__NW__MS_template *field_rrm;
OCTETSTRING_template *field_gprs__mm;
MobileL3__SMS__Types::L3__SMS__SGSN__MS_template *field_sms;
OCTETSTRING_template *field_gprs__sm;
MobileL3__SS__Types::PDU__ML3__SS__NW__MS_template *field_ss;
OCTETSTRING_template *field_loc;
OCTETSTRING_template *field_reserved;
};
} single_value;
struct {
unsigned int n_values;
ML3__Discr__NW__MS_template *list_value;
} value_list;
struct {
ML3__Discr__NW__MS_template* precondition;
ML3__Discr__NW__MS_template* implied_template;
} implication_;
dynmatch_struct<ML3__Discr__NW__MS>* dyn_match;
};
void copy_value(const ML3__Discr__NW__MS& other_value);

void copy_template(const ML3__Discr__NW__MS_template& other_value);

public:
ML3__Discr__NW__MS_template();
ML3__Discr__NW__MS_template(template_sel other_value);
ML3__Discr__NW__MS_template(const ML3__Discr__NW__MS& other_value);
ML3__Discr__NW__MS_template(const OPTIONAL<ML3__Discr__NW__MS>& other_value);
ML3__Discr__NW__MS_template(ML3__Discr__NW__MS_template* p_precondition, ML3__Discr__NW__MS_template* p_implied_template);
ML3__Discr__NW__MS_template(Dynamic_Match_Interface<ML3__Discr__NW__MS>* p_dyn_match);
ML3__Discr__NW__MS_template(const ML3__Discr__NW__MS_template& other_value);
~ML3__Discr__NW__MS_template();
void clean_up();
ML3__Discr__NW__MS_template& operator=(template_sel other_value);
ML3__Discr__NW__MS_template& operator=(const ML3__Discr__NW__MS& other_value);
ML3__Discr__NW__MS_template& operator=(const OPTIONAL<ML3__Discr__NW__MS>& other_value);
ML3__Discr__NW__MS_template& operator=(const ML3__Discr__NW__MS_template& other_value);
boolean match(const ML3__Discr__NW__MS& other_value, boolean legacy = FALSE) const;
boolean is_value() const;ML3__Discr__NW__MS valueof() const;
ML3__Discr__NW__MS_template& list_item(unsigned int list_index) const;
void set_type(template_sel template_type, unsigned int list_length);
OCTETSTRING_template& gcc();
const OCTETSTRING_template& gcc() const;
OCTETSTRING_template& bcc();
const OCTETSTRING_template& bcc() const;
MobileL3__CC__Types::PDU__ML3__CC__NW__MS_template& cc();
const MobileL3__CC__Types::PDU__ML3__CC__NW__MS_template& cc() const;
OCTETSTRING_template& gttp();
const OCTETSTRING_template& gttp() const;
MobileL3__MM__Types::PDU__ML3__MM_template& mm();
const MobileL3__MM__Types::PDU__ML3__MM_template& mm() const;
MobileL3__RRM__Types::PDU__RRM__NW__MS_template& rrm();
const MobileL3__RRM__Types::PDU__RRM__NW__MS_template& rrm() const;
OCTETSTRING_template& gprs__mm();
const OCTETSTRING_template& gprs__mm() const;
MobileL3__SMS__Types::L3__SMS__SGSN__MS_template& sms();
const MobileL3__SMS__Types::L3__SMS__SGSN__MS_template& sms() const;
OCTETSTRING_template& gprs__sm();
const OCTETSTRING_template& gprs__sm() const;
MobileL3__SS__Types::PDU__ML3__SS__NW__MS_template& ss();
const MobileL3__SS__Types::PDU__ML3__SS__NW__MS_template& ss() const;
OCTETSTRING_template& loc();
const OCTETSTRING_template& loc() const;
OCTETSTRING_template& reserved();
const OCTETSTRING_template& reserved() const;
boolean ischosen(ML3__Discr__NW__MS::union_selection_type checked_selection) const;
void log() const;
void log_match(const ML3__Discr__NW__MS& 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 PDU__ML3__NW__MS : public Base_Type {
  BITSTRING field_discriminator;
  TiOrSkip field_tiOrSkip;
  ML3__Discr__NW__MS field_msgs;
public:
  PDU__ML3__NW__MS();
  PDU__ML3__NW__MS(const BITSTRING& par_discriminator,
    const TiOrSkip& par_tiOrSkip,
    const ML3__Discr__NW__MS& par_msgs);
  PDU__ML3__NW__MS(const PDU__ML3__NW__MS& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  PDU__ML3__NW__MS& operator=(const PDU__ML3__NW__MS& other_value);
  boolean operator==(const PDU__ML3__NW__MS& other_value) const;
  inline boolean operator!=(const PDU__ML3__NW__MS& 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& discriminator()
    {return field_discriminator;}
  inline const BITSTRING& discriminator() const
    {return field_discriminator;}
  inline TiOrSkip& tiOrSkip()
    {return field_tiOrSkip;}
  inline const TiOrSkip& tiOrSkip() const
    {return field_tiOrSkip;}
  inline ML3__Discr__NW__MS& msgs()
    {return field_msgs;}
  inline const ML3__Discr__NW__MS& msgs() const
    {return field_msgs;}
  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 PDU__ML3__NW__MS_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
PDU__ML3__NW__MS_template *list_value;
} value_list;
struct {
PDU__ML3__NW__MS_template* precondition;
PDU__ML3__NW__MS_template* implied_template;
} implication_;
dynmatch_struct<PDU__ML3__NW__MS>* dyn_match;
};

void set_specific();
void copy_value(const PDU__ML3__NW__MS& other_value);
void copy_template(const PDU__ML3__NW__MS_template& other_value);

public:
PDU__ML3__NW__MS_template();
PDU__ML3__NW__MS_template(template_sel other_value);
PDU__ML3__NW__MS_template(const PDU__ML3__NW__MS& other_value);
PDU__ML3__NW__MS_template(const OPTIONAL<PDU__ML3__NW__MS>& other_value);
PDU__ML3__NW__MS_template(PDU__ML3__NW__MS_template* p_precondition, PDU__ML3__NW__MS_template* p_implied_template);
PDU__ML3__NW__MS_template(Dynamic_Match_Interface<PDU__ML3__NW__MS>* p_dyn_match);
PDU__ML3__NW__MS_template(const PDU__ML3__NW__MS_template& other_value);
~PDU__ML3__NW__MS_template();
PDU__ML3__NW__MS_template& operator=(template_sel other_value);
PDU__ML3__NW__MS_template& operator=(const PDU__ML3__NW__MS& other_value);
PDU__ML3__NW__MS_template& operator=(const OPTIONAL<PDU__ML3__NW__MS>& other_value);
PDU__ML3__NW__MS_template& operator=(const PDU__ML3__NW__MS_template& other_value);
boolean match(const PDU__ML3__NW__MS& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
PDU__ML3__NW__MS valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
PDU__ML3__NW__MS_template& list_item(unsigned int list_index) const;
BITSTRING_template& discriminator();
const BITSTRING_template& discriminator() const;
TiOrSkip_template& tiOrSkip();
const TiOrSkip_template& tiOrSkip() const;
ML3__Discr__NW__MS_template& msgs();
const ML3__Discr__NW__MS_template& msgs() const;
int size_of() const;
void log() const;
void log_match(const PDU__ML3__NW__MS& 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__Discr__MS__NW : public Base_Type {
public:
enum union_selection_type { UNBOUND_VALUE = 0, ALT_gcc = 1, ALT_bcc = 2, ALT_cc = 3, ALT_gttp = 4, ALT_mm = 5, ALT_rrm = 6, ALT_gprs__mm = 7, ALT_sms = 8, ALT_gprs__sm = 9, ALT_ss = 10, ALT_loc = 11, ALT_reserved = 12 };
private:
union_selection_type union_selection;
union {
OCTETSTRING *field_gcc;
OCTETSTRING *field_bcc;
MobileL3__CC__Types::PDU__ML3__CC__MS__NW *field_cc;
OCTETSTRING *field_gttp;
MobileL3__MM__Types::PDU__ML3__MM *field_mm;
MobileL3__RRM__Types::PDU__RRM__MS__NW *field_rrm;
OCTETSTRING *field_gprs__mm;
MobileL3__SMS__Types::L3__SMS__MS__SGSN *field_sms;
OCTETSTRING *field_gprs__sm;
MobileL3__SS__Types::PDU__ML3__SS__MS__NW *field_ss;
OCTETSTRING *field_loc;
OCTETSTRING *field_reserved;
};
void copy_value(const ML3__Discr__MS__NW& other_value);

public:
ML3__Discr__MS__NW();
ML3__Discr__MS__NW(const ML3__Discr__MS__NW& other_value);
~ML3__Discr__MS__NW();
ML3__Discr__MS__NW& operator=(const ML3__Discr__MS__NW& other_value);
boolean operator==(const ML3__Discr__MS__NW& other_value) const;
inline boolean operator!=(const ML3__Discr__MS__NW& other_value) const { return !(*this == other_value); }
OCTETSTRING& gcc();
const OCTETSTRING& gcc() const;
OCTETSTRING& bcc();
const OCTETSTRING& bcc() const;
MobileL3__CC__Types::PDU__ML3__CC__MS__NW& cc();
const MobileL3__CC__Types::PDU__ML3__CC__MS__NW& cc() const;
OCTETSTRING& gttp();
const OCTETSTRING& gttp() const;
MobileL3__MM__Types::PDU__ML3__MM& mm();
const MobileL3__MM__Types::PDU__ML3__MM& mm() const;
MobileL3__RRM__Types::PDU__RRM__MS__NW& rrm();
const MobileL3__RRM__Types::PDU__RRM__MS__NW& rrm() const;
OCTETSTRING& gprs__mm();
const OCTETSTRING& gprs__mm() const;
MobileL3__SMS__Types::L3__SMS__MS__SGSN& sms();
const MobileL3__SMS__Types::L3__SMS__MS__SGSN& sms() const;
OCTETSTRING& gprs__sm();
const OCTETSTRING& gprs__sm() const;
MobileL3__SS__Types::PDU__ML3__SS__MS__NW& ss();
const MobileL3__SS__Types::PDU__ML3__SS__MS__NW& ss() const;
OCTETSTRING& loc();
const OCTETSTRING& loc() const;
OCTETSTRING& reserved();
const OCTETSTRING& reserved() 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 ML3__Discr__MS__NW_template : public Base_Template {
union {
struct {
ML3__Discr__MS__NW::union_selection_type union_selection;
union {
OCTETSTRING_template *field_gcc;
OCTETSTRING_template *field_bcc;
MobileL3__CC__Types::PDU__ML3__CC__MS__NW_template *field_cc;
OCTETSTRING_template *field_gttp;
MobileL3__MM__Types::PDU__ML3__MM_template *field_mm;
MobileL3__RRM__Types::PDU__RRM__MS__NW_template *field_rrm;
OCTETSTRING_template *field_gprs__mm;
MobileL3__SMS__Types::L3__SMS__MS__SGSN_template *field_sms;
OCTETSTRING_template *field_gprs__sm;
MobileL3__SS__Types::PDU__ML3__SS__MS__NW_template *field_ss;
OCTETSTRING_template *field_loc;
OCTETSTRING_template *field_reserved;
};
} single_value;
struct {
unsigned int n_values;
ML3__Discr__MS__NW_template *list_value;
} value_list;
struct {
ML3__Discr__MS__NW_template* precondition;
ML3__Discr__MS__NW_template* implied_template;
} implication_;
dynmatch_struct<ML3__Discr__MS__NW>* dyn_match;
};
void copy_value(const ML3__Discr__MS__NW& other_value);

void copy_template(const ML3__Discr__MS__NW_template& other_value);

public:
ML3__Discr__MS__NW_template();
ML3__Discr__MS__NW_template(template_sel other_value);
ML3__Discr__MS__NW_template(const ML3__Discr__MS__NW& other_value);
ML3__Discr__MS__NW_template(const OPTIONAL<ML3__Discr__MS__NW>& other_value);
ML3__Discr__MS__NW_template(ML3__Discr__MS__NW_template* p_precondition, ML3__Discr__MS__NW_template* p_implied_template);
ML3__Discr__MS__NW_template(Dynamic_Match_Interface<ML3__Discr__MS__NW>* p_dyn_match);
ML3__Discr__MS__NW_template(const ML3__Discr__MS__NW_template& other_value);
~ML3__Discr__MS__NW_template();
void clean_up();
ML3__Discr__MS__NW_template& operator=(template_sel other_value);
ML3__Discr__MS__NW_template& operator=(const ML3__Discr__MS__NW& other_value);
ML3__Discr__MS__NW_template& operator=(const OPTIONAL<ML3__Discr__MS__NW>& other_value);
ML3__Discr__MS__NW_template& operator=(const ML3__Discr__MS__NW_template& other_value);
boolean match(const ML3__Discr__MS__NW& other_value, boolean legacy = FALSE) const;
boolean is_value() const;ML3__Discr__MS__NW valueof() const;
ML3__Discr__MS__NW_template& list_item(unsigned int list_index) const;
void set_type(template_sel template_type, unsigned int list_length);
OCTETSTRING_template& gcc();
const OCTETSTRING_template& gcc() const;
OCTETSTRING_template& bcc();
const OCTETSTRING_template& bcc() const;
MobileL3__CC__Types::PDU__ML3__CC__MS__NW_template& cc();
const MobileL3__CC__Types::PDU__ML3__CC__MS__NW_template& cc() const;
OCTETSTRING_template& gttp();
const OCTETSTRING_template& gttp() const;
MobileL3__MM__Types::PDU__ML3__MM_template& mm();
const MobileL3__MM__Types::PDU__ML3__MM_template& mm() const;
MobileL3__RRM__Types::PDU__RRM__MS__NW_template& rrm();
const MobileL3__RRM__Types::PDU__RRM__MS__NW_template& rrm() const;
OCTETSTRING_template& gprs__mm();
const OCTETSTRING_template& gprs__mm() const;
MobileL3__SMS__Types::L3__SMS__MS__SGSN_template& sms();
const MobileL3__SMS__Types::L3__SMS__MS__SGSN_template& sms() const;
OCTETSTRING_template& gprs__sm();
const OCTETSTRING_template& gprs__sm() const;
MobileL3__SS__Types::PDU__ML3__SS__MS__NW_template& ss();
const MobileL3__SS__Types::PDU__ML3__SS__MS__NW_template& ss() const;
OCTETSTRING_template& loc();
const OCTETSTRING_template& loc() const;
OCTETSTRING_template& reserved();
const OCTETSTRING_template& reserved() const;
boolean ischosen(ML3__Discr__MS__NW::union_selection_type checked_selection) const;
void log() const;
void log_match(const ML3__Discr__MS__NW& 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 PDU__ML3__MS__NW : public Base_Type {
  BITSTRING field_discriminator;
  TiOrSkip field_tiOrSkip;
  ML3__Discr__MS__NW field_msgs;
public:
  PDU__ML3__MS__NW();
  PDU__ML3__MS__NW(const BITSTRING& par_discriminator,
    const TiOrSkip& par_tiOrSkip,
    const ML3__Discr__MS__NW& par_msgs);
  PDU__ML3__MS__NW(const PDU__ML3__MS__NW& other_value);
  inline boolean is_component() { return FALSE; }
  void clean_up();
const TTCN_Typedescriptor_t* get_descriptor() const;
  PDU__ML3__MS__NW& operator=(const PDU__ML3__MS__NW& other_value);
  boolean operator==(const PDU__ML3__MS__NW& other_value) const;
  inline boolean operator!=(const PDU__ML3__MS__NW& 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& discriminator()
    {return field_discriminator;}
  inline const BITSTRING& discriminator() const
    {return field_discriminator;}
  inline TiOrSkip& tiOrSkip()
    {return field_tiOrSkip;}
  inline const TiOrSkip& tiOrSkip() const
    {return field_tiOrSkip;}
  inline ML3__Discr__MS__NW& msgs()
    {return field_msgs;}
  inline const ML3__Discr__MS__NW& msgs() const
    {return field_msgs;}
  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 PDU__ML3__MS__NW_template : public Base_Template {
struct single_value_struct;
union {
single_value_struct *single_value;
struct {
unsigned int n_values;
PDU__ML3__MS__NW_template *list_value;
} value_list;
struct {
PDU__ML3__MS__NW_template* precondition;
PDU__ML3__MS__NW_template* implied_template;
} implication_;
dynmatch_struct<PDU__ML3__MS__NW>* dyn_match;
};

void set_specific();
void copy_value(const PDU__ML3__MS__NW& other_value);
void copy_template(const PDU__ML3__MS__NW_template& other_value);

public:
PDU__ML3__MS__NW_template();
PDU__ML3__MS__NW_template(template_sel other_value);
PDU__ML3__MS__NW_template(const PDU__ML3__MS__NW& other_value);
PDU__ML3__MS__NW_template(const OPTIONAL<PDU__ML3__MS__NW>& other_value);
PDU__ML3__MS__NW_template(PDU__ML3__MS__NW_template* p_precondition, PDU__ML3__MS__NW_template* p_implied_template);
PDU__ML3__MS__NW_template(Dynamic_Match_Interface<PDU__ML3__MS__NW>* p_dyn_match);
PDU__ML3__MS__NW_template(const PDU__ML3__MS__NW_template& other_value);
~PDU__ML3__MS__NW_template();
PDU__ML3__MS__NW_template& operator=(template_sel other_value);
PDU__ML3__MS__NW_template& operator=(const PDU__ML3__MS__NW& other_value);
PDU__ML3__MS__NW_template& operator=(const OPTIONAL<PDU__ML3__MS__NW>& other_value);
PDU__ML3__MS__NW_template& operator=(const PDU__ML3__MS__NW_template& other_value);
boolean match(const PDU__ML3__MS__NW& other_value, boolean legacy = FALSE) const;
boolean is_bound() const;
boolean is_value() const;
void clean_up();
PDU__ML3__MS__NW valueof() const;
void set_type(template_sel template_type, unsigned int list_length);
PDU__ML3__MS__NW_template& list_item(unsigned int list_index) const;
BITSTRING_template& discriminator();
const BITSTRING_template& discriminator() const;
TiOrSkip_template& tiOrSkip();
const TiOrSkip_template& tiOrSkip() const;
ML3__Discr__MS__NW_template& msgs();
const ML3__Discr__MS__NW_template& msgs() const;
int size_of() const;
void log() const;
void log_match(const PDU__ML3__MS__NW& 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 OCTETSTRING enc__PDU__L3__MS__SGSN(const PDU__L3__MS__SGSN& pdu);
extern void enc__PDU__L3__MS__SGSN__fast(const PDU__L3__MS__SGSN& pdu, OCTETSTRING& stream);
extern PDU__L3__MS__SGSN dec__PDU__L3__MS__SGSN(const OCTETSTRING& stream);
extern INTEGER dec__PDU__L3__MS__SGSN__backtrack(const OCTETSTRING& stream, PDU__L3__MS__SGSN& pdu);
extern OCTETSTRING enc__PDU__L3__SGSN__MS(const PDU__L3__SGSN__MS& pdu);
extern void enc__PDU__L3__SGSN__MS__fast(const PDU__L3__SGSN__MS& pdu, OCTETSTRING& stream);
extern PDU__L3__SGSN__MS dec__PDU__L3__SGSN__MS(const OCTETSTRING& stream);
extern INTEGER dec__PDU__L3__SGSN__MS__backtrack(const OCTETSTRING& stream, PDU__L3__SGSN__MS& pdu);
extern OCTETSTRING enc__PDU__ML3__NW__MS(const PDU__ML3__NW__MS& pdu);
extern void enc__PDU__ML3__NW__MS__fast(const PDU__ML3__NW__MS& pdu, OCTETSTRING& stream);
extern PDU__ML3__NW__MS dec__PDU__ML3__NW__MS(const OCTETSTRING& stream);
extern INTEGER dec__PDU__ML3__NW__MS__backtrack(const OCTETSTRING& stream, PDU__ML3__NW__MS& pdu);
extern OCTETSTRING enc__PDU__ML3__MS__NW(const PDU__ML3__MS__NW& pdu);
extern void enc__PDU__ML3__MS__NW__fast(const PDU__ML3__MS__NW& pdu, OCTETSTRING& stream);
extern PDU__ML3__MS__NW dec__PDU__ML3__MS__NW(const OCTETSTRING& stream);
extern INTEGER dec__PDU__ML3__MS__NW__backtrack(const OCTETSTRING& stream, PDU__ML3__MS__NW& pdu);
extern void L3__TransactionId_tIExtension_encoder(const MobileL3__GMM__SM__Types::TI__Extension& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__TransactionId_tIExtension_decoder(OCTETSTRING& input_stream, MobileL3__GMM__SM__Types::TI__Extension& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__TransactionId_encoder(const L3__TransactionId& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__TransactionId_decoder(OCTETSTRING& input_stream, L3__TransactionId& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__TransactionId__not__extended_encoder(const L3__TransactionId__not__extended& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__TransactionId__not__extended_decoder(OCTETSTRING& input_stream, L3__TransactionId__not__extended& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TiOrSkip__not__extended_encoder(const TiOrSkip__not__extended& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TiOrSkip__not__extended_decoder(OCTETSTRING& input_stream, TiOrSkip__not__extended& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void TiOrSkip_encoder(const TiOrSkip& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER TiOrSkip_decoder(OCTETSTRING& input_stream, TiOrSkip& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__Discr__SGSN__MS_gcc_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__Discr__SGSN__MS_gcc_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__Discr__SGSN__MS_bcc_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__Discr__SGSN__MS_bcc_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__Discr__SGSN__MS_cc_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__Discr__SGSN__MS_cc_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__Discr__SGSN__MS_gttp_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__Discr__SGSN__MS_gttp_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__Discr__SGSN__MS_mm_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__Discr__SGSN__MS_mm_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__Discr__SGSN__MS_rrm_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__Discr__SGSN__MS_rrm_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__Discr__SGSN__MS_sms_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__Discr__SGSN__MS_sms_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__Discr__SGSN__MS_ss_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__Discr__SGSN__MS_ss_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__Discr__SGSN__MS_loc_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__Discr__SGSN__MS_loc_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__Discr__SGSN__MS_reserved_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__Discr__SGSN__MS_reserved_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__Discr__SGSN__MS_encoder(const L3__Discr__SGSN__MS& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__Discr__SGSN__MS_decoder(OCTETSTRING& input_stream, L3__Discr__SGSN__MS& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void PDU__L3__SGSN__MS__unextended__ti_tiOrSkip_encoder(const TiOrSkip__not__extended& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER PDU__L3__SGSN__MS__unextended__ti_tiOrSkip_decoder(OCTETSTRING& input_stream, TiOrSkip__not__extended& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void PDU__L3__SGSN__MS__unextended__ti_msgs_encoder(const L3__Discr__SGSN__MS& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER PDU__L3__SGSN__MS__unextended__ti_msgs_decoder(OCTETSTRING& input_stream, L3__Discr__SGSN__MS& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void PDU__L3__SGSN__MS__unextended__ti_encoder(const PDU__L3__SGSN__MS__unextended__ti& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER PDU__L3__SGSN__MS__unextended__ti_decoder(OCTETSTRING& input_stream, PDU__L3__SGSN__MS__unextended__ti& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void PDU__L3__SGSN__MS_tiOrSkip_encoder(const TiOrSkip& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER PDU__L3__SGSN__MS_tiOrSkip_decoder(OCTETSTRING& input_stream, TiOrSkip& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void PDU__L3__SGSN__MS_msgs_encoder(const L3__Discr__SGSN__MS& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER PDU__L3__SGSN__MS_msgs_decoder(OCTETSTRING& input_stream, L3__Discr__SGSN__MS& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void PDU__L3__SGSN__MS_encoder(const PDU__L3__SGSN__MS& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER PDU__L3__SGSN__MS_decoder(OCTETSTRING& input_stream, PDU__L3__SGSN__MS& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__Discr__MS__SGSN_gcc_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__Discr__MS__SGSN_gcc_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__Discr__MS__SGSN_bcc_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__Discr__MS__SGSN_bcc_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__Discr__MS__SGSN_cc_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__Discr__MS__SGSN_cc_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__Discr__MS__SGSN_gttp_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__Discr__MS__SGSN_gttp_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__Discr__MS__SGSN_mm_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__Discr__MS__SGSN_mm_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__Discr__MS__SGSN_rrm_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__Discr__MS__SGSN_rrm_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__Discr__MS__SGSN_sms_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__Discr__MS__SGSN_sms_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__Discr__MS__SGSN_ss_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__Discr__MS__SGSN_ss_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__Discr__MS__SGSN_loc_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__Discr__MS__SGSN_loc_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__Discr__MS__SGSN_reserved_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__Discr__MS__SGSN_reserved_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void L3__Discr__MS__SGSN_encoder(const L3__Discr__MS__SGSN& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER L3__Discr__MS__SGSN_decoder(OCTETSTRING& input_stream, L3__Discr__MS__SGSN& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void PDU__L3__MS__SGSN_tiOrSkip_encoder(const TiOrSkip& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER PDU__L3__MS__SGSN_tiOrSkip_decoder(OCTETSTRING& input_stream, TiOrSkip& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void PDU__L3__MS__SGSN_msgs_encoder(const L3__Discr__MS__SGSN& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER PDU__L3__MS__SGSN_msgs_decoder(OCTETSTRING& input_stream, L3__Discr__MS__SGSN& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void PDU__L3__MS__SGSN_encoder(const PDU__L3__MS__SGSN& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER PDU__L3__MS__SGSN_decoder(OCTETSTRING& input_stream, PDU__L3__MS__SGSN& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ML3__Discr__NW__MS_gcc_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ML3__Discr__NW__MS_gcc_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ML3__Discr__NW__MS_bcc_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ML3__Discr__NW__MS_bcc_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ML3__Discr__NW__MS_gttp_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ML3__Discr__NW__MS_gttp_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ML3__Discr__NW__MS_gprs__mm_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ML3__Discr__NW__MS_gprs__mm_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ML3__Discr__NW__MS_gprs__sm_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ML3__Discr__NW__MS_gprs__sm_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ML3__Discr__NW__MS_loc_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ML3__Discr__NW__MS_loc_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ML3__Discr__NW__MS_reserved_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ML3__Discr__NW__MS_reserved_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ML3__Discr__NW__MS_encoder(const ML3__Discr__NW__MS& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ML3__Discr__NW__MS_decoder(OCTETSTRING& input_stream, ML3__Discr__NW__MS& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void PDU__ML3__NW__MS_tiOrSkip_encoder(const TiOrSkip& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER PDU__ML3__NW__MS_tiOrSkip_decoder(OCTETSTRING& input_stream, TiOrSkip& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void PDU__ML3__NW__MS_msgs_encoder(const ML3__Discr__NW__MS& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER PDU__ML3__NW__MS_msgs_decoder(OCTETSTRING& input_stream, ML3__Discr__NW__MS& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void PDU__ML3__NW__MS_encoder(const PDU__ML3__NW__MS& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER PDU__ML3__NW__MS_decoder(OCTETSTRING& input_stream, PDU__ML3__NW__MS& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ML3__Discr__MS__NW_gcc_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ML3__Discr__MS__NW_gcc_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ML3__Discr__MS__NW_bcc_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ML3__Discr__MS__NW_bcc_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ML3__Discr__MS__NW_gttp_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ML3__Discr__MS__NW_gttp_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ML3__Discr__MS__NW_gprs__mm_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ML3__Discr__MS__NW_gprs__mm_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ML3__Discr__MS__NW_gprs__sm_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ML3__Discr__MS__NW_gprs__sm_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ML3__Discr__MS__NW_loc_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ML3__Discr__MS__NW_loc_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ML3__Discr__MS__NW_reserved_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ML3__Discr__MS__NW_reserved_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void ML3__Discr__MS__NW_encoder(const ML3__Discr__MS__NW& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER ML3__Discr__MS__NW_decoder(OCTETSTRING& input_stream, ML3__Discr__MS__NW& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void PDU__ML3__MS__NW_tiOrSkip_encoder(const TiOrSkip& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER PDU__ML3__MS__NW_tiOrSkip_decoder(OCTETSTRING& input_stream, TiOrSkip& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void PDU__ML3__MS__NW_msgs_encoder(const ML3__Discr__MS__NW& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER PDU__ML3__MS__NW_msgs_decoder(OCTETSTRING& input_stream, ML3__Discr__MS__NW& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void PDU__ML3__MS__NW_encoder(const PDU__ML3__MS__NW& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
extern INTEGER PDU__ML3__MS__NW_decoder(OCTETSTRING& input_stream, PDU__ML3__MS__NW& output_value, const UNIVERSAL_CHARSTRING& coding_name);
extern void pre_init_module();
extern void post_init_module();

/* Global variable declarations */

extern const XERdescriptor_t L3__TransactionId_tio_xer_;
extern const TTCN_OERdescriptor_t L3__TransactionId_tio_oer_;
extern const TTCN_Typedescriptor_t L3__TransactionId_tio_descr_;
extern UNIVERSAL_CHARSTRING L3__TransactionId_tio_default_coding;
extern const XERdescriptor_t L3__TransactionId_tiFlag_xer_;
extern const TTCN_OERdescriptor_t L3__TransactionId_tiFlag_oer_;
extern const TTCN_Typedescriptor_t L3__TransactionId_tiFlag_descr_;
extern UNIVERSAL_CHARSTRING L3__TransactionId_tiFlag_default_coding;
extern const TTCN_RAWdescriptor_t L3__TransactionId_raw_;
extern const TTCN_Typedescriptor_t L3__TransactionId_descr_;
extern const TTCN_RAWdescriptor_t L3__TransactionId_tIExtension_raw_;
extern const TTCN_Typedescriptor_t L3__TransactionId_tIExtension_descr_;
extern UNIVERSAL_CHARSTRING L3__TransactionId_tIExtension_default_coding;
extern UNIVERSAL_CHARSTRING L3__TransactionId_default_coding;
extern const XERdescriptor_t L3__TransactionId__not__extended_tio_xer_;
extern const TTCN_OERdescriptor_t L3__TransactionId__not__extended_tio_oer_;
extern const TTCN_Typedescriptor_t L3__TransactionId__not__extended_tio_descr_;
extern UNIVERSAL_CHARSTRING L3__TransactionId__not__extended_tio_default_coding;
extern const XERdescriptor_t L3__TransactionId__not__extended_tiFlag_xer_;
extern const TTCN_OERdescriptor_t L3__TransactionId__not__extended_tiFlag_oer_;
extern const TTCN_Typedescriptor_t L3__TransactionId__not__extended_tiFlag_descr_;
extern UNIVERSAL_CHARSTRING L3__TransactionId__not__extended_tiFlag_default_coding;
extern const TTCN_RAWdescriptor_t L3__TransactionId__not__extended_raw_;
extern const TTCN_Typedescriptor_t L3__TransactionId__not__extended_descr_;
extern UNIVERSAL_CHARSTRING L3__TransactionId__not__extended_default_coding;
extern const TTCN_RAWdescriptor_t TiOrSkip__not__extended_raw_;
extern const TTCN_Typedescriptor_t TiOrSkip__not__extended_descr_;
extern const XERdescriptor_t TiOrSkip__not__extended_skipIndicator_xer_;
extern const TTCN_OERdescriptor_t TiOrSkip__not__extended_skipIndicator_oer_;
extern const TTCN_Typedescriptor_t TiOrSkip__not__extended_skipIndicator_descr_;
extern UNIVERSAL_CHARSTRING TiOrSkip__not__extended_skipIndicator_default_coding;
extern UNIVERSAL_CHARSTRING TiOrSkip__not__extended_transactionId_default_coding;
extern UNIVERSAL_CHARSTRING TiOrSkip__not__extended_default_coding;
extern const TTCN_RAWdescriptor_t TiOrSkip_raw_;
extern const TTCN_Typedescriptor_t TiOrSkip_descr_;
extern const XERdescriptor_t TiOrSkip_skipIndicator_xer_;
extern const TTCN_OERdescriptor_t TiOrSkip_skipIndicator_oer_;
extern const TTCN_Typedescriptor_t TiOrSkip_skipIndicator_descr_;
extern UNIVERSAL_CHARSTRING TiOrSkip_skipIndicator_default_coding;
extern UNIVERSAL_CHARSTRING TiOrSkip_transactionId_default_coding;
extern UNIVERSAL_CHARSTRING TiOrSkip_default_coding;
extern const TTCN_RAWdescriptor_t L3__Discr__SGSN__MS_raw_;
extern const TTCN_Typedescriptor_t L3__Discr__SGSN__MS_descr_;
extern const XERdescriptor_t L3__Discr__SGSN__MS_gcc_xer_;
extern const TTCN_OERdescriptor_t L3__Discr__SGSN__MS_gcc_oer_;
extern const TTCN_Typedescriptor_t L3__Discr__SGSN__MS_gcc_descr_;
extern UNIVERSAL_CHARSTRING L3__Discr__SGSN__MS_gcc_default_coding;
extern const XERdescriptor_t L3__Discr__SGSN__MS_bcc_xer_;
extern const TTCN_OERdescriptor_t L3__Discr__SGSN__MS_bcc_oer_;
extern const TTCN_Typedescriptor_t L3__Discr__SGSN__MS_bcc_descr_;
extern UNIVERSAL_CHARSTRING L3__Discr__SGSN__MS_bcc_default_coding;
extern const XERdescriptor_t L3__Discr__SGSN__MS_cc_xer_;
extern const TTCN_OERdescriptor_t L3__Discr__SGSN__MS_cc_oer_;
extern const TTCN_Typedescriptor_t L3__Discr__SGSN__MS_cc_descr_;
extern UNIVERSAL_CHARSTRING L3__Discr__SGSN__MS_cc_default_coding;
extern const XERdescriptor_t L3__Discr__SGSN__MS_gttp_xer_;
extern const TTCN_OERdescriptor_t L3__Discr__SGSN__MS_gttp_oer_;
extern const TTCN_Typedescriptor_t L3__Discr__SGSN__MS_gttp_descr_;
extern UNIVERSAL_CHARSTRING L3__Discr__SGSN__MS_gttp_default_coding;
extern const XERdescriptor_t L3__Discr__SGSN__MS_mm_xer_;
extern const TTCN_OERdescriptor_t L3__Discr__SGSN__MS_mm_oer_;
extern const TTCN_Typedescriptor_t L3__Discr__SGSN__MS_mm_descr_;
extern UNIVERSAL_CHARSTRING L3__Discr__SGSN__MS_mm_default_coding;
extern const XERdescriptor_t L3__Discr__SGSN__MS_rrm_xer_;
extern const TTCN_OERdescriptor_t L3__Discr__SGSN__MS_rrm_oer_;
extern const TTCN_Typedescriptor_t L3__Discr__SGSN__MS_rrm_descr_;
extern UNIVERSAL_CHARSTRING L3__Discr__SGSN__MS_rrm_default_coding;
extern UNIVERSAL_CHARSTRING L3__Discr__SGSN__MS_gprs__mm_default_coding;
extern const XERdescriptor_t L3__Discr__SGSN__MS_sms_xer_;
extern const TTCN_OERdescriptor_t L3__Discr__SGSN__MS_sms_oer_;
extern const TTCN_Typedescriptor_t L3__Discr__SGSN__MS_sms_descr_;
extern UNIVERSAL_CHARSTRING L3__Discr__SGSN__MS_sms_default_coding;
extern UNIVERSAL_CHARSTRING L3__Discr__SGSN__MS_gprs__sm_default_coding;
extern const XERdescriptor_t L3__Discr__SGSN__MS_ss_xer_;
extern const TTCN_OERdescriptor_t L3__Discr__SGSN__MS_ss_oer_;
extern const TTCN_Typedescriptor_t L3__Discr__SGSN__MS_ss_descr_;
extern UNIVERSAL_CHARSTRING L3__Discr__SGSN__MS_ss_default_coding;
extern const XERdescriptor_t L3__Discr__SGSN__MS_loc_xer_;
extern const TTCN_OERdescriptor_t L3__Discr__SGSN__MS_loc_oer_;
extern const TTCN_Typedescriptor_t L3__Discr__SGSN__MS_loc_descr_;
extern UNIVERSAL_CHARSTRING L3__Discr__SGSN__MS_loc_default_coding;
extern const XERdescriptor_t L3__Discr__SGSN__MS_reserved_xer_;
extern const TTCN_OERdescriptor_t L3__Discr__SGSN__MS_reserved_oer_;
extern const TTCN_Typedescriptor_t L3__Discr__SGSN__MS_reserved_descr_;
extern UNIVERSAL_CHARSTRING L3__Discr__SGSN__MS_reserved_default_coding;
extern UNIVERSAL_CHARSTRING L3__Discr__SGSN__MS_default_coding;
extern const XERdescriptor_t PDU__L3__SGSN__MS__unextended__ti_discriminator_xer_;
extern const TTCN_OERdescriptor_t PDU__L3__SGSN__MS__unextended__ti_discriminator_oer_;
extern const TTCN_Typedescriptor_t PDU__L3__SGSN__MS__unextended__ti_discriminator_descr_;
extern UNIVERSAL_CHARSTRING PDU__L3__SGSN__MS__unextended__ti_discriminator_default_coding;
extern const TTCN_RAWdescriptor_t PDU__L3__SGSN__MS__unextended__ti_tiOrSkip_raw_;
extern const TTCN_Typedescriptor_t PDU__L3__SGSN__MS__unextended__ti_tiOrSkip_descr_;
extern UNIVERSAL_CHARSTRING PDU__L3__SGSN__MS__unextended__ti_tiOrSkip_default_coding;
extern const TTCN_RAWdescriptor_t PDU__L3__SGSN__MS__unextended__ti_msgs_raw_;
extern const TTCN_Typedescriptor_t PDU__L3__SGSN__MS__unextended__ti_msgs_descr_;
extern UNIVERSAL_CHARSTRING PDU__L3__SGSN__MS__unextended__ti_msgs_default_coding;
extern const TTCN_RAWdescriptor_t PDU__L3__SGSN__MS__unextended__ti_raw_;
extern const TTCN_Typedescriptor_t PDU__L3__SGSN__MS__unextended__ti_descr_;
extern UNIVERSAL_CHARSTRING PDU__L3__SGSN__MS__unextended__ti_default_coding;
extern const XERdescriptor_t PDU__L3__SGSN__MS_discriminator_xer_;
extern const TTCN_OERdescriptor_t PDU__L3__SGSN__MS_discriminator_oer_;
extern const TTCN_Typedescriptor_t PDU__L3__SGSN__MS_discriminator_descr_;
extern UNIVERSAL_CHARSTRING PDU__L3__SGSN__MS_discriminator_default_coding;
extern const TTCN_RAWdescriptor_t PDU__L3__SGSN__MS_tiOrSkip_raw_;
extern const TTCN_Typedescriptor_t PDU__L3__SGSN__MS_tiOrSkip_descr_;
extern UNIVERSAL_CHARSTRING PDU__L3__SGSN__MS_tiOrSkip_default_coding;
extern const TTCN_RAWdescriptor_t PDU__L3__SGSN__MS_msgs_raw_;
extern const TTCN_Typedescriptor_t PDU__L3__SGSN__MS_msgs_descr_;
extern UNIVERSAL_CHARSTRING PDU__L3__SGSN__MS_msgs_default_coding;
extern const TTCN_RAWdescriptor_t PDU__L3__SGSN__MS_raw_;
extern const TTCN_Typedescriptor_t PDU__L3__SGSN__MS_descr_;
extern UNIVERSAL_CHARSTRING PDU__L3__SGSN__MS_default_coding;
extern const TTCN_RAWdescriptor_t L3__Discr__MS__SGSN_raw_;
extern const TTCN_Typedescriptor_t L3__Discr__MS__SGSN_descr_;
extern const XERdescriptor_t L3__Discr__MS__SGSN_gcc_xer_;
extern const TTCN_OERdescriptor_t L3__Discr__MS__SGSN_gcc_oer_;
extern const TTCN_Typedescriptor_t L3__Discr__MS__SGSN_gcc_descr_;
extern UNIVERSAL_CHARSTRING L3__Discr__MS__SGSN_gcc_default_coding;
extern const XERdescriptor_t L3__Discr__MS__SGSN_bcc_xer_;
extern const TTCN_OERdescriptor_t L3__Discr__MS__SGSN_bcc_oer_;
extern const TTCN_Typedescriptor_t L3__Discr__MS__SGSN_bcc_descr_;
extern UNIVERSAL_CHARSTRING L3__Discr__MS__SGSN_bcc_default_coding;
extern const XERdescriptor_t L3__Discr__MS__SGSN_cc_xer_;
extern const TTCN_OERdescriptor_t L3__Discr__MS__SGSN_cc_oer_;
extern const TTCN_Typedescriptor_t L3__Discr__MS__SGSN_cc_descr_;
extern UNIVERSAL_CHARSTRING L3__Discr__MS__SGSN_cc_default_coding;
extern const XERdescriptor_t L3__Discr__MS__SGSN_gttp_xer_;
extern const TTCN_OERdescriptor_t L3__Discr__MS__SGSN_gttp_oer_;
extern const TTCN_Typedescriptor_t L3__Discr__MS__SGSN_gttp_descr_;
extern UNIVERSAL_CHARSTRING L3__Discr__MS__SGSN_gttp_default_coding;
extern const XERdescriptor_t L3__Discr__MS__SGSN_mm_xer_;
extern const TTCN_OERdescriptor_t L3__Discr__MS__SGSN_mm_oer_;
extern const TTCN_Typedescriptor_t L3__Discr__MS__SGSN_mm_descr_;
extern UNIVERSAL_CHARSTRING L3__Discr__MS__SGSN_mm_default_coding;
extern const XERdescriptor_t L3__Discr__MS__SGSN_rrm_xer_;
extern const TTCN_OERdescriptor_t L3__Discr__MS__SGSN_rrm_oer_;
extern const TTCN_Typedescriptor_t L3__Discr__MS__SGSN_rrm_descr_;
extern UNIVERSAL_CHARSTRING L3__Discr__MS__SGSN_rrm_default_coding;
extern UNIVERSAL_CHARSTRING L3__Discr__MS__SGSN_gprs__mm_default_coding;
extern const XERdescriptor_t L3__Discr__MS__SGSN_sms_xer_;
extern const TTCN_OERdescriptor_t L3__Discr__MS__SGSN_sms_oer_;
extern const TTCN_Typedescriptor_t L3__Discr__MS__SGSN_sms_descr_;
extern UNIVERSAL_CHARSTRING L3__Discr__MS__SGSN_sms_default_coding;
extern UNIVERSAL_CHARSTRING L3__Discr__MS__SGSN_gprs__sm_default_coding;
extern const XERdescriptor_t L3__Discr__MS__SGSN_ss_xer_;
extern const TTCN_OERdescriptor_t L3__Discr__MS__SGSN_ss_oer_;
extern const TTCN_Typedescriptor_t L3__Discr__MS__SGSN_ss_descr_;
extern UNIVERSAL_CHARSTRING L3__Discr__MS__SGSN_ss_default_coding;
extern const XERdescriptor_t L3__Discr__MS__SGSN_loc_xer_;
extern const TTCN_OERdescriptor_t L3__Discr__MS__SGSN_loc_oer_;
extern const TTCN_Typedescriptor_t L3__Discr__MS__SGSN_loc_descr_;
extern UNIVERSAL_CHARSTRING L3__Discr__MS__SGSN_loc_default_coding;
extern const XERdescriptor_t L3__Discr__MS__SGSN_reserved_xer_;
extern const TTCN_OERdescriptor_t L3__Discr__MS__SGSN_reserved_oer_;
extern const TTCN_Typedescriptor_t L3__Discr__MS__SGSN_reserved_descr_;
extern UNIVERSAL_CHARSTRING L3__Discr__MS__SGSN_reserved_default_coding;
extern UNIVERSAL_CHARSTRING L3__Discr__MS__SGSN_default_coding;
extern const XERdescriptor_t PDU__L3__MS__SGSN_discriminator_xer_;
extern const TTCN_OERdescriptor_t PDU__L3__MS__SGSN_discriminator_oer_;
extern const TTCN_Typedescriptor_t PDU__L3__MS__SGSN_discriminator_descr_;
extern UNIVERSAL_CHARSTRING PDU__L3__MS__SGSN_discriminator_default_coding;
extern const TTCN_RAWdescriptor_t PDU__L3__MS__SGSN_tiOrSkip_raw_;
extern const TTCN_Typedescriptor_t PDU__L3__MS__SGSN_tiOrSkip_descr_;
extern UNIVERSAL_CHARSTRING PDU__L3__MS__SGSN_tiOrSkip_default_coding;
extern const TTCN_RAWdescriptor_t PDU__L3__MS__SGSN_msgs_raw_;
extern const TTCN_Typedescriptor_t PDU__L3__MS__SGSN_msgs_descr_;
extern UNIVERSAL_CHARSTRING PDU__L3__MS__SGSN_msgs_default_coding;
extern const TTCN_RAWdescriptor_t PDU__L3__MS__SGSN_raw_;
extern const TTCN_Typedescriptor_t PDU__L3__MS__SGSN_descr_;
extern UNIVERSAL_CHARSTRING PDU__L3__MS__SGSN_default_coding;
extern const TTCN_RAWdescriptor_t ML3__Discr__NW__MS_raw_;
extern const TTCN_Typedescriptor_t ML3__Discr__NW__MS_descr_;
extern const XERdescriptor_t ML3__Discr__NW__MS_gcc_xer_;
extern const TTCN_OERdescriptor_t ML3__Discr__NW__MS_gcc_oer_;
extern const TTCN_Typedescriptor_t ML3__Discr__NW__MS_gcc_descr_;
extern UNIVERSAL_CHARSTRING ML3__Discr__NW__MS_gcc_default_coding;
extern const XERdescriptor_t ML3__Discr__NW__MS_bcc_xer_;
extern const TTCN_OERdescriptor_t ML3__Discr__NW__MS_bcc_oer_;
extern const TTCN_Typedescriptor_t ML3__Discr__NW__MS_bcc_descr_;
extern UNIVERSAL_CHARSTRING ML3__Discr__NW__MS_bcc_default_coding;
extern UNIVERSAL_CHARSTRING ML3__Discr__NW__MS_cc_default_coding;
extern const XERdescriptor_t ML3__Discr__NW__MS_gttp_xer_;
extern const TTCN_OERdescriptor_t ML3__Discr__NW__MS_gttp_oer_;
extern const TTCN_Typedescriptor_t ML3__Discr__NW__MS_gttp_descr_;
extern UNIVERSAL_CHARSTRING ML3__Discr__NW__MS_gttp_default_coding;
extern UNIVERSAL_CHARSTRING ML3__Discr__NW__MS_mm_default_coding;
extern UNIVERSAL_CHARSTRING ML3__Discr__NW__MS_rrm_default_coding;
extern const XERdescriptor_t ML3__Discr__NW__MS_gprs__mm_xer_;
extern const TTCN_OERdescriptor_t ML3__Discr__NW__MS_gprs__mm_oer_;
extern const TTCN_Typedescriptor_t ML3__Discr__NW__MS_gprs__mm_descr_;
extern UNIVERSAL_CHARSTRING ML3__Discr__NW__MS_gprs__mm_default_coding;
extern UNIVERSAL_CHARSTRING ML3__Discr__NW__MS_sms_default_coding;
extern const XERdescriptor_t ML3__Discr__NW__MS_gprs__sm_xer_;
extern const TTCN_OERdescriptor_t ML3__Discr__NW__MS_gprs__sm_oer_;
extern const TTCN_Typedescriptor_t ML3__Discr__NW__MS_gprs__sm_descr_;
extern UNIVERSAL_CHARSTRING ML3__Discr__NW__MS_gprs__sm_default_coding;
extern UNIVERSAL_CHARSTRING ML3__Discr__NW__MS_ss_default_coding;
extern const XERdescriptor_t ML3__Discr__NW__MS_loc_xer_;
extern const TTCN_OERdescriptor_t ML3__Discr__NW__MS_loc_oer_;
extern const TTCN_Typedescriptor_t ML3__Discr__NW__MS_loc_descr_;
extern UNIVERSAL_CHARSTRING ML3__Discr__NW__MS_loc_default_coding;
extern const XERdescriptor_t ML3__Discr__NW__MS_reserved_xer_;
extern const TTCN_OERdescriptor_t ML3__Discr__NW__MS_reserved_oer_;
extern const TTCN_Typedescriptor_t ML3__Discr__NW__MS_reserved_descr_;
extern UNIVERSAL_CHARSTRING ML3__Discr__NW__MS_reserved_default_coding;
extern UNIVERSAL_CHARSTRING ML3__Discr__NW__MS_default_coding;
extern const XERdescriptor_t PDU__ML3__NW__MS_discriminator_xer_;
extern const TTCN_OERdescriptor_t PDU__ML3__NW__MS_discriminator_oer_;
extern const TTCN_Typedescriptor_t PDU__ML3__NW__MS_discriminator_descr_;
extern UNIVERSAL_CHARSTRING PDU__ML3__NW__MS_discriminator_default_coding;
extern const TTCN_RAWdescriptor_t PDU__ML3__NW__MS_tiOrSkip_raw_;
extern const TTCN_Typedescriptor_t PDU__ML3__NW__MS_tiOrSkip_descr_;
extern UNIVERSAL_CHARSTRING PDU__ML3__NW__MS_tiOrSkip_default_coding;
extern const TTCN_RAWdescriptor_t PDU__ML3__NW__MS_msgs_raw_;
extern const TTCN_Typedescriptor_t PDU__ML3__NW__MS_msgs_descr_;
extern UNIVERSAL_CHARSTRING PDU__ML3__NW__MS_msgs_default_coding;
extern const TTCN_RAWdescriptor_t PDU__ML3__NW__MS_raw_;
extern const TTCN_Typedescriptor_t PDU__ML3__NW__MS_descr_;
extern UNIVERSAL_CHARSTRING PDU__ML3__NW__MS_default_coding;
extern const TTCN_RAWdescriptor_t ML3__Discr__MS__NW_raw_;
extern const TTCN_Typedescriptor_t ML3__Discr__MS__NW_descr_;
extern const XERdescriptor_t ML3__Discr__MS__NW_gcc_xer_;
extern const TTCN_OERdescriptor_t ML3__Discr__MS__NW_gcc_oer_;
extern const TTCN_Typedescriptor_t ML3__Discr__MS__NW_gcc_descr_;
extern UNIVERSAL_CHARSTRING ML3__Discr__MS__NW_gcc_default_coding;
extern const XERdescriptor_t ML3__Discr__MS__NW_bcc_xer_;
extern const TTCN_OERdescriptor_t ML3__Discr__MS__NW_bcc_oer_;
extern const TTCN_Typedescriptor_t ML3__Discr__MS__NW_bcc_descr_;
extern UNIVERSAL_CHARSTRING ML3__Discr__MS__NW_bcc_default_coding;
extern UNIVERSAL_CHARSTRING ML3__Discr__MS__NW_cc_default_coding;
extern const XERdescriptor_t ML3__Discr__MS__NW_gttp_xer_;
extern const TTCN_OERdescriptor_t ML3__Discr__MS__NW_gttp_oer_;
extern const TTCN_Typedescriptor_t ML3__Discr__MS__NW_gttp_descr_;
extern UNIVERSAL_CHARSTRING ML3__Discr__MS__NW_gttp_default_coding;
extern UNIVERSAL_CHARSTRING ML3__Discr__MS__NW_mm_default_coding;
extern UNIVERSAL_CHARSTRING ML3__Discr__MS__NW_rrm_default_coding;
extern const XERdescriptor_t ML3__Discr__MS__NW_gprs__mm_xer_;
extern const TTCN_OERdescriptor_t ML3__Discr__MS__NW_gprs__mm_oer_;
extern const TTCN_Typedescriptor_t ML3__Discr__MS__NW_gprs__mm_descr_;
extern UNIVERSAL_CHARSTRING ML3__Discr__MS__NW_gprs__mm_default_coding;
extern UNIVERSAL_CHARSTRING ML3__Discr__MS__NW_sms_default_coding;
extern const XERdescriptor_t ML3__Discr__MS__NW_gprs__sm_xer_;
extern const TTCN_OERdescriptor_t ML3__Discr__MS__NW_gprs__sm_oer_;
extern const TTCN_Typedescriptor_t ML3__Discr__MS__NW_gprs__sm_descr_;
extern UNIVERSAL_CHARSTRING ML3__Discr__MS__NW_gprs__sm_default_coding;
extern UNIVERSAL_CHARSTRING ML3__Discr__MS__NW_ss_default_coding;
extern const XERdescriptor_t ML3__Discr__MS__NW_loc_xer_;
extern const TTCN_OERdescriptor_t ML3__Discr__MS__NW_loc_oer_;
extern const TTCN_Typedescriptor_t ML3__Discr__MS__NW_loc_descr_;
extern UNIVERSAL_CHARSTRING ML3__Discr__MS__NW_loc_default_coding;
extern const XERdescriptor_t ML3__Discr__MS__NW_reserved_xer_;
extern const TTCN_OERdescriptor_t ML3__Discr__MS__NW_reserved_oer_;
extern const TTCN_Typedescriptor_t ML3__Discr__MS__NW_reserved_descr_;
extern UNIVERSAL_CHARSTRING ML3__Discr__MS__NW_reserved_default_coding;
extern UNIVERSAL_CHARSTRING ML3__Discr__MS__NW_default_coding;
extern const XERdescriptor_t PDU__ML3__MS__NW_discriminator_xer_;
extern const TTCN_OERdescriptor_t PDU__ML3__MS__NW_discriminator_oer_;
extern const TTCN_Typedescriptor_t PDU__ML3__MS__NW_discriminator_descr_;
extern UNIVERSAL_CHARSTRING PDU__ML3__MS__NW_discriminator_default_coding;
extern const TTCN_RAWdescriptor_t PDU__ML3__MS__NW_tiOrSkip_raw_;
extern const TTCN_Typedescriptor_t PDU__ML3__MS__NW_tiOrSkip_descr_;
extern UNIVERSAL_CHARSTRING PDU__ML3__MS__NW_tiOrSkip_default_coding;
extern const TTCN_RAWdescriptor_t PDU__ML3__MS__NW_msgs_raw_;
extern const TTCN_Typedescriptor_t PDU__ML3__MS__NW_msgs_descr_;
extern UNIVERSAL_CHARSTRING PDU__ML3__MS__NW_msgs_default_coding;
extern const TTCN_RAWdescriptor_t PDU__ML3__MS__NW_raw_;
extern const TTCN_Typedescriptor_t PDU__ML3__MS__NW_descr_;
extern UNIVERSAL_CHARSTRING PDU__ML3__MS__NW_default_coding;
extern const BITSTRING bs_1,
bs_2,
bs_12,
bs_3,
bs_4,
bs_5,
bs_6,
bs_13,
bs_7,
bs_8,
bs_9,
bs_10,
bs_11,
bs_14,
bs_0,
bs_15,
bs_16;
extern const unsigned char module_checksum[];
extern TTCN_Module module_object;
extern const RuntimeVersionChecker ver_checker;

} /* end of namespace */

#endif
