typedef struct __NSConstantString_tag __NSConstantString;
typedef char *  __builtin_va_list;
typedef int ptrdiff_t;
typedef unsigned int size_t;
namespace std
{
   typedef unsigned int std::size_t;
   typedef int std::ptrdiff_t;
} // end of std
namespace std
{
   namespace __cxx11
   {
   } // end of __cxx11
} // end of std
namespace __gnu_cxx
{
   namespace __cxx11
   {
   } // end of __cxx11
} // end of __gnu_cxx
namespace std
{
   namespace rel_ops
   {
      template < class _Tp >
         inline _Bool operator!= (const const _Tp &  __x, const const _Tp &  __y);
      template < class _Tp >
         inline _Bool operator> (const const _Tp &  __x, const const _Tp &  __y);
      template < class _Tp >
         inline _Bool operator<= (const const _Tp &  __x, const const _Tp &  __y);
      template < class _Tp >
         inline _Bool operator>= (const const _Tp &  __x, const const _Tp &  __y);
   } // end of rel_ops
} // end of std
namespace std
{
   template < typename _Tp >
      inline _Tp *  __addressof (_Tp &  __r);
} // end of std
extern "C" extern void *  __builtin_addressof (void &  ) throw ();
namespace std
{
   template < typename _Tp >
      inline void swap (_Tp &  __a, _Tp &  __b);
   template < typename _Tp, size_t _Nm >
      inline void swap (_Tp [_Nm] &  __a, _Tp [_Nm] &  __b);
} // end of std
namespace std
{
   template < typename _T1, typename _T2 >
      struct pair{
         struct pair{
         }; // end of pair
         typedef _T1 std::pair::first_type;
         typedef _T2 std::pair::second_type;
         constructor void pair<_T1, _T2> ();
         constructor void pair<_T1, _T2> (const const _T1 &  __a, const const _T2 &  __b);
         template < typename _U1, typename _U2 >
            constructor converter void pair<_T1, _T2> (const const pair<_U1, _U2> &  __p);
      }; // end of pair
   template < typename _T1, typename _T2 >
      inline _Bool operator== (const const pair<_T1, _T2> &  __x, const const pair<_T1, _T2> &  __y);
   template < typename _T1, typename _T2 >
      inline _Bool operator< (const const pair<_T1, _T2> &  __x, const const pair<_T1, _T2> &  __y);
   template < typename _T1, typename _T2 >
      inline _Bool operator!= (const const pair<_T1, _T2> &  __x, const const pair<_T1, _T2> &  __y);
   template < typename _T1, typename _T2 >
      inline _Bool operator> (const const pair<_T1, _T2> &  __x, const const pair<_T1, _T2> &  __y);
   template < typename _T1, typename _T2 >
      inline _Bool operator<= (const const pair<_T1, _T2> &  __x, const const pair<_T1, _T2> &  __y);
   template < typename _T1, typename _T2 >
      inline _Bool operator>= (const const pair<_T1, _T2> &  __x, const const pair<_T1, _T2> &  __y);
   template < typename _T1, typename _T2 >
      inline pair<_T1, _T2> make_pair (_T1 __x, _T2 __y);
} // end of std
namespace std
{
   void __throw_bad_exception ();
   void __throw_bad_alloc ();
   void __throw_bad_cast ();
   void __throw_bad_typeid ();
   void __throw_logic_error (const const char *  );
   void __throw_domain_error (const const char *  );
   void __throw_invalid_argument (const const char *  );
   void __throw_length_error (const const char *  );
   void __throw_out_of_range (const const char *  );
   void __throw_out_of_range_fmt (const const char *  , ... );
   void __throw_runtime_error (const const char *  );
   void __throw_range_error (const const char *  );
   void __throw_overflow_error (const const char *  );
   void __throw_underflow_error (const const char *  );
   void __throw_ios_failure (const const char *  );
   void __throw_system_error (int );
   void __throw_future_error (int );
   void __throw_bad_function_call ();
} // end of std
extern namespace std
{
   struct __true_type{
      struct __true_type{
      }; // end of __true_type
      inline constructor void __true_type () throw ();
      inline constructor copyconstructor converter void __true_type (const const struct std::__true_type &  ) throw ();
   }; // end of __true_type
   struct __false_type{
      struct __false_type{
      }; // end of __false_type
      inline constructor void __false_type () throw ();
      inline constructor copyconstructor converter void __false_type (const const struct std::__false_type &  ) throw ();
      inline destructor void ~__false_type () throw ();
   }; // end of __false_type
   template < _Bool >
      struct __truth_type{
         struct __truth_type{
         }; // end of __truth_type
         typedef struct std::__false_type std::__truth_type::__type;
      }; // end of __truth_type
   template < class _Sp, class _Tp >
      struct __traitor{
         struct __traitor{
         }; // end of __traitor
         enum 
         {
            __value = _Bool(_Sp::__value) || _Bool(_Tp::__value)
         }; // end of 
         typedef typename __truth_type<__value>::__type std::__traitor::__type;
      }; // end of __traitor
   template < typename , typename  >
      struct __are_same{
         struct __are_same{
         }; // end of __are_same
         enum 
         {
            __value = 0
         }; // end of 
         typedef struct std::__false_type std::__are_same::__type;
      }; // end of __are_same
   template < typename _Tp >
      struct __is_void{
         struct __is_void{
         }; // end of __is_void
         enum 
         {
            __value = 0
         }; // end of 
         typedef struct std::__false_type std::__is_void::__type;
      }; // end of __is_void
   template < typename _Tp >
      struct __is_integer{
         struct __is_integer{
         }; // end of __is_integer
         enum 
         {
            __value = 0
         }; // end of 
         typedef struct std::__false_type std::__is_integer::__type;
      }; // end of __is_integer
   template < typename _Tp >
      struct __is_floating{
         struct __is_floating{
         }; // end of __is_floating
         enum 
         {
            __value = 0
         }; // end of 
         typedef struct std::__false_type std::__is_floating::__type;
      }; // end of __is_floating
   template < typename _Tp >
      struct __is_pointer{
         struct __is_pointer{
         }; // end of __is_pointer
         enum 
         {
            __value = 0
         }; // end of 
         typedef struct std::__false_type std::__is_pointer::__type;
      }; // end of __is_pointer
   template < typename _Tp >
      struct __is_arithmetic : public:
      __traitor<__is_integer<_Tp>, __is_floating<_Tp> >{
         struct __is_arithmetic{
         }; // end of __is_arithmetic
      }; // end of __is_arithmetic
   template < typename _Tp >
      struct __is_scalar : public:
      __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> >{
         struct __is_scalar{
         }; // end of __is_scalar
      }; // end of __is_scalar
   template < typename _Tp >
      struct __is_char{
         struct __is_char{
         }; // end of __is_char
         enum 
         {
            __value = 0
         }; // end of 
         typedef struct std::__false_type std::__is_char::__type;
      }; // end of __is_char
   template < typename _Tp >
      struct __is_byte{
         struct __is_byte{
         }; // end of __is_byte
         enum 
         {
            __value = 0
         }; // end of 
         typedef struct std::__false_type std::__is_byte::__type;
      }; // end of __is_byte
   template < typename _Tp >
      struct __is_move_iterator{
         struct __is_move_iterator{
         }; // end of __is_move_iterator
         enum 
         {
            __value = 0
         }; // end of 
         typedef struct std::__false_type std::__is_move_iterator::__type;
      }; // end of __is_move_iterator
   template < typename _Iterator >
      inline _Iterator __miter_base (_Iterator __it);
} // end of std
extern namespace __gnu_cxx
{
   template < _Bool, typename  >
      struct __enable_if{
         struct __enable_if{
         }; // end of __enable_if
      }; // end of __enable_if
   template < _Bool _Cond, typename _Iftrue, typename _Iffalse >
      struct __conditional_type{
         struct __conditional_type{
         }; // end of __conditional_type
         typedef _Iftrue __gnu_cxx::__conditional_type::__type;
      }; // end of __conditional_type
   template < typename _Tp >
      struct __add_unsigned{
         struct __add_unsigned{
         }; // end of __add_unsigned
      private:
         typedef __enable_if::__value, _Tp> __gnu_cxx::__add_unsigned::__if_type;
      public:
         typedef typename __if_type::__type __gnu_cxx::__add_unsigned::__type;
      }; // end of __add_unsigned
   template < typename _Tp >
      struct __remove_unsigned{
         struct __remove_unsigned{
         }; // end of __remove_unsigned
      private:
         typedef __enable_if::__value, _Tp> __gnu_cxx::__remove_unsigned::__if_type;
      public:
         typedef typename __if_type::__type __gnu_cxx::__remove_unsigned::__type;
      }; // end of __remove_unsigned
   template < typename _Type >
      inline _Bool __is_null_pointer (_Type *  __ptr);
   template < typename _Type >
      inline _Bool __is_null_pointer (_Type );
   template < typename _Tp, _Bool = std::__is_integer<_Tp>::__value >
      struct __promote{
         struct __promote{
         }; // end of __promote
         typedef double __gnu_cxx::__promote::__type;
      }; // end of __promote
   template < typename _Tp, typename _Up, typename _Tp2 = typename __promote<_Tp>::__type, typename _Up2 = typename __promote<_Up>::__type >
      struct __promote_2{
         struct __promote_2{
         }; // end of __promote_2
         typedef typeof (_Tp2() + _Up2()) __gnu_cxx::__promote_2::__type;
      }; // end of __promote_2
   template < typename _Tp, typename _Up, typename _Vp, typename _Tp2 = typename __promote<_Tp>::__type, typename _Up2 = typename __promote<_Up>::__type, typename _Vp2 = typename __promote<_Vp>::__type >
      struct __promote_3{
         struct __promote_3{
         }; // end of __promote_3
         typedef typeof (_Tp2() + _Up2() + _Vp2()) __gnu_cxx::__promote_3::__type;
      }; // end of __promote_3
   template < typename _Tp, typename _Up, typename _Vp, typename _Wp, typename _Tp2 = typename __promote<_Tp>::__type, typename _Up2 = typename __promote<_Up>::__type, typename _Vp2 = typename __promote<_Vp>::__type, typename _Wp2 = typename __promote<_Wp>::__type >
      struct __promote_4{
         struct __promote_4{
         }; // end of __promote_4
         typedef typeof (_Tp2() + _Up2() + _Vp2() + _Wp2()) __gnu_cxx::__promote_4::__type;
      }; // end of __promote_4
} // end of __gnu_cxx
namespace __gnu_cxx
{
   template < typename _Value >
      struct __numeric_traits_integer{
         struct __numeric_traits_integer{
         }; // end of __numeric_traits_integer
         /* variable */ static const const _Value = (((_Value)(-1) < 0) ? (_Value)1 << (sizeof(_Value) * 8 - ((_Value)(-1) < 0)) : (_Value)0) __min;
         /* variable */ static const const _Value = (((_Value)(-1) < 0) ? (((((_Value)1 << ((sizeof(_Value) * 8 - ((_Value)(-1) < 0)) - 1)) - 1) << 1) + 1) : ~(_Value)0) __max;
         /* variable */ static const const _Bool = ((_Value)(-1) < 0) __is_signed;
         /* variable */ static const const int = (sizeof(_Value) * 8 - ((_Value)(-1) < 0)) __digits;
      }; // end of __numeric_traits_integer
   /* variable */ const const _Value __min;
   /* variable */ const const _Value __max;
   /* variable */ const const _Bool __is_signed;
   /* variable */ const const int __digits;
   template < typename _Value >
      struct __numeric_traits_floating{
         struct __numeric_traits_floating{
         }; // end of __numeric_traits_floating
         /* variable */ static const const int = (2 + (std::__are_same<_Value, float>::__value ? 24 : std::__are_same<_Value, double>::__value ? 53 : 64) * 643L / 2136) __max_digits10;
         /* variable */ static const const _Bool = true __is_signed;
         /* variable */ static const const int = (std::__are_same<_Value, float>::__value ? 6 : std::__are_same<_Value, double>::__value ? 15 : 18) __digits10;
         /* variable */ static const const int = (std::__are_same<_Value, float>::__value ? 38 : std::__are_same<_Value, double>::__value ? 308 : 4932) __max_exponent10;
      }; // end of __numeric_traits_floating
   /* variable */ const const int __max_digits10;
   /* variable */ const const _Bool __is_signed;
   /* variable */ const const int __digits10;
   /* variable */ const const int __max_exponent10;
   template < typename _Value >
      struct __numeric_traits : public:
      __conditional_type::__value, __numeric_traits_integer<_Value>, __numeric_traits_floating<_Value> >::__type{
         struct __numeric_traits{
         }; // end of __numeric_traits
      }; // end of __numeric_traits
   /* variable */ const const int __max;
   /* variable */ const const int __min;
   /* variable */ const const int __digits;
   /* variable */ const const char __max;
   /* variable */ const const short __min;
   /* variable */ const const short __max;
} // end of __gnu_cxx
namespace std
{
   struct input_iterator_tag{
      struct input_iterator_tag{
      }; // end of input_iterator_tag
      inline constructor void input_iterator_tag () throw ();
      inline destructor void ~input_iterator_tag () throw ();
      inline constructor copyconstructor converter void input_iterator_tag (const const struct std::input_iterator_tag &  ) throw ();
   }; // end of input_iterator_tag
   struct output_iterator_tag{
      struct output_iterator_tag{
      }; // end of output_iterator_tag
   }; // end of output_iterator_tag
   struct forward_iterator_tag : public:
   struct std::input_iterator_tag{
      struct forward_iterator_tag{
      }; // end of forward_iterator_tag
      inline constructor void forward_iterator_tag () throw ();
      inline destructor void ~forward_iterator_tag () throw ();
      inline constructor copyconstructor converter void forward_iterator_tag (const const struct std::forward_iterator_tag &  ) throw ();
   }; // end of forward_iterator_tag
   struct bidirectional_iterator_tag : public:
   struct std::forward_iterator_tag{
      struct bidirectional_iterator_tag{
      }; // end of bidirectional_iterator_tag
      inline constructor void bidirectional_iterator_tag () throw ();
      inline constructor copyconstructor converter void bidirectional_iterator_tag (const const struct std::bidirectional_iterator_tag &  ) throw ();
      inline destructor void ~bidirectional_iterator_tag () throw ();
   }; // end of bidirectional_iterator_tag
   struct random_access_iterator_tag : public:
   struct std::bidirectional_iterator_tag{
      struct random_access_iterator_tag{
      }; // end of random_access_iterator_tag
      inline constructor void random_access_iterator_tag () throw ();
      inline constructor copyconstructor converter void random_access_iterator_tag (const const struct std::random_access_iterator_tag &  ) throw ();
      inline destructor void ~random_access_iterator_tag () throw ();
   }; // end of random_access_iterator_tag
   template < typename _Category, typename _Tp, typename _Distance = ptrdiff_t, typename _Pointer = _Tp *, typename _Reference = _Tp & >
      struct iterator{
         struct iterator{
         }; // end of iterator
         typedef _Category std::iterator::iterator_category;
         typedef _Tp std::iterator::value_type;
         typedef _Distance std::iterator::difference_type;
         typedef _Pointer std::iterator::pointer;
         typedef _Reference std::iterator::reference;
      }; // end of iterator
   template < typename _Iterator >
      struct iterator_traits{
         struct iterator_traits{
         }; // end of iterator_traits
         typedef typename _Iterator::iterator_category std::iterator_traits::iterator_category;
         typedef typename _Iterator::value_type std::iterator_traits::value_type;
         typedef typename _Iterator::difference_type std::iterator_traits::difference_type;
         typedef typename _Iterator::pointer std::iterator_traits::pointer;
         typedef typename _Iterator::reference std::iterator_traits::reference;
      }; // end of iterator_traits
   template < typename _Iter >
      inline typename iterator_traits<_Iter>::iterator_category __iterator_category (const const _Iter &  );
   template < typename _Iterator, _Bool _HasBase >
      struct _Iter_base{
         struct _Iter_base{
         }; // end of _Iter_base
         typedef _Iterator std::_Iter_base::iterator_type;
         static static iterator_type _S_base (_Iterator __it);
      }; // end of _Iter_base
} // end of std
namespace std
{
   template < typename  >
      struct _List_iterator{
      }; // end of _List_iterator
   template < typename  >
      struct _List_const_iterator{
      }; // end of _List_const_iterator
   template < typename _InputIterator >
      inline typename iterator_traits<_InputIterator>::difference_type __distance (_InputIterator __first, _InputIterator __last, struct std::input_iterator_tag );
   template < typename _RandomAccessIterator >
      inline typename iterator_traits<_RandomAccessIterator>::difference_type __distance (_RandomAccessIterator __first, _RandomAccessIterator __last, struct std::random_access_iterator_tag );
   template < typename _Tp >
      ptrdiff_t __distance (std::_List_iterator<_Tp> , std::_List_iterator<_Tp> , struct std::input_iterator_tag );
   template < typename _Tp >
      ptrdiff_t __distance (std::_List_const_iterator<_Tp> , std::_List_const_iterator<_Tp> , struct std::input_iterator_tag );
   template < typename _InputIterator >
      inline typename iterator_traits<_InputIterator>::difference_type distance (_InputIterator __first, _InputIterator __last);
   template < typename _InputIterator, typename _Distance >
      inline void __advance (_InputIterator &  __i, _Distance __n, struct std::input_iterator_tag );
   template < typename _BidirectionalIterator, typename _Distance >
      inline void __advance (_BidirectionalIterator &  __i, _Distance __n, struct std::bidirectional_iterator_tag );
   template < typename _RandomAccessIterator, typename _Distance >
      inline void __advance (_RandomAccessIterator &  __i, _Distance __n, struct std::random_access_iterator_tag );
   template < typename _InputIterator, typename _Distance >
      inline void advance (_InputIterator &  __i, _Distance __n);
} // end of std
namespace std
{
   template < typename _Iterator >
      class reverse_iterator : public:
      iterator::iterator_category, typename iterator_traits<_Iterator>::value_type, typename iterator_traits<_Iterator>::difference_type, typename iterator_traits<_Iterator>::pointer, typename iterator_traits<_Iterator>::reference>{
         class reverse_iterator{
         }; // end of reverse_iterator
      protected:
         typedef iterator_traits<_Iterator> std::reverse_iterator::__traits_type;
      public:
         typedef _Iterator std::reverse_iterator::iterator_type;
         typedef typename __traits_type::difference_type std::reverse_iterator::difference_type;
         typedef typename __traits_type::pointer std::reverse_iterator::pointer;
         typedef typename __traits_type::reference std::reverse_iterator::reference;
         constructor void reverse_iterator<_Iterator> ();
         constructor explicit void reverse_iterator<_Iterator> (iterator_type __x);
         constructor copyconstructor converter void reverse_iterator<_Iterator> (const const reverse_iterator<_Iterator> &  __x);
         template < typename _Iter >
            constructor converter void reverse_iterator<_Iterator> (const const reverse_iterator<_Iter> &  __x);
         iterator_type base ()const volatile restrict ;
         reference operator* ()const volatile restrict ;
         pointer operator-> ()const volatile restrict ;
         reverse_iterator<_Iterator> &  operator++ ();
         reverse_iterator<_Iterator> operator++ (int );
         reverse_iterator<_Iterator> &  operator-- ();
         reverse_iterator<_Iterator> operator-- (int );
         reverse_iterator<_Iterator> operator+ (difference_type __n)const volatile restrict ;
         reverse_iterator<_Iterator> &  operator+= (difference_type __n);
         reverse_iterator<_Iterator> operator- (difference_type __n)const volatile restrict ;
         reverse_iterator<_Iterator> &  operator-= (difference_type __n);
         reference operator[] (difference_type __n)const volatile restrict ;
      }; // end of reverse_iterator
   template < typename _Iterator >
      inline _Bool operator== (const const reverse_iterator<_Iterator> &  __x, const const reverse_iterator<_Iterator> &  __y);
   template < typename _Iterator >
      inline _Bool operator< (const const reverse_iterator<_Iterator> &  __x, const const reverse_iterator<_Iterator> &  __y);
   template < typename _Iterator >
      inline _Bool operator!= (const const reverse_iterator<_Iterator> &  __x, const const reverse_iterator<_Iterator> &  __y);
   template < typename _Iterator >
      inline _Bool operator> (const const reverse_iterator<_Iterator> &  __x, const const reverse_iterator<_Iterator> &  __y);
   template < typename _Iterator >
      inline _Bool operator<= (const const reverse_iterator<_Iterator> &  __x, const const reverse_iterator<_Iterator> &  __y);
   template < typename _Iterator >
      inline _Bool operator>= (const const reverse_iterator<_Iterator> &  __x, const const reverse_iterator<_Iterator> &  __y);
   template < typename _IteratorL, typename _IteratorR >
      inline _Bool operator== (const const reverse_iterator<_IteratorL> &  __x, const const reverse_iterator<_IteratorR> &  __y);
   template < typename _IteratorL, typename _IteratorR >
      inline _Bool operator< (const const reverse_iterator<_IteratorL> &  __x, const const reverse_iterator<_IteratorR> &  __y);
   template < typename _IteratorL, typename _IteratorR >
      inline _Bool operator!= (const const reverse_iterator<_IteratorL> &  __x, const const reverse_iterator<_IteratorR> &  __y);
   template < typename _IteratorL, typename _IteratorR >
      inline _Bool operator> (const const reverse_iterator<_IteratorL> &  __x, const const reverse_iterator<_IteratorR> &  __y);
   template < typename _IteratorL, typename _IteratorR >
      inline _Bool operator<= (const const reverse_iterator<_IteratorL> &  __x, const const reverse_iterator<_IteratorR> &  __y);
   template < typename _IteratorL, typename _IteratorR >
      inline _Bool operator>= (const const reverse_iterator<_IteratorL> &  __x, const const reverse_iterator<_IteratorR> &  __y);
   template < typename _Iterator >
      inline typename reverse_iterator<_Iterator>::difference_type operator- (const const reverse_iterator<_Iterator> &  __x, const const reverse_iterator<_Iterator> &  __y);
   template < typename _IteratorL, typename _IteratorR >
      inline typename reverse_iterator<_IteratorL>::difference_type operator- (const const reverse_iterator<_IteratorL> &  __x, const const reverse_iterator<_IteratorR> &  __y);
   template < typename _Iterator >
      inline reverse_iterator<_Iterator> operator+ (typename reverse_iterator<_Iterator>::difference_type __n, const const reverse_iterator<_Iterator> &  __x);
   template < typename _Container >
      class back_insert_iterator : public:
      iterator{
         class back_insert_iterator{
         }; // end of back_insert_iterator
      protected:
      public:
         typedef _Container std::back_insert_iterator::container_type;
         constructor explicit void back_insert_iterator<_Container> (_Container &  __x);
         back_insert_iterator<_Container> &  operator= (typename _Container::const_reference __value);
         back_insert_iterator<_Container> &  operator* ();
         back_insert_iterator<_Container> &  operator++ ();
         back_insert_iterator<_Container> operator++ (int );
      }; // end of back_insert_iterator
   template < typename _Container >
      inline back_insert_iterator<_Container> back_inserter (_Container &  __x);
   template < typename _Container >
      class front_insert_iterator : public:
      iterator{
         class front_insert_iterator{
         }; // end of front_insert_iterator
      protected:
      public:
         typedef _Container std::front_insert_iterator::container_type;
         constructor explicit void front_insert_iterator<_Container> (_Container &  __x);
         front_insert_iterator<_Container> &  operator= (typename _Container::const_reference __value);
         front_insert_iterator<_Container> &  operator* ();
         front_insert_iterator<_Container> &  operator++ ();
         front_insert_iterator<_Container> operator++ (int );
      }; // end of front_insert_iterator
   template < typename _Container >
      inline front_insert_iterator<_Container> front_inserter (_Container &  __x);
   template < typename _Container >
      class insert_iterator : public:
      iterator{
         class insert_iterator{
         }; // end of insert_iterator
      protected:
      public:
         typedef _Container std::insert_iterator::container_type;
         constructor void insert_iterator<_Container> (_Container &  __x, typename _Container::iterator __i);
         insert_iterator<_Container> &  operator= (typename _Container::const_reference __value);
         insert_iterator<_Container> &  operator* ();
         insert_iterator<_Container> &  operator++ ();
         insert_iterator<_Container> &  operator++ (int );
      }; // end of insert_iterator
   template < typename _Container, typename _Iterator >
      inline insert_iterator<_Container> inserter (_Container &  __x, _Iterator __i);
} // end of std
namespace __gnu_cxx
{
   using std::;
   using std::;
   template < typename _Iterator, typename _Container >
      class __normal_iterator{
         class __normal_iterator{
         }; // end of __normal_iterator
      protected:
         typedef iterator_traits<_Iterator> __gnu_cxx::__normal_iterator::__traits_type;
      public:
         typedef _Iterator __gnu_cxx::__normal_iterator::iterator_type;
         typedef typename __traits_type::iterator_category __gnu_cxx::__normal_iterator::iterator_category;
         typedef typename __traits_type::value_type __gnu_cxx::__normal_iterator::value_type;
         typedef typename __traits_type::difference_type __gnu_cxx::__normal_iterator::difference_type;
         typedef typename __traits_type::reference __gnu_cxx::__normal_iterator::reference;
         typedef typename __traits_type::pointer __gnu_cxx::__normal_iterator::pointer;
         constructor void __normal_iterator<_Iterator, _Container> ();
         constructor explicit void __normal_iterator<_Iterator, _Container> (const const _Iterator &  __i);
         template < typename _Iter >
            constructor converter void __normal_iterator<_Iterator, _Container> (const const __normal_iterator<_Iter, typename __enable_if<(std::__are_same<_Iter, typename _Container::pointer>::__value), _Container>::__type> &  __i);
         reference operator* ()const volatile restrict ;
         pointer operator-> ()const volatile restrict ;
         __normal_iterator<_Iterator, _Container> &  operator++ ();
         __normal_iterator<_Iterator, _Container> operator++ (int );
         __normal_iterator<_Iterator, _Container> &  operator-- ();
         __normal_iterator<_Iterator, _Container> operator-- (int );
         reference operator[] (difference_type __n)const volatile restrict ;
         __normal_iterator<_Iterator, _Container> &  operator+= (difference_type __n);
         __normal_iterator<_Iterator, _Container> operator+ (difference_type __n)const volatile restrict ;
         __normal_iterator<_Iterator, _Container> &  operator-= (difference_type __n);
         __normal_iterator<_Iterator, _Container> operator- (difference_type __n)const volatile restrict ;
         const const _Iterator &  base ()const volatile restrict ;
      }; // end of __normal_iterator
   template < typename _IteratorL, typename _IteratorR, typename _Container >
      inline _Bool operator== (const const __normal_iterator<_IteratorL, _Container> &  __lhs, const const __normal_iterator<_IteratorR, _Container> &  __rhs);
   template < typename _Iterator, typename _Container >
      inline _Bool operator== (const const __normal_iterator<_Iterator, _Container> &  __lhs, const const __normal_iterator<_Iterator, _Container> &  __rhs);
   template < typename _IteratorL, typename _IteratorR, typename _Container >
      inline _Bool operator!= (const const __normal_iterator<_IteratorL, _Container> &  __lhs, const const __normal_iterator<_IteratorR, _Container> &  __rhs);
   template < typename _Iterator, typename _Container >
      inline _Bool operator!= (const const __normal_iterator<_Iterator, _Container> &  __lhs, const const __normal_iterator<_Iterator, _Container> &  __rhs);
   template < typename _IteratorL, typename _IteratorR, typename _Container >
      inline _Bool operator< (const const __normal_iterator<_IteratorL, _Container> &  __lhs, const const __normal_iterator<_IteratorR, _Container> &  __rhs);
   template < typename _Iterator, typename _Container >
      inline _Bool operator< (const const __normal_iterator<_Iterator, _Container> &  __lhs, const const __normal_iterator<_Iterator, _Container> &  __rhs);
   template < typename _IteratorL, typename _IteratorR, typename _Container >
      inline _Bool operator> (const const __normal_iterator<_IteratorL, _Container> &  __lhs, const const __normal_iterator<_IteratorR, _Container> &  __rhs);
   template < typename _Iterator, typename _Container >
      inline _Bool operator> (const const __normal_iterator<_Iterator, _Container> &  __lhs, const const __normal_iterator<_Iterator, _Container> &  __rhs);
   template < typename _IteratorL, typename _IteratorR, typename _Container >
      inline _Bool operator<= (const const __normal_iterator<_IteratorL, _Container> &  __lhs, const const __normal_iterator<_IteratorR, _Container> &  __rhs);
   template < typename _Iterator, typename _Container >
      inline _Bool operator<= (const const __normal_iterator<_Iterator, _Container> &  __lhs, const const __normal_iterator<_Iterator, _Container> &  __rhs);
   template < typename _IteratorL, typename _IteratorR, typename _Container >
      inline _Bool operator>= (const const __normal_iterator<_IteratorL, _Container> &  __lhs, const const __normal_iterator<_IteratorR, _Container> &  __rhs);
   template < typename _Iterator, typename _Container >
      inline _Bool operator>= (const const __normal_iterator<_Iterator, _Container> &  __lhs, const const __normal_iterator<_Iterator, _Container> &  __rhs);
   template < typename _IteratorL, typename _IteratorR, typename _Container >
      inline typename __normal_iterator<_IteratorL, _Container>::difference_type operator- (const const __normal_iterator<_IteratorL, _Container> &  __lhs, const const __normal_iterator<_IteratorR, _Container> &  __rhs);
   template < typename _Iterator, typename _Container >
      inline typename __normal_iterator<_Iterator, _Container>::difference_type operator- (const const __normal_iterator<_Iterator, _Container> &  __lhs, const const __normal_iterator<_Iterator, _Container> &  __rhs);
   template < typename _Iterator, typename _Container >
      inline __normal_iterator<_Iterator, _Container> operator+ (typename __normal_iterator<_Iterator, _Container>::difference_type __n, const const __normal_iterator<_Iterator, _Container> &  __i);
} // end of __gnu_cxx
namespace std
{
   template < typename _Iterator, typename _Container >
      _Iterator __niter_base (__gnu_cxx::__normal_iterator<_Iterator, _Container> __it);
} // end of std
namespace std
{
   namespace __debug
   {
   } // end of __debug
} // end of std
namespace __gnu_debug
{
   using namespace std::__debug;
} // end of __gnu_debug
namespace __gnu_cxx
{
   namespace __ops
   {
      struct _Iter_less_iter{
         struct _Iter_less_iter{
         }; // end of _Iter_less_iter
         template < typename _Iterator1, typename _Iterator2 >
            _Bool operator() (_Iterator1 __it1, _Iterator2 __it2)const volatile restrict ;
         inline constructor void _Iter_less_iter () throw ();
         inline constructor copyconstructor converter void _Iter_less_iter (const const struct __gnu_cxx::__ops::_Iter_less_iter &  ) throw ();
         inline destructor void ~_Iter_less_iter () throw ();
      }; // end of _Iter_less_iter
      inline struct __gnu_cxx::__ops::_Iter_less_iter __iter_less_iter ();
      struct _Iter_less_val{
         struct _Iter_less_val{
         }; // end of _Iter_less_val
         constructor void _Iter_less_val ();
         constructor explicit void _Iter_less_val (struct __gnu_cxx::__ops::_Iter_less_iter );
         template < typename _Iterator, typename _Value >
            _Bool operator() (_Iterator __it, _Value &  __val)const volatile restrict ;
         inline constructor copyconstructor converter void _Iter_less_val (const const struct __gnu_cxx::__ops::_Iter_less_val &  ) throw ();
         inline destructor void ~_Iter_less_val () throw ();
      }; // end of _Iter_less_val
      inline struct __gnu_cxx::__ops::_Iter_less_val __iter_less_val ();
      inline struct __gnu_cxx::__ops::_Iter_less_val __iter_comp_val (struct __gnu_cxx::__ops::_Iter_less_iter );
      struct _Val_less_iter{
         struct _Val_less_iter{
         }; // end of _Val_less_iter
         constructor void _Val_less_iter ();
         constructor explicit void _Val_less_iter (struct __gnu_cxx::__ops::_Iter_less_iter );
         template < typename _Value, typename _Iterator >
            _Bool operator() (_Value &  __val, _Iterator __it)const volatile restrict ;
         inline constructor copyconstructor converter void _Val_less_iter (const const struct __gnu_cxx::__ops::_Val_less_iter &  ) throw ();
         inline destructor void ~_Val_less_iter () throw ();
      }; // end of _Val_less_iter
      inline struct __gnu_cxx::__ops::_Val_less_iter __val_less_iter ();
      inline struct __gnu_cxx::__ops::_Val_less_iter __val_comp_iter (struct __gnu_cxx::__ops::_Iter_less_iter );
      struct _Iter_equal_to_iter{
         struct _Iter_equal_to_iter{
         }; // end of _Iter_equal_to_iter
         template < typename _Iterator1, typename _Iterator2 >
            _Bool operator() (_Iterator1 __it1, _Iterator2 __it2)const volatile restrict ;
         inline constructor void _Iter_equal_to_iter () throw ();
         inline constructor copyconstructor converter void _Iter_equal_to_iter (const const struct __gnu_cxx::__ops::_Iter_equal_to_iter &  ) throw ();
         inline destructor void ~_Iter_equal_to_iter () throw ();
      }; // end of _Iter_equal_to_iter
      inline struct __gnu_cxx::__ops::_Iter_equal_to_iter __iter_equal_to_iter ();
      struct _Iter_equal_to_val{
         struct _Iter_equal_to_val{
         }; // end of _Iter_equal_to_val
         template < typename _Iterator, typename _Value >
            _Bool operator() (_Iterator __it, _Value &  __val)const volatile restrict ;
         inline constructor void _Iter_equal_to_val () throw ();
         inline constructor copyconstructor converter void _Iter_equal_to_val (const const struct __gnu_cxx::__ops::_Iter_equal_to_val &  ) throw ();
         inline destructor void ~_Iter_equal_to_val () throw ();
      }; // end of _Iter_equal_to_val
      inline struct __gnu_cxx::__ops::_Iter_equal_to_val __iter_equal_to_val ();
      inline struct __gnu_cxx::__ops::_Iter_equal_to_val __iter_comp_val (struct __gnu_cxx::__ops::_Iter_equal_to_iter );
      template < typename _Compare >
         struct _Iter_comp_iter{
            struct _Iter_comp_iter{
            }; // end of _Iter_comp_iter
            constructor explicit void _Iter_comp_iter<_Compare> (_Compare __comp);
            template < typename _Iterator1, typename _Iterator2 >
               _Bool operator() (_Iterator1 __it1, _Iterator2 __it2);
         }; // end of _Iter_comp_iter
      template < typename _Compare >
         inline _Iter_comp_iter<_Compare> __iter_comp_iter (_Compare __comp);
      template < typename _Compare >
         struct _Iter_comp_val{
            struct _Iter_comp_val{
            }; // end of _Iter_comp_val
            constructor explicit void _Iter_comp_val<_Compare> (_Compare __comp);
            constructor explicit void _Iter_comp_val<_Compare> (const const _Iter_comp_iter<_Compare> &  __comp);
            template < typename _Iterator, typename _Value >
               _Bool operator() (_Iterator __it, _Value &  __val);
         }; // end of _Iter_comp_val
      template < typename _Compare >
         inline _Iter_comp_val<_Compare> __iter_comp_val (_Compare __comp);
      template < typename _Compare >
         inline _Iter_comp_val<_Compare> __iter_comp_val (_Iter_comp_iter<_Compare> __comp);
      template < typename _Compare >
         struct _Val_comp_iter{
            struct _Val_comp_iter{
            }; // end of _Val_comp_iter
            constructor explicit void _Val_comp_iter<_Compare> (_Compare __comp);
            constructor explicit void _Val_comp_iter<_Compare> (const const _Iter_comp_iter<_Compare> &  __comp);
            template < typename _Value, typename _Iterator >
               _Bool operator() (_Value &  __val, _Iterator __it);
         }; // end of _Val_comp_iter
      template < typename _Compare >
         inline _Val_comp_iter<_Compare> __val_comp_iter (_Compare __comp);
      template < typename _Compare >
         inline _Val_comp_iter<_Compare> __val_comp_iter (_Iter_comp_iter<_Compare> __comp);
      template < typename _Value >
         struct _Iter_equals_val{
            struct _Iter_equals_val{
            }; // end of _Iter_equals_val
            constructor explicit void _Iter_equals_val<_Value> (_Value &  __value);
            template < typename _Iterator >
               _Bool operator() (_Iterator __it);
         }; // end of _Iter_equals_val
      template < typename _Value >
         inline _Iter_equals_val<_Value> __iter_equals_val (_Value &  __val);
      template < typename _Iterator1 >
         struct _Iter_equals_iter{
            struct _Iter_equals_iter{
            }; // end of _Iter_equals_iter
            constructor explicit void _Iter_equals_iter<_Iterator1> (_Iterator1 __it1);
            template < typename _Iterator2 >
               _Bool operator() (_Iterator2 __it2);
         }; // end of _Iter_equals_iter
      template < typename _Iterator >
         inline _Iter_equals_iter<_Iterator> __iter_comp_iter (struct __gnu_cxx::__ops::_Iter_equal_to_iter , _Iterator __it);
      template < typename _Predicate >
         struct _Iter_pred{
            struct _Iter_pred{
            }; // end of _Iter_pred
            constructor explicit void _Iter_pred<_Predicate> (_Predicate __pred);
            template < typename _Iterator >
               _Bool operator() (_Iterator __it);
         }; // end of _Iter_pred
      template < typename _Predicate >
         inline _Iter_pred<_Predicate> __pred_iter (_Predicate __pred);
      template < typename _Compare, typename _Value >
         struct _Iter_comp_to_val{
            struct _Iter_comp_to_val{
            }; // end of _Iter_comp_to_val
            constructor void _Iter_comp_to_val<_Compare, _Value> (_Compare __comp, _Value &  __value);
            template < typename _Iterator >
               _Bool operator() (_Iterator __it);
         }; // end of _Iter_comp_to_val
      template < typename _Compare, typename _Value >
         _Iter_comp_to_val<_Compare, _Value> __iter_comp_val (_Compare __comp, _Value &  __val);
      template < typename _Compare, typename _Iterator1 >
         struct _Iter_comp_to_iter{
            struct _Iter_comp_to_iter{
            }; // end of _Iter_comp_to_iter
            constructor void _Iter_comp_to_iter<_Compare, _Iterator1> (_Compare __comp, _Iterator1 __it1);
            template < typename _Iterator2 >
               _Bool operator() (_Iterator2 __it2);
         }; // end of _Iter_comp_to_iter
      template < typename _Compare, typename _Iterator >
         inline _Iter_comp_to_iter<_Compare, _Iterator> __iter_comp_iter (_Iter_comp_iter<_Compare> __comp, _Iterator __it);
      template < typename _Predicate >
         struct _Iter_negate{
            struct _Iter_negate{
            }; // end of _Iter_negate
            constructor explicit void _Iter_negate<_Predicate> (_Predicate __pred);
            template < typename _Iterator >
               _Bool operator() (_Iterator __it);
         }; // end of _Iter_negate
      template < typename _Predicate >
         inline _Iter_negate<_Predicate> __negate (_Iter_pred<_Predicate> __pred);
   } // end of __ops
} // end of __gnu_cxx
namespace std
{
   template < _Bool _BoolType >
      struct __iter_swap{
         struct __iter_swap{
         }; // end of __iter_swap
         template < typename _ForwardIterator1, typename _ForwardIterator2 >
            static static void iter_swap (_ForwardIterator1 __a, _ForwardIterator2 __b);
      }; // end of __iter_swap
   template < typename _ForwardIterator1, typename _ForwardIterator2 >
      inline void iter_swap (_ForwardIterator1 __a, _ForwardIterator2 __b);
   template < typename _ForwardIterator1, typename _ForwardIterator2 >
      _ForwardIterator2 swap_ranges (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2);
   template < typename _Tp >
      inline const const _Tp &  min (const const _Tp &  __a, const const _Tp &  __b);
   template < typename _Tp >
      inline const const _Tp &  max (const const _Tp &  __a, const const _Tp &  __b);
   template < typename _Tp, typename _Compare >
      inline const const _Tp &  min (const const _Tp &  __a, const const _Tp &  __b, _Compare __comp);
   template < typename _Tp, typename _Compare >
      inline const const _Tp &  max (const const _Tp &  __a, const const _Tp &  __b, _Compare __comp);
   template < typename _Iterator >
      inline _Iterator __niter_base (_Iterator __it);
   template < _Bool, _Bool, typename  >
      struct __copy_move{
         struct __copy_move{
         }; // end of __copy_move
         template < typename _II, typename _OI >
            static static _OI __copy_m (_II __first, _II __last, _OI __result);
      }; // end of __copy_move
   template < _Bool _IsMove, typename _II, typename _OI >
      inline _OI __copy_move_a (_II __first, _II __last, _OI __result);
   template < typename _CharT >
      struct char_traits : public:
      __gnu_cxx::char_traits<_CharT>{
      }; // end of char_traits
   template < typename _CharT, typename _Traits >
      class istreambuf_iterator : public:
      iterator{
      }; // end of istreambuf_iterator
   template < typename _CharT, typename _Traits >
      class ostreambuf_iterator : public:
      iterator{
      }; // end of ostreambuf_iterator
   template < _Bool _IsMove, typename _CharT >
      typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type __copy_move_a2 (_CharT *  , _CharT *  , ostreambuf_iterator<_CharT, char_traits<_CharT> > );
   template < _Bool _IsMove, typename _CharT >
      typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, ostreambuf_iterator<_CharT, char_traits<_CharT> > >::__type __copy_move_a2 (const const _CharT *  , const const _CharT *  , ostreambuf_iterator<_CharT, char_traits<_CharT> > );
   template < _Bool _IsMove, typename _CharT >
      typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, _CharT *>::__type __copy_move_a2 (istreambuf_iterator<_CharT, char_traits<_CharT> > , istreambuf_iterator<_CharT, char_traits<_CharT> > , _CharT *  );
   template < _Bool _IsMove, typename _II, typename _OI >
      inline _OI __copy_move_a2 (_II __first, _II __last, _OI __result);
   template < typename _II, typename _OI >
      inline _OI copy (_II __first, _II __last, _OI __result);
   template < _Bool, _Bool, typename  >
      struct __copy_move_backward{
         struct __copy_move_backward{
         }; // end of __copy_move_backward
         template < typename _BI1, typename _BI2 >
            static static _BI2 __copy_move_b (_BI1 __first, _BI1 __last, _BI2 __result);
      }; // end of __copy_move_backward
   template < _Bool _IsMove, typename _BI1, typename _BI2 >
      inline _BI2 __copy_move_backward_a (_BI1 __first, _BI1 __last, _BI2 __result);
   template < _Bool _IsMove, typename _BI1, typename _BI2 >
      inline _BI2 __copy_move_backward_a2 (_BI1 __first, _BI1 __last, _BI2 __result);
   template < typename _BI1, typename _BI2 >
      inline _BI2 copy_backward (_BI1 __first, _BI1 __last, _BI2 __result);
   template < typename _ForwardIterator, typename _Tp >
      inline typename __gnu_cxx::__enable_if::__value, void>::__type __fill_a (_ForwardIterator __first, _ForwardIterator __last, const const _Tp &  __value);
   template < typename _ForwardIterator, typename _Tp >
      inline typename __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, void>::__type __fill_a (_ForwardIterator __first, _ForwardIterator __last, const const _Tp &  __value);
   template < typename _Tp >
      inline typename __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, void>::__type __fill_a (_Tp *  __first, _Tp *  __last, const const _Tp &  __c);
   template < typename _ForwardIterator, typename _Tp >
      inline void fill (_ForwardIterator __first, _ForwardIterator __last, const const _Tp &  __value);
   template < typename _OutputIterator, typename _Size, typename _Tp >
      inline typename __gnu_cxx::__enable_if::__value, _OutputIterator>::__type __fill_n_a (_OutputIterator __first, _Size __n, const const _Tp &  __value);
   template < typename _OutputIterator, typename _Size, typename _Tp >
      inline typename __gnu_cxx::__enable_if<__is_scalar<_Tp>::__value, _OutputIterator>::__type __fill_n_a (_OutputIterator __first, _Size __n, const const _Tp &  __value);
   template < typename _Size, typename _Tp >
      inline typename __gnu_cxx::__enable_if<__is_byte<_Tp>::__value, _Tp *>::__type __fill_n_a (_Tp *  __first, _Size __n, const const _Tp &  __c);
   template < typename _OI, typename _Size, typename _Tp >
      inline _OI fill_n (_OI __first, _Size __n, const const _Tp &  __value);
   template < _Bool _BoolType >
      struct __equal{
         struct __equal{
         }; // end of __equal
         template < typename _II1, typename _II2 >
            static static _Bool equal (_II1 __first1, _II1 __last1, _II2 __first2);
      }; // end of __equal
   template < typename _II1, typename _II2 >
      inline _Bool __equal_aux (_II1 __first1, _II1 __last1, _II2 __first2);
   template < typename , typename  >
      struct __lc_rai{
         struct __lc_rai{
         }; // end of __lc_rai
         template < typename _II1, typename _II2 >
            static static _II1 __newlast1 (_II1 , _II1 __last1, _II2 , _II2 );
         template < typename _II >
            static static _Bool __cnd2 (_II __first, _II __last);
      }; // end of __lc_rai
   template < typename _II1, typename _II2, typename _Compare >
      _Bool __lexicographical_compare_impl (_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, _Compare __comp);
   template < _Bool _BoolType >
      struct __lexicographical_compare{
         struct __lexicographical_compare{
         }; // end of __lexicographical_compare
         template < typename _II1, typename _II2 >
            static static _Bool __lc (_II1 , _II1 , _II2 , _II2 );
      }; // end of __lexicographical_compare
   template < typename _II1, typename _II2 >
      static _Bool __lc (_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2);
   template < typename _II1, typename _II2 >
      inline _Bool __lexicographical_compare_aux (_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2);
   template < typename _ForwardIterator, typename _Tp, typename _Compare >
      _ForwardIterator __lower_bound (_ForwardIterator __first, _ForwardIterator __last, const const _Tp &  __val, _Compare __comp);
   template < typename _ForwardIterator, typename _Tp >
      inline _ForwardIterator lower_bound (_ForwardIterator __first, _ForwardIterator __last, const const _Tp &  __val);
   inline int __lg (int __n);
   inline unsigned int __lg (unsigned int __n);
   inline long __lg (long __n);
   inline unsigned long __lg (unsigned long __n);
   inline long long __lg (long long __n);
   inline unsigned long long __lg (unsigned long long __n);
   template < typename _II1, typename _II2 >
      inline _Bool equal (_II1 __first1, _II1 __last1, _II2 __first2);
   template < typename _IIter1, typename _IIter2, typename _BinaryPredicate >
      inline _Bool equal (_IIter1 __first1, _IIter1 __last1, _IIter2 __first2, _BinaryPredicate __binary_pred);
   template < typename _II1, typename _II2 >
      inline _Bool lexicographical_compare (_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2);
   template < typename _II1, typename _II2, typename _Compare >
      inline _Bool lexicographical_compare (_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2, _Compare __comp);
   template < typename _InputIterator1, typename _InputIterator2, typename _BinaryPredicate >
      pair<_InputIterator1, _InputIterator2> __mismatch (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _BinaryPredicate __binary_pred);
   template < typename _InputIterator1, typename _InputIterator2 >
      inline pair<_InputIterator1, _InputIterator2> mismatch (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2);
   template < typename _InputIterator1, typename _InputIterator2, typename _BinaryPredicate >
      inline pair<_InputIterator1, _InputIterator2> mismatch (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _BinaryPredicate __binary_pred);
} // end of std
extern "C" extern void *  __builtin_memmove (void *  , const const void *  , unsigned int ) throw ();
extern "C" extern void *  __builtin_memset (void *  , int , unsigned int ) throw ();
extern "C" extern int __builtin_memcmp (const const void *  , const const void *  , unsigned int ) throw ();
extern "C" extern int __builtin_clz (unsigned int ) throw ();
extern "C" extern int __builtin_clzl (unsigned long ) throw ();
extern "C" extern int __builtin_clzll (unsigned long long ) throw ();
extern "C" struct {
}; // end of 
typedef struct div_t div_t;
struct {
   inline destructor void ~ () throw ();
   inline constructor void  () throw ();
   inline constructor copyconstructor converter void  (const const ldiv_t &  ) throw ();
}; // end of 
typedef struct ldiv_t ldiv_t;
struct {
   inline constructor void  () throw ();
   inline constructor copyconstructor converter void  (const const lldiv_t &  ) throw ();
}; // end of 
typedef struct lldiv_t lldiv_t;
extern size_t __ctype_get_mb_cur_max () throw ();
extern double atof (const const char *  __nptr) throw ();
extern int atoi (const const char *  __nptr) throw ();
extern long atol (const const char *  __nptr) throw ();
extern long long atoll (const const char *  __nptr) throw ();
extern double strtod (const const char *  __nptr, char *  *  __endptr) throw ();
extern float strtof (const const char *  __nptr, char *  *  __endptr) throw ();
extern long double strtold (const const char *  __nptr, char *  *  __endptr) throw ();
extern long strtol (const const char *  __nptr, char *  *  __endptr, int __base) throw ();
extern unsigned long strtoul (const const char *  __nptr, char *  *  __endptr, int __base) throw ();
extern long long strtoq (const const char *  __nptr, char *  *  __endptr, int __base) throw ();
extern unsigned long long strtouq (const const char *  __nptr, char *  *  __endptr, int __base) throw ();
extern long long strtoll (const const char *  __nptr, char *  *  __endptr, int __base) throw ();
extern unsigned long long strtoull (const const char *  __nptr, char *  *  __endptr, int __base) throw ();
extern int strfromd (char *  __dest, size_t __size, const const char *  __format, double __f) throw ();
extern int strfromf (char *  __dest, size_t __size, const const char *  __format, float __f) throw ();
extern int strfroml (char *  __dest, size_t __size, const const char *  __format, long double __f) throw ();
struct __locale_struct{
   struct __locale_struct{
   }; // end of __locale_struct
   struct __locale_data{
   }; // end of __locale_data
}; // end of __locale_struct
typedef struct __locale_struct *  __locale_t;
typedef __locale_t locale_t;
extern long strtol_l (const const char *  __nptr, char *  *  __endptr, int __base, locale_t __loc) throw ();
extern unsigned long strtoul_l (const const char *  __nptr, char *  *  __endptr, int __base, locale_t __loc) throw ();
extern long long strtoll_l (const const char *  __nptr, char *  *  __endptr, int __base, locale_t __loc) throw ();
extern unsigned long long strtoull_l (const const char *  __nptr, char *  *  __endptr, int __base, locale_t __loc) throw ();
extern double strtod_l (const const char *  __nptr, char *  *  __endptr, locale_t __loc) throw ();
extern float strtof_l (const const char *  __nptr, char *  *  __endptr, locale_t __loc) throw ();
extern long double strtold_l (const const char *  __nptr, char *  *  __endptr, locale_t __loc) throw ();
extern char *  l64a (long __n) throw ();
extern long a64l (const const char *  __s) throw ();
extern "C" typedef unsigned char __u_char;
typedef unsigned short __u_short;
typedef unsigned int __u_int;
typedef unsigned long __u_long;
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef short __int16_t;
typedef unsigned short __uint16_t;
typedef int __int32_t;
typedef unsigned int __uint32_t;
typedef long long __int64_t;
typedef unsigned long long __uint64_t;
typedef long long __quad_t;
typedef unsigned long long __u_quad_t;
typedef long long __intmax_t;
typedef unsigned long long __uintmax_t;
typedef __u_quad_t __dev_t;
typedef unsigned int __uid_t;
typedef unsigned int __gid_t;
typedef unsigned long __ino_t;
typedef __u_quad_t __ino64_t;
typedef unsigned int __mode_t;
typedef unsigned int __nlink_t;
typedef long __off_t;
typedef __quad_t __off64_t;
typedef int __pid_t;
struct {
}; // end of 
typedef struct __fsid_t __fsid_t;
typedef long __clock_t;
typedef unsigned long __rlim_t;
typedef __u_quad_t __rlim64_t;
typedef unsigned int __id_t;
typedef long __time_t;
typedef unsigned int __useconds_t;
typedef long __suseconds_t;
typedef int __daddr_t;
typedef int __key_t;
typedef int __clockid_t;
typedef void *  __timer_t;
typedef long __blksize_t;
typedef long __blkcnt_t;
typedef __quad_t __blkcnt64_t;
typedef unsigned long __fsblkcnt_t;
typedef __u_quad_t __fsblkcnt64_t;
typedef unsigned long __fsfilcnt_t;
typedef __u_quad_t __fsfilcnt64_t;
typedef int __fsword_t;
typedef int __ssize_t;
typedef long __syscall_slong_t;
typedef unsigned long __syscall_ulong_t;
typedef __off64_t __loff_t;
typedef __quad_t *  __qaddr_t;
typedef char *  __caddr_t;
typedef int __intptr_t;
typedef unsigned int __socklen_t;
typedef int __sig_atomic_t;
typedef __u_char u_char;
typedef __u_short u_short;
typedef __u_int u_int;
typedef __u_long u_long;
typedef __quad_t quad_t;
typedef __u_quad_t u_quad_t;
typedef __fsid_t fsid_t;
typedef __loff_t loff_t;
typedef __ino_t ino_t;
typedef __ino64_t ino64_t;
typedef __dev_t dev_t;
typedef __gid_t gid_t;
typedef __mode_t mode_t;
typedef __nlink_t nlink_t;
typedef __uid_t uid_t;
typedef __off_t off_t;
typedef __off64_t off64_t;
typedef __pid_t pid_t;
typedef __id_t id_t;
typedef __ssize_t ssize_t;
typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;
typedef __key_t key_t;
typedef __clock_t clock_t;
typedef __clockid_t clockid_t;
typedef __time_t time_t;
typedef __timer_t timer_t;
typedef __useconds_t useconds_t;
typedef __suseconds_t suseconds_t;
typedef unsigned long ulong;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef __int8_t int8_t;
typedef __int16_t int16_t;
typedef __int32_t int32_t;
typedef __int64_t int64_t;
typedef unsigned char u_int8_t;
typedef unsigned short u_int16_t;
typedef unsigned int u_int32_t;
typedef unsigned long long u_int64_t;
typedef int register_t;
static inline __uint16_t __uint16_identity (__uint16_t __x);
static inline __uint32_t __uint32_identity (__uint32_t __x);
static inline __uint64_t __uint64_identity (__uint64_t __x);
struct {
}; // end of 
typedef struct __sigset_t __sigset_t;
typedef __sigset_t sigset_t;
struct timeval{
   struct timeval{
   }; // end of timeval
}; // end of timeval
struct timespec{
   struct timespec{
   }; // end of timespec
}; // end of timespec
typedef long __fd_mask;
struct {
}; // end of 
typedef struct fd_set fd_set;
typedef __fd_mask fd_mask;
extern "C" extern int select (int __nfds, fd_set *  __readfds, fd_set *  __writefds, fd_set *  __exceptfds, struct timeval *  __timeout);
extern int pselect (int __nfds, fd_set *  __readfds, fd_set *  __writefds, fd_set *  __exceptfds, const const struct timespec *  __timeout, const const __sigset_t *  __sigmask);
extern "C" extern unsigned int gnu_dev_major (__dev_t __dev) throw ();
extern unsigned int gnu_dev_minor (__dev_t __dev) throw ();
extern __dev_t gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw ();
typedef __blksize_t blksize_t;
typedef __blkcnt_t blkcnt_t;
typedef __fsblkcnt_t fsblkcnt_t;
typedef __fsfilcnt_t fsfilcnt_t;
typedef __blkcnt64_t blkcnt64_t;
typedef __fsblkcnt64_t fsblkcnt64_t;
typedef __fsfilcnt64_t fsfilcnt64_t;
struct __pthread_rwlock_arch_t{
   struct __pthread_rwlock_arch_t{
   }; // end of __pthread_rwlock_arch_t
}; // end of __pthread_rwlock_arch_t
struct __pthread_internal_slist{
   struct __pthread_internal_slist{
   }; // end of __pthread_internal_slist
}; // end of __pthread_internal_slist
typedef struct __pthread_internal_slist __pthread_slist_t;
struct __pthread_mutex_s{
   struct __pthread_mutex_s{
   }; // end of __pthread_mutex_s
   union {
      struct {
      }; // end of 
   }; // end of 
}; // end of __pthread_mutex_s
struct __pthread_cond_s{
   struct __pthread_cond_s{
   }; // end of __pthread_cond_s
   union {
      struct {
      }; // end of 
   }; // end of 
   union {
      struct {
      }; // end of 
   }; // end of 
}; // end of __pthread_cond_s
typedef unsigned long pthread_t;
union {
}; // end of 
typedef union pthread_mutexattr_t pthread_mutexattr_t;
union {
}; // end of 
typedef union pthread_condattr_t pthread_condattr_t;
typedef unsigned int pthread_key_t;
typedef int pthread_once_t;
union pthread_attr_t{
   union pthread_attr_t{
   }; // end of pthread_attr_t
}; // end of pthread_attr_t
typedef union pthread_attr_t pthread_attr_t;
union {
}; // end of 
typedef union pthread_mutex_t pthread_mutex_t;
union {
}; // end of 
typedef union pthread_cond_t pthread_cond_t;
union {
}; // end of 
typedef union pthread_rwlock_t pthread_rwlock_t;
union {
}; // end of 
typedef union pthread_rwlockattr_t pthread_rwlockattr_t;
typedef volatile volatile int pthread_spinlock_t;
union {
}; // end of 
typedef union pthread_barrier_t pthread_barrier_t;
union {
}; // end of 
typedef union pthread_barrierattr_t pthread_barrierattr_t;
extern long random () throw ();
extern void srandom (unsigned int __seed) throw ();
extern char *  initstate (unsigned int __seed, char *  __statebuf, size_t __statelen) throw ();
extern char *  setstate (char *  __statebuf) throw ();
struct random_data{
   struct random_data{
   }; // end of random_data
}; // end of random_data
extern int random_r (struct random_data *  __buf, int32_t *  __result) throw ();
extern int srandom_r (unsigned int __seed, struct random_data *  __buf) throw ();
extern int initstate_r (unsigned int __seed, char *  __statebuf, size_t __statelen, struct random_data *  __buf) throw ();
extern int setstate_r (char *  __statebuf, struct random_data *  __buf) throw ();
extern int rand () throw ();
extern void srand (unsigned int __seed) throw ();
extern int rand_r (unsigned int *  __seed) throw ();
extern double drand48 () throw ();
extern double erand48 (unsigned short * __xsubi) throw ();
extern long lrand48 () throw ();
extern long nrand48 (unsigned short * __xsubi) throw ();
extern long mrand48 () throw ();
extern long jrand48 (unsigned short * __xsubi) throw ();
extern void srand48 (long __seedval) throw ();
extern unsigned short *  seed48 (unsigned short * __seed16v) throw ();
extern void lcong48 (unsigned short * __param) throw ();
struct drand48_data{
   struct drand48_data{
   }; // end of drand48_data
}; // end of drand48_data
extern int drand48_r (struct drand48_data *  __buffer, double *  __result) throw ();
extern int erand48_r (unsigned short * __xsubi, struct drand48_data *  __buffer, double *  __result) throw ();
extern int lrand48_r (struct drand48_data *  __buffer, long *  __result) throw ();
extern int nrand48_r (unsigned short * __xsubi, struct drand48_data *  __buffer, long *  __result) throw ();
extern int mrand48_r (struct drand48_data *  __buffer, long *  __result) throw ();
extern int jrand48_r (unsigned short * __xsubi, struct drand48_data *  __buffer, long *  __result) throw ();
extern int srand48_r (long __seedval, struct drand48_data *  __buffer) throw ();
extern int seed48_r (unsigned short * __seed16v, struct drand48_data *  __buffer) throw ();
extern int lcong48_r (unsigned short * __param, struct drand48_data *  __buffer) throw ();
extern void *  malloc (size_t __size) throw ();
extern void *  calloc (size_t __nmemb, size_t __size) throw ();
extern void *  realloc (void *  __ptr, size_t __size) throw ();
extern void *  reallocarray (void *  __ptr, size_t __nmemb, size_t __size) throw ();
extern void free (void *  __ptr) throw ();
extern "C" extern void *  alloca (size_t __size) throw ();
extern void *  valloc (size_t __size) throw ();
extern int posix_memalign (void *  *  __memptr, size_t __alignment, size_t __size) throw ();
extern void *  aligned_alloc (size_t __alignment, size_t __size) throw ();
extern void abort () throw ();
extern int atexit (void (void) *  __func) throw ();
extern int at_quick_exit (void (void) *  __func) throw ();
extern int on_exit (void (int, void *) *  __func, void *  __arg) throw ();
extern void exit (int __status) throw ();
extern void quick_exit (int __status) throw ();
extern void _Exit (int __status) throw ();
extern char *  getenv (const const char *  __name) throw ();
extern char *  secure_getenv (const const char *  __name) throw ();
extern int putenv (char *  __string) throw ();
extern int setenv (const const char *  __name, const const char *  __value, int __replace) throw ();
extern int unsetenv (const const char *  __name) throw ();
extern int clearenv () throw ();
extern char *  mktemp (char *  __template) throw ();
extern int mkstemp (char *  __template);
extern int mkstemp64 (char *  __template);
extern int mkstemps (char *  __template, int __suffixlen);
extern int mkstemps64 (char *  __template, int __suffixlen);
extern char *  mkdtemp (char *  __template) throw ();
extern int mkostemp (char *  __template, int __flags);
extern int mkostemp64 (char *  __template, int __flags);
extern int mkostemps (char *  __template, int __suffixlen, int __flags);
extern int mkostemps64 (char *  __template, int __suffixlen, int __flags);
extern int system (const const char *  __command);
extern char *  canonicalize_file_name (const const char *  __name) throw ();
extern char *  realpath (const const char *  __name, char *  __resolved) throw ();
typedef int (const void *, const void *) *  __compar_fn_t;
typedef __compar_fn_t comparison_fn_t;
typedef int (const void *, const void *, void *) *  __compar_d_fn_t;
extern void *  bsearch (const const void *  __key, const const void *  __base, size_t __nmemb, size_t __size, __compar_fn_t __compar);
extern void qsort (void *  __base, size_t __nmemb, size_t __size, __compar_fn_t __compar);
extern void qsort_r (void *  __base, size_t __nmemb, size_t __size, __compar_d_fn_t __compar, void *  __arg);
extern int abs (int __x) throw ();
extern long labs (long __x) throw ();
extern long long llabs (long long __x) throw ();
extern div_t div (int __numer, int __denom) throw ();
extern ldiv_t ldiv (long __numer, long __denom) throw ();
extern lldiv_t lldiv (long long __numer, long long __denom) throw ();
extern char *  ecvt (double __value, int __ndigit, int *  __decpt, int *  __sign) throw ();
extern char *  fcvt (double __value, int __ndigit, int *  __decpt, int *  __sign) throw ();
extern char *  gcvt (double __value, int __ndigit, char *  __buf) throw ();
extern char *  qecvt (long double __value, int __ndigit, int *  __decpt, int *  __sign) throw ();
extern char *  qfcvt (long double __value, int __ndigit, int *  __decpt, int *  __sign) throw ();
extern char *  qgcvt (long double __value, int __ndigit, char *  __buf) throw ();
extern int ecvt_r (double __value, int __ndigit, int *  __decpt, int *  __sign, char *  __buf, size_t __len) throw ();
extern int fcvt_r (double __value, int __ndigit, int *  __decpt, int *  __sign, char *  __buf, size_t __len) throw ();
extern int qecvt_r (long double __value, int __ndigit, int *  __decpt, int *  __sign, char *  __buf, size_t __len) throw ();
extern int qfcvt_r (long double __value, int __ndigit, int *  __decpt, int *  __sign, char *  __buf, size_t __len) throw ();
extern int mblen (const const char *  __s, size_t __n) throw ();
extern int mbtowc (wchar_t *  __pwc, const const char *  __s, size_t __n) throw ();
extern int wctomb (char *  __s, wchar_t __wchar) throw ();
extern size_t mbstowcs (wchar_t *  __pwcs, const const char *  __s, size_t __n) throw ();
extern size_t wcstombs (char *  __s, const const wchar_t *  __pwcs, size_t __n) throw ();
extern int rpmatch (const const char *  __response) throw ();
extern int getsubopt (char *  *  __optionp, const char *  *  __tokens, char *  *  __valuep) throw ();
extern void setkey (const const char *  __key) throw ();
extern int posix_openpt (int __oflag);
extern int grantpt (int __fd) throw ();
extern int unlockpt (int __fd) throw ();
extern char *  ptsname (int __fd) throw ();
extern int ptsname_r (int __fd, char *  __buf, size_t __buflen) throw ();
extern int getpt ();
extern int getloadavg (double * __loadavg, int __nelem) throw ();
extern namespace std
{
   using ::;
   inline long abs (long __i);
   inline long long abs (long long __x);
   inline double abs (double __x);
   inline float abs (float __x);
   inline long double abs (long double __x);
   inline __float128 abs (__float128 __x);
} // end of std
extern "C" extern long __builtin_labs (long ) throw ();
extern "C" extern long long __builtin_llabs (long long ) throw ();
extern "C" extern double __builtin_fabs (double ) throw ();
extern "C" extern float __builtin_fabsf (float ) throw ();
extern "C" extern long double __builtin_fabsl (long double ) throw ();
extern namespace std
{
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   inline ldiv_t div (long __i, long __j);
} // end of std
namespace __gnu_cxx
{
   using ::;
   using ::;
   using ::;
   inline lldiv_t div (long long __n, long long __d);
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
} // end of __gnu_cxx
namespace std
{
   using ::__gnu_cxx::;
   using ::__gnu_cxx::;
   using ::__gnu_cxx::;
   using ::__gnu_cxx::;
   using ::__gnu_cxx::;
   using ::__gnu_cxx::;
   using ::__gnu_cxx::;
   using ::__gnu_cxx::;
   using ::__gnu_cxx::;
   using ::__gnu_cxx::;
} // end of std
namespace std
{
   template < typename _FIter, typename _Tp >
      _Bool binary_search (_FIter , _FIter , const const _Tp &  );
   template < typename _FIter, typename _Tp, typename _Compare >
      _Bool binary_search (_FIter , _FIter , const const _Tp &  , _Compare );
   template < typename _IIter, typename _OIter >
      _OIter copy (_IIter , _IIter , _OIter );
   template < typename _BIter1, typename _BIter2 >
      _BIter2 copy_backward (_BIter1 , _BIter1 , _BIter2 );
   template < typename _FIter, typename _Tp >
      pair<_FIter, _FIter> equal_range (_FIter , _FIter , const const _Tp &  );
   template < typename _FIter, typename _Tp, typename _Compare >
      pair<_FIter, _FIter> equal_range (_FIter , _FIter , const const _Tp &  , _Compare );
   template < typename _FIter, typename _Tp >
      void fill (_FIter , _FIter , const const _Tp &  );
   template < typename _OIter, typename _Size, typename _Tp >
      _OIter fill_n (_OIter , _Size , const const _Tp &  );
   template < typename _FIter1, typename _FIter2 >
      _FIter1 find_end (_FIter1 , _FIter1 , _FIter2 , _FIter2 );
   template < typename _FIter1, typename _FIter2, typename _BinaryPredicate >
      _FIter1 find_end (_FIter1 , _FIter1 , _FIter2 , _FIter2 , _BinaryPredicate );
   template < typename _IIter1, typename _IIter2 >
      _Bool includes (_IIter1 , _IIter1 , _IIter2 , _IIter2 );
   template < typename _IIter1, typename _IIter2, typename _Compare >
      _Bool includes (_IIter1 , _IIter1 , _IIter2 , _IIter2 , _Compare );
   template < typename _BIter >
      void inplace_merge (_BIter , _BIter , _BIter );
   template < typename _BIter, typename _Compare >
      void inplace_merge (_BIter , _BIter , _BIter , _Compare );
   template < typename _FIter1, typename _FIter2 >
      void iter_swap (_FIter1 , _FIter2 );
   template < typename _FIter, typename _Tp >
      _FIter lower_bound (_FIter , _FIter , const const _Tp &  );
   template < typename _FIter, typename _Tp, typename _Compare >
      _FIter lower_bound (_FIter , _FIter , const const _Tp &  , _Compare );
   template < typename _RAIter >
      void make_heap (_RAIter , _RAIter );
   template < typename _RAIter, typename _Compare >
      void make_heap (_RAIter , _RAIter , _Compare );
   template < typename _Tp >
      const const _Tp &  max (const const _Tp &  , const const _Tp &  );
   template < typename _Tp, typename _Compare >
      const const _Tp &  max (const const _Tp &  , const const _Tp &  , _Compare );
   template < typename _Tp >
      const const _Tp &  min (const const _Tp &  , const const _Tp &  );
   template < typename _Tp, typename _Compare >
      const const _Tp &  min (const const _Tp &  , const const _Tp &  , _Compare );
   template < typename _BIter >
      _Bool next_permutation (_BIter , _BIter );
   template < typename _BIter, typename _Compare >
      _Bool next_permutation (_BIter , _BIter , _Compare );
   template < typename _IIter, typename _RAIter >
      _RAIter partial_sort_copy (_IIter , _IIter , _RAIter , _RAIter );
   template < typename _IIter, typename _RAIter, typename _Compare >
      _RAIter partial_sort_copy (_IIter , _IIter , _RAIter , _RAIter , _Compare );
   template < typename _RAIter >
      void pop_heap (_RAIter , _RAIter );
   template < typename _RAIter, typename _Compare >
      void pop_heap (_RAIter , _RAIter , _Compare );
   template < typename _BIter >
      _Bool prev_permutation (_BIter , _BIter );
   template < typename _BIter, typename _Compare >
      _Bool prev_permutation (_BIter , _BIter , _Compare );
   template < typename _RAIter >
      void push_heap (_RAIter , _RAIter );
   template < typename _RAIter, typename _Compare >
      void push_heap (_RAIter , _RAIter , _Compare );
   template < typename _FIter, typename _Tp >
      _FIter remove (_FIter , _FIter , const const _Tp &  );
   template < typename _FIter, typename _Predicate >
      _FIter remove_if (_FIter , _FIter , _Predicate );
   template < typename _IIter, typename _OIter, typename _Tp >
      _OIter remove_copy (_IIter , _IIter , _OIter , const const _Tp &  );
   template < typename _IIter, typename _OIter, typename _Predicate >
      _OIter remove_copy_if (_IIter , _IIter , _OIter , _Predicate );
   template < typename _IIter, typename _OIter, typename _Tp >
      _OIter replace_copy (_IIter , _IIter , _OIter , const const _Tp &  , const const _Tp &  );
   template < typename _Iter, typename _OIter, typename _Predicate, typename _Tp >
      _OIter replace_copy_if (_Iter , _Iter , _OIter , _Predicate , const const _Tp &  );
   template < typename _BIter >
      void reverse (_BIter , _BIter );
   template < typename _BIter, typename _OIter >
      _OIter reverse_copy (_BIter , _BIter , _OIter );
   namespace _V2
   {
      template < typename _FIter >
         _FIter rotate (_FIter , _FIter , _FIter );
   } // end of _V2
   template < typename _FIter, typename _OIter >
      _OIter rotate_copy (_FIter , _FIter , _FIter , _OIter );
   template < typename _RAIter >
      void sort_heap (_RAIter , _RAIter );
   template < typename _RAIter, typename _Compare >
      void sort_heap (_RAIter , _RAIter , _Compare );
   template < typename _BIter, typename _Predicate >
      _BIter stable_partition (_BIter , _BIter , _Predicate );
   template < typename _Tp, size_t _Nm >
      inline void swap (_Tp &  __a, _Tp &  __b);
   template < typename _Tp, size_t _Nm >
      inline void swap (_Tp [_Nm] &  __a, _Tp [_Nm] &  __b);
   template < typename _FIter1, typename _FIter2 >
      _FIter2 swap_ranges (_FIter1 , _FIter1 , _FIter2 );
   template < typename _FIter >
      _FIter unique (_FIter , _FIter );
   template < typename _FIter, typename _BinaryPredicate >
      _FIter unique (_FIter , _FIter , _BinaryPredicate );
   template < typename _FIter, typename _Tp >
      _FIter upper_bound (_FIter , _FIter , const const _Tp &  );
   template < typename _FIter, typename _Tp, typename _Compare >
      _FIter upper_bound (_FIter , _FIter , const const _Tp &  , _Compare );
   template < typename _FIter >
      _FIter adjacent_find (_FIter , _FIter );
   template < typename _FIter, typename _BinaryPredicate >
      _FIter adjacent_find (_FIter , _FIter , _BinaryPredicate );
   template < typename _IIter, typename _Tp >
      typename iterator_traits<_IIter>::difference_type count (_IIter , _IIter , const const _Tp &  );
   template < typename _IIter, typename _Predicate >
      typename iterator_traits<_IIter>::difference_type count_if (_IIter , _IIter , _Predicate );
   template < typename _IIter1, typename _IIter2 >
      _Bool equal (_IIter1 , _IIter1 , _IIter2 );
   template < typename _IIter1, typename _IIter2, typename _BinaryPredicate >
      _Bool equal (_IIter1 , _IIter1 , _IIter2 , _BinaryPredicate );
   template < typename _IIter, typename _Tp >
      _IIter find (_IIter , _IIter , const const _Tp &  );
   template < typename _FIter1, typename _FIter2 >
      _FIter1 find_first_of (_FIter1 , _FIter1 , _FIter2 , _FIter2 );
   template < typename _FIter1, typename _FIter2, typename _BinaryPredicate >
      _FIter1 find_first_of (_FIter1 , _FIter1 , _FIter2 , _FIter2 , _BinaryPredicate );
   template < typename _IIter, typename _Predicate >
      _IIter find_if (_IIter , _IIter , _Predicate );
   template < typename _IIter, typename _Funct >
      _Funct for_each (_IIter , _IIter , _Funct );
   template < typename _FIter, typename _Generator >
      void generate (_FIter , _FIter , _Generator );
   template < typename _OIter, typename _Size, typename _Generator >
      _OIter generate_n (_OIter , _Size , _Generator );
   template < typename _IIter1, typename _IIter2 >
      _Bool lexicographical_compare (_IIter1 , _IIter1 , _IIter2 , _IIter2 );
   template < typename _IIter1, typename _IIter2, typename _Compare >
      _Bool lexicographical_compare (_IIter1 , _IIter1 , _IIter2 , _IIter2 , _Compare );
   template < typename _FIter >
      _FIter max_element (_FIter , _FIter );
   template < typename _FIter, typename _Compare >
      _FIter max_element (_FIter , _FIter , _Compare );
   template < typename _IIter1, typename _IIter2, typename _OIter >
      _OIter merge (_IIter1 , _IIter1 , _IIter2 , _IIter2 , _OIter );
   template < typename _IIter1, typename _IIter2, typename _OIter, typename _Compare >
      _OIter merge (_IIter1 , _IIter1 , _IIter2 , _IIter2 , _OIter , _Compare );
   template < typename _FIter >
      _FIter min_element (_FIter , _FIter );
   template < typename _FIter, typename _Compare >
      _FIter min_element (_FIter , _FIter , _Compare );
   template < typename _IIter1, typename _IIter2 >
      pair<_IIter1, _IIter2> mismatch (_IIter1 , _IIter1 , _IIter2 );
   template < typename _IIter1, typename _IIter2, typename _BinaryPredicate >
      pair<_IIter1, _IIter2> mismatch (_IIter1 , _IIter1 , _IIter2 , _BinaryPredicate );
   template < typename _RAIter >
      void nth_element (_RAIter , _RAIter , _RAIter );
   template < typename _RAIter, typename _Compare >
      void nth_element (_RAIter , _RAIter , _RAIter , _Compare );
   template < typename _RAIter >
      void partial_sort (_RAIter , _RAIter , _RAIter );
   template < typename _RAIter, typename _Compare >
      void partial_sort (_RAIter , _RAIter , _RAIter , _Compare );
   template < typename _BIter, typename _Predicate >
      _BIter partition (_BIter , _BIter , _Predicate );
   template < typename _RAIter >
      void random_shuffle (_RAIter , _RAIter );
   template < typename _RAIter, typename _Generator >
      void random_shuffle (_RAIter , _RAIter , _Generator &  );
   template < typename _FIter, typename _Tp >
      void replace (_FIter , _FIter , const const _Tp &  , const const _Tp &  );
   template < typename _FIter, typename _Predicate, typename _Tp >
      void replace_if (_FIter , _FIter , _Predicate , const const _Tp &  );
   template < typename _FIter1, typename _FIter2 >
      _FIter1 search (_FIter1 , _FIter1 , _FIter2 , _FIter2 );
   template < typename _FIter1, typename _FIter2, typename _BinaryPredicate >
      _FIter1 search (_FIter1 , _FIter1 , _FIter2 , _FIter2 , _BinaryPredicate );
   template < typename _FIter, typename _Size, typename _Tp >
      _FIter search_n (_FIter , _FIter , _Size , const const _Tp &  );
   template < typename _FIter, typename _Size, typename _Tp, typename _BinaryPredicate >
      _FIter search_n (_FIter , _FIter , _Size , const const _Tp &  , _BinaryPredicate );
   template < typename _IIter1, typename _IIter2, typename _OIter >
      _OIter set_difference (_IIter1 , _IIter1 , _IIter2 , _IIter2 , _OIter );
   template < typename _IIter1, typename _IIter2, typename _OIter, typename _Compare >
      _OIter set_difference (_IIter1 , _IIter1 , _IIter2 , _IIter2 , _OIter , _Compare );
   template < typename _IIter1, typename _IIter2, typename _OIter >
      _OIter set_intersection (_IIter1 , _IIter1 , _IIter2 , _IIter2 , _OIter );
   template < typename _IIter1, typename _IIter2, typename _OIter, typename _Compare >
      _OIter set_intersection (_IIter1 , _IIter1 , _IIter2 , _IIter2 , _OIter , _Compare );
   template < typename _IIter1, typename _IIter2, typename _OIter >
      _OIter set_symmetric_difference (_IIter1 , _IIter1 , _IIter2 , _IIter2 , _OIter );
   template < typename _IIter1, typename _IIter2, typename _OIter, typename _Compare >
      _OIter set_symmetric_difference (_IIter1 , _IIter1 , _IIter2 , _IIter2 , _OIter , _Compare );
   template < typename _IIter1, typename _IIter2, typename _OIter >
      _OIter set_union (_IIter1 , _IIter1 , _IIter2 , _IIter2 , _OIter );
   template < typename _IIter1, typename _IIter2, typename _OIter, typename _Compare >
      _OIter set_union (_IIter1 , _IIter1 , _IIter2 , _IIter2 , _OIter , _Compare );
   template < typename _RAIter >
      void sort (_RAIter , _RAIter );
   template < typename _RAIter, typename _Compare >
      void sort (_RAIter , _RAIter , _Compare );
   template < typename _RAIter >
      void stable_sort (_RAIter , _RAIter );
   template < typename _RAIter, typename _Compare >
      void stable_sort (_RAIter , _RAIter , _Compare );
   template < typename _IIter, typename _OIter, typename _UnaryOperation >
      _OIter transform (_IIter , _IIter , _OIter , _UnaryOperation );
   template < typename _IIter1, typename _IIter2, typename _OIter, typename _BinaryOperation >
      _OIter transform (_IIter1 , _IIter1 , _IIter2 , _OIter , _BinaryOperation );
   template < typename _IIter, typename _OIter >
      _OIter unique_copy (_IIter , _IIter , _OIter );
   template < typename _IIter, typename _OIter, typename _BinaryPredicate >
      _OIter unique_copy (_IIter , _IIter , _OIter , _BinaryPredicate );
} // end of std
namespace std
{
   template < typename _RandomAccessIterator, typename _Distance, typename _Compare >
      _Distance __is_heap_until (_RandomAccessIterator __first, _Distance __n, _Compare &  __comp);
   template < typename _RandomAccessIterator, typename _Distance >
      inline _Bool __is_heap (_RandomAccessIterator __first, _Distance __n);
   template < typename _RandomAccessIterator, typename _Compare, typename _Distance >
      inline _Bool __is_heap (_RandomAccessIterator __first, _Compare __comp, _Distance __n);
   template < typename _RandomAccessIterator >
      inline _Bool __is_heap (_RandomAccessIterator __first, _RandomAccessIterator __last);
   template < typename _RandomAccessIterator, typename _Compare >
      inline _Bool __is_heap (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp);
   template < typename _RandomAccessIterator, typename _Distance, typename _Tp, typename _Compare >
      void __push_heap (_RandomAccessIterator __first, _Distance __holeIndex, _Distance __topIndex, _Tp __value, _Compare &  __comp);
   template < typename _RandomAccessIterator >
      inline void push_heap (_RandomAccessIterator __first, _RandomAccessIterator __last);
   template < typename _RandomAccessIterator, typename _Compare >
      inline void push_heap (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp);
   template < typename _RandomAccessIterator, typename _Distance, typename _Tp, typename _Compare >
      void __adjust_heap (_RandomAccessIterator __first, _Distance __holeIndex, _Distance __len, _Tp __value, _Compare __comp);
   template < typename _RandomAccessIterator, typename _Compare >
      inline void __pop_heap (_RandomAccessIterator __first, _RandomAccessIterator __last, _RandomAccessIterator __result, _Compare &  __comp);
   template < typename _RandomAccessIterator >
      inline void pop_heap (_RandomAccessIterator __first, _RandomAccessIterator __last);
   template < typename _RandomAccessIterator, typename _Compare >
      inline void pop_heap (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp);
   template < typename _RandomAccessIterator, typename _Compare >
      void __make_heap (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare &  __comp);
   template < typename _RandomAccessIterator >
      inline void make_heap (_RandomAccessIterator __first, _RandomAccessIterator __last);
   template < typename _RandomAccessIterator, typename _Compare >
      inline void make_heap (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp);
   template < typename _RandomAccessIterator, typename _Compare >
      void __sort_heap (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare &  __comp);
   template < typename _RandomAccessIterator >
      inline void sort_heap (_RandomAccessIterator __first, _RandomAccessIterator __last);
   template < typename _RandomAccessIterator, typename _Compare >
      inline void sort_heap (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp);
} // end of std
extern namespace std
{
   class exception{
      class exception{
      }; // end of exception
   public:
      constructor void exception () throw ();
      virtual destructor void ~exception () throw ();
      virtual const const char *  what () throw ()const volatile restrict ;
      inline class std::exception &  operator= (const const class std::exception &  ) throw ();
      inline constructor copyconstructor converter void exception (const const class std::exception &  ) throw ();
   }; // end of exception
} // end of std
extern namespace std
{
   class bad_exception : public:
   class std::exception{
      class bad_exception{
      }; // end of bad_exception
   public:
      constructor void bad_exception () throw ();
      virtual destructor void ~bad_exception () throw ();
      virtual const const char *  what () throw ()const volatile restrict ;
      inline class std::bad_exception &  operator= (const const class std::bad_exception &  ) throw ();
   }; // end of bad_exception
   typedef void (void) *  std::terminate_handler;
   typedef void (void) *  std::unexpected_handler;
   terminate_handler set_terminate (terminate_handler ) throw ();
   void terminate () throw ();
   unexpected_handler set_unexpected (unexpected_handler ) throw ();
   void unexpected ();
   _Bool uncaught_exception () throw ();
   int uncaught_exceptions () throw ();
} // end of std
namespace __gnu_cxx
{
   void __verbose_terminate_handler ();
} // end of __gnu_cxx
extern namespace std
{
   class bad_alloc : public:
   class std::exception{
      class bad_alloc{
      }; // end of bad_alloc
   public:
      constructor void bad_alloc () throw ();
      virtual destructor void ~bad_alloc () throw ();
      virtual const const char *  what () throw ()const volatile restrict ;
      inline class std::bad_alloc &  operator= (const const class std::bad_alloc &  ) throw ();
   }; // end of bad_alloc
   struct nothrow_t{
      struct nothrow_t{
      }; // end of nothrow_t
      inline constructor void nothrow_t () throw ();
      inline constructor copyconstructor converter void nothrow_t (const const struct std::nothrow_t &  ) throw ();
   }; // end of nothrow_t
   /* variable */ extern const const struct std::nothrow_t nothrow;
   typedef void (void) *  std::new_handler;
   new_handler set_new_handler (new_handler ) throw ();
} // end of std
void *  operator new (std::size_t ) throw (std::bad_alloc);
void *  operator new[] (std::size_t ) throw (std::bad_alloc);
void operator delete (void *  ) throw ();
void operator delete[] (void *  ) throw ();
void *  operator new (std::size_t , const const std::nothrow_t &  ) throw ();
void *  operator new[] (std::size_t , const const std::nothrow_t &  ) throw ();
void operator delete (void *  , const const std::nothrow_t &  ) throw ();
void operator delete[] (void *  , const const std::nothrow_t &  ) throw ();
inline void *  operator new (std::size_t , void *  __p) throw ();
inline void *  operator new[] (std::size_t , void *  __p) throw ();
inline void operator delete (void *  , void *  ) throw ();
inline void operator delete[] (void *  , void *  ) throw ();
void *  operator new (unsigned int ) throw (class std::bad_alloc);
void *  operator new[] (unsigned int ) throw (class std::bad_alloc);
void operator delete (void *  ) throw ();
void operator delete[] (void *  ) throw ();
namespace __gnu_cxx
{
   using std::;
   using std::;
   template < typename _Tp >
      class new_allocator{
         class new_allocator{
         }; // end of new_allocator
      public:
         typedef size_t __gnu_cxx::new_allocator::size_type;
         typedef ptrdiff_t __gnu_cxx::new_allocator::difference_type;
         typedef _Tp *  __gnu_cxx::new_allocator::pointer;
         typedef const const _Tp *  __gnu_cxx::new_allocator::const_pointer;
         typedef _Tp &  __gnu_cxx::new_allocator::reference;
         typedef const const _Tp &  __gnu_cxx::new_allocator::const_reference;
         typedef _Tp __gnu_cxx::new_allocator::value_type;
         template < typename _Tp1 >
            struct rebind{
               struct rebind{
               }; // end of rebind
               typedef new_allocator<_Tp1> __gnu_cxx::new_allocator::rebind::other;
            }; // end of rebind
         constructor void new_allocator<_Tp> () throw ();
         constructor copyconstructor converter void new_allocator<_Tp> (const const new_allocator<_Tp> &  ) throw ();
         template < typename _Tp1 >
            constructor converter void new_allocator<_Tp> (const const new_allocator<_Tp1> &  ) throw ();
         destructor void ~new_allocator<_Tp> () throw ();
         pointer address (reference __x)const volatile restrict ;
         const_pointer address (const_reference __x)const volatile restrict ;
         pointer allocate (size_type __n, const const void *   = static_cast(0));
         void deallocate (pointer __p, size_type );
         size_type max_size () throw ()const volatile restrict ;
         void construct (pointer __p, const const _Tp &  __val);
         void destroy (pointer __p);
      }; // end of new_allocator
   template < typename _Tp >
      inline _Bool operator== (const const new_allocator<_Tp> &  , const const new_allocator<_Tp> &  );
   template < typename _Tp >
      inline _Bool operator!= (const const new_allocator<_Tp> &  , const const new_allocator<_Tp> &  );
} // end of __gnu_cxx
namespace std
{
   template < typename  >
      class allocator : public:
      __gnu_cxx::new_allocator<_Tp>{
      }; // end of allocator
   template < typename , typename  >
      struct uses_allocator{
      }; // end of uses_allocator
} // end of std
namespace std
{
   template < typename _Tp >
      class allocator : public:
      __gnu_cxx::new_allocator<_Tp>{
         class allocator{
         }; // end of allocator
      public:
         typedef size_t std::allocator::size_type;
         typedef ptrdiff_t std::allocator::difference_type;
         typedef _Tp *  std::allocator::pointer;
         typedef const const _Tp *  std::allocator::const_pointer;
         typedef _Tp &  std::allocator::reference;
         typedef const const _Tp &  std::allocator::const_reference;
         typedef _Tp std::allocator::value_type;
         template < typename _Tp1 >
            struct rebind{
               struct rebind{
               }; // end of rebind
               typedef allocator<_Tp1> std::allocator::rebind::other;
            }; // end of rebind
         constructor void allocator () throw ();
         constructor copyconstructor converter void allocator (const const allocator &  __a) throw ();
         template < typename _Tp1 >
            constructor converter void allocator (const const allocator<_Tp1> &  ) throw ();
         destructor void ~allocator () throw ();
      }; // end of allocator
   template < typename _T1, typename _T2 >
      inline _Bool operator== (const const allocator<_T1> &  , const const allocator<_T2> &  ) throw ();
   template < typename _Tp >
      inline _Bool operator== (const const allocator<_Tp> &  , const const allocator<_Tp> &  ) throw ();
   template < typename _T1, typename _T2 >
      inline _Bool operator!= (const const allocator<_T1> &  , const const allocator<_T2> &  ) throw ();
   template < typename _Tp >
      inline _Bool operator!= (const const allocator<_Tp> &  , const const allocator<_Tp> &  ) throw ();
   template < typename _Alloc, _Bool = __is_empty(_Alloc) >
      struct __alloc_swap{
         struct __alloc_swap{
         }; // end of __alloc_swap
         static static void _S_do_it (_Alloc &  , _Alloc &  );
      }; // end of __alloc_swap
   template < typename _Alloc, _Bool = __is_empty(_Alloc) >
      struct __alloc_neq{
         struct __alloc_neq{
         }; // end of __alloc_neq
         static static _Bool _S_do_it (const const _Alloc &  , const const _Alloc &  );
      }; // end of __alloc_neq
} // end of std
namespace __gnu_cxx
{
   template < typename _Alloc >
      struct __alloc_traits{
         struct __alloc_traits{
         }; // end of __alloc_traits
         typedef _Alloc __gnu_cxx::__alloc_traits::allocator_type;
         typedef typename _Alloc::pointer __gnu_cxx::__alloc_traits::pointer;
         typedef typename _Alloc::const_pointer __gnu_cxx::__alloc_traits::const_pointer;
         typedef typename _Alloc::value_type __gnu_cxx::__alloc_traits::value_type;
         typedef typename _Alloc::reference __gnu_cxx::__alloc_traits::reference;
         typedef typename _Alloc::const_reference __gnu_cxx::__alloc_traits::const_reference;
         typedef typename _Alloc::size_type __gnu_cxx::__alloc_traits::size_type;
         typedef typename _Alloc::difference_type __gnu_cxx::__alloc_traits::difference_type;
         static static pointer allocate (_Alloc &  __a, size_type __n);
         static static void deallocate (_Alloc &  __a, pointer __p, size_type __n);
         template < typename _Tp >
            static static void construct (_Alloc &  __a, pointer __p, const const _Tp &  __arg);
         static static void destroy (_Alloc &  __a, pointer __p);
         static static size_type max_size (const const _Alloc &  __a);
         static static const const _Alloc &  _S_select_on_copy (const const _Alloc &  __a);
         static static void _S_on_swap (_Alloc &  __a, _Alloc &  __b);
         template < typename _Tp >
            struct rebind{
               struct rebind{
               }; // end of rebind
               typedef typename _Alloc::template _Alloc::rebind<_Tp>::other __gnu_cxx::__alloc_traits::rebind::other;
            }; // end of rebind
      }; // end of __alloc_traits
} // end of __gnu_cxx
namespace std
{
   template < typename _T1, typename _T2 >
      inline void _Construct (_T1 *  __p, const const _T2 &  __value);
   template < typename _T1 >
      inline void _Construct_novalue (_T1 *  __p);
   template < typename _Tp >
      inline void _Destroy (_Tp *  __pointer);
   template < _Bool >
      struct _Destroy_aux{
         struct _Destroy_aux{
         }; // end of _Destroy_aux
         template < typename _ForwardIterator >
            static static void __destroy (_ForwardIterator __first, _ForwardIterator __last);
      }; // end of _Destroy_aux
   template < typename _ForwardIterator >
      inline void _Destroy (_ForwardIterator __first, _ForwardIterator __last);
   template < _Bool >
      struct _Destroy_n_aux{
         struct _Destroy_n_aux{
         }; // end of _Destroy_n_aux
         template < typename _ForwardIterator, typename _Size >
            static static _ForwardIterator __destroy_n (_ForwardIterator __first, _Size __count);
      }; // end of _Destroy_n_aux
   template < typename _ForwardIterator, typename _Size >
      inline _ForwardIterator _Destroy_n (_ForwardIterator __first, _Size __count);
   template < typename _ForwardIterator, typename _Allocator >
      void _Destroy (_ForwardIterator __first, _ForwardIterator __last, _Allocator &  __alloc);
   template < typename _ForwardIterator, typename _Tp >
      inline void _Destroy (_ForwardIterator __first, _ForwardIterator __last, allocator<_Tp> &  );
} // end of std
namespace std
{
   template < typename _Tp >
      pair<_Tp *, ptrdiff_t> get_temporary_buffer (ptrdiff_t __len);
   template < typename _Tp >
      inline void return_temporary_buffer (_Tp *  __p);
   template < typename _ForwardIterator, typename _Tp >
      class _Temporary_buffer{
         class _Temporary_buffer{
         }; // end of _Temporary_buffer
      public:
         typedef _Tp std::_Temporary_buffer::value_type;
         typedef value_type *  std::_Temporary_buffer::pointer;
         typedef pointer std::_Temporary_buffer::iterator;
         typedef ptrdiff_t std::_Temporary_buffer::size_type;
      protected:
      public:
         size_type size ()const volatile restrict ;
         size_type requested_size ()const volatile restrict ;
         iterator begin ();
         iterator end ();
         constructor void _Temporary_buffer<_ForwardIterator, _Tp> (_ForwardIterator __first, _ForwardIterator __last);
         destructor void ~_Temporary_buffer<_ForwardIterator, _Tp> ();
      private:
         constructor copyconstructor converter void _Temporary_buffer<_ForwardIterator, _Tp> (const const _Temporary_buffer<_ForwardIterator, _Tp> &  );
         void operator= (const const _Temporary_buffer<_ForwardIterator, _Tp> &  );
      }; // end of _Temporary_buffer
   template < _Bool >
      struct __uninitialized_construct_buf_dispatch{
         struct __uninitialized_construct_buf_dispatch{
         }; // end of __uninitialized_construct_buf_dispatch
         template < typename _Pointer, typename _ForwardIterator >
            static static void __ucr (_Pointer __first, _Pointer __last, _ForwardIterator __seed);
      }; // end of __uninitialized_construct_buf_dispatch
   template < typename _Pointer, typename _ForwardIterator >
      inline void __uninitialized_construct_buf (_Pointer __first, _Pointer __last, _ForwardIterator __seed);
   constructor void _Temporary_buffer<_ForwardIterator, _Tp> (_ForwardIterator __first, _ForwardIterator __last);
} // end of std
namespace std
{
   template < typename _Iterator, typename _Compare >
      void __move_median_to_first (_Iterator __result, _Iterator __a, _Iterator __b, _Iterator __c, _Compare __comp);
   template < typename _InputIterator, typename _Predicate >
      inline _InputIterator __find_if (_InputIterator __first, _InputIterator __last, _Predicate __pred, struct std::input_iterator_tag );
   template < typename _RandomAccessIterator, typename _Predicate >
      _RandomAccessIterator __find_if (_RandomAccessIterator __first, _RandomAccessIterator __last, _Predicate __pred, struct std::random_access_iterator_tag );
   template < typename _Iterator, typename _Predicate >
      inline _Iterator __find_if (_Iterator __first, _Iterator __last, _Predicate __pred);
   template < typename _InputIterator, typename _Predicate >
      inline _InputIterator __find_if_not (_InputIterator __first, _InputIterator __last, _Predicate __pred);
   template < typename _InputIterator, typename _Predicate, typename _Distance >
      _InputIterator __find_if_not_n (_InputIterator __first, _Distance &  __len, _Predicate __pred);
   template < typename _ForwardIterator1, typename _ForwardIterator2, typename _BinaryPredicate >
      _ForwardIterator1 __search (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __predicate);
   template < typename _ForwardIterator, typename _Integer, typename _UnaryPredicate >
      _ForwardIterator __search_n_aux (_ForwardIterator __first, _ForwardIterator __last, _Integer __count, _UnaryPredicate __unary_pred, std::forward_iterator_tag );
   template < typename _RandomAccessIter, typename _Integer, typename _UnaryPredicate >
      _RandomAccessIter __search_n_aux (_RandomAccessIter __first, _RandomAccessIter __last, _Integer __count, _UnaryPredicate __unary_pred, std::random_access_iterator_tag );
   template < typename _ForwardIterator, typename _Integer, typename _UnaryPredicate >
      _ForwardIterator __search_n (_ForwardIterator __first, _ForwardIterator __last, _Integer __count, _UnaryPredicate __unary_pred);
   template < typename _ForwardIterator1, typename _ForwardIterator2, typename _BinaryPredicate >
      _ForwardIterator1 __find_end (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, struct std::forward_iterator_tag , struct std::forward_iterator_tag , _BinaryPredicate __comp);
   template < typename _BidirectionalIterator1, typename _BidirectionalIterator2, typename _BinaryPredicate >
      _BidirectionalIterator1 __find_end (_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1, _BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2, struct std::bidirectional_iterator_tag , struct std::bidirectional_iterator_tag , _BinaryPredicate __comp);
   template < typename _ForwardIterator1, typename _ForwardIterator2 >
      inline _ForwardIterator1 find_end (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2);
   template < typename _ForwardIterator1, typename _ForwardIterator2, typename _BinaryPredicate >
      inline _ForwardIterator1 find_end (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __comp);
   template < typename _InputIterator, typename _OutputIterator, typename _Predicate >
      _OutputIterator __remove_copy_if (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Predicate __pred);
   template < typename _InputIterator, typename _OutputIterator, typename _Tp >
      inline _OutputIterator remove_copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result, const const _Tp &  __value);
   template < typename _InputIterator, typename _OutputIterator, typename _Predicate >
      inline _OutputIterator remove_copy_if (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Predicate __pred);
   template < typename _ForwardIterator, typename _Predicate >
      _ForwardIterator __remove_if (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred);
   template < typename _ForwardIterator, typename _Tp >
      inline _ForwardIterator remove (_ForwardIterator __first, _ForwardIterator __last, const const _Tp &  __value);
   template < typename _ForwardIterator, typename _Predicate >
      inline _ForwardIterator remove_if (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred);
   template < typename _ForwardIterator, typename _BinaryPredicate >
      _ForwardIterator __adjacent_find (_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __binary_pred);
   template < typename _ForwardIterator, typename _BinaryPredicate >
      _ForwardIterator __unique (_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __binary_pred);
   template < typename _ForwardIterator >
      inline _ForwardIterator unique (_ForwardIterator __first, _ForwardIterator __last);
   template < typename _ForwardIterator, typename _BinaryPredicate >
      inline _ForwardIterator unique (_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __binary_pred);
   template < typename _ForwardIterator, typename _OutputIterator, typename _BinaryPredicate >
      _OutputIterator __unique_copy (_ForwardIterator __first, _ForwardIterator __last, _OutputIterator __result, _BinaryPredicate __binary_pred, struct std::forward_iterator_tag , struct std::output_iterator_tag );
   template < typename _InputIterator, typename _OutputIterator, typename _BinaryPredicate >
      _OutputIterator __unique_copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryPredicate __binary_pred, struct std::input_iterator_tag , struct std::output_iterator_tag );
   template < typename _InputIterator, typename _ForwardIterator, typename _BinaryPredicate >
      _ForwardIterator __unique_copy (_InputIterator __first, _InputIterator __last, _ForwardIterator __result, _BinaryPredicate __binary_pred, struct std::input_iterator_tag , struct std::forward_iterator_tag );
   template < typename _BidirectionalIterator >
      void __reverse (_BidirectionalIterator __first, _BidirectionalIterator __last, struct std::bidirectional_iterator_tag );
   template < typename _RandomAccessIterator >
      void __reverse (_RandomAccessIterator __first, _RandomAccessIterator __last, struct std::random_access_iterator_tag );
   template < typename _BidirectionalIterator >
      inline void reverse (_BidirectionalIterator __first, _BidirectionalIterator __last);
   template < typename _BidirectionalIterator, typename _OutputIterator >
      _OutputIterator reverse_copy (_BidirectionalIterator __first, _BidirectionalIterator __last, _OutputIterator __result);
   template < typename _EuclideanRingElement >
      _EuclideanRingElement __gcd (_EuclideanRingElement __m, _EuclideanRingElement __n);
   namespace _V2
   {
      template < typename _ForwardIterator >
         _ForwardIterator __rotate (_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last, struct std::forward_iterator_tag );
      template < typename _BidirectionalIterator >
         _BidirectionalIterator __rotate (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, struct std::bidirectional_iterator_tag );
      template < typename _RandomAccessIterator >
         _RandomAccessIterator __rotate (_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last, struct std::random_access_iterator_tag );
      template < typename _ForwardIterator >
         inline _ForwardIterator rotate (_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last);
   } // end of _V2
   template < typename _ForwardIterator, typename _OutputIterator >
      inline _OutputIterator rotate_copy (_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last, _OutputIterator __result);
   template < typename _ForwardIterator, typename _Predicate >
      _ForwardIterator __partition (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, struct std::forward_iterator_tag );
   template < typename _BidirectionalIterator, typename _Predicate >
      _BidirectionalIterator __partition (_BidirectionalIterator __first, _BidirectionalIterator __last, _Predicate __pred, struct std::bidirectional_iterator_tag );
   template < typename _ForwardIterator, typename _Pointer, typename _Predicate, typename _Distance >
      _ForwardIterator __stable_partition_adaptive (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, _Distance __len, _Pointer __buffer, _Distance __buffer_size);
   template < typename _ForwardIterator, typename _Predicate >
      _ForwardIterator __stable_partition (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred);
   template < typename _ForwardIterator, typename _Predicate >
      inline _ForwardIterator stable_partition (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred);
   template < typename _RandomAccessIterator, typename _Compare >
      void __heap_select (_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last, _Compare __comp);
   template < typename _InputIterator, typename _RandomAccessIterator, typename _Compare >
      _RandomAccessIterator __partial_sort_copy (_InputIterator __first, _InputIterator __last, _RandomAccessIterator __result_first, _RandomAccessIterator __result_last, _Compare __comp);
   template < typename _InputIterator, typename _RandomAccessIterator >
      inline _RandomAccessIterator partial_sort_copy (_InputIterator __first, _InputIterator __last, _RandomAccessIterator __result_first, _RandomAccessIterator __result_last);
   template < typename _InputIterator, typename _RandomAccessIterator, typename _Compare >
      inline _RandomAccessIterator partial_sort_copy (_InputIterator __first, _InputIterator __last, _RandomAccessIterator __result_first, _RandomAccessIterator __result_last, _Compare __comp);
   template < typename _RandomAccessIterator, typename _Compare >
      void __unguarded_linear_insert (_RandomAccessIterator __last, _Compare __comp);
   template < typename _RandomAccessIterator, typename _Compare >
      void __insertion_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp);
   template < typename _RandomAccessIterator, typename _Compare >
      inline void __unguarded_insertion_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp);
   enum 
   {
      _S_threshold = 16
   }; // end of 
   template < typename _RandomAccessIterator, typename _Compare >
      void __final_insertion_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp);
   template < typename _RandomAccessIterator, typename _Compare >
      _RandomAccessIterator __unguarded_partition (_RandomAccessIterator __first, _RandomAccessIterator __last, _RandomAccessIterator __pivot, _Compare __comp);
   template < typename _RandomAccessIterator, typename _Compare >
      inline _RandomAccessIterator __unguarded_partition_pivot (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp);
   template < typename _RandomAccessIterator, typename _Compare >
      inline void __partial_sort (_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last, _Compare __comp);
   template < typename _RandomAccessIterator, typename _Size, typename _Compare >
      void __introsort_loop (_RandomAccessIterator __first, _RandomAccessIterator __last, _Size __depth_limit, _Compare __comp);
   template < typename _RandomAccessIterator, typename _Compare >
      inline void __sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp);
   template < typename _RandomAccessIterator, typename _Size, typename _Compare >
      void __introselect (_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last, _Size __depth_limit, _Compare __comp);
   template < typename _ForwardIterator, typename _Tp, typename _Compare >
      inline _ForwardIterator lower_bound (_ForwardIterator __first, _ForwardIterator __last, const const _Tp &  __val, _Compare __comp);
   template < typename _ForwardIterator, typename _Tp, typename _Compare >
      _ForwardIterator __upper_bound (_ForwardIterator __first, _ForwardIterator __last, const const _Tp &  __val, _Compare __comp);
   template < typename _ForwardIterator, typename _Tp >
      inline _ForwardIterator upper_bound (_ForwardIterator __first, _ForwardIterator __last, const const _Tp &  __val);
   template < typename _ForwardIterator, typename _Tp, typename _Compare >
      inline _ForwardIterator upper_bound (_ForwardIterator __first, _ForwardIterator __last, const const _Tp &  __val, _Compare __comp);
   template < typename _ForwardIterator, typename _Tp, typename _CompareItTp, typename _CompareTpIt >
      pair<_ForwardIterator, _ForwardIterator> __equal_range (_ForwardIterator __first, _ForwardIterator __last, const const _Tp &  __val, _CompareItTp __comp_it_val, _CompareTpIt __comp_val_it);
   template < typename _ForwardIterator, typename _Tp >
      inline pair<_ForwardIterator, _ForwardIterator> equal_range (_ForwardIterator __first, _ForwardIterator __last, const const _Tp &  __val);
   template < typename _ForwardIterator, typename _Tp, typename _Compare >
      inline pair<_ForwardIterator, _ForwardIterator> equal_range (_ForwardIterator __first, _ForwardIterator __last, const const _Tp &  __val, _Compare __comp);
   template < typename _ForwardIterator, typename _Tp >
      _Bool binary_search (_ForwardIterator __first, _ForwardIterator __last, const const _Tp &  __val);
   template < typename _ForwardIterator, typename _Tp, typename _Compare >
      _Bool binary_search (_ForwardIterator __first, _ForwardIterator __last, const const _Tp &  __val, _Compare __comp);
   template < typename _InputIterator1, typename _InputIterator2, typename _OutputIterator, typename _Compare >
      void __move_merge_adaptive (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp);
   template < typename _BidirectionalIterator1, typename _BidirectionalIterator2, typename _BidirectionalIterator3, typename _Compare >
      void __move_merge_adaptive_backward (_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1, _BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2, _BidirectionalIterator3 __result, _Compare __comp);
   template < typename _BidirectionalIterator1, typename _BidirectionalIterator2, typename _Distance >
      _BidirectionalIterator1 __rotate_adaptive (_BidirectionalIterator1 __first, _BidirectionalIterator1 __middle, _BidirectionalIterator1 __last, _Distance __len1, _Distance __len2, _BidirectionalIterator2 __buffer, _Distance __buffer_size);
   template < typename _BidirectionalIterator, typename _Distance, typename _Pointer, typename _Compare >
      void __merge_adaptive (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Distance __len1, _Distance __len2, _Pointer __buffer, _Distance __buffer_size, _Compare __comp);
   template < typename _BidirectionalIterator, typename _Distance, typename _Compare >
      void __merge_without_buffer (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Distance __len1, _Distance __len2, _Compare __comp);
   template < typename _BidirectionalIterator, typename _Compare >
      void __inplace_merge (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Compare __comp);
   template < typename _BidirectionalIterator >
      inline void inplace_merge (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last);
   template < typename _BidirectionalIterator, typename _Compare >
      inline void inplace_merge (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Compare __comp);
   template < typename _InputIterator, typename _OutputIterator, typename _Compare >
      _OutputIterator __move_merge (_InputIterator __first1, _InputIterator __last1, _InputIterator __first2, _InputIterator __last2, _OutputIterator __result, _Compare __comp);
   template < typename _RandomAccessIterator1, typename _RandomAccessIterator2, typename _Distance, typename _Compare >
      void __merge_sort_loop (_RandomAccessIterator1 __first, _RandomAccessIterator1 __last, _RandomAccessIterator2 __result, _Distance __step_size, _Compare __comp);
   template < typename _RandomAccessIterator, typename _Distance, typename _Compare >
      void __chunk_insertion_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Distance __chunk_size, _Compare __comp);
   enum 
   {
      _S_chunk_size = 7
   }; // end of 
   template < typename _RandomAccessIterator, typename _Pointer, typename _Compare >
      void __merge_sort_with_buffer (_RandomAccessIterator __first, _RandomAccessIterator __last, _Pointer __buffer, _Compare __comp);
   template < typename _RandomAccessIterator, typename _Pointer, typename _Distance, typename _Compare >
      void __stable_sort_adaptive (_RandomAccessIterator __first, _RandomAccessIterator __last, _Pointer __buffer, _Distance __buffer_size, _Compare __comp);
   template < typename _RandomAccessIterator, typename _Compare >
      void __inplace_stable_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp);
   template < typename _InputIterator1, typename _InputIterator2, typename _Compare >
      _Bool __includes (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp);
   template < typename _InputIterator1, typename _InputIterator2 >
      inline _Bool includes (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2);
   template < typename _InputIterator1, typename _InputIterator2, typename _Compare >
      inline _Bool includes (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp);
   template < typename _BidirectionalIterator, typename _Compare >
      _Bool __next_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp);
   template < typename _BidirectionalIterator >
      inline _Bool next_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last);
   template < typename _BidirectionalIterator, typename _Compare >
      inline _Bool next_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp);
   template < typename _BidirectionalIterator, typename _Compare >
      _Bool __prev_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp);
   template < typename _BidirectionalIterator >
      inline _Bool prev_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last);
   template < typename _BidirectionalIterator, typename _Compare >
      inline _Bool prev_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp);
   template < typename _InputIterator, typename _OutputIterator, typename _Predicate, typename _Tp >
      _OutputIterator __replace_copy_if (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Predicate __pred, const const _Tp &  __new_value);
   template < typename _InputIterator, typename _OutputIterator, typename _Tp >
      inline _OutputIterator replace_copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result, const const _Tp &  __old_value, const const _Tp &  __new_value);
   template < typename _InputIterator, typename _OutputIterator, typename _Predicate, typename _Tp >
      inline _OutputIterator replace_copy_if (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Predicate __pred, const const _Tp &  __new_value);
   template < typename _InputIterator, typename _Predicate >
      typename iterator_traits<_InputIterator>::difference_type __count_if (_InputIterator __first, _InputIterator __last, _Predicate __pred);
   template < typename _InputIterator, typename _Function >
      _Function for_each (_InputIterator __first, _InputIterator __last, _Function __f);
   template < typename _InputIterator, typename _Tp >
      inline _InputIterator find (_InputIterator __first, _InputIterator __last, const const _Tp &  __val);
   template < typename _InputIterator, typename _Predicate >
      inline _InputIterator find_if (_InputIterator __first, _InputIterator __last, _Predicate __pred);
   template < typename _InputIterator, typename _ForwardIterator >
      _InputIterator find_first_of (_InputIterator __first1, _InputIterator __last1, _ForwardIterator __first2, _ForwardIterator __last2);
   template < typename _InputIterator, typename _ForwardIterator, typename _BinaryPredicate >
      _InputIterator find_first_of (_InputIterator __first1, _InputIterator __last1, _ForwardIterator __first2, _ForwardIterator __last2, _BinaryPredicate __comp);
   template < typename _ForwardIterator >
      inline _ForwardIterator adjacent_find (_ForwardIterator __first, _ForwardIterator __last);
   template < typename _ForwardIterator, typename _BinaryPredicate >
      inline _ForwardIterator adjacent_find (_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __binary_pred);
   template < typename _InputIterator, typename _Tp >
      inline typename iterator_traits<_InputIterator>::difference_type count (_InputIterator __first, _InputIterator __last, const const _Tp &  __value);
   template < typename _InputIterator, typename _Predicate >
      inline typename iterator_traits<_InputIterator>::difference_type count_if (_InputIterator __first, _InputIterator __last, _Predicate __pred);
   template < typename _ForwardIterator1, typename _ForwardIterator2 >
      inline _ForwardIterator1 search (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2);
   template < typename _ForwardIterator1, typename _ForwardIterator2, typename _BinaryPredicate >
      inline _ForwardIterator1 search (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __predicate);
   template < typename _ForwardIterator, typename _Integer, typename _Tp >
      inline _ForwardIterator search_n (_ForwardIterator __first, _ForwardIterator __last, _Integer __count, const const _Tp &  __val);
   template < typename _ForwardIterator, typename _Integer, typename _Tp, typename _BinaryPredicate >
      inline _ForwardIterator search_n (_ForwardIterator __first, _ForwardIterator __last, _Integer __count, const const _Tp &  __val, _BinaryPredicate __binary_pred);
   template < typename _InputIterator, typename _OutputIterator, typename _UnaryOperation >
      _OutputIterator transform (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _UnaryOperation __unary_op);
   template < typename _InputIterator1, typename _InputIterator2, typename _OutputIterator, typename _BinaryOperation >
      _OutputIterator transform (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _OutputIterator __result, _BinaryOperation __binary_op);
   template < typename _ForwardIterator, typename _Tp >
      void replace (_ForwardIterator __first, _ForwardIterator __last, const const _Tp &  __old_value, const const _Tp &  __new_value);
   template < typename _ForwardIterator, typename _Predicate, typename _Tp >
      void replace_if (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, const const _Tp &  __new_value);
   template < typename _ForwardIterator, typename _Generator >
      void generate (_ForwardIterator __first, _ForwardIterator __last, _Generator __gen);
   template < typename _OutputIterator, typename _Size, typename _Generator >
      _OutputIterator generate_n (_OutputIterator __first, _Size __n, _Generator __gen);
   template < typename _InputIterator, typename _OutputIterator >
      inline _OutputIterator unique_copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result);
   template < typename _InputIterator, typename _OutputIterator, typename _BinaryPredicate >
      inline _OutputIterator unique_copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryPredicate __binary_pred);
   template < typename _RandomAccessIterator >
      inline void random_shuffle (_RandomAccessIterator __first, _RandomAccessIterator __last);
   template < typename _RandomAccessIterator, typename _RandomNumberGenerator >
      void random_shuffle (_RandomAccessIterator __first, _RandomAccessIterator __last, _RandomNumberGenerator &  __rand);
   template < typename _ForwardIterator, typename _Predicate >
      inline _ForwardIterator partition (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred);
   template < typename _RandomAccessIterator >
      inline void partial_sort (_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last);
   template < typename _RandomAccessIterator, typename _Compare >
      inline void partial_sort (_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last, _Compare __comp);
   template < typename _RandomAccessIterator >
      inline void nth_element (_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last);
   template < typename _RandomAccessIterator, typename _Compare >
      inline void nth_element (_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last, _Compare __comp);
   template < typename _RandomAccessIterator >
      inline void sort (_RandomAccessIterator __first, _RandomAccessIterator __last);
   template < typename _RandomAccessIterator, typename _Compare >
      inline void sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp);
   template < typename _InputIterator1, typename _InputIterator2, typename _OutputIterator, typename _Compare >
      _OutputIterator __merge (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp);
   template < typename _InputIterator1, typename _InputIterator2, typename _OutputIterator >
      inline _OutputIterator merge (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result);
   template < typename _InputIterator1, typename _InputIterator2, typename _OutputIterator, typename _Compare >
      inline _OutputIterator merge (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp);
   template < typename _RandomAccessIterator, typename _Compare >
      inline void __stable_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp);
   template < typename _RandomAccessIterator >
      inline void stable_sort (_RandomAccessIterator __first, _RandomAccessIterator __last);
   template < typename _RandomAccessIterator, typename _Compare >
      inline void stable_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp);
   template < typename _InputIterator1, typename _InputIterator2, typename _OutputIterator, typename _Compare >
      _OutputIterator __set_union (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp);
   template < typename _InputIterator1, typename _InputIterator2, typename _OutputIterator >
      inline _OutputIterator set_union (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result);
   template < typename _InputIterator1, typename _InputIterator2, typename _OutputIterator, typename _Compare >
      inline _OutputIterator set_union (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp);
   template < typename _InputIterator1, typename _InputIterator2, typename _OutputIterator, typename _Compare >
      _OutputIterator __set_intersection (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp);
   template < typename _InputIterator1, typename _InputIterator2, typename _OutputIterator >
      inline _OutputIterator set_intersection (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result);
   template < typename _InputIterator1, typename _InputIterator2, typename _OutputIterator, typename _Compare >
      inline _OutputIterator set_intersection (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp);
   template < typename _InputIterator1, typename _InputIterator2, typename _OutputIterator, typename _Compare >
      _OutputIterator __set_difference (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp);
   template < typename _InputIterator1, typename _InputIterator2, typename _OutputIterator >
      inline _OutputIterator set_difference (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result);
   template < typename _InputIterator1, typename _InputIterator2, typename _OutputIterator, typename _Compare >
      inline _OutputIterator set_difference (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp);
   template < typename _InputIterator1, typename _InputIterator2, typename _OutputIterator, typename _Compare >
      _OutputIterator __set_symmetric_difference (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp);
   template < typename _InputIterator1, typename _InputIterator2, typename _OutputIterator >
      inline _OutputIterator set_symmetric_difference (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result);
   template < typename _InputIterator1, typename _InputIterator2, typename _OutputIterator, typename _Compare >
      inline _OutputIterator set_symmetric_difference (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp);
   template < typename _ForwardIterator, typename _Compare >
      _ForwardIterator __min_element (_ForwardIterator __first, _ForwardIterator __last, _Compare __comp);
   template < typename _ForwardIterator >
      inline _ForwardIterator min_element (_ForwardIterator __first, _ForwardIterator __last);
   template < typename _ForwardIterator, typename _Compare >
      inline _ForwardIterator min_element (_ForwardIterator __first, _ForwardIterator __last, _Compare __comp);
   template < typename _ForwardIterator, typename _Compare >
      _ForwardIterator __max_element (_ForwardIterator __first, _ForwardIterator __last, _Compare __comp);
   template < typename _ForwardIterator >
      inline _ForwardIterator max_element (_ForwardIterator __first, _ForwardIterator __last);
   template < typename _ForwardIterator, typename _Compare >
      inline _ForwardIterator max_element (_ForwardIterator __first, _ForwardIterator __last, _Compare __comp);
} // end of std
typedef signed char qint8;
typedef unsigned char quint8;
typedef short qint16;
typedef unsigned short quint16;
typedef int qint32;
typedef unsigned int quint32;
typedef long long qint64;
typedef unsigned long long quint64;
typedef qint64 qlonglong;
typedef quint64 qulonglong;
template < int >
   struct QIntegerForSize{
   }; // end of QIntegerForSize
template < class T >
   struct QIntegerForSizeof : public:
   QIntegerForSize{
      struct QIntegerForSizeof{
      }; // end of QIntegerForSizeof
   }; // end of QIntegerForSizeof
typedef QIntegerForSizeof::Unsigned quintptr;
typedef QIntegerForSizeof::Signed qptrdiff;
typedef unsigned char uchar;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef unsigned long ulong;
typedef int QNoImplicitBoolCast;
typedef double qreal;
template < typename T >
   inline T qAbs (const const T &  t);
inline int qRound (qreal d);
inline qint64 qRound64 (qreal d);
template < typename T >
   inline const const T &  qMin (const const T &  a, const const T &  b);
template < typename T >
   inline const const T &  qMax (const const T &  a, const const T &  b);
template < typename T >
   inline const const T &  qBound (const const T &  min, const const T &  val, const const T &  max);
class QDataStream{
}; // end of QDataStream
inline void qt_noop ();
class QString{
}; // end of QString
class QSysInfo{
   class QSysInfo{
   }; // end of QSysInfo
public:
   enum Sizes
   {
      WordSize = (sizeof(void *) << 3)
   }; // end of Sizes
   enum Endian
   {
      BigEndian,
      LittleEndian,
      ByteOrder = LittleEndian
   }; // end of Endian
}; // end of QSysInfo
const const char *  qVersion ();
_Bool qSharedBuild ();
void qDebug (const const char *  , ... );
void qWarning (const const char *  , ... );
class QString{
}; // end of QString
class QString qt_error_string (int errorCode = -1);
void qCritical (const const char *  , ... );
void qFatal (const const char *  , ... );
void qErrnoWarning (int code, const const char *  msg, ... );
void qErrnoWarning (const const char *  msg, ... );
class QDebug{
}; // end of QDebug
class QNoDebug{
}; // end of QNoDebug
inline class QDebug qDebug ();
inline class QDebug qWarning ();
inline class QDebug qCritical ();
void qt_assert (const const char *  assertion, const const char *  file, int line);
void qt_assert_x (const const char *  where, const const char *  what, const const char *  file, int line);
void qt_check_pointer (const const char *  , int );
void qBadAlloc ();
template < typename T >
   inline T *  q_check_ptr (T *  p);
enum QtMsgType
{
   QtDebugMsg,
   QtWarningMsg,
   QtCriticalMsg,
   QtFatalMsg,
   QtSystemMsg = QtCriticalMsg
}; // end of QtMsgType
void qt_message_output (enum QtMsgType , const const char *  buf);
typedef void (enum QtMsgType, const char *) *  QtMsgHandler;
QtMsgHandler qInstallMsgHandler (QtMsgHandler );
template < typename T >
   class QBasicAtomicPointer{
   }; // end of QBasicAtomicPointer
template < typename T >
   class QGlobalStatic{
      class QGlobalStatic{
      }; // end of QGlobalStatic
   public:
   }; // end of QGlobalStatic
template < typename T >
   class QGlobalStaticDeleter{
      class QGlobalStaticDeleter{
      }; // end of QGlobalStaticDeleter
   public:
      constructor converter void QGlobalStaticDeleter (QGlobalStatic &  _globalStatic);
      inline destructor void ~QGlobalStaticDeleter ();
   }; // end of QGlobalStaticDeleter
class QBool{
   class QBool{
   }; // end of QBool
public:
   inline constructor explicit void QBool (_Bool B);
   inline converter const const void *  operator const void * ()const volatile restrict ;
   inline constructor copyconstructor converter void QBool (const const class QBool &  ) throw ();
   inline destructor void ~QBool () throw ();
}; // end of QBool
inline _Bool operator== (class QBool b1, _Bool b2);
inline _Bool operator== (_Bool b1, class QBool b2);
inline _Bool operator== (class QBool b1, class QBool b2);
inline _Bool operator!= (class QBool b1, _Bool b2);
inline _Bool operator!= (_Bool b1, class QBool b2);
inline _Bool operator!= (class QBool b1, class QBool b2);
static inline _Bool qFuzzyCompare (double p1, double p2);
static inline _Bool qFuzzyCompare (float p1, float p2);
static inline _Bool qFuzzyIsNull (double d);
static inline _Bool qFuzzyIsNull (float f);
static inline _Bool qIsNull (double d);
static inline _Bool qIsNull (float f);
template < typename T >
   inline _Bool qIsDetached (T &  );
template < typename T >
   class QTypeInfo{
      class QTypeInfo{
      }; // end of QTypeInfo
   public:
      enum 
      {
         isPointer = false,
         isComplex = true,
         isStatic = true,
         isLarge = (sizeof(T) > sizeof(void *)),
         isDummy = false
      }; // end of 
   }; // end of QTypeInfo
enum 
{
   Q_COMPLEX_TYPE = 0,
   Q_PRIMITIVE_TYPE = 1,
   Q_STATIC_TYPE = 0,
   Q_MOVABLE_TYPE = 2,
   Q_DUMMY_TYPE = 4
}; // end of 
template < typename T >
   inline void qSwap (T &  value1, T &  value2);
void *  qMalloc (size_t size);
void qFree (void *  ptr);
void *  qRealloc (void *  ptr, size_t size);
void *  qMallocAligned (size_t size, size_t alignment);
void *  qReallocAligned (void *  ptr, size_t size, size_t oldsize, size_t alignment);
void qFreeAligned (void *  ptr);
void *  qMemCopy (void *  dest, const const void *  src, size_t n);
void *  qMemSet (void *  dest, int c, size_t n);
class QFlag{
   class QFlag{
   }; // end of QFlag
public:
   inline constructor converter void QFlag (int i);
   inline converter int operator int ()const volatile restrict ;
   inline constructor copyconstructor converter void QFlag (const const class QFlag &  ) throw ();
   inline destructor void ~QFlag () throw ();
}; // end of QFlag
inline constructor converter void QFlag (int ai);
class QIncompatibleFlag{
   class QIncompatibleFlag{
   }; // end of QIncompatibleFlag
public:
   inline constructor explicit void QIncompatibleFlag (int i);
   inline converter int operator int ()const volatile restrict ;
   inline constructor copyconstructor converter void QIncompatibleFlag (const const class QIncompatibleFlag &  ) throw ();
   inline destructor void ~QIncompatibleFlag () throw ();
}; // end of QIncompatibleFlag
inline constructor explicit void QIncompatibleFlag (int ai);
template < typename Enum >
   class QFlags{
      class QFlags{
      }; // end of QFlags
      typedef void *  *  QFlags::Zero;
   public:
      typedef Enum QFlags::enum_type;
      inline constructor copyconstructor converter void QFlags (const const QFlags &  f);
      inline constructor converter void QFlags (Enum f);
      inline constructor converter void QFlags (Zero  = 0);
      inline constructor converter void QFlags (class QFlag f);
      inline QFlags &  operator= (const const QFlags &  f);
      inline QFlags &  operator&= (int mask);
      inline QFlags &  operator&= (uint mask);
      inline QFlags &  operator|= (QFlags f);
      inline QFlags &  operator|= (Enum f);
      inline QFlags &  operator^= (QFlags f);
      inline QFlags &  operator^= (Enum f);
      inline converter int operator int ()const volatile restrict ;
      inline QFlags operator| (QFlags f)const volatile restrict ;
      inline QFlags operator| (Enum f)const volatile restrict ;
      inline QFlags operator^ (QFlags f)const volatile restrict ;
      inline QFlags operator^ (Enum f)const volatile restrict ;
      inline QFlags operator& (int mask)const volatile restrict ;
      inline QFlags operator& (uint mask)const volatile restrict ;
      inline QFlags operator& (Enum f)const volatile restrict ;
      inline QFlags operator~ ()const volatile restrict ;
      inline _Bool operator! ()const volatile restrict ;
      inline _Bool testFlag (Enum f)const volatile restrict ;
   }; // end of QFlags
template < typename T >
   class QForeachContainer{
      class QForeachContainer{
      }; // end of QForeachContainer
   public:
      inline constructor converter void QForeachContainer (const const T &  t);
   }; // end of QForeachContainer
template < typename T >
   static inline T *  qGetPtrHelper (T *  ptr);
template < typename Wrapper >
   static inline typename Wrapper::pointer qGetPtrHelper (const const Wrapper &  p);
class QString qtTrId (const const char *  id, int n = -1);
class QByteArray{
}; // end of QByteArray
class QByteArray qgetenv (const const char *  varName);
_Bool qputenv (const const char *  varName, const const class QByteArray &  value);
inline int qIntCast (double f);
inline int qIntCast (float f);
void qsrand (uint seed);
int qrand ();
enum QtValidLicenseForCoreModule
{
   LicensedCore = true
}; // end of QtValidLicenseForCoreModule
enum QtValidLicenseForGuiModule
{
   LicensedGui = true
}; // end of QtValidLicenseForGuiModule
enum QtValidLicenseForNetworkModule
{
   LicensedNetwork = true
}; // end of QtValidLicenseForNetworkModule
enum QtValidLicenseForOpenGLModule
{
   LicensedOpenGL = true
}; // end of QtValidLicenseForOpenGLModule
enum QtValidLicenseForOpenVGModule
{
   LicensedOpenVG = true
}; // end of QtValidLicenseForOpenVGModule
enum QtValidLicenseForSqlModule
{
   LicensedSql = true
}; // end of QtValidLicenseForSqlModule
enum QtValidLicenseForMultimediaModule
{
   LicensedMultimedia = true
}; // end of QtValidLicenseForMultimediaModule
enum QtValidLicenseForXmlModule
{
   LicensedXml = true
}; // end of QtValidLicenseForXmlModule
enum QtValidLicenseForXmlPatternsModule
{
   LicensedXmlPatterns = true
}; // end of QtValidLicenseForXmlPatternsModule
enum QtValidLicenseForHelpModule
{
   LicensedHelp = true
}; // end of QtValidLicenseForHelpModule
enum QtValidLicenseForScriptModule
{
   LicensedScript = true
}; // end of QtValidLicenseForScriptModule
enum QtValidLicenseForScriptToolsModule
{
   LicensedScriptTools = true
}; // end of QtValidLicenseForScriptToolsModule
enum QtValidLicenseForQt3SupportLightModule
{
   LicensedQt3SupportLight = true
}; // end of QtValidLicenseForQt3SupportLightModule
enum QtValidLicenseForQt3SupportModule
{
   LicensedQt3Support = true
}; // end of QtValidLicenseForQt3SupportModule
enum QtValidLicenseForSvgModule
{
   LicensedSvg = true
}; // end of QtValidLicenseForSvgModule
enum QtValidLicenseForDeclarativeModule
{
   LicensedDeclarative = true
}; // end of QtValidLicenseForDeclarativeModule
enum QtValidLicenseForActiveQtModule
{
   LicensedActiveQt = true
}; // end of QtValidLicenseForActiveQtModule
enum QtValidLicenseForTestModule
{
   LicensedTest = true
}; // end of QtValidLicenseForTestModule
enum QtValidLicenseForDBusModule
{
   LicensedDBus = true
}; // end of QtValidLicenseForDBusModule
namespace QtPrivate
{
   template < _Bool B, typename T = void >
      struct QEnableIf{
      }; // end of QEnableIf
} // end of QtPrivate
typedef enum QtValidLicenseForCoreModule QtCoreModule;
namespace Qt
{
   enum GlobalColor
   {
      color0,
      color1,
      black,
      white,
      darkGray,
      gray,
      lightGray,
      red,
      green,
      blue,
      cyan,
      magenta,
      yellow,
      darkRed,
      darkGreen,
      darkBlue,
      darkCyan,
      darkMagenta,
      darkYellow,
      transparent
   }; // end of GlobalColor
   enum KeyboardModifier
   {
      NoModifier = 0,
      ShiftModifier = 33554432,
      ControlModifier = 67108864,
      AltModifier = 134217728,
      MetaModifier = 268435456,
      KeypadModifier = 536870912,
      GroupSwitchModifier = 1073741824,
      KeyboardModifierMask = 4261412864U
   }; // end of KeyboardModifier
   typedef QFlags Qt::KeyboardModifiers;
   enum Modifier
   {
      META = Qt::MetaModifier,
      SHIFT = Qt::ShiftModifier,
      CTRL = Qt::ControlModifier,
      ALT = Qt::AltModifier,
      MODIFIER_MASK = KeyboardModifierMask,
      UNICODE_ACCEL = 0
   }; // end of Modifier
   enum MouseButton
   {
      NoButton = 0,
      LeftButton = 1,
      RightButton = 2,
      MidButton = 4,
      MiddleButton = MidButton,
      XButton1 = 8,
      XButton2 = 16,
      MouseButtonMask = 255
   }; // end of MouseButton
   typedef QFlags Qt::MouseButtons;
   enum Orientation
   {
      Horizontal = 1,
      Vertical = 2
   }; // end of Orientation
   typedef QFlags Qt::Orientations;
   enum FocusPolicy
   {
      NoFocus = 0,
      TabFocus = 1,
      ClickFocus = 2,
      StrongFocus = TabFocus | ClickFocus | 8,
      WheelFocus = StrongFocus | 4
   }; // end of FocusPolicy
   enum SortOrder
   {
      AscendingOrder,
      DescendingOrder
   }; // end of SortOrder
   enum TileRule
   {
      StretchTile,
      RepeatTile,
      RoundTile
   }; // end of TileRule
   enum AlignmentFlag
   {
      AlignLeft = 1,
      AlignLeading = AlignLeft,
      AlignRight = 2,
      AlignTrailing = AlignRight,
      AlignHCenter = 4,
      AlignJustify = 8,
      AlignAbsolute = 16,
      AlignHorizontal_Mask = AlignLeft | AlignRight | AlignHCenter | AlignJustify | AlignAbsolute,
      AlignTop = 32,
      AlignBottom = 64,
      AlignVCenter = 128,
      AlignVertical_Mask = AlignTop | AlignBottom | AlignVCenter,
      AlignCenter = AlignVCenter | AlignHCenter
   }; // end of AlignmentFlag
   typedef QFlags Qt::Alignment;
   enum TextFlag
   {
      TextSingleLine = 256,
      TextDontClip = 512,
      TextExpandTabs = 1024,
      TextShowMnemonic = 2048,
      TextWordWrap = 4096,
      TextWrapAnywhere = 8192,
      TextDontPrint = 16384,
      TextIncludeTrailingSpaces = 134217728,
      TextHideMnemonic = 32768,
      TextJustificationForced = 65536,
      TextForceLeftToRight = 131072,
      TextForceRightToLeft = 262144,
      TextLongestVariant = 524288,
      TextBypassShaping = 1048576
   }; // end of TextFlag
   enum TextElideMode
   {
      ElideLeft,
      ElideRight,
      ElideMiddle,
      ElideNone
   }; // end of TextElideMode
   enum WindowType
   {
      Widget = 0,
      Window = 1,
      Dialog = 2 | Window,
      Sheet = 4 | Window,
      Drawer = 6 | Window,
      Popup = 8 | Window,
      Tool = 10 | Window,
      ToolTip = 12 | Window,
      SplashScreen = 14 | Window,
      Desktop = 16 | Window,
      SubWindow = 18,
      WindowType_Mask = 255,
      MSWindowsFixedSizeDialogHint = 256,
      MSWindowsOwnDC = 512,
      X11BypassWindowManagerHint = 1024,
      FramelessWindowHint = 2048,
      WindowTitleHint = 4096,
      WindowSystemMenuHint = 8192,
      WindowMinimizeButtonHint = 16384,
      WindowMaximizeButtonHint = 32768,
      WindowMinMaxButtonsHint = WindowMinimizeButtonHint | WindowMaximizeButtonHint,
      WindowContextHelpButtonHint = 65536,
      WindowShadeButtonHint = 131072,
      WindowStaysOnTopHint = 262144,
      CustomizeWindowHint = 33554432,
      WindowStaysOnBottomHint = 67108864,
      WindowCloseButtonHint = 134217728,
      MacWindowToolBarButtonHint = 268435456,
      BypassGraphicsProxyWidget = 536870912,
      WindowOkButtonHint = 524288,
      WindowCancelButtonHint = 1048576,
      WindowSoftkeysVisibleHint = 1073741824,
      WindowSoftkeysRespondHint = 2147483648U
   }; // end of WindowType
   typedef QFlags Qt::WindowFlags;
   enum WindowState
   {
      WindowNoState = 0,
      WindowMinimized = 1,
      WindowMaximized = 2,
      WindowFullScreen = 4,
      WindowActive = 8
   }; // end of WindowState
   typedef QFlags Qt::WindowStates;
   enum WidgetAttribute
   {
      WA_Disabled = 0,
      WA_UnderMouse = 1,
      WA_MouseTracking = 2,
      WA_ContentsPropagated = 3,
      WA_OpaquePaintEvent = 4,
      WA_NoBackground = WA_OpaquePaintEvent,
      WA_StaticContents = 5,
      WA_LaidOut = 7,
      WA_PaintOnScreen = 8,
      WA_NoSystemBackground = 9,
      WA_UpdatesDisabled = 10,
      WA_Mapped = 11,
      WA_MacNoClickThrough = 12,
      WA_PaintOutsidePaintEvent = 13,
      WA_InputMethodEnabled = 14,
      WA_WState_Visible = 15,
      WA_WState_Hidden = 16,
      WA_ForceDisabled = 32,
      WA_KeyCompression = 33,
      WA_PendingMoveEvent = 34,
      WA_PendingResizeEvent = 35,
      WA_SetPalette = 36,
      WA_SetFont = 37,
      WA_SetCursor = 38,
      WA_NoChildEventsFromChildren = 39,
      WA_WindowModified = 41,
      WA_Resized = 42,
      WA_Moved = 43,
      WA_PendingUpdate = 44,
      WA_InvalidSize = 45,
      WA_MacBrushedMetal = 46,
      WA_MacMetalStyle = WA_MacBrushedMetal,
      WA_CustomWhatsThis = 47,
      WA_LayoutOnEntireRect = 48,
      WA_OutsideWSRange = 49,
      WA_GrabbedShortcut = 50,
      WA_TransparentForMouseEvents = 51,
      WA_PaintUnclipped = 52,
      WA_SetWindowIcon = 53,
      WA_NoMouseReplay = 54,
      WA_DeleteOnClose = 55,
      WA_RightToLeft = 56,
      WA_SetLayoutDirection = 57,
      WA_NoChildEventsForParent = 58,
      WA_ForceUpdatesDisabled = 59,
      WA_WState_Created = 60,
      WA_WState_CompressKeys = 61,
      WA_WState_InPaintEvent = 62,
      WA_WState_Reparented = 63,
      WA_WState_ConfigPending = 64,
      WA_WState_Polished = 66,
      WA_WState_DND = 67,
      WA_WState_OwnSizePolicy = 68,
      WA_WState_ExplicitShowHide = 69,
      WA_ShowModal = 70,
      WA_MouseNoMask = 71,
      WA_GroupLeader = 72,
      WA_NoMousePropagation = 73,
      WA_Hover = 74,
      WA_InputMethodTransparent = 75,
      WA_QuitOnClose = 76,
      WA_KeyboardFocusChange = 77,
      WA_AcceptDrops = 78,
      WA_DropSiteRegistered = 79,
      WA_ForceAcceptDrops = WA_DropSiteRegistered,
      WA_WindowPropagation = 80,
      WA_NoX11EventCompression = 81,
      WA_TintedBackground = 82,
      WA_X11OpenGLOverlay = 83,
      WA_AlwaysShowToolTips = 84,
      WA_MacOpaqueSizeGrip = 85,
      WA_SetStyle = 86,
      WA_SetLocale = 87,
      WA_MacShowFocusRect = 88,
      WA_MacNormalSize = 89,
      WA_MacSmallSize = 90,
      WA_MacMiniSize = 91,
      WA_LayoutUsesWidgetRect = 92,
      WA_StyledBackground = 93,
      WA_MSWindowsUseDirect3D = 94,
      WA_CanHostQMdiSubWindowTitleBar = 95,
      WA_MacAlwaysShowToolWindow = 96,
      WA_StyleSheet = 97,
      WA_ShowWithoutActivating = 98,
      WA_X11BypassTransientForHint = 99,
      WA_NativeWindow = 100,
      WA_DontCreateNativeAncestors = 101,
      WA_MacVariableSize = 102,
      WA_DontShowOnScreen = 103,
      WA_X11NetWmWindowTypeDesktop = 104,
      WA_X11NetWmWindowTypeDock = 105,
      WA_X11NetWmWindowTypeToolBar = 106,
      WA_X11NetWmWindowTypeMenu = 107,
      WA_X11NetWmWindowTypeUtility = 108,
      WA_X11NetWmWindowTypeSplash = 109,
      WA_X11NetWmWindowTypeDialog = 110,
      WA_X11NetWmWindowTypeDropDownMenu = 111,
      WA_X11NetWmWindowTypePopupMenu = 112,
      WA_X11NetWmWindowTypeToolTip = 113,
      WA_X11NetWmWindowTypeNotification = 114,
      WA_X11NetWmWindowTypeCombo = 115,
      WA_X11NetWmWindowTypeDND = 116,
      WA_MacFrameworkScaled = 117,
      WA_SetWindowModality = 118,
      WA_WState_WindowOpacitySet = 119,
      WA_TranslucentBackground = 120,
      WA_AcceptTouchEvents = 121,
      WA_WState_AcceptedTouchBeginEvent = 122,
      WA_TouchPadAcceptSingleTouchEvents = 123,
      WA_MergeSoftkeys = 124,
      WA_MergeSoftkeysRecursively = 125,
      WA_LockPortraitOrientation = 128,
      WA_LockLandscapeOrientation = 129,
      WA_AutoOrientation = 130,
      WA_X11DoNotAcceptFocus = 132,
      WA_SymbianNoSystemRotation = 133,
      WA_MacNoShadow = 134,
      WA_AttributeCount
   }; // end of WidgetAttribute
   enum ApplicationAttribute
   {
      AA_ImmediateWidgetCreation = 0,
      AA_MSWindowsUseDirect3DByDefault = 1,
      AA_DontShowIconsInMenus = 2,
      AA_NativeWindows = 3,
      AA_DontCreateNativeWidgetSiblings = 4,
      AA_MacPluginApplication = 5,
      AA_DontUseNativeMenuBar = 6,
      AA_MacDontSwapCtrlAndMeta = 7,
      AA_S60DontConstructApplicationPanes = 8,
      AA_S60DisablePartialScreenInputMode = 9,
      AA_X11InitThreads = 10,
      AA_CaptureMultimediaKeys = 11,
      AA_AttributeCount
   }; // end of ApplicationAttribute
   enum ImageConversionFlag
   {
      ColorMode_Mask = 3,
      AutoColor = 0,
      ColorOnly = 3,
      MonoOnly = 2,
      AlphaDither_Mask = 12,
      ThresholdAlphaDither = 0,
      OrderedAlphaDither = 4,
      DiffuseAlphaDither = 8,
      NoAlpha = 12,
      Dither_Mask = 48,
      DiffuseDither = 0,
      OrderedDither = 16,
      ThresholdDither = 32,
      DitherMode_Mask = 192,
      AutoDither = 0,
      PreferDither = 64,
      AvoidDither = 128,
      NoOpaqueDetection = 256,
      NoFormatConversion = 512
   }; // end of ImageConversionFlag
   typedef QFlags Qt::ImageConversionFlags;
   enum BGMode
   {
      TransparentMode,
      OpaqueMode
   }; // end of BGMode
   enum Key
   {
      Key_Escape = 16777216,
      Key_Tab = 16777217,
      Key_Backtab = 16777218,
      Key_Backspace = 16777219,
      Key_Return = 16777220,
      Key_Enter = 16777221,
      Key_Insert = 16777222,
      Key_Delete = 16777223,
      Key_Pause = 16777224,
      Key_Print = 16777225,
      Key_SysReq = 16777226,
      Key_Clear = 16777227,
      Key_Home = 16777232,
      Key_End = 16777233,
      Key_Left = 16777234,
      Key_Up = 16777235,
      Key_Right = 16777236,
      Key_Down = 16777237,
      Key_PageUp = 16777238,
      Key_PageDown = 16777239,
      Key_Shift = 16777248,
      Key_Control = 16777249,
      Key_Meta = 16777250,
      Key_Alt = 16777251,
      Key_CapsLock = 16777252,
      Key_NumLock = 16777253,
      Key_ScrollLock = 16777254,
      Key_F1 = 16777264,
      Key_F2 = 16777265,
      Key_F3 = 16777266,
      Key_F4 = 16777267,
      Key_F5 = 16777268,
      Key_F6 = 16777269,
      Key_F7 = 16777270,
      Key_F8 = 16777271,
      Key_F9 = 16777272,
      Key_F10 = 16777273,
      Key_F11 = 16777274,
      Key_F12 = 16777275,
      Key_F13 = 16777276,
      Key_F14 = 16777277,
      Key_F15 = 16777278,
      Key_F16 = 16777279,
      Key_F17 = 16777280,
      Key_F18 = 16777281,
      Key_F19 = 16777282,
      Key_F20 = 16777283,
      Key_F21 = 16777284,
      Key_F22 = 16777285,
      Key_F23 = 16777286,
      Key_F24 = 16777287,
      Key_F25 = 16777288,
      Key_F26 = 16777289,
      Key_F27 = 16777290,
      Key_F28 = 16777291,
      Key_F29 = 16777292,
      Key_F30 = 16777293,
      Key_F31 = 16777294,
      Key_F32 = 16777295,
      Key_F33 = 16777296,
      Key_F34 = 16777297,
      Key_F35 = 16777298,
      Key_Super_L = 16777299,
      Key_Super_R = 16777300,
      Key_Menu = 16777301,
      Key_Hyper_L = 16777302,
      Key_Hyper_R = 16777303,
      Key_Help = 16777304,
      Key_Direction_L = 16777305,
      Key_Direction_R = 16777312,
      Key_Space = 32,
      Key_Any = Key_Space,
      Key_Exclam = 33,
      Key_QuoteDbl = 34,
      Key_NumberSign = 35,
      Key_Dollar = 36,
      Key_Percent = 37,
      Key_Ampersand = 38,
      Key_Apostrophe = 39,
      Key_ParenLeft = 40,
      Key_ParenRight = 41,
      Key_Asterisk = 42,
      Key_Plus = 43,
      Key_Comma = 44,
      Key_Minus = 45,
      Key_Period = 46,
      Key_Slash = 47,
      Key_0 = 48,
      Key_1 = 49,
      Key_2 = 50,
      Key_3 = 51,
      Key_4 = 52,
      Key_5 = 53,
      Key_6 = 54,
      Key_7 = 55,
      Key_8 = 56,
      Key_9 = 57,
      Key_Colon = 58,
      Key_Semicolon = 59,
      Key_Less = 60,
      Key_Equal = 61,
      Key_Greater = 62,
      Key_Question = 63,
      Key_At = 64,
      Key_A = 65,
      Key_B = 66,
      Key_C = 67,
      Key_D = 68,
      Key_E = 69,
      Key_F = 70,
      Key_G = 71,
      Key_H = 72,
      Key_I = 73,
      Key_J = 74,
      Key_K = 75,
      Key_L = 76,
      Key_M = 77,
      Key_N = 78,
      Key_O = 79,
      Key_P = 80,
      Key_Q = 81,
      Key_R = 82,
      Key_S = 83,
      Key_T = 84,
      Key_U = 85,
      Key_V = 86,
      Key_W = 87,
      Key_X = 88,
      Key_Y = 89,
      Key_Z = 90,
      Key_BracketLeft = 91,
      Key_Backslash = 92,
      Key_BracketRight = 93,
      Key_AsciiCircum = 94,
      Key_Underscore = 95,
      Key_QuoteLeft = 96,
      Key_BraceLeft = 123,
      Key_Bar = 124,
      Key_BraceRight = 125,
      Key_AsciiTilde = 126,
      Key_nobreakspace = 160,
      Key_exclamdown = 161,
      Key_cent = 162,
      Key_sterling = 163,
      Key_currency = 164,
      Key_yen = 165,
      Key_brokenbar = 166,
      Key_section = 167,
      Key_diaeresis = 168,
      Key_copyright = 169,
      Key_ordfeminine = 170,
      Key_guillemotleft = 171,
      Key_notsign = 172,
      Key_hyphen = 173,
      Key_registered = 174,
      Key_macron = 175,
      Key_degree = 176,
      Key_plusminus = 177,
      Key_twosuperior = 178,
      Key_threesuperior = 179,
      Key_acute = 180,
      Key_mu = 181,
      Key_paragraph = 182,
      Key_periodcentered = 183,
      Key_cedilla = 184,
      Key_onesuperior = 185,
      Key_masculine = 186,
      Key_guillemotright = 187,
      Key_onequarter = 188,
      Key_onehalf = 189,
      Key_threequarters = 190,
      Key_questiondown = 191,
      Key_Agrave = 192,
      Key_Aacute = 193,
      Key_Acircumflex = 194,
      Key_Atilde = 195,
      Key_Adiaeresis = 196,
      Key_Aring = 197,
      Key_AE = 198,
      Key_Ccedilla = 199,
      Key_Egrave = 200,
      Key_Eacute = 201,
      Key_Ecircumflex = 202,
      Key_Ediaeresis = 203,
      Key_Igrave = 204,
      Key_Iacute = 205,
      Key_Icircumflex = 206,
      Key_Idiaeresis = 207,
      Key_ETH = 208,
      Key_Ntilde = 209,
      Key_Ograve = 210,
      Key_Oacute = 211,
      Key_Ocircumflex = 212,
      Key_Otilde = 213,
      Key_Odiaeresis = 214,
      Key_multiply = 215,
      Key_Ooblique = 216,
      Key_Ugrave = 217,
      Key_Uacute = 218,
      Key_Ucircumflex = 219,
      Key_Udiaeresis = 220,
      Key_Yacute = 221,
      Key_THORN = 222,
      Key_ssharp = 223,
      Key_division = 247,
      Key_ydiaeresis = 255,
      Key_AltGr = 16781571,
      Key_Multi_key = 16781600,
      Key_Codeinput = 16781623,
      Key_SingleCandidate = 16781628,
      Key_MultipleCandidate = 16781629,
      Key_PreviousCandidate = 16781630,
      Key_Mode_switch = 16781694,
      Key_Kanji = 16781601,
      Key_Muhenkan = 16781602,
      Key_Henkan = 16781603,
      Key_Romaji = 16781604,
      Key_Hiragana = 16781605,
      Key_Katakana = 16781606,
      Key_Hiragana_Katakana = 16781607,
      Key_Zenkaku = 16781608,
      Key_Hankaku = 16781609,
      Key_Zenkaku_Hankaku = 16781610,
      Key_Touroku = 16781611,
      Key_Massyo = 16781612,
      Key_Kana_Lock = 16781613,
      Key_Kana_Shift = 16781614,
      Key_Eisu_Shift = 16781615,
      Key_Eisu_toggle = 16781616,
      Key_Hangul = 16781617,
      Key_Hangul_Start = 16781618,
      Key_Hangul_End = 16781619,
      Key_Hangul_Hanja = 16781620,
      Key_Hangul_Jamo = 16781621,
      Key_Hangul_Romaja = 16781622,
      Key_Hangul_Jeonja = 16781624,
      Key_Hangul_Banja = 16781625,
      Key_Hangul_PreHanja = 16781626,
      Key_Hangul_PostHanja = 16781627,
      Key_Hangul_Special = 16781631,
      Key_Dead_Grave = 16781904,
      Key_Dead_Acute = 16781905,
      Key_Dead_Circumflex = 16781906,
      Key_Dead_Tilde = 16781907,
      Key_Dead_Macron = 16781908,
      Key_Dead_Breve = 16781909,
      Key_Dead_Abovedot = 16781910,
      Key_Dead_Diaeresis = 16781911,
      Key_Dead_Abovering = 16781912,
      Key_Dead_Doubleacute = 16781913,
      Key_Dead_Caron = 16781914,
      Key_Dead_Cedilla = 16781915,
      Key_Dead_Ogonek = 16781916,
      Key_Dead_Iota = 16781917,
      Key_Dead_Voiced_Sound = 16781918,
      Key_Dead_Semivoiced_Sound = 16781919,
      Key_Dead_Belowdot = 16781920,
      Key_Dead_Hook = 16781921,
      Key_Dead_Horn = 16781922,
      Key_Back = 16777313,
      Key_Forward = 16777314,
      Key_Stop = 16777315,
      Key_Refresh = 16777316,
      Key_VolumeDown = 16777328,
      Key_VolumeMute = 16777329,
      Key_VolumeUp = 16777330,
      Key_BassBoost = 16777331,
      Key_BassUp = 16777332,
      Key_BassDown = 16777333,
      Key_TrebleUp = 16777334,
      Key_TrebleDown = 16777335,
      Key_MediaPlay = 16777344,
      Key_MediaStop = 16777345,
      Key_MediaPrevious = 16777346,
      Key_MediaNext = 16777347,
      Key_MediaRecord = 16777348,
      Key_MediaPause = 16777349,
      Key_MediaTogglePlayPause = 16777350,
      Key_HomePage = 16777360,
      Key_Favorites = 16777361,
      Key_Search = 16777362,
      Key_Standby = 16777363,
      Key_OpenUrl = 16777364,
      Key_LaunchMail = 16777376,
      Key_LaunchMedia = 16777377,
      Key_Launch0 = 16777378,
      Key_Launch1 = 16777379,
      Key_Launch2 = 16777380,
      Key_Launch3 = 16777381,
      Key_Launch4 = 16777382,
      Key_Launch5 = 16777383,
      Key_Launch6 = 16777384,
      Key_Launch7 = 16777385,
      Key_Launch8 = 16777386,
      Key_Launch9 = 16777387,
      Key_LaunchA = 16777388,
      Key_LaunchB = 16777389,
      Key_LaunchC = 16777390,
      Key_LaunchD = 16777391,
      Key_LaunchE = 16777392,
      Key_LaunchF = 16777393,
      Key_MonBrightnessUp = 16777394,
      Key_MonBrightnessDown = 16777395,
      Key_KeyboardLightOnOff = 16777396,
      Key_KeyboardBrightnessUp = 16777397,
      Key_KeyboardBrightnessDown = 16777398,
      Key_PowerOff = 16777399,
      Key_WakeUp = 16777400,
      Key_Eject = 16777401,
      Key_ScreenSaver = 16777402,
      Key_WWW = 16777403,
      Key_Memo = 16777404,
      Key_LightBulb = 16777405,
      Key_Shop = 16777406,
      Key_History = 16777407,
      Key_AddFavorite = 16777408,
      Key_HotLinks = 16777409,
      Key_BrightnessAdjust = 16777410,
      Key_Finance = 16777411,
      Key_Community = 16777412,
      Key_AudioRewind = 16777413,
      Key_BackForward = 16777414,
      Key_ApplicationLeft = 16777415,
      Key_ApplicationRight = 16777416,
      Key_Book = 16777417,
      Key_CD = 16777418,
      Key_Calculator = 16777419,
      Key_ToDoList = 16777420,
      Key_ClearGrab = 16777421,
      Key_Close = 16777422,
      Key_Copy = 16777423,
      Key_Cut = 16777424,
      Key_Display = 16777425,
      Key_DOS = 16777426,
      Key_Documents = 16777427,
      Key_Excel = 16777428,
      Key_Explorer = 16777429,
      Key_Game = 16777430,
      Key_Go = 16777431,
      Key_iTouch = 16777432,
      Key_LogOff = 16777433,
      Key_Market = 16777434,
      Key_Meeting = 16777435,
      Key_MenuKB = 16777436,
      Key_MenuPB = 16777437,
      Key_MySites = 16777438,
      Key_News = 16777439,
      Key_OfficeHome = 16777440,
      Key_Option = 16777441,
      Key_Paste = 16777442,
      Key_Phone = 16777443,
      Key_Calendar = 16777444,
      Key_Reply = 16777445,
      Key_Reload = 16777446,
      Key_RotateWindows = 16777447,
      Key_RotationPB = 16777448,
      Key_RotationKB = 16777449,
      Key_Save = 16777450,
      Key_Send = 16777451,
      Key_Spell = 16777452,
      Key_SplitScreen = 16777453,
      Key_Support = 16777454,
      Key_TaskPane = 16777455,
      Key_Terminal = 16777456,
      Key_Tools = 16777457,
      Key_Travel = 16777458,
      Key_Video = 16777459,
      Key_Word = 16777460,
      Key_Xfer = 16777461,
      Key_ZoomIn = 16777462,
      Key_ZoomOut = 16777463,
      Key_Away = 16777464,
      Key_Messenger = 16777465,
      Key_WebCam = 16777466,
      Key_MailForward = 16777467,
      Key_Pictures = 16777468,
      Key_Music = 16777469,
      Key_Battery = 16777470,
      Key_Bluetooth = 16777471,
      Key_WLAN = 16777472,
      Key_UWB = 16777473,
      Key_AudioForward = 16777474,
      Key_AudioRepeat = 16777475,
      Key_AudioRandomPlay = 16777476,
      Key_Subtitle = 16777477,
      Key_AudioCycleTrack = 16777478,
      Key_Time = 16777479,
      Key_Hibernate = 16777480,
      Key_View = 16777481,
      Key_TopMenu = 16777482,
      Key_PowerDown = 16777483,
      Key_Suspend = 16777484,
      Key_ContrastAdjust = 16777485,
      Key_LaunchG = 16777486,
      Key_LaunchH = 16777487,
      Key_MediaLast = 16842751,
      Key_Select = 16842752,
      Key_Yes = 16842753,
      Key_No = 16842754,
      Key_Cancel = 16908289,
      Key_Printer = 16908290,
      Key_Execute = 16908291,
      Key_Sleep = 16908292,
      Key_Play = 16908293,
      Key_Zoom = 16908294,
      Key_Context1 = 17825792,
      Key_Context2 = 17825793,
      Key_Context3 = 17825794,
      Key_Context4 = 17825795,
      Key_Call = 17825796,
      Key_Hangup = 17825797,
      Key_Flip = 17825798,
      Key_ToggleCallHangup = 17825799,
      Key_VoiceDial = 17825800,
      Key_LastNumberRedial = 17825801,
      Key_Camera = 17825824,
      Key_CameraFocus = 17825825,
      Key_unknown = 33554431
   }; // end of Key
   enum ArrowType
   {
      NoArrow,
      UpArrow,
      DownArrow,
      LeftArrow,
      RightArrow
   }; // end of ArrowType
   enum PenStyle
   {
      NoPen,
      SolidLine,
      DashLine,
      DotLine,
      DashDotLine,
      DashDotDotLine,
      CustomDashLine,
      MPenStyle = 15
   }; // end of PenStyle
   enum PenCapStyle
   {
      FlatCap = 0,
      SquareCap = 16,
      RoundCap = 32,
      MPenCapStyle = 48
   }; // end of PenCapStyle
   enum PenJoinStyle
   {
      MiterJoin = 0,
      BevelJoin = 64,
      RoundJoin = 128,
      SvgMiterJoin = 256,
      MPenJoinStyle = 448
   }; // end of PenJoinStyle
   enum BrushStyle
   {
      NoBrush,
      SolidPattern,
      Dense1Pattern,
      Dense2Pattern,
      Dense3Pattern,
      Dense4Pattern,
      Dense5Pattern,
      Dense6Pattern,
      Dense7Pattern,
      HorPattern,
      VerPattern,
      CrossPattern,
      BDiagPattern,
      FDiagPattern,
      DiagCrossPattern,
      LinearGradientPattern,
      RadialGradientPattern,
      ConicalGradientPattern,
      TexturePattern = 24
   }; // end of BrushStyle
   enum SizeMode
   {
      AbsoluteSize,
      RelativeSize
   }; // end of SizeMode
   enum UIEffect
   {
      UI_General,
      UI_AnimateMenu,
      UI_FadeMenu,
      UI_AnimateCombo,
      UI_AnimateTooltip,
      UI_FadeTooltip,
      UI_AnimateToolBox
   }; // end of UIEffect
   enum CursorShape
   {
      ArrowCursor,
      UpArrowCursor,
      CrossCursor,
      WaitCursor,
      IBeamCursor,
      SizeVerCursor,
      SizeHorCursor,
      SizeBDiagCursor,
      SizeFDiagCursor,
      SizeAllCursor,
      BlankCursor,
      SplitVCursor,
      SplitHCursor,
      PointingHandCursor,
      ForbiddenCursor,
      WhatsThisCursor,
      BusyCursor,
      OpenHandCursor,
      ClosedHandCursor,
      DragCopyCursor,
      DragMoveCursor,
      DragLinkCursor,
      LastCursor = DragLinkCursor,
      BitmapCursor = 24,
      CustomCursor = 25
   }; // end of CursorShape
   enum TextFormat
   {
      PlainText,
      RichText,
      AutoText,
      LogText
   }; // end of TextFormat
   enum AspectRatioMode
   {
      IgnoreAspectRatio,
      KeepAspectRatio,
      KeepAspectRatioByExpanding
   }; // end of AspectRatioMode
   enum AnchorAttribute
   {
      AnchorName,
      AnchorHref
   }; // end of AnchorAttribute
   enum DockWidgetArea
   {
      LeftDockWidgetArea = 1,
      RightDockWidgetArea = 2,
      TopDockWidgetArea = 4,
      BottomDockWidgetArea = 8,
      DockWidgetArea_Mask = 15,
      AllDockWidgetAreas = DockWidgetArea_Mask,
      NoDockWidgetArea = 0
   }; // end of DockWidgetArea
   enum DockWidgetAreaSizes
   {
      NDockWidgetAreas = 4
   }; // end of DockWidgetAreaSizes
   typedef QFlags Qt::DockWidgetAreas;
   enum ToolBarArea
   {
      LeftToolBarArea = 1,
      RightToolBarArea = 2,
      TopToolBarArea = 4,
      BottomToolBarArea = 8,
      ToolBarArea_Mask = 15,
      AllToolBarAreas = ToolBarArea_Mask,
      NoToolBarArea = 0
   }; // end of ToolBarArea
   enum ToolBarAreaSizes
   {
      NToolBarAreas = 4
   }; // end of ToolBarAreaSizes
   typedef QFlags Qt::ToolBarAreas;
   enum DateFormat
   {
      TextDate,
      ISODate,
      SystemLocaleDate,
      LocalDate = SystemLocaleDate,
      LocaleDate,
      SystemLocaleShortDate,
      SystemLocaleLongDate,
      DefaultLocaleShortDate,
      DefaultLocaleLongDate
   }; // end of DateFormat
   enum TimeSpec
   {
      LocalTime,
      UTC,
      OffsetFromUTC
   }; // end of TimeSpec
   enum DayOfWeek
   {
      Monday = 1,
      Tuesday = 2,
      Wednesday = 3,
      Thursday = 4,
      Friday = 5,
      Saturday = 6,
      Sunday = 7
   }; // end of DayOfWeek
   enum ScrollBarPolicy
   {
      ScrollBarAsNeeded,
      ScrollBarAlwaysOff,
      ScrollBarAlwaysOn
   }; // end of ScrollBarPolicy
   enum CaseSensitivity
   {
      CaseInsensitive,
      CaseSensitive
   }; // end of CaseSensitivity
   enum Corner
   {
      TopLeftCorner = 0,
      TopRightCorner = 1,
      BottomLeftCorner = 2,
      BottomRightCorner = 3
   }; // end of Corner
   enum ConnectionType
   {
      AutoConnection,
      DirectConnection,
      QueuedConnection,
      AutoCompatConnection,
      BlockingQueuedConnection,
      UniqueConnection = 128
   }; // end of ConnectionType
   enum ShortcutContext
   {
      WidgetShortcut,
      WindowShortcut,
      ApplicationShortcut,
      WidgetWithChildrenShortcut
   }; // end of ShortcutContext
   enum FillRule
   {
      OddEvenFill,
      WindingFill
   }; // end of FillRule
   enum MaskMode
   {
      MaskInColor,
      MaskOutColor
   }; // end of MaskMode
   enum ClipOperation
   {
      NoClip,
      ReplaceClip,
      IntersectClip,
      UniteClip
   }; // end of ClipOperation
   enum ItemSelectionMode
   {
      ContainsItemShape = 0,
      IntersectsItemShape = 1,
      ContainsItemBoundingRect = 2,
      IntersectsItemBoundingRect = 3
   }; // end of ItemSelectionMode
   enum TransformationMode
   {
      FastTransformation,
      SmoothTransformation
   }; // end of TransformationMode
   enum Axis
   {
      XAxis,
      YAxis,
      ZAxis
   }; // end of Axis
   enum FocusReason
   {
      MouseFocusReason,
      TabFocusReason,
      BacktabFocusReason,
      ActiveWindowFocusReason,
      PopupFocusReason,
      ShortcutFocusReason,
      MenuBarFocusReason,
      OtherFocusReason,
      NoFocusReason
   }; // end of FocusReason
   enum ContextMenuPolicy
   {
      NoContextMenu,
      DefaultContextMenu,
      ActionsContextMenu,
      CustomContextMenu,
      PreventContextMenu
   }; // end of ContextMenuPolicy
   enum InputMethodQuery
   {
      ImMicroFocus,
      ImFont,
      ImCursorPosition,
      ImSurroundingText,
      ImCurrentSelection,
      ImMaximumTextLength,
      ImAnchorPosition
   }; // end of InputMethodQuery
   enum InputMethodHint
   {
      ImhNone = 0,
      ImhHiddenText = 1,
      ImhNoAutoUppercase = 2,
      ImhPreferNumbers = 4,
      ImhPreferUppercase = 8,
      ImhPreferLowercase = 16,
      ImhNoPredictiveText = 32,
      ImhDigitsOnly = 65536,
      ImhFormattedNumbersOnly = 131072,
      ImhUppercaseOnly = 262144,
      ImhLowercaseOnly = 524288,
      ImhDialableCharactersOnly = 1048576,
      ImhEmailCharactersOnly = 2097152,
      ImhUrlCharactersOnly = 4194304,
      ImhExclusiveInputMask = 4294901760U
   }; // end of InputMethodHint
   typedef QFlags Qt::InputMethodHints;
   enum ToolButtonStyle
   {
      ToolButtonIconOnly,
      ToolButtonTextOnly,
      ToolButtonTextBesideIcon,
      ToolButtonTextUnderIcon,
      ToolButtonFollowStyle
   }; // end of ToolButtonStyle
   enum LayoutDirection
   {
      LeftToRight,
      RightToLeft,
      LayoutDirectionAuto
   }; // end of LayoutDirection
   enum AnchorPoint
   {
      AnchorLeft = 0,
      AnchorHorizontalCenter,
      AnchorRight,
      AnchorTop,
      AnchorVerticalCenter,
      AnchorBottom
   }; // end of AnchorPoint
   enum DropAction
   {
      CopyAction = 1,
      MoveAction = 2,
      LinkAction = 4,
      ActionMask = 255,
      TargetMoveAction = 32770,
      IgnoreAction = 0
   }; // end of DropAction
   typedef QFlags Qt::DropActions;
   enum CheckState
   {
      Unchecked,
      PartiallyChecked,
      Checked
   }; // end of CheckState
   enum ItemDataRole
   {
      DisplayRole = 0,
      DecorationRole = 1,
      EditRole = 2,
      ToolTipRole = 3,
      StatusTipRole = 4,
      WhatsThisRole = 5,
      FontRole = 6,
      TextAlignmentRole = 7,
      BackgroundColorRole = 8,
      BackgroundRole = 8,
      TextColorRole = 9,
      ForegroundRole = 9,
      CheckStateRole = 10,
      AccessibleTextRole = 11,
      AccessibleDescriptionRole = 12,
      SizeHintRole = 13,
      InitialSortOrderRole = 14,
      DisplayPropertyRole = 27,
      DecorationPropertyRole = 28,
      ToolTipPropertyRole = 29,
      StatusTipPropertyRole = 30,
      WhatsThisPropertyRole = 31,
      UserRole = 32
   }; // end of ItemDataRole
   enum ItemFlag
   {
      NoItemFlags = 0,
      ItemIsSelectable = 1,
      ItemIsEditable = 2,
      ItemIsDragEnabled = 4,
      ItemIsDropEnabled = 8,
      ItemIsUserCheckable = 16,
      ItemIsEnabled = 32,
      ItemIsTristate = 64
   }; // end of ItemFlag
   typedef QFlags Qt::ItemFlags;
   enum MatchFlag
   {
      MatchExactly = 0,
      MatchContains = 1,
      MatchStartsWith = 2,
      MatchEndsWith = 3,
      MatchRegExp = 4,
      MatchWildcard = 5,
      MatchFixedString = 8,
      MatchCaseSensitive = 16,
      MatchWrap = 32,
      MatchRecursive = 64
   }; // end of MatchFlag
   typedef QFlags Qt::MatchFlags;
   typedef unsigned long Qt::HANDLE;
   typedef WindowFlags Qt::WFlags;
   enum WindowModality
   {
      NonModal,
      WindowModal,
      ApplicationModal
   }; // end of WindowModality
   enum TextInteractionFlag
   {
      NoTextInteraction = 0,
      TextSelectableByMouse = 1,
      TextSelectableByKeyboard = 2,
      LinksAccessibleByMouse = 4,
      LinksAccessibleByKeyboard = 8,
      TextEditable = 16,
      TextEditorInteraction = TextSelectableByMouse | TextSelectableByKeyboard | TextEditable,
      TextBrowserInteraction = TextSelectableByMouse | LinksAccessibleByMouse | LinksAccessibleByKeyboard
   }; // end of TextInteractionFlag
   typedef QFlags Qt::TextInteractionFlags;
   enum EventPriority
   {
      HighEventPriority = 1,
      NormalEventPriority = 0,
      LowEventPriority = -1
   }; // end of EventPriority
   enum SizeHint
   {
      MinimumSize,
      PreferredSize,
      MaximumSize,
      MinimumDescent,
      NSizeHints
   }; // end of SizeHint
   enum WindowFrameSection
   {
      NoSection,
      LeftSection,
      TopLeftSection,
      TopSection,
      TopRightSection,
      RightSection,
      BottomRightSection,
      BottomSection,
      BottomLeftSection,
      TitleBarArea
   }; // end of WindowFrameSection
   enum Initialization
   {
      Uninitialized
   }; // end of Initialization
   enum CoordinateSystem
   {
      DeviceCoordinates,
      LogicalCoordinates
   }; // end of CoordinateSystem
   enum TouchPointState
   {
      TouchPointPressed = 1,
      TouchPointMoved = 2,
      TouchPointStationary = 4,
      TouchPointReleased = 8,
      TouchPointStateMask = 15,
      TouchPointPrimary = 16
   }; // end of TouchPointState
   typedef QFlags Qt::TouchPointStates;
   enum GestureState
   {
      NoGesture,
      GestureStarted = 1,
      GestureUpdated = 2,
      GestureFinished = 3,
      GestureCanceled = 4
   }; // end of GestureState
   enum GestureType
   {
      TapGesture = 1,
      TapAndHoldGesture = 2,
      PanGesture = 3,
      PinchGesture = 4,
      SwipeGesture = 5,
      CustomGesture = 256,
      LastGestureType = ~0U
   }; // end of GestureType
   enum GestureFlag
   {
      DontStartGestureOnChildren = 1,
      ReceivePartialGestures = 2,
      IgnoredGesturesPropagateToParent = 4
   }; // end of GestureFlag
   typedef QFlags Qt::GestureFlags;
   enum NavigationMode
   {
      NavigationModeNone,
      NavigationModeKeypadTabOrder,
      NavigationModeKeypadDirectional,
      NavigationModeCursorAuto,
      NavigationModeCursorForceVisible
   }; // end of NavigationMode
   enum CursorMoveStyle
   {
      LogicalMoveStyle,
      VisualMoveStyle
   }; // end of CursorMoveStyle
} // end of Qt
inline QFlags operator| (Qt::MouseButtons::enum_type f1, Qt::MouseButtons::enum_type f2);
inline QFlags operator| (Qt::MouseButtons::enum_type f1, QFlags f2);
inline class QIncompatibleFlag operator| (Qt::MouseButtons::enum_type f1, int f2);
inline QFlags operator| (Qt::Orientations::enum_type f1, Qt::Orientations::enum_type f2);
inline QFlags operator| (Qt::Orientations::enum_type f1, QFlags f2);
inline class QIncompatibleFlag operator| (Qt::Orientations::enum_type f1, int f2);
inline QFlags operator| (Qt::KeyboardModifiers::enum_type f1, Qt::KeyboardModifiers::enum_type f2);
inline QFlags operator| (Qt::KeyboardModifiers::enum_type f1, QFlags f2);
inline class QIncompatibleFlag operator| (Qt::KeyboardModifiers::enum_type f1, int f2);
inline QFlags operator| (Qt::WindowFlags::enum_type f1, Qt::WindowFlags::enum_type f2);
inline QFlags operator| (Qt::WindowFlags::enum_type f1, QFlags f2);
inline class QIncompatibleFlag operator| (Qt::WindowFlags::enum_type f1, int f2);
inline QFlags operator| (Qt::Alignment::enum_type f1, Qt::Alignment::enum_type f2);
inline QFlags operator| (Qt::Alignment::enum_type f1, QFlags f2);
inline class QIncompatibleFlag operator| (Qt::Alignment::enum_type f1, int f2);
inline QFlags operator| (Qt::ImageConversionFlags::enum_type f1, Qt::ImageConversionFlags::enum_type f2);
inline QFlags operator| (Qt::ImageConversionFlags::enum_type f1, QFlags f2);
inline class QIncompatibleFlag operator| (Qt::ImageConversionFlags::enum_type f1, int f2);
inline QFlags operator| (Qt::DockWidgetAreas::enum_type f1, Qt::DockWidgetAreas::enum_type f2);
inline QFlags operator| (Qt::DockWidgetAreas::enum_type f1, QFlags f2);
inline class QIncompatibleFlag operator| (Qt::DockWidgetAreas::enum_type f1, int f2);
inline QFlags operator| (Qt::ToolBarAreas::enum_type f1, Qt::ToolBarAreas::enum_type f2);
inline QFlags operator| (Qt::ToolBarAreas::enum_type f1, QFlags f2);
inline class QIncompatibleFlag operator| (Qt::ToolBarAreas::enum_type f1, int f2);
inline QFlags operator| (Qt::WindowStates::enum_type f1, Qt::WindowStates::enum_type f2);
inline QFlags operator| (Qt::WindowStates::enum_type f1, QFlags f2);
inline class QIncompatibleFlag operator| (Qt::WindowStates::enum_type f1, int f2);
inline QFlags operator| (Qt::DropActions::enum_type f1, Qt::DropActions::enum_type f2);
inline QFlags operator| (Qt::DropActions::enum_type f1, QFlags f2);
inline class QIncompatibleFlag operator| (Qt::DropActions::enum_type f1, int f2);
inline QFlags operator| (Qt::ItemFlags::enum_type f1, Qt::ItemFlags::enum_type f2);
inline QFlags operator| (Qt::ItemFlags::enum_type f1, QFlags f2);
inline class QIncompatibleFlag operator| (Qt::ItemFlags::enum_type f1, int f2);
inline QFlags operator| (Qt::MatchFlags::enum_type f1, Qt::MatchFlags::enum_type f2);
inline QFlags operator| (Qt::MatchFlags::enum_type f1, QFlags f2);
inline class QIncompatibleFlag operator| (Qt::MatchFlags::enum_type f1, int f2);
inline QFlags operator| (Qt::TextInteractionFlags::enum_type f1, Qt::TextInteractionFlags::enum_type f2);
inline QFlags operator| (Qt::TextInteractionFlags::enum_type f1, QFlags f2);
inline class QIncompatibleFlag operator| (Qt::TextInteractionFlags::enum_type f1, int f2);
inline QFlags operator| (Qt::InputMethodHints::enum_type f1, Qt::InputMethodHints::enum_type f2);
inline QFlags operator| (Qt::InputMethodHints::enum_type f1, QFlags f2);
inline class QIncompatibleFlag operator| (Qt::InputMethodHints::enum_type f1, int f2);
inline QFlags operator| (Qt::TouchPointStates::enum_type f1, Qt::TouchPointStates::enum_type f2);
inline QFlags operator| (Qt::TouchPointStates::enum_type f1, QFlags f2);
inline class QIncompatibleFlag operator| (Qt::TouchPointStates::enum_type f1, int f2);
inline QFlags operator| (Qt::GestureFlags::enum_type f1, Qt::GestureFlags::enum_type f2);
inline QFlags operator| (Qt::GestureFlags::enum_type f1, QFlags f2);
inline class QIncompatibleFlag operator| (Qt::GestureFlags::enum_type f1, int f2);
typedef _Bool (void **) *  qInternalCallback;
class QInternal{
   class QInternal{
   }; // end of QInternal
public:
   enum PaintDeviceFlags
   {
      UnknownDevice = 0,
      Widget = 1,
      Pixmap = 2,
      Image = 3,
      Printer = 4,
      Picture = 5,
      Pbuffer = 6,
      FramebufferObject = 7,
      CustomRaster = 8,
      MacQuartz = 9,
      PaintBuffer = 10,
      OpenGL = 11
   }; // end of PaintDeviceFlags
   enum RelayoutType
   {
      RelayoutNormal,
      RelayoutDragging,
      RelayoutDropped
   }; // end of RelayoutType
   enum Callback
   {
      ConnectCallback,
      DisconnectCallback,
      AdoptCurrentThread,
      EventNotifyCallback,
      LastCallback
   }; // end of Callback
   enum InternalFunction
   {
      CreateThreadForAdoption,
      RefAdoptedThread,
      DerefAdoptedThread,
      SetCurrentThreadToMainThread,
      SetQObjectSender,
      GetQObjectSender,
      ResetQObjectSender,
      LastInternalFunction
   }; // end of InternalFunction
   enum DockPosition
   {
      LeftDock,
      RightDock,
      TopDock,
      BottomDock,
      DockCount
   }; // end of DockPosition
   static static _Bool registerCallback (enum QInternal::Callback , qInternalCallback );
   static static _Bool unregisterCallback (enum QInternal::Callback , qInternalCallback );
   static static _Bool activateCallbacks (enum QInternal::Callback , void *  *  );
   static static _Bool callFunction (enum QInternal::InternalFunction func, void *  *  );
}; // end of QInternal
typedef enum QtValidLicenseForCoreModule QtCoreModule;
class QByteArray{
}; // end of QByteArray
class QString{
}; // end of QString
template < typename T >
   inline int qYouForgotTheQ_OBJECT_Macro (T , T );
template < typename T1, typename T2 >
   inline void qYouForgotTheQ_OBJECT_Macro (T1 , T2 );
const const char *  qFlagLocation (const const char *  method);
class QObject{
}; // end of QObject
class QMetaMethod{
}; // end of QMetaMethod
class QMetaEnum{
}; // end of QMetaEnum
class QMetaProperty{
}; // end of QMetaProperty
class QMetaClassInfo{
}; // end of QMetaClassInfo
class QGenericArgument{
   class QGenericArgument{
   }; // end of QGenericArgument
public:
   inline constructor converter void QGenericArgument (const const char *  aName = 0, const const void *  aData = 0);
   inline void *  data ()const volatile restrict ;
   inline const const char *  name ()const volatile restrict ;
private:
   inline constructor copyconstructor converter void QGenericArgument (const const class QGenericArgument &  ) throw ();
   inline destructor void ~QGenericArgument () throw ();
}; // end of QGenericArgument
class QGenericReturnArgument : public:
class QGenericArgument{
   class QGenericReturnArgument{
   }; // end of QGenericReturnArgument
public:
   inline constructor converter void QGenericReturnArgument (const const char *  aName = 0, void *  aData = 0);
   inline constructor copyconstructor converter void QGenericReturnArgument (const const class QGenericReturnArgument &  ) throw ();
   inline destructor void ~QGenericReturnArgument () throw ();
}; // end of QGenericReturnArgument
template < class T >
   class QArgument : public:
   class QGenericArgument{
      class QArgument{
      }; // end of QArgument
   public:
      inline constructor void QArgument (const const char *  aName, const const T &  aData);
   }; // end of QArgument
template < typename T >
   class QReturnArgument : public:
   class QGenericReturnArgument{
      class QReturnArgument{
      }; // end of QReturnArgument
   public:
      inline constructor void QReturnArgument (const const char *  aName, T &  aData);
   }; // end of QReturnArgument
struct QMetaObject{
   struct QMetaObject{
   }; // end of QMetaObject
   const const char *  className ()const volatile restrict ;
   const const struct QMetaObject *  superClass ()const volatile restrict ;
   class QObject *  cast (class QObject *  obj)const volatile restrict ;
   const const class QObject *  cast (const const class QObject *  obj)const volatile restrict ;
   class QString tr (const const char *  s, const const char *  c)const volatile restrict ;
   class QString trUtf8 (const const char *  s, const const char *  c)const volatile restrict ;
   class QString tr (const const char *  s, const const char *  c, int n)const volatile restrict ;
   class QString trUtf8 (const const char *  s, const const char *  c, int n)const volatile restrict ;
   int methodOffset ()const volatile restrict ;
   int enumeratorOffset ()const volatile restrict ;
   int propertyOffset ()const volatile restrict ;
   int classInfoOffset ()const volatile restrict ;
   int constructorCount ()const volatile restrict ;
   int methodCount ()const volatile restrict ;
   int enumeratorCount ()const volatile restrict ;
   int propertyCount ()const volatile restrict ;
   int classInfoCount ()const volatile restrict ;
   int indexOfConstructor (const const char *  constructor)const volatile restrict ;
   int indexOfMethod (const const char *  method)const volatile restrict ;
   int indexOfSignal (const const char *  signal)const volatile restrict ;
   int indexOfSlot (const const char *  slot)const volatile restrict ;
   int indexOfEnumerator (const const char *  name)const volatile restrict ;
   int indexOfProperty (const const char *  name)const volatile restrict ;
   int indexOfClassInfo (const const char *  name)const volatile restrict ;
   class QMetaMethod constructor (int index)const volatile restrict ;
   class QMetaMethod method (int index)const volatile restrict ;
   class QMetaEnum enumerator (int index)const volatile restrict ;
   class QMetaProperty property (int index)const volatile restrict ;
   class QMetaClassInfo classInfo (int index)const volatile restrict ;
   class QMetaProperty userProperty ()const volatile restrict ;
   static static _Bool checkConnectArgs (const const char *  signal, const const char *  method);
   static static class QByteArray normalizedSignature (const const char *  method);
   static static class QByteArray normalizedType (const const char *  type);
   static static _Bool connect (const const class QObject *  sender, int signal_index, const const class QObject *  receiver, int method_index, int type = 0, int *  types = 0);
   static static _Bool disconnect (const const class QObject *  sender, int signal_index, const const class QObject *  receiver, int method_index);
   static static _Bool disconnectOne (const const class QObject *  sender, int signal_index, const const class QObject *  receiver, int method_index);
   static static void connectSlotsByName (class QObject *  o);
   static static void activate (class QObject *  sender, int signal_index, void *  *  argv);
   static static void activate (class QObject *  sender, int from_signal_index, int to_signal_index, void *  *  argv);
   static static void activate (class QObject *  sender, const const struct QMetaObject *  , int local_signal_index, void *  *  argv);
   static static void activate (class QObject *  sender, const const struct QMetaObject *  , int from_local_signal_index, int to_local_signal_index, void *  *  argv);
   static static void addGuard (class QObject *  *  ptr);
   static static void removeGuard (class QObject *  *  ptr);
   static static void changeGuard (class QObject *  *  ptr, class QObject *  o);
   static static _Bool invokeMethod (class QObject *  obj, const const char *  member, Qt::ConnectionType , class QGenericReturnArgument ret, class QGenericArgument val0 = class QGenericArgument(0), class QGenericArgument val1 = class QGenericArgument(), class QGenericArgument val2 = class QGenericArgument(), class QGenericArgument val3 = class QGenericArgument(), class QGenericArgument val4 = class QGenericArgument(), class QGenericArgument val5 = class QGenericArgument(), class QGenericArgument val6 = class QGenericArgument(), class QGenericArgument val7 = class QGenericArgument(), class QGenericArgument val8 = class QGenericArgument(), class QGenericArgument val9 = class QGenericArgument());
   static inline static _Bool invokeMethod (class QObject *  obj, const const char *  member, class QGenericReturnArgument ret, class QGenericArgument val0 = class QGenericArgument(0), class QGenericArgument val1 = class QGenericArgument(), class QGenericArgument val2 = class QGenericArgument(), class QGenericArgument val3 = class QGenericArgument(), class QGenericArgument val4 = class QGenericArgument(), class QGenericArgument val5 = class QGenericArgument(), class QGenericArgument val6 = class QGenericArgument(), class QGenericArgument val7 = class QGenericArgument(), class QGenericArgument val8 = class QGenericArgument(), class QGenericArgument val9 = class QGenericArgument());
   static inline static _Bool invokeMethod (class QObject *  obj, const const char *  member, Qt::ConnectionType type, class QGenericArgument val0 = class QGenericArgument(0), class QGenericArgument val1 = class QGenericArgument(), class QGenericArgument val2 = class QGenericArgument(), class QGenericArgument val3 = class QGenericArgument(), class QGenericArgument val4 = class QGenericArgument(), class QGenericArgument val5 = class QGenericArgument(), class QGenericArgument val6 = class QGenericArgument(), class QGenericArgument val7 = class QGenericArgument(), class QGenericArgument val8 = class QGenericArgument(), class QGenericArgument val9 = class QGenericArgument());
   static inline static _Bool invokeMethod (class QObject *  obj, const const char *  member, class QGenericArgument val0 = class QGenericArgument(0), class QGenericArgument val1 = class QGenericArgument(), class QGenericArgument val2 = class QGenericArgument(), class QGenericArgument val3 = class QGenericArgument(), class QGenericArgument val4 = class QGenericArgument(), class QGenericArgument val5 = class QGenericArgument(), class QGenericArgument val6 = class QGenericArgument(), class QGenericArgument val7 = class QGenericArgument(), class QGenericArgument val8 = class QGenericArgument(), class QGenericArgument val9 = class QGenericArgument());
   class QObject *  newInstance (class QGenericArgument val0 = class QGenericArgument(0), class QGenericArgument val1 = class QGenericArgument(), class QGenericArgument val2 = class QGenericArgument(), class QGenericArgument val3 = class QGenericArgument(), class QGenericArgument val4 = class QGenericArgument(), class QGenericArgument val5 = class QGenericArgument(), class QGenericArgument val6 = class QGenericArgument(), class QGenericArgument val7 = class QGenericArgument(), class QGenericArgument val8 = class QGenericArgument(), class QGenericArgument val9 = class QGenericArgument())const volatile restrict ;
   enum Call
   {
      InvokeMetaMethod,
      ReadProperty,
      WriteProperty,
      ResetProperty,
      QueryPropertyDesignable,
      QueryPropertyScriptable,
      QueryPropertyStored,
      QueryPropertyEditable,
      QueryPropertyUser,
      CreateInstance
   }; // end of Call
   int static_metacall (enum QMetaObject::Call , int , void *  *  )const volatile restrict ;
   static static int metacall (class QObject *  , enum QMetaObject::Call , int , void *  *  );
   struct {
   }; // end of 
}; // end of QMetaObject
typedef const struct QMetaObject &(void) *  QMetaObjectAccessor;
struct QMetaObjectExtraData{
   struct QMetaObjectExtraData{
   }; // end of QMetaObjectExtraData
   typedef void (class QObject *, struct QMetaObject::Call, int, void **) *  QMetaObjectExtraData::StaticMetacallFunction;
}; // end of QMetaObjectExtraData
inline const const char *  className ()const volatile restrict ;
inline const const struct QMetaObject *  superClass ()const volatile restrict ;
typedef enum QtValidLicenseForCoreModule QtCoreModule;
class QString{
}; // end of QString
struct QLatin1Char{
   struct QLatin1Char{
   }; // end of QLatin1Char
public:
   inline constructor explicit void QLatin1Char (char c);
   inline char toLatin1 ()const volatile restrict ;
   inline ushort unicode ()const volatile restrict ;
private:
   inline constructor copyconstructor converter void QLatin1Char (const const struct QLatin1Char &  ) throw ();
   inline destructor void ~QLatin1Char () throw ();
}; // end of QLatin1Char
class QChar{
   class QChar{
   }; // end of QChar
public:
   constructor void QChar ();
   constructor converter void QChar (char c);
   constructor converter void QChar (uchar c);
   constructor converter void QChar (struct QLatin1Char ch);
   constructor void QChar (uchar c, uchar r);
   inline constructor converter void QChar (ushort rc);
   constructor converter void QChar (short rc);
   constructor converter void QChar (uint rc);
   constructor converter void QChar (int rc);
   enum SpecialCharacter
   {
      Null = 0,
      Nbsp = 160,
      ReplacementCharacter = 65533,
      ObjectReplacementCharacter = 65532,
      ByteOrderMark = 65279,
      ByteOrderSwapped = 65534,
      ParagraphSeparator = 8233,
      LineSeparator = 8232
   }; // end of SpecialCharacter
   constructor converter void QChar (enum QChar::SpecialCharacter sc);
   enum Category
   {
      NoCategory,
      Mark_NonSpacing,
      Mark_SpacingCombining,
      Mark_Enclosing,
      Number_DecimalDigit,
      Number_Letter,
      Number_Other,
      Separator_Space,
      Separator_Line,
      Separator_Paragraph,
      Other_Control,
      Other_Format,
      Other_Surrogate,
      Other_PrivateUse,
      Other_NotAssigned,
      Letter_Uppercase,
      Letter_Lowercase,
      Letter_Titlecase,
      Letter_Modifier,
      Letter_Other,
      Punctuation_Connector,
      Punctuation_Dash,
      Punctuation_Open,
      Punctuation_Close,
      Punctuation_InitialQuote,
      Punctuation_FinalQuote,
      Punctuation_Other,
      Symbol_Math,
      Symbol_Currency,
      Symbol_Modifier,
      Symbol_Other,
      Punctuation_Dask = Punctuation_Dash
   }; // end of Category
   enum Direction
   {
      DirL,
      DirR,
      DirEN,
      DirES,
      DirET,
      DirAN,
      DirCS,
      DirB,
      DirS,
      DirWS,
      DirON,
      DirLRE,
      DirLRO,
      DirAL,
      DirRLE,
      DirRLO,
      DirPDF,
      DirNSM,
      DirBN
   }; // end of Direction
   enum Decomposition
   {
      NoDecomposition,
      Canonical,
      Font,
      NoBreak,
      Initial,
      Medial,
      Final,
      Isolated,
      Circle,
      Super,
      Sub,
      Vertical,
      Wide,
      Narrow,
      Small,
      Square,
      Compat,
      Fraction
   }; // end of Decomposition
   enum Joining
   {
      OtherJoining,
      Dual,
      Right,
      Center
   }; // end of Joining
   enum CombiningClass
   {
      Combining_BelowLeftAttached = 200,
      Combining_BelowAttached = 202,
      Combining_BelowRightAttached = 204,
      Combining_LeftAttached = 208,
      Combining_RightAttached = 210,
      Combining_AboveLeftAttached = 212,
      Combining_AboveAttached = 214,
      Combining_AboveRightAttached = 216,
      Combining_BelowLeft = 218,
      Combining_Below = 220,
      Combining_BelowRight = 222,
      Combining_Left = 224,
      Combining_Right = 226,
      Combining_AboveLeft = 228,
      Combining_Above = 230,
      Combining_AboveRight = 232,
      Combining_DoubleBelow = 233,
      Combining_DoubleAbove = 234,
      Combining_IotaSubscript = 240
   }; // end of CombiningClass
   enum UnicodeVersion
   {
      Unicode_Unassigned,
      Unicode_1_1,
      Unicode_2_0,
      Unicode_2_1_2,
      Unicode_3_0,
      Unicode_3_1,
      Unicode_3_2,
      Unicode_4_0,
      Unicode_4_1,
      Unicode_5_0
   }; // end of UnicodeVersion
   enum QChar::Category category ()const volatile restrict ;
   enum QChar::Direction direction ()const volatile restrict ;
   enum QChar::Joining joining ()const volatile restrict ;
   _Bool hasMirrored ()const volatile restrict ;
   unsigned char combiningClass ()const volatile restrict ;
   class QChar mirroredChar ()const volatile restrict ;
   class QString decomposition ()const volatile restrict ;
   enum QChar::Decomposition decompositionTag ()const volatile restrict ;
   int digitValue ()const volatile restrict ;
   class QChar toLower ()const volatile restrict ;
   class QChar toUpper ()const volatile restrict ;
   class QChar toTitleCase ()const volatile restrict ;
   class QChar toCaseFolded ()const volatile restrict ;
   enum QChar::UnicodeVersion unicodeVersion ()const volatile restrict ;
   char toAscii ()const volatile restrict ;
   inline char toLatin1 ()const volatile restrict ;
   inline ushort unicode ()const volatile restrict ;
   inline ushort &  unicode ();
   static static class QChar fromAscii (char c);
   static static class QChar fromLatin1 (char c);
   inline _Bool isNull ()const volatile restrict ;
   _Bool isPrint ()const volatile restrict ;
   _Bool isPunct ()const volatile restrict ;
   _Bool isSpace ()const volatile restrict ;
   _Bool isMark ()const volatile restrict ;
   _Bool isLetter ()const volatile restrict ;
   _Bool isNumber ()const volatile restrict ;
   _Bool isLetterOrNumber ()const volatile restrict ;
   _Bool isDigit ()const volatile restrict ;
   _Bool isSymbol ()const volatile restrict ;
   inline _Bool isLower ()const volatile restrict ;
   inline _Bool isUpper ()const volatile restrict ;
   inline _Bool isTitleCase ()const volatile restrict ;
   inline _Bool isHighSurrogate ()const volatile restrict ;
   inline _Bool isLowSurrogate ()const volatile restrict ;
   inline uchar cell ()const volatile restrict ;
   inline uchar row ()const volatile restrict ;
   inline void setCell (uchar cell);
   inline void setRow (uchar row);
   static inline static _Bool isHighSurrogate (uint ucs4);
   static inline static _Bool isLowSurrogate (uint ucs4);
   static inline static _Bool requiresSurrogates (uint ucs4);
   static inline static uint surrogateToUcs4 (ushort high, ushort low);
   static inline static uint surrogateToUcs4 (class QChar high, class QChar low);
   static inline static ushort highSurrogate (uint ucs4);
   static inline static ushort lowSurrogate (uint ucs4);
   static static enum QChar::Category category (uint ucs4);
   static static enum QChar::Category category (ushort ucs2);
   static static enum QChar::Direction direction (uint ucs4);
   static static enum QChar::Direction direction (ushort ucs2);
   static static enum QChar::Joining joining (uint ucs4);
   static static enum QChar::Joining joining (ushort ucs2);
   static static unsigned char combiningClass (uint ucs4);
   static static unsigned char combiningClass (ushort ucs2);
   static static uint mirroredChar (uint ucs4);
   static static ushort mirroredChar (ushort ucs2);
   static static enum QChar::Decomposition decompositionTag (uint ucs4);
   static static int digitValue (uint ucs4);
   static static int digitValue (ushort ucs2);
   static static uint toLower (uint ucs4);
   static static ushort toLower (ushort ucs2);
   static static uint toUpper (uint ucs4);
   static static ushort toUpper (ushort ucs2);
   static static uint toTitleCase (uint ucs4);
   static static ushort toTitleCase (ushort ucs2);
   static static uint toCaseFolded (uint ucs4);
   static static ushort toCaseFolded (ushort ucs2);
   static static enum QChar::UnicodeVersion unicodeVersion (uint ucs4);
   static static enum QChar::UnicodeVersion unicodeVersion (ushort ucs2);
   static static enum QChar::UnicodeVersion currentUnicodeVersion ();
   static static class QString decomposition (uint ucs4);
private:
   inline constructor copyconstructor converter void QChar (const const class QChar &  ) throw ();
   inline destructor void ~QChar () throw ();
}; // end of QChar
inline constructor void QChar ();
inline char toLatin1 ()const volatile restrict ;
inline static class QChar fromLatin1 (char c);
inline constructor void QChar (uchar c, uchar r);
inline constructor converter void QChar (short rc);
inline constructor converter void QChar (uint rc);
inline constructor converter void QChar (int rc);
inline constructor converter void QChar (enum QChar::SpecialCharacter s);
inline constructor converter void QChar (struct QLatin1Char ch);
inline void setCell (uchar acell);
inline void setRow (uchar arow);
inline _Bool operator== (class QChar c1, class QChar c2);
inline _Bool operator!= (class QChar c1, class QChar c2);
inline _Bool operator<= (class QChar c1, class QChar c2);
inline _Bool operator>= (class QChar c1, class QChar c2);
inline _Bool operator< (class QChar c1, class QChar c2);
inline _Bool operator> (class QChar c1, class QChar c2);
class QDataStream &  operator<< (class QDataStream &  , const const class QChar &  );
class QDataStream &  operator>> (class QDataStream &  , class QChar &  );
typedef enum QtValidLicenseForCoreModule QtCoreModule;
class QBasicAtomicInt{
   class QBasicAtomicInt{
   }; // end of QBasicAtomicInt
public:
   inline _Bool operator== (int value)const volatile restrict ;
   inline _Bool operator!= (int value)const volatile restrict ;
   inline _Bool operator! ()const volatile restrict ;
   inline converter int operator int ()const volatile restrict ;
   inline class QBasicAtomicInt &  operator= (int value);
   static static _Bool isReferenceCountingNative ();
   static static _Bool isReferenceCountingWaitFree ();
   _Bool ref ();
   _Bool deref ();
   static static _Bool isTestAndSetNative ();
   static static _Bool isTestAndSetWaitFree ();
   _Bool testAndSetRelaxed (int expectedValue, int newValue);
   _Bool testAndSetAcquire (int expectedValue, int newValue);
   _Bool testAndSetRelease (int expectedValue, int newValue);
   _Bool testAndSetOrdered (int expectedValue, int newValue);
   static static _Bool isFetchAndStoreNative ();
   static static _Bool isFetchAndStoreWaitFree ();
   int fetchAndStoreRelaxed (int newValue);
   int fetchAndStoreAcquire (int newValue);
   int fetchAndStoreRelease (int newValue);
   int fetchAndStoreOrdered (int newValue);
   static static _Bool isFetchAndAddNative ();
   static static _Bool isFetchAndAddWaitFree ();
   int fetchAndAddRelaxed (int valueToAdd);
   int fetchAndAddAcquire (int valueToAdd);
   int fetchAndAddRelease (int valueToAdd);
   int fetchAndAddOrdered (int valueToAdd);
   inline constructor void QBasicAtomicInt () throw ();
   inline constructor copyconstructor converter void QBasicAtomicInt (const const class QBasicAtomicInt &  ) throw ();
   inline class QBasicAtomicInt &  operator= (const const class QBasicAtomicInt &  ) throw ();
}; // end of QBasicAtomicInt
template < typename T >
   class QBasicAtomicPointer{
      class QBasicAtomicPointer{
      }; // end of QBasicAtomicPointer
   public:
      inline _Bool operator== (T *  value)const volatile restrict ;
      inline _Bool operator!= (T *  value)const volatile restrict ;
      inline _Bool operator! ()const volatile restrict ;
      inline converter T *  operator type-parameter-0-0 * ()const volatile restrict ;
      inline T *  operator-> ()const volatile restrict ;
      inline QBasicAtomicPointer &  operator= (T *  value);
      static static _Bool isTestAndSetNative ();
      static static _Bool isTestAndSetWaitFree ();
      _Bool testAndSetRelaxed (T *  expectedValue, T *  newValue);
      _Bool testAndSetAcquire (T *  expectedValue, T *  newValue);
      _Bool testAndSetRelease (T *  expectedValue, T *  newValue);
      _Bool testAndSetOrdered (T *  expectedValue, T *  newValue);
      static static _Bool isFetchAndStoreNative ();
      static static _Bool isFetchAndStoreWaitFree ();
      T *  fetchAndStoreRelaxed (T *  newValue);
      T *  fetchAndStoreAcquire (T *  newValue);
      T *  fetchAndStoreRelease (T *  newValue);
      T *  fetchAndStoreOrdered (T *  newValue);
      static static _Bool isFetchAndAddNative ();
      static static _Bool isFetchAndAddWaitFree ();
      T *  fetchAndAddRelaxed (qptrdiff valueToAdd);
      T *  fetchAndAddAcquire (qptrdiff valueToAdd);
      T *  fetchAndAddRelease (qptrdiff valueToAdd);
      T *  fetchAndAddOrdered (qptrdiff valueToAdd);
   }; // end of QBasicAtomicPointer
inline static _Bool isReferenceCountingNative ();
inline static _Bool isReferenceCountingWaitFree ();
inline static _Bool isTestAndSetNative ();
inline static _Bool isTestAndSetWaitFree ();
inline static _Bool isFetchAndStoreNative ();
inline static _Bool isFetchAndStoreWaitFree ();
inline static _Bool isFetchAndAddNative ();
inline static _Bool isFetchAndAddWaitFree ();
inline static _Bool isTestAndSetNative ();
inline static _Bool isTestAndSetWaitFree ();
inline static _Bool isFetchAndStoreNative ();
inline static _Bool isFetchAndStoreWaitFree ();
inline static _Bool isFetchAndAddNative ();
inline static _Bool isFetchAndAddWaitFree ();
inline _Bool ref ();
inline _Bool deref ();
inline _Bool testAndSetOrdered (int expectedValue, int newValue);
inline int fetchAndStoreOrdered (int newValue);
inline int fetchAndAddOrdered (int valueToAdd);
inline _Bool testAndSetOrdered (T *  expectedValue, T *  newValue);
inline T *  fetchAndStoreOrdered (T *  newValue);
inline T *  fetchAndAddOrdered (qptrdiff valueToAdd);
inline _Bool testAndSetRelaxed (int expectedValue, int newValue);
inline _Bool testAndSetAcquire (int expectedValue, int newValue);
inline _Bool testAndSetRelease (int expectedValue, int newValue);
inline int fetchAndStoreRelaxed (int newValue);
inline int fetchAndStoreAcquire (int newValue);
inline int fetchAndStoreRelease (int newValue);
inline int fetchAndAddRelaxed (int valueToAdd);
inline int fetchAndAddAcquire (int valueToAdd);
inline int fetchAndAddRelease (int valueToAdd);
inline _Bool testAndSetRelaxed (T *  expectedValue, T *  newValue);
inline _Bool testAndSetAcquire (T *  expectedValue, T *  newValue);
inline _Bool testAndSetRelease (T *  expectedValue, T *  newValue);
inline T *  fetchAndStoreRelaxed (T *  newValue);
inline T *  fetchAndStoreAcquire (T *  newValue);
inline T *  fetchAndStoreRelease (T *  newValue);
inline T *  fetchAndAddRelaxed (qptrdiff valueToAdd);
inline T *  fetchAndAddAcquire (qptrdiff valueToAdd);
inline T *  fetchAndAddRelease (qptrdiff valueToAdd);
typedef enum QtValidLicenseForCoreModule QtCoreModule;
class QAtomicInt : public:
class QBasicAtomicInt{
   class QAtomicInt{
   }; // end of QAtomicInt
public:
   inline constructor converter void QAtomicInt (int value = 0);
   inline constructor copyconstructor converter void QAtomicInt (const const class QAtomicInt &  other);
   inline class QAtomicInt &  operator= (int value);
   inline class QAtomicInt &  operator= (const const class QAtomicInt &  other);
}; // end of QAtomicInt
template < typename T >
   class QAtomicPointer : public:
   QBasicAtomicPointer{
      class QAtomicPointer{
      }; // end of QAtomicPointer
   public:
      inline constructor converter void QAtomicPointer (T *  value = 0);
      inline constructor copyconstructor converter void QAtomicPointer (const const QAtomicPointer &  other);
      inline QAtomicPointer &  operator= (T *  value);
      inline QAtomicPointer &  operator= (const const QAtomicPointer &  other);
   }; // end of QAtomicPointer
template < typename T >
   inline void qAtomicAssign (T *  &  d, T *  x);
template < typename T >
   inline void qAtomicDetach (T *  &  d);
extern "C" extern void *  memcpy (void *  __dest, const const void *  __src, size_t __n) throw ();
extern void *  memmove (void *  __dest, const const void *  __src, size_t __n) throw ();
extern void *  memccpy (void *  __dest, const const void *  __src, int __c, size_t __n) throw ();
extern void *  memset (void *  __s, int __c, size_t __n) throw ();
extern int memcmp (const const void *  __s1, const const void *  __s2, size_t __n) throw ();
extern void *  memchr (const const void *  __s, int __c, size_t __n) throw ();
extern void *  rawmemchr (const const void *  __s, int __c) throw ();
extern void *  memrchr (const const void *  __s, int __c, size_t __n) throw ();
extern char *  strcpy (char *  __dest, const const char *  __src) throw ();
extern char *  strncpy (char *  __dest, const const char *  __src, size_t __n) throw ();
extern char *  strcat (char *  __dest, const const char *  __src) throw ();
extern char *  strncat (char *  __dest, const const char *  __src, size_t __n) throw ();
extern int strcmp (const const char *  __s1, const const char *  __s2) throw ();
extern int strncmp (const const char *  __s1, const const char *  __s2, size_t __n) throw ();
extern int strcoll (const const char *  __s1, const const char *  __s2) throw ();
extern size_t strxfrm (char *  __dest, const const char *  __src, size_t __n) throw ();
extern int strcoll_l (const const char *  __s1, const const char *  __s2, locale_t __l) throw ();
extern size_t strxfrm_l (char *  __dest, const const char *  __src, size_t __n, locale_t __l) throw ();
extern char *  strdup (const const char *  __s) throw ();
extern char *  strndup (const const char *  __string, size_t __n) throw ();
extern char *  strchr (const const char *  __s, int __c) throw ();
extern char *  strrchr (const const char *  __s, int __c) throw ();
extern char *  strchrnul (const const char *  __s, int __c) throw ();
extern size_t strcspn (const const char *  __s, const const char *  __reject) throw ();
extern size_t strspn (const const char *  __s, const const char *  __accept) throw ();
extern char *  strpbrk (const const char *  __s, const const char *  __accept) throw ();
extern char *  strstr (const const char *  __haystack, const const char *  __needle) throw ();
extern char *  strtok (char *  __s, const const char *  __delim) throw ();
extern char *  __strtok_r (char *  __s, const const char *  __delim, char *  *  __save_ptr) throw ();
extern char *  strtok_r (char *  __s, const const char *  __delim, char *  *  __save_ptr) throw ();
extern char *  strcasestr (const const char *  __haystack, const const char *  __needle) throw ();
extern void *  memmem (const const void *  __haystack, size_t __haystacklen, const const void *  __needle, size_t __needlelen) throw ();
extern void *  __mempcpy (void *  __dest, const const void *  __src, size_t __n) throw ();
extern void *  mempcpy (void *  __dest, const const void *  __src, size_t __n) throw ();
extern size_t strlen (const const char *  __s) throw ();
extern size_t strnlen (const const char *  __string, size_t __maxlen) throw ();
extern char *  strerror (int __errnum) throw ();
extern char *  strerror_r (int __errnum, char *  __buf, size_t __buflen) throw ();
extern char *  strerror_l (int __errnum, locale_t __l) throw ();
extern "C" extern int bcmp (const const void *  __s1, const const void *  __s2, size_t __n) throw ();
extern void bcopy (const const void *  __src, void *  __dest, size_t __n) throw ();
extern void bzero (void *  __s, size_t __n) throw ();
extern char *  index (const const char *  __s, int __c) throw ();
extern char *  rindex (const const char *  __s, int __c) throw ();
extern int ffs (int __i) throw ();
extern int ffsl (long __l) throw ();
extern int ffsll (long long __ll) throw ();
extern int strcasecmp (const const char *  __s1, const const char *  __s2) throw ();
extern int strncasecmp (const const char *  __s1, const const char *  __s2, size_t __n) throw ();
extern int strcasecmp_l (const const char *  __s1, const const char *  __s2, locale_t __loc) throw ();
extern int strncasecmp_l (const const char *  __s1, const const char *  __s2, size_t __n, locale_t __loc) throw ();
extern void explicit_bzero (void *  __s, size_t __n) throw ();
extern char *  strsep (char *  *  __stringp, const const char *  __delim) throw ();
extern char *  strsignal (int __sig) throw ();
extern char *  __stpcpy (char *  __dest, const const char *  __src) throw ();
extern char *  stpcpy (char *  __dest, const const char *  __src) throw ();
extern char *  __stpncpy (char *  __dest, const const char *  __src, size_t __n) throw ();
extern char *  stpncpy (char *  __dest, const const char *  __src, size_t __n) throw ();
extern int strverscmp (const const char *  __s1, const const char *  __s2) throw ();
extern char *  strfry (char *  __string) throw ();
extern void *  memfrob (void *  __s, size_t __n) throw ();
extern char *  basename (const const char *  __filename) throw ();
typedef __builtin_va_list __gnuc_va_list;
typedef __gnuc_va_list va_list;
typedef enum QtValidLicenseForCoreModule QtCoreModule;
char *  qstrdup (const const char *  );
inline uint qstrlen (const const char *  str);
inline uint qstrnlen (const const char *  str, uint maxlen);
char *  qstrcpy (char *  dst, const const char *  src);
char *  qstrncpy (char *  dst, const const char *  src, uint len);
int qstrcmp (const const char *  str1, const const char *  str2);
int qstrcmp (const const class QByteArray &  str1, const const class QByteArray &  str2);
int qstrcmp (const const class QByteArray &  str1, const const char *  str2);
static inline int qstrcmp (const const char *  str1, const const class QByteArray &  str2);
inline int qstrncmp (const const char *  str1, const const char *  str2, uint len);
int qstricmp (const const char *  , const const char *  );
int qstrnicmp (const const char *  , const const char *  , uint len);
int qvsnprintf (char *  str, size_t n, const const char *  fmt, va_list ap);
int qsnprintf (char *  str, size_t n, const const char *  fmt, ... );
quint16 qChecksum (const const char *  s, uint len);
class QByteRef{
}; // end of QByteRef
class QString{
}; // end of QString
class QDataStream{
}; // end of QDataStream
template < typename T >
   class QList{
   }; // end of QList
class QByteArray{
   class QByteArray{
   }; // end of QByteArray
private:
   struct Data{
      struct Data{
      }; // end of Data
   }; // end of Data
public:
   inline constructor void QByteArray ();
   constructor converter void QByteArray (const const char *  );
   constructor void QByteArray (const const char *  , int size);
   constructor void QByteArray (int size, char c);
   constructor void QByteArray (int size, Qt::Initialization );
   inline constructor copyconstructor converter void QByteArray (const const class QByteArray &  );
   inline destructor void ~QByteArray ();
   class QByteArray &  operator= (const const class QByteArray &  );
   class QByteArray &  operator= (const const char *  str);
   inline void swap (class QByteArray &  other);
   inline int size ()const volatile restrict ;
   _Bool isEmpty ()const volatile restrict ;
   void resize (int size);
   class QByteArray &  fill (char c, int size = -1);
   int capacity ()const volatile restrict ;
   void reserve (int size);
   void squeeze ();
   converter const const char *  operator const char * ()const volatile restrict ;
   converter const const void *  operator const void * ()const volatile restrict ;
   char *  data ();
   const const char *  data ()const volatile restrict ;
   inline const const char *  constData ()const volatile restrict ;
   inline void detach ();
   _Bool isDetached ()const volatile restrict ;
   inline _Bool isSharedWith (const const class QByteArray &  other)const volatile restrict ;
   void clear ();
   char at (int i)const volatile restrict ;
   char operator[] (int i)const volatile restrict ;
   char operator[] (uint i)const volatile restrict ;
   class QByteRef operator[] (int i);
   class QByteRef operator[] (uint i);
   int indexOf (char c, int from = 0)const volatile restrict ;
   int indexOf (const const char *  c, int from = 0)const volatile restrict ;
   int indexOf (const const class QByteArray &  a, int from = 0)const volatile restrict ;
   int lastIndexOf (char c, int from = -1)const volatile restrict ;
   int lastIndexOf (const const char *  c, int from = -1)const volatile restrict ;
   int lastIndexOf (const const class QByteArray &  a, int from = -1)const volatile restrict ;
   class QBool contains (char c)const volatile restrict ;
   class QBool contains (const const char *  a)const volatile restrict ;
   class QBool contains (const const class QByteArray &  a)const volatile restrict ;
   int count (char c)const volatile restrict ;
   int count (const const char *  a)const volatile restrict ;
   int count (const const class QByteArray &  a)const volatile restrict ;
   class QByteArray left (int len)const volatile restrict ;
   class QByteArray right (int len)const volatile restrict ;
   class QByteArray mid (int index, int len = -1)const volatile restrict ;
   _Bool startsWith (const const class QByteArray &  a)const volatile restrict ;
   _Bool startsWith (char c)const volatile restrict ;
   _Bool startsWith (const const char *  c)const volatile restrict ;
   _Bool endsWith (const const class QByteArray &  a)const volatile restrict ;
   _Bool endsWith (char c)const volatile restrict ;
   _Bool endsWith (const const char *  c)const volatile restrict ;
   void truncate (int pos);
   void chop (int n);
   class QByteArray toLower ()const volatile restrict ;
   class QByteArray toUpper ()const volatile restrict ;
   class QByteArray trimmed ()const volatile restrict ;
   class QByteArray simplified ()const volatile restrict ;
   class QByteArray leftJustified (int width, char fill = ' ', _Bool truncate = false)const volatile restrict ;
   class QByteArray rightJustified (int width, char fill = ' ', _Bool truncate = false)const volatile restrict ;
   class QByteArray &  prepend (char c);
   class QByteArray &  prepend (const const char *  s);
   class QByteArray &  prepend (const const char *  s, int len);
   class QByteArray &  prepend (const const class QByteArray &  a);
   class QByteArray &  append (char c);
   class QByteArray &  append (const const char *  s);
   class QByteArray &  append (const const char *  s, int len);
   class QByteArray &  append (const const class QByteArray &  a);
   class QByteArray &  insert (int i, char c);
   class QByteArray &  insert (int i, const const char *  s);
   class QByteArray &  insert (int i, const const char *  s, int len);
   class QByteArray &  insert (int i, const const class QByteArray &  a);
   class QByteArray &  remove (int index, int len);
   class QByteArray &  replace (int index, int len, const const char *  s);
   class QByteArray &  replace (int index, int len, const const char *  s, int alen);
   class QByteArray &  replace (int index, int len, const const class QByteArray &  s);
   class QByteArray &  replace (char before, const const char *  after);
   class QByteArray &  replace (char before, const const class QByteArray &  after);
   class QByteArray &  replace (const const char *  before, const const char *  after);
   class QByteArray &  replace (const const char *  before, int bsize, const const char *  after, int asize);
   class QByteArray &  replace (const const class QByteArray &  before, const const class QByteArray &  after);
   class QByteArray &  replace (const const class QByteArray &  before, const const char *  after);
   class QByteArray &  replace (const const char *  before, const const class QByteArray &  after);
   class QByteArray &  replace (char before, char after);
   class QByteArray &  operator+= (char c);
   class QByteArray &  operator+= (const const char *  s);
   class QByteArray &  operator+= (const const class QByteArray &  a);
   QList split (char sep)const volatile restrict ;
   class QByteArray repeated (int times)const volatile restrict ;
   class QByteArray &  append (const const class QString &  s);
   class QByteArray &  insert (int i, const const class QString &  s);
   class QByteArray &  replace (const const class QString &  before, const const char *  after);
   class QByteArray &  replace (char c, const const class QString &  after);
   class QByteArray &  replace (const const class QString &  before, const const class QByteArray &  after);
   class QByteArray &  operator+= (const const class QString &  s);
   int indexOf (const const class QString &  s, int from = 0)const volatile restrict ;
   int lastIndexOf (const const class QString &  s, int from = -1)const volatile restrict ;
   inline _Bool operator== (const const class QString &  s2)const volatile restrict ;
   inline _Bool operator!= (const const class QString &  s2)const volatile restrict ;
   inline _Bool operator< (const const class QString &  s2)const volatile restrict ;
   inline _Bool operator> (const const class QString &  s2)const volatile restrict ;
   inline _Bool operator<= (const const class QString &  s2)const volatile restrict ;
   inline _Bool operator>= (const const class QString &  s2)const volatile restrict ;
   short toShort (_Bool *  ok = 0, int base = 10)const volatile restrict ;
   ushort toUShort (_Bool *  ok = 0, int base = 10)const volatile restrict ;
   int toInt (_Bool *  ok = 0, int base = 10)const volatile restrict ;
   uint toUInt (_Bool *  ok = 0, int base = 10)const volatile restrict ;
   long toLong (_Bool *  ok = 0, int base = 10)const volatile restrict ;
   ulong toULong (_Bool *  ok = 0, int base = 10)const volatile restrict ;
   qlonglong toLongLong (_Bool *  ok = 0, int base = 10)const volatile restrict ;
   qulonglong toULongLong (_Bool *  ok = 0, int base = 10)const volatile restrict ;
   float toFloat (_Bool *  ok = 0)const volatile restrict ;
   double toDouble (_Bool *  ok = 0)const volatile restrict ;
   class QByteArray toBase64 ()const volatile restrict ;
   class QByteArray toHex ()const volatile restrict ;
   class QByteArray toPercentEncoding (const const class QByteArray &  exclude = class QByteArray(), const const class QByteArray &  include = class QByteArray(), char percent = '%')const volatile restrict ;
   class QByteArray &  setNum (short , int base = 10);
   class QByteArray &  setNum (ushort , int base = 10);
   class QByteArray &  setNum (int , int base = 10);
   class QByteArray &  setNum (uint , int base = 10);
   class QByteArray &  setNum (qlonglong , int base = 10);
   class QByteArray &  setNum (qulonglong , int base = 10);
   class QByteArray &  setNum (float , char f = 'g', int prec = 6);
   class QByteArray &  setNum (double , char f = 'g', int prec = 6);
   class QByteArray &  setRawData (const const char *  a, uint n);
   static static class QByteArray number (int , int base = 10);
   static static class QByteArray number (uint , int base = 10);
   static static class QByteArray number (qlonglong , int base = 10);
   static static class QByteArray number (qulonglong , int base = 10);
   static static class QByteArray number (double , char f = 'g', int prec = 6);
   static static class QByteArray fromRawData (const const char *  , int size);
   static static class QByteArray fromBase64 (const const class QByteArray &  base64);
   static static class QByteArray fromHex (const const class QByteArray &  hexEncoded);
   static static class QByteArray fromPercentEncoding (const const class QByteArray &  pctEncoded, char percent = '%');
   typedef char *  QByteArray::iterator;
   typedef const const char *  QByteArray::const_iterator;
   typedef iterator QByteArray::Iterator;
   typedef const_iterator QByteArray::ConstIterator;
   iterator begin ();
   const_iterator begin ()const volatile restrict ;
   const_iterator constBegin ()const volatile restrict ;
   iterator end ();
   const_iterator end ()const volatile restrict ;
   const_iterator constEnd ()const volatile restrict ;
   typedef const const char &  QByteArray::const_reference;
   typedef char &  QByteArray::reference;
   typedef char QByteArray::value_type;
   void push_back (char c);
   void push_back (const const char *  c);
   void push_back (const const class QByteArray &  a);
   void push_front (char c);
   void push_front (const const char *  c);
   void push_front (const const class QByteArray &  a);
   inline int count ()const volatile restrict ;
   int length ()const volatile restrict ;
   _Bool isNull ()const volatile restrict ;
private:
   converter QNoImplicitBoolCast operator int ()const volatile restrict ;
   /* variable */ static struct QByteArray::Data shared_null;
   /* variable */ static struct QByteArray::Data shared_empty;
   constructor void QByteArray (struct QByteArray::Data *  dd, int , int );
   void realloc (int alloc);
   void expand (int i);
   class QByteArray nulTerminated ()const volatile restrict ;
   friend qUncompress;
public:
   typedef struct QByteArray::Data *  QByteArray::DataPtr;
   inline DataPtr &  data_ptr ();
}; // end of QByteArray
inline constructor void QByteArray ();
inline destructor void ~QByteArray ();
inline int size ()const volatile restrict ;
inline char at (int i)const volatile restrict ;
inline char operator[] (int i)const volatile restrict ;
inline char operator[] (uint i)const volatile restrict ;
inline _Bool isEmpty ()const volatile restrict ;
inline converter const const char *  operator const char * ()const volatile restrict ;
inline converter const const void *  operator const void * ()const volatile restrict ;
inline char *  data ();
inline const const char *  data ()const volatile restrict ;
inline const const char *  constData ()const volatile restrict ;
inline void detach ();
inline _Bool isDetached ()const volatile restrict ;
inline constructor copyconstructor converter void QByteArray (const const class QByteArray &  a);
inline int capacity ()const volatile restrict ;
inline void reserve (int asize);
inline void squeeze ();
class QByteRef{
   class QByteRef{
   }; // end of QByteRef
   inline constructor void QByteRef (class QByteArray &  array, int idx);
public:
   inline converter char operator char ()const volatile restrict ;
   inline class QByteRef &  operator= (char c);
   inline class QByteRef &  operator= (const const class QByteRef &  c);
   inline _Bool operator== (char c)const volatile restrict ;
   inline _Bool operator!= (char c)const volatile restrict ;
   inline _Bool operator> (char c)const volatile restrict ;
   inline _Bool operator>= (char c)const volatile restrict ;
   inline _Bool operator< (char c)const volatile restrict ;
   inline _Bool operator<= (char c)const volatile restrict ;
   inline constructor copyconstructor converter void QByteRef (const const class QByteRef &  ) throw ();
   inline destructor void ~QByteRef () throw ();
}; // end of QByteRef
inline class QByteRef operator[] (int i);
inline class QByteRef operator[] (uint i);
inline class QByteArray::iterator begin ();
inline class QByteArray::const_iterator begin ()const volatile restrict ;
inline class QByteArray::const_iterator constBegin ()const volatile restrict ;
inline class QByteArray::iterator end ();
inline class QByteArray::const_iterator end ()const volatile restrict ;
inline class QByteArray::const_iterator constEnd ()const volatile restrict ;
inline class QByteArray &  operator+= (char c);
inline class QByteArray &  operator+= (const const char *  s);
inline class QByteArray &  operator+= (const const class QByteArray &  a);
inline void push_back (char c);
inline void push_back (const const char *  c);
inline void push_back (const const class QByteArray &  a);
inline void push_front (char c);
inline void push_front (const const char *  c);
inline void push_front (const const class QByteArray &  a);
inline class QBool contains (const const class QByteArray &  a)const volatile restrict ;
inline class QBool contains (char c)const volatile restrict ;
inline _Bool operator== (const const class QByteArray &  a1, const const class QByteArray &  a2);
inline _Bool operator== (const const class QByteArray &  a1, const const char *  a2);
inline _Bool operator== (const const char *  a1, const const class QByteArray &  a2);
inline _Bool operator!= (const const class QByteArray &  a1, const const class QByteArray &  a2);
inline _Bool operator!= (const const class QByteArray &  a1, const const char *  a2);
inline _Bool operator!= (const const char *  a1, const const class QByteArray &  a2);
inline _Bool operator< (const const class QByteArray &  a1, const const class QByteArray &  a2);
inline _Bool operator< (const const class QByteArray &  a1, const const char *  a2);
inline _Bool operator< (const const char *  a1, const const class QByteArray &  a2);
inline _Bool operator<= (const const class QByteArray &  a1, const const class QByteArray &  a2);
inline _Bool operator<= (const const class QByteArray &  a1, const const char *  a2);
inline _Bool operator<= (const const char *  a1, const const class QByteArray &  a2);
inline _Bool operator> (const const class QByteArray &  a1, const const class QByteArray &  a2);
inline _Bool operator> (const const class QByteArray &  a1, const const char *  a2);
inline _Bool operator> (const const char *  a1, const const class QByteArray &  a2);
inline _Bool operator>= (const const class QByteArray &  a1, const const class QByteArray &  a2);
inline _Bool operator>= (const const class QByteArray &  a1, const const char *  a2);
inline _Bool operator>= (const const char *  a1, const const class QByteArray &  a2);
inline const const class QByteArray operator+ (const const class QByteArray &  a1, const const class QByteArray &  a2);
inline const const class QByteArray operator+ (const const class QByteArray &  a1, const const char *  a2);
inline const const class QByteArray operator+ (const const class QByteArray &  a1, char a2);
inline const const class QByteArray operator+ (const const char *  a1, const const class QByteArray &  a2);
inline const const class QByteArray operator+ (char a1, const const class QByteArray &  a2);
inline class QBool contains (const const char *  c)const volatile restrict ;
inline class QByteArray &  replace (char before, const const char *  c);
inline class QByteArray &  replace (const const class QByteArray &  before, const const char *  c);
inline class QByteArray &  replace (const const char *  before, const const char *  after);
inline class QByteArray &  setNum (short n, int base = 10);
inline class QByteArray &  setNum (ushort n, int base = 10);
inline class QByteArray &  setNum (int n, int base = 10);
inline class QByteArray &  setNum (uint n, int base = 10);
inline class QByteArray &  setNum (float n, char f = 'g', int prec = 6);
class QDataStream &  operator<< (class QDataStream &  , const const class QByteArray &  );
class QDataStream &  operator>> (class QDataStream &  , class QByteArray &  );
class QByteArray qCompress (const const uchar *  data, int nbytes, int compressionLevel = -1);
class QByteArray qUncompress (const const uchar *  data, int nbytes);
inline class QByteArray qCompress (const const class QByteArray &  data, int compressionLevel = -1);
inline class QByteArray qUncompress (const const class QByteArray &  data);
inline _Bool qIsDetached (class QByteArray &  t);
inline void qSwap (class QByteArray &  value1, class QByteArray &  value2);
namespace std
{
   inline void swap (::QByteArray &  value1, ::QByteArray &  value2);
} // end of std
namespace std
{
   template < class _CharT >
      struct char_traits : public:
      __gnu_cxx::char_traits<_CharT>{
      }; // end of char_traits
   namespace __cxx11
   {
      template < typename _CharT, typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<_CharT> >
         class basic_string{
         }; // end of basic_string
      typedef basic_string std::__cxx11::string;
      typedef basic_string std::__cxx11::wstring;
   } // end of __cxx11
} // end of std
typedef unsigned int wint_t;
struct {
   union {
   }; // end of 
}; // end of 
typedef struct __mbstate_t __mbstate_t;
typedef __mbstate_t mbstate_t;
struct _IO_FILE{
}; // end of _IO_FILE
typedef struct _IO_FILE __FILE;
struct _IO_FILE{
}; // end of _IO_FILE
typedef struct _IO_FILE FILE;
extern "C" struct tm{
}; // end of tm
extern wchar_t *  wcscpy (wchar_t *  __dest, const const wchar_t *  __src) throw ();
extern wchar_t *  wcsncpy (wchar_t *  __dest, const const wchar_t *  __src, size_t __n) throw ();
extern wchar_t *  wcscat (wchar_t *  __dest, const const wchar_t *  __src) throw ();
extern wchar_t *  wcsncat (wchar_t *  __dest, const const wchar_t *  __src, size_t __n) throw ();
extern int wcscmp (const const wchar_t *  __s1, const const wchar_t *  __s2) throw ();
extern int wcsncmp (const const wchar_t *  __s1, const const wchar_t *  __s2, size_t __n) throw ();
extern int wcscasecmp (const const wchar_t *  __s1, const const wchar_t *  __s2) throw ();
extern int wcsncasecmp (const const wchar_t *  __s1, const const wchar_t *  __s2, size_t __n) throw ();
extern int wcscasecmp_l (const const wchar_t *  __s1, const const wchar_t *  __s2, locale_t __loc) throw ();
extern int wcsncasecmp_l (const const wchar_t *  __s1, const const wchar_t *  __s2, size_t __n, locale_t __loc) throw ();
extern int wcscoll (const const wchar_t *  __s1, const const wchar_t *  __s2) throw ();
extern size_t wcsxfrm (wchar_t *  __s1, const const wchar_t *  __s2, size_t __n) throw ();
extern int wcscoll_l (const const wchar_t *  __s1, const const wchar_t *  __s2, locale_t __loc) throw ();
extern size_t wcsxfrm_l (wchar_t *  __s1, const const wchar_t *  __s2, size_t __n, locale_t __loc) throw ();
extern wchar_t *  wcsdup (const const wchar_t *  __s) throw ();
extern wchar_t *  wcschr (const const wchar_t *  __wcs, wchar_t __wc) throw ();
extern wchar_t *  wcsrchr (const const wchar_t *  __wcs, wchar_t __wc) throw ();
extern wchar_t *  wcschrnul (const const wchar_t *  __s, wchar_t __wc) throw ();
extern size_t wcscspn (const const wchar_t *  __wcs, const const wchar_t *  __reject) throw ();
extern size_t wcsspn (const const wchar_t *  __wcs, const const wchar_t *  __accept) throw ();
extern wchar_t *  wcspbrk (const const wchar_t *  __wcs, const const wchar_t *  __accept) throw ();
extern wchar_t *  wcsstr (const const wchar_t *  __haystack, const const wchar_t *  __needle) throw ();
extern wchar_t *  wcstok (wchar_t *  __s, const const wchar_t *  __delim, wchar_t *  *  __ptr) throw ();
extern size_t wcslen (const const wchar_t *  __s) throw ();
extern wchar_t *  wcswcs (const const wchar_t *  __haystack, const const wchar_t *  __needle) throw ();
extern size_t wcsnlen (const const wchar_t *  __s, size_t __maxlen) throw ();
extern wchar_t *  wmemchr (const const wchar_t *  __s, wchar_t __c, size_t __n) throw ();
extern int wmemcmp (const const wchar_t *  __s1, const const wchar_t *  __s2, size_t __n) throw ();
extern wchar_t *  wmemcpy (wchar_t *  __s1, const const wchar_t *  __s2, size_t __n) throw ();
extern wchar_t *  wmemmove (wchar_t *  __s1, const const wchar_t *  __s2, size_t __n) throw ();
extern wchar_t *  wmemset (wchar_t *  __s, wchar_t __c, size_t __n) throw ();
extern wchar_t *  wmempcpy (wchar_t *  __s1, const const wchar_t *  __s2, size_t __n) throw ();
extern wint_t btowc (int __c) throw ();
extern int wctob (wint_t __c) throw ();
extern int mbsinit (const const mbstate_t *  __ps) throw ();
extern size_t mbrtowc (wchar_t *  __pwc, const const char *  __s, size_t __n, mbstate_t *  __p) throw ();
extern size_t wcrtomb (char *  __s, wchar_t __wc, mbstate_t *  __ps) throw ();
extern size_t __mbrlen (const const char *  __s, size_t __n, mbstate_t *  __ps) throw ();
extern size_t mbrlen (const const char *  __s, size_t __n, mbstate_t *  __ps) throw ();
extern size_t mbsrtowcs (wchar_t *  __dst, const const char *  *  __src, size_t __len, mbstate_t *  __ps) throw ();
extern size_t wcsrtombs (char *  __dst, const const wchar_t *  *  __src, size_t __len, mbstate_t *  __ps) throw ();
extern size_t mbsnrtowcs (wchar_t *  __dst, const const char *  *  __src, size_t __nmc, size_t __len, mbstate_t *  __ps) throw ();
extern size_t wcsnrtombs (char *  __dst, const const wchar_t *  *  __src, size_t __nwc, size_t __len, mbstate_t *  __ps) throw ();
extern int wcwidth (wchar_t __c) throw ();
extern int wcswidth (const const wchar_t *  __s, size_t __n) throw ();
extern double wcstod (const const wchar_t *  __nptr, wchar_t *  *  __endptr) throw ();
extern float wcstof (const const wchar_t *  __nptr, wchar_t *  *  __endptr) throw ();
extern long double wcstold (const const wchar_t *  __nptr, wchar_t *  *  __endptr) throw ();
extern long wcstol (const const wchar_t *  __nptr, wchar_t *  *  __endptr, int __base) throw ();
extern unsigned long wcstoul (const const wchar_t *  __nptr, wchar_t *  *  __endptr, int __base) throw ();
extern long long wcstoll (const const wchar_t *  __nptr, wchar_t *  *  __endptr, int __base) throw ();
extern unsigned long long wcstoull (const const wchar_t *  __nptr, wchar_t *  *  __endptr, int __base) throw ();
extern long long wcstoq (const const wchar_t *  __nptr, wchar_t *  *  __endptr, int __base) throw ();
extern unsigned long long wcstouq (const const wchar_t *  __nptr, wchar_t *  *  __endptr, int __base) throw ();
extern long wcstol_l (const const wchar_t *  __nptr, wchar_t *  *  __endptr, int __base, locale_t __loc) throw ();
extern unsigned long wcstoul_l (const const wchar_t *  __nptr, wchar_t *  *  __endptr, int __base, locale_t __loc) throw ();
extern long long wcstoll_l (const const wchar_t *  __nptr, wchar_t *  *  __endptr, int __base, locale_t __loc) throw ();
extern unsigned long long wcstoull_l (const const wchar_t *  __nptr, wchar_t *  *  __endptr, int __base, locale_t __loc) throw ();
extern double wcstod_l (const const wchar_t *  __nptr, wchar_t *  *  __endptr, locale_t __loc) throw ();
extern float wcstof_l (const const wchar_t *  __nptr, wchar_t *  *  __endptr, locale_t __loc) throw ();
extern long double wcstold_l (const const wchar_t *  __nptr, wchar_t *  *  __endptr, locale_t __loc) throw ();
extern wchar_t *  wcpcpy (wchar_t *  __dest, const const wchar_t *  __src) throw ();
extern wchar_t *  wcpncpy (wchar_t *  __dest, const const wchar_t *  __src, size_t __n) throw ();
extern __FILE *  open_wmemstream (wchar_t *  *  __bufloc, size_t *  __sizeloc) throw ();
extern int fwide (__FILE *  __fp, int __mode) throw ();
extern int fwprintf (__FILE *  __stream, const const wchar_t *  __format, ... );
extern int wprintf (const const wchar_t *  __format, ... );
extern int swprintf (wchar_t *  __s, size_t __n, const const wchar_t *  __format, ... ) throw ();
extern int vfwprintf (__FILE *  __s, const const wchar_t *  __format, __gnuc_va_list __arg);
extern int vwprintf (const const wchar_t *  __format, __gnuc_va_list __arg);
extern int vswprintf (wchar_t *  __s, size_t __n, const const wchar_t *  __format, __gnuc_va_list __arg) throw ();
extern int fwscanf (__FILE *  __stream, const const wchar_t *  __format, ... );
extern int wscanf (const const wchar_t *  __format, ... );
extern int swscanf (const const wchar_t *  __s, const const wchar_t *  __format, ... ) throw ();
extern int vfwscanf (__FILE *  __s, const const wchar_t *  __format, __gnuc_va_list __arg);
extern int vwscanf (const const wchar_t *  __format, __gnuc_va_list __arg);
extern int vswscanf (const const wchar_t *  __s, const const wchar_t *  __format, __gnuc_va_list __arg) throw ();
extern wint_t fgetwc (__FILE *  __stream);
extern wint_t getwc (__FILE *  __stream);
extern wint_t getwchar ();
extern wint_t fputwc (wchar_t __wc, __FILE *  __stream);
extern wint_t putwc (wchar_t __wc, __FILE *  __stream);
extern wint_t putwchar (wchar_t __wc);
extern wchar_t *  fgetws (wchar_t *  __ws, int __n, __FILE *  __stream);
extern int fputws (const const wchar_t *  __ws, __FILE *  __stream);
extern wint_t ungetwc (wint_t __wc, __FILE *  __stream);
extern wint_t getwc_unlocked (__FILE *  __stream);
extern wint_t getwchar_unlocked ();
extern wint_t fgetwc_unlocked (__FILE *  __stream);
extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *  __stream);
extern wint_t putwc_unlocked (wchar_t __wc, __FILE *  __stream);
extern wint_t putwchar_unlocked (wchar_t __wc);
extern wchar_t *  fgetws_unlocked (wchar_t *  __ws, int __n, __FILE *  __stream);
extern int fputws_unlocked (const const wchar_t *  __ws, __FILE *  __stream);
extern size_t wcsftime (wchar_t *  __s, size_t __maxsize, const const wchar_t *  __format, const const struct tm *  __tp) throw ();
extern size_t wcsftime_l (wchar_t *  __s, size_t __maxsize, const const wchar_t *  __format, const const struct tm *  __tp, locale_t __loc) throw ();
namespace std
{
   using ::;
} // end of std
namespace std
{
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   inline wchar_t *  wcschr (wchar_t *  __p, wchar_t __c);
   inline wchar_t *  wcspbrk (wchar_t *  __s1, const const wchar_t *  __s2);
   inline wchar_t *  wcsrchr (wchar_t *  __p, wchar_t __c);
   inline wchar_t *  wcsstr (wchar_t *  __s1, const const wchar_t *  __s2);
   inline wchar_t *  wmemchr (wchar_t *  __p, wchar_t __c, size_t __n);
} // end of std
namespace __gnu_cxx
{
   using ::;
   using ::;
   using ::;
} // end of __gnu_cxx
namespace std
{
   using ::__gnu_cxx::;
   using ::__gnu_cxx::;
   using ::__gnu_cxx::;
} // end of std
namespace std
{
   typedef long long std::streamoff;
   typedef ptrdiff_t std::streamsize;
   template < typename _StateT >
      class fpos{
         class fpos{
         }; // end of fpos
      private:
      public:
         constructor void fpos<_StateT> ();
         constructor converter void fpos<_StateT> (streamoff __off);
         converter streamoff operator long long ()const volatile restrict ;
         void state (_StateT __st);
         _StateT state ()const volatile restrict ;
         fpos<_StateT> &  operator+= (streamoff __off);
         fpos<_StateT> &  operator-= (streamoff __off);
         fpos<_StateT> operator+ (streamoff __off)const volatile restrict ;
         fpos<_StateT> operator- (streamoff __off)const volatile restrict ;
         streamoff operator- (const const fpos<_StateT> &  __other)const volatile restrict ;
      }; // end of fpos
   template < typename _StateT >
      inline _Bool operator== (const const fpos<_StateT> &  __lhs, const const fpos<_StateT> &  __rhs);
   template < typename _StateT >
      inline _Bool operator!= (const const fpos<_StateT> &  __lhs, const const fpos<_StateT> &  __rhs);
   typedef fpos std::streampos;
   typedef fpos std::wstreampos;
} // end of std
namespace __gnu_cxx
{
   template < typename _CharT >
      struct _Char_types{
         struct _Char_types{
         }; // end of _Char_types
         typedef unsigned long __gnu_cxx::_Char_types::int_type;
         typedef std::streampos __gnu_cxx::_Char_types::pos_type;
         typedef std::streamoff __gnu_cxx::_Char_types::off_type;
         typedef std::mbstate_t __gnu_cxx::_Char_types::state_type;
      }; // end of _Char_types
   template < typename _CharT >
      struct char_traits{
         struct char_traits{
         }; // end of char_traits
         typedef _CharT __gnu_cxx::char_traits::char_type;
         typedef typename _Char_types<_CharT>::int_type __gnu_cxx::char_traits::int_type;
         typedef typename _Char_types<_CharT>::pos_type __gnu_cxx::char_traits::pos_type;
         typedef typename _Char_types<_CharT>::off_type __gnu_cxx::char_traits::off_type;
         typedef typename _Char_types<_CharT>::state_type __gnu_cxx::char_traits::state_type;
         static static void assign (char_type &  __c1, const const char_type &  __c2);
         static static _Bool eq (const const char_type &  __c1, const const char_type &  __c2);
         static static _Bool lt (const const char_type &  __c1, const const char_type &  __c2);
         static static int compare (const const char_type *  __s1, const const char_type *  __s2, std::size_t __n);
         static static std::size_t length (const const char_type *  __s);
         static static const const char_type *  find (const const char_type *  __s, std::size_t __n, const const char_type &  __a);
         static static char_type *  move (char_type *  __s1, const const char_type *  __s2, std::size_t __n);
         static static char_type *  copy (char_type *  __s1, const const char_type *  __s2, std::size_t __n);
         static static char_type *  assign (char_type *  __s, std::size_t __n, char_type __a);
         static static char_type to_char_type (const const int_type &  __c);
         static static int_type to_int_type (const const char_type &  __c);
         static static _Bool eq_int_type (const const int_type &  __c1, const const int_type &  __c2);
         static static int_type eof ();
         static static int_type not_eof (const const int_type &  __c);
      }; // end of char_traits
   static int compare (const const char_type *  __s1, const const char_type *  __s2, std::size_t __n);
   static std::size_t length (const const char_type *  __p);
   static const const typename char_traits<_CharT>::char_type *  find (const const char_type *  __s, std::size_t __n, const const char_type &  __a);
   static typename char_traits<_CharT>::char_type *  move (char_type *  __s1, const const char_type *  __s2, std::size_t __n);
   static typename char_traits<_CharT>::char_type *  copy (char_type *  __s1, const const char_type *  __s2, std::size_t __n);
   static typename char_traits<_CharT>::char_type *  assign (char_type *  __s, std::size_t __n, char_type __a);
} // end of __gnu_cxx
namespace std
{
   template < class _CharT >
      struct char_traits : public:
      __gnu_cxx::char_traits<_CharT>{
         struct char_traits{
         }; // end of char_traits
      }; // end of char_traits
} // end of std
extern "C" extern unsigned int __builtin_strlen (const const char *  ) throw ();
extern "C" extern void *  __builtin_memchr (const const void *  , int , unsigned int ) throw ();
extern "C" extern void *  __builtin_memcpy (void *  , const const void *  , unsigned int ) throw ();
extern "C" struct lconv{
   struct lconv{
   }; // end of lconv
}; // end of lconv
extern char *  setlocale (int __category, const const char *  __locale) throw ();
extern struct lconv *  localeconv () throw ();
extern locale_t newlocale (int __category_mask, const const char *  __locale, locale_t __base) throw ();
extern locale_t duplocale (locale_t __dataset) throw ();
extern void freelocale (locale_t __dataset) throw ();
extern locale_t uselocale (locale_t __dataset) throw ();
namespace std
{
   using ::;
   using ::;
   using ::;
} // end of std
namespace __gnu_cxx
{
   extern "C" locale_t __uselocale (locale_t );
} // end of __gnu_cxx
namespace std
{
   typedef __locale_t std::__c_locale;
   inline int __convert_from_v (const const __c_locale &  __cloc, char *  __out, const const int __size, const const char *  __fmt, ... );
} // end of std
extern "C" extern void __builtin_va_start (__builtin_va_list &  , ... ) throw ();
extern "C" extern int __builtin_vsnprintf (char *  , unsigned int , const const char *  , __builtin_va_list ) throw ();
extern "C" extern void __builtin_va_end (__builtin_va_list &  ) throw ();
namespace std
{
   class ios_base{
   }; // end of ios_base
   template < typename _CharT, typename _Traits = char_traits<_CharT> >
      class basic_ios : public:
      class std::ios_base{
      }; // end of basic_ios
   template < typename _CharT, typename _Traits = char_traits<_CharT> >
      class basic_streambuf{
      }; // end of basic_streambuf
   template < typename _CharT, typename _Traits = char_traits<_CharT> >
      class basic_istream : virtual public:
      basic_ios<_CharT, _Traits>{
      }; // end of basic_istream
   template < typename _CharT, typename _Traits = char_traits<_CharT> >
      class basic_ostream : virtual public:
      basic_ios<_CharT, _Traits>{
      }; // end of basic_ostream
   template < typename _CharT, typename _Traits = char_traits<_CharT> >
      class basic_iostream : public:
      basic_istream<_CharT, _Traits>, public:
      basic_ostream<_CharT, _Traits>{
      }; // end of basic_iostream
   namespace __cxx11
   {
      template < typename _CharT, typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<_CharT> >
         class basic_stringbuf{
         }; // end of basic_stringbuf
      template < typename _CharT, typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<_CharT> >
         class basic_istringstream{
         }; // end of basic_istringstream
      template < typename _CharT, typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<_CharT> >
         class basic_ostringstream{
         }; // end of basic_ostringstream
      template < typename _CharT, typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<_CharT> >
         class basic_stringstream{
         }; // end of basic_stringstream
   } // end of __cxx11
   template < typename _CharT, typename _Traits = char_traits<_CharT> >
      class basic_filebuf{
      }; // end of basic_filebuf
   template < typename _CharT, typename _Traits = char_traits<_CharT> >
      class basic_ifstream{
      }; // end of basic_ifstream
   template < typename _CharT, typename _Traits = char_traits<_CharT> >
      class basic_ofstream{
      }; // end of basic_ofstream
   template < typename _CharT, typename _Traits = char_traits<_CharT> >
      class basic_fstream{
      }; // end of basic_fstream
   template < typename _CharT, typename _Traits = char_traits<_CharT> >
      class istreambuf_iterator : public:
      iterator{
      }; // end of istreambuf_iterator
   template < typename _CharT, typename _Traits = char_traits<_CharT> >
      class ostreambuf_iterator : public:
      iterator{
      }; // end of ostreambuf_iterator
   typedef basic_ios std::ios;
   typedef basic_streambuf std::streambuf;
   typedef basic_istream std::istream;
   typedef basic_ostream std::ostream;
   typedef basic_iostream std::iostream;
   typedef basic_stringbuf std::stringbuf;
   typedef basic_istringstream std::istringstream;
   typedef basic_ostringstream std::ostringstream;
   typedef basic_stringstream std::stringstream;
   typedef basic_filebuf std::filebuf;
   typedef basic_ifstream std::ifstream;
   typedef basic_ofstream std::ofstream;
   typedef basic_fstream std::fstream;
   typedef basic_ios std::wios;
   typedef basic_streambuf std::wstreambuf;
   typedef basic_istream std::wistream;
   typedef basic_ostream std::wostream;
   typedef basic_iostream std::wiostream;
   typedef basic_stringbuf std::wstringbuf;
   typedef basic_istringstream std::wistringstream;
   typedef basic_ostringstream std::wostringstream;
   typedef basic_stringstream std::wstringstream;
   typedef basic_filebuf std::wfilebuf;
   typedef basic_ifstream std::wifstream;
   typedef basic_ofstream std::wofstream;
   typedef basic_fstream std::wfstream;
} // end of std
extern "C" enum 
{
   _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
   _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
   _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
   _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
   _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
   _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
   _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
   _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
   _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
   _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
   _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
   _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
}; // end of 
extern const const unsigned short *  *  __ctype_b_loc () throw ();
extern const const __int32_t *  *  __ctype_tolower_loc () throw ();
extern const const __int32_t *  *  __ctype_toupper_loc () throw ();
extern int isalnum (int ) throw ();
extern int isalpha (int ) throw ();
extern int iscntrl (int ) throw ();
extern int isdigit (int ) throw ();
extern int islower (int ) throw ();
extern int isgraph (int ) throw ();
extern int isprint (int ) throw ();
extern int ispunct (int ) throw ();
extern int isspace (int ) throw ();
extern int isupper (int ) throw ();
extern int isxdigit (int ) throw ();
extern int tolower (int __c) throw ();
extern int toupper (int __c) throw ();
extern int isblank (int ) throw ();
extern int isctype (int __c, int __mask) throw ();
extern int isascii (int __c) throw ();
extern int toascii (int __c) throw ();
extern int _toupper (int ) throw ();
extern int _tolower (int ) throw ();
extern int isalnum_l (int , locale_t ) throw ();
extern int isalpha_l (int , locale_t ) throw ();
extern int iscntrl_l (int , locale_t ) throw ();
extern int isdigit_l (int , locale_t ) throw ();
extern int islower_l (int , locale_t ) throw ();
extern int isgraph_l (int , locale_t ) throw ();
extern int isprint_l (int , locale_t ) throw ();
extern int ispunct_l (int , locale_t ) throw ();
extern int isspace_l (int , locale_t ) throw ();
extern int isupper_l (int , locale_t ) throw ();
extern int isxdigit_l (int , locale_t ) throw ();
extern int isblank_l (int , locale_t ) throw ();
extern int __tolower_l (int __c, locale_t __l) throw ();
extern int tolower_l (int __c, locale_t __l) throw ();
extern int __toupper_l (int __c, locale_t __l) throw ();
extern int toupper_l (int __c, locale_t __l) throw ();
namespace std
{
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
} // end of std
namespace std
{
   class locale{
   }; // end of locale
   template < typename _Facet >
      _Bool has_facet (const const class std::locale &  ) throw ();
   template < typename _Facet >
      const const _Facet &  use_facet (const const class std::locale &  );
   template < typename _CharT >
      _Bool isspace (_CharT , const const class std::locale &  );
   template < typename _CharT >
      _Bool isprint (_CharT , const const class std::locale &  );
   template < typename _CharT >
      _Bool iscntrl (_CharT , const const class std::locale &  );
   template < typename _CharT >
      _Bool isupper (_CharT , const const class std::locale &  );
   template < typename _CharT >
      _Bool islower (_CharT , const const class std::locale &  );
   template < typename _CharT >
      _Bool isalpha (_CharT , const const class std::locale &  );
   template < typename _CharT >
      _Bool isdigit (_CharT , const const class std::locale &  );
   template < typename _CharT >
      _Bool ispunct (_CharT , const const class std::locale &  );
   template < typename _CharT >
      _Bool isxdigit (_CharT , const const class std::locale &  );
   template < typename _CharT >
      _Bool isalnum (_CharT , const const class std::locale &  );
   template < typename _CharT >
      _Bool isgraph (_CharT , const const class std::locale &  );
   template < typename _CharT >
      _CharT toupper (_CharT , const const class std::locale &  );
   template < typename _CharT >
      _CharT tolower (_CharT , const const class std::locale &  );
   class ctype_base{
   }; // end of ctype_base
   template < typename _CharT >
      class ctype : public:
      __ctype_abstract_base<_CharT>{
      }; // end of ctype
   template < typename _CharT >
      class ctype_byname : public:
      ctype<_CharT>{
      }; // end of ctype_byname
   class codecvt_base{
   }; // end of codecvt_base
   template < typename _InternT, typename _ExternT, typename _StateT >
      class codecvt{
      }; // end of codecvt
   template < typename _InternT, typename _ExternT, typename _StateT >
      class codecvt_byname{
      }; // end of codecvt_byname
   template < typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
      class num_get : public:
      class locale::facet{
      }; // end of num_get
   template < typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
      class num_put : public:
      class locale::facet{
      }; // end of num_put
   namespace __cxx11
   {
      template < typename _CharT >
         class numpunct : public:
         class locale::facet{
         }; // end of numpunct
      template < typename _CharT >
         class numpunct_byname : public:
         numpunct<_CharT>{
         }; // end of numpunct_byname
   } // end of __cxx11
   namespace __cxx11
   {
      template < typename _CharT >
         class collate : public:
         class locale::facet{
         }; // end of collate
      template < typename _CharT >
         class collate_byname : public:
         collate<_CharT>{
         }; // end of collate_byname
   } // end of __cxx11
   class time_base{
   }; // end of time_base
   namespace __cxx11
   {
      template < typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
         class time_get{
         }; // end of time_get
      template < typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
         class time_get_byname{
         }; // end of time_get_byname
   } // end of __cxx11
   template < typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
      class time_put{
      }; // end of time_put
   template < typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
      class time_put_byname{
      }; // end of time_put_byname
   class money_base{
   }; // end of money_base
   namespace __cxx11
   {
      template < typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
         class money_get{
         }; // end of money_get
      template < typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
         class money_put{
         }; // end of money_put
   } // end of __cxx11
   namespace __cxx11
   {
      template < typename _CharT, _Bool _Intl = false >
         class moneypunct{
         }; // end of moneypunct
      template < typename _CharT, _Bool _Intl = false >
         class moneypunct_byname{
         }; // end of moneypunct_byname
   } // end of __cxx11
   class messages_base{
   }; // end of messages_base
   namespace __cxx11
   {
      template < typename _CharT >
         class messages{
         }; // end of messages
      template < typename _CharT >
         class messages_byname{
         }; // end of messages_byname
   } // end of __cxx11
} // end of std
namespace __cxxabiv1
{
   class __forced_unwind{
      class __forced_unwind{
      }; // end of __forced_unwind
      virtual destructor void ~__forced_unwind () throw ();
      virtual void __pure_dummy () = 0;
      inline class __cxxabiv1::__forced_unwind &  operator= (const const class __cxxabiv1::__forced_unwind &  ) throw ();
   }; // end of __forced_unwind
} // end of __cxxabiv1
namespace std
{
   template < typename _CharT, typename _Traits >
      inline void __ostream_write (basic_ostream<_CharT, _Traits> &  __out, const const _CharT *  __s, streamsize __n);
   template < typename _CharT, typename _Traits >
      inline void __ostream_fill (basic_ostream<_CharT, _Traits> &  __out, streamsize __n);
   template < typename _CharT, typename _Traits >
      basic_ostream<_CharT, _Traits> &  __ostream_insert (basic_ostream<_CharT, _Traits> &  __out, const const _CharT *  __s, streamsize __n);
} // end of std
namespace std
{
   template < typename _Arg, typename _Result >
      struct unary_function{
         struct unary_function{
         }; // end of unary_function
         typedef _Arg std::unary_function::argument_type;
         typedef _Result std::unary_function::result_type;
      }; // end of unary_function
   template < typename _Arg1, typename _Arg2, typename _Result >
      struct binary_function{
         struct binary_function{
         }; // end of binary_function
         typedef _Arg1 std::binary_function::first_argument_type;
         typedef _Arg2 std::binary_function::second_argument_type;
         typedef _Result std::binary_function::result_type;
      }; // end of binary_function
   template < typename _Tp >
      struct plus : public:
      binary_function<_Tp, _Tp, _Tp>{
         struct plus{
         }; // end of plus
         _Tp operator() (const const _Tp &  __x, const const _Tp &  __y)const volatile restrict ;
      }; // end of plus
   template < typename _Tp >
      struct minus : public:
      binary_function<_Tp, _Tp, _Tp>{
         struct minus{
         }; // end of minus
         _Tp operator() (const const _Tp &  __x, const const _Tp &  __y)const volatile restrict ;
      }; // end of minus
   template < typename _Tp >
      struct multiplies : public:
      binary_function<_Tp, _Tp, _Tp>{
         struct multiplies{
         }; // end of multiplies
         _Tp operator() (const const _Tp &  __x, const const _Tp &  __y)const volatile restrict ;
      }; // end of multiplies
   template < typename _Tp >
      struct divides : public:
      binary_function<_Tp, _Tp, _Tp>{
         struct divides{
         }; // end of divides
         _Tp operator() (const const _Tp &  __x, const const _Tp &  __y)const volatile restrict ;
      }; // end of divides
   template < typename _Tp >
      struct modulus : public:
      binary_function<_Tp, _Tp, _Tp>{
         struct modulus{
         }; // end of modulus
         _Tp operator() (const const _Tp &  __x, const const _Tp &  __y)const volatile restrict ;
      }; // end of modulus
   template < typename _Tp >
      struct negate : public:
      unary_function<_Tp, _Tp>{
         struct negate{
         }; // end of negate
         _Tp operator() (const const _Tp &  __x)const volatile restrict ;
      }; // end of negate
   template < typename _Tp >
      struct equal_to : public:
      binary_function<_Tp, _Tp, _Bool>{
         struct equal_to{
         }; // end of equal_to
         _Bool operator() (const const _Tp &  __x, const const _Tp &  __y)const volatile restrict ;
      }; // end of equal_to
   template < typename _Tp >
      struct not_equal_to : public:
      binary_function<_Tp, _Tp, _Bool>{
         struct not_equal_to{
         }; // end of not_equal_to
         _Bool operator() (const const _Tp &  __x, const const _Tp &  __y)const volatile restrict ;
      }; // end of not_equal_to
   template < typename _Tp >
      struct greater : public:
      binary_function<_Tp, _Tp, _Bool>{
         struct greater{
         }; // end of greater
         _Bool operator() (const const _Tp &  __x, const const _Tp &  __y)const volatile restrict ;
      }; // end of greater
   template < typename _Tp >
      struct less : public:
      binary_function<_Tp, _Tp, _Bool>{
         struct less{
         }; // end of less
         _Bool operator() (const const _Tp &  __x, const const _Tp &  __y)const volatile restrict ;
      }; // end of less
   template < typename _Tp >
      struct greater_equal : public:
      binary_function<_Tp, _Tp, _Bool>{
         struct greater_equal{
         }; // end of greater_equal
         _Bool operator() (const const _Tp &  __x, const const _Tp &  __y)const volatile restrict ;
      }; // end of greater_equal
   template < typename _Tp >
      struct less_equal : public:
      binary_function<_Tp, _Tp, _Bool>{
         struct less_equal{
         }; // end of less_equal
         _Bool operator() (const const _Tp &  __x, const const _Tp &  __y)const volatile restrict ;
      }; // end of less_equal
   template < typename _Tp >
      struct logical_and : public:
      binary_function<_Tp, _Tp, _Bool>{
         struct logical_and{
         }; // end of logical_and
         _Bool operator() (const const _Tp &  __x, const const _Tp &  __y)const volatile restrict ;
      }; // end of logical_and
   template < typename _Tp >
      struct logical_or : public:
      binary_function<_Tp, _Tp, _Bool>{
         struct logical_or{
         }; // end of logical_or
         _Bool operator() (const const _Tp &  __x, const const _Tp &  __y)const volatile restrict ;
      }; // end of logical_or
   template < typename _Tp >
      struct logical_not : public:
      unary_function<_Tp, _Bool>{
         struct logical_not{
         }; // end of logical_not
         _Bool operator() (const const _Tp &  __x)const volatile restrict ;
      }; // end of logical_not
   template < typename _Tp >
      struct bit_and : public:
      binary_function<_Tp, _Tp, _Tp>{
         struct bit_and{
         }; // end of bit_and
         _Tp operator() (const const _Tp &  __x, const const _Tp &  __y)const volatile restrict ;
      }; // end of bit_and
   template < typename _Tp >
      struct bit_or : public:
      binary_function<_Tp, _Tp, _Tp>{
         struct bit_or{
         }; // end of bit_or
         _Tp operator() (const const _Tp &  __x, const const _Tp &  __y)const volatile restrict ;
      }; // end of bit_or
   template < typename _Tp >
      struct bit_xor : public:
      binary_function<_Tp, _Tp, _Tp>{
         struct bit_xor{
         }; // end of bit_xor
         _Tp operator() (const const _Tp &  __x, const const _Tp &  __y)const volatile restrict ;
      }; // end of bit_xor
   template < typename _Tp >
      struct bit_not : public:
      unary_function<_Tp, _Tp>{
         struct bit_not{
         }; // end of bit_not
         _Tp operator() (const const _Tp &  __x)const volatile restrict ;
      }; // end of bit_not
   template < typename _Predicate >
      class unary_negate : public:
      unary_function{
         class unary_negate{
         }; // end of unary_negate
      protected:
      public:
         constructor explicit void unary_negate<_Predicate> (const const _Predicate &  __x);
         _Bool operator() (const const typename _Predicate::argument_type &  __x)const volatile restrict ;
      }; // end of unary_negate
   template < typename _Predicate >
      inline unary_negate<_Predicate> not1 (const const _Predicate &  __pred);
   template < typename _Predicate >
      class binary_negate : public:
      binary_function{
         class binary_negate{
         }; // end of binary_negate
      protected:
      public:
         constructor explicit void binary_negate<_Predicate> (const const _Predicate &  __x);
         _Bool operator() (const const typename _Predicate::first_argument_type &  __x, const const typename _Predicate::second_argument_type &  __y)const volatile restrict ;
      }; // end of binary_negate
   template < typename _Predicate >
      inline binary_negate<_Predicate> not2 (const const _Predicate &  __pred);
   template < typename _Arg, typename _Result >
      class pointer_to_unary_function : public:
      unary_function<_Arg, _Result>{
         class pointer_to_unary_function{
         }; // end of pointer_to_unary_function
      protected:
      public:
         constructor void pointer_to_unary_function<_Arg, _Result> ();
         constructor explicit void pointer_to_unary_function<_Arg, _Result> (_Result (_Arg) *  __x);
         _Result operator() (_Arg __x)const volatile restrict ;
      }; // end of pointer_to_unary_function
   template < typename _Arg, typename _Result >
      inline pointer_to_unary_function<_Arg, _Result> ptr_fun (_Result (_Arg) *  __x);
   template < typename _Arg1, typename _Arg2, typename _Result >
      class pointer_to_binary_function : public:
      binary_function<_Arg1, _Arg2, _Result>{
         class pointer_to_binary_function{
         }; // end of pointer_to_binary_function
      protected:
      public:
         constructor void pointer_to_binary_function<_Arg1, _Arg2, _Result> ();
         constructor explicit void pointer_to_binary_function<_Arg1, _Arg2, _Result> (_Result (_Arg1, _Arg2) *  __x);
         _Result operator() (_Arg1 __x, _Arg2 __y)const volatile restrict ;
      }; // end of pointer_to_binary_function
   template < typename _Arg1, typename _Arg2, typename _Result >
      inline pointer_to_binary_function<_Arg1, _Arg2, _Result> ptr_fun (_Result (_Arg1, _Arg2) *  __x);
   template < typename _Tp >
      struct _Identity : public:
      unary_function<_Tp, _Tp>{
         struct _Identity{
         }; // end of _Identity
         _Tp &  operator() (_Tp &  __x)const volatile restrict ;
         const const _Tp &  operator() (const const _Tp &  __x)const volatile restrict ;
      }; // end of _Identity
   template < typename _Pair >
      struct _Select1st : public:
      unary_function<_Pair, typename _Pair::first_type>{
         struct _Select1st{
         }; // end of _Select1st
         typename _Pair::first_type &  operator() (_Pair &  __x)const volatile restrict ;
         const const typename _Pair::first_type &  operator() (const const _Pair &  __x)const volatile restrict ;
      }; // end of _Select1st
   template < typename _Pair >
      struct _Select2nd : public:
      unary_function<_Pair, typename _Pair::second_type>{
         struct _Select2nd{
         }; // end of _Select2nd
         typename _Pair::second_type &  operator() (_Pair &  __x)const volatile restrict ;
         const const typename _Pair::second_type &  operator() (const const _Pair &  __x)const volatile restrict ;
      }; // end of _Select2nd
   template < typename _Ret, typename _Tp >
      class mem_fun_t : public:
      unary_function<_Tp *, _Ret>{
         class mem_fun_t{
         }; // end of mem_fun_t
      public:
         constructor explicit void mem_fun_t<_Ret, _Tp> (::*_Ret (void) __pf);
         _Ret operator() (_Tp *  __p)const volatile restrict ;
      private:
      }; // end of mem_fun_t
   template < typename _Ret, typename _Tp >
      class const_mem_fun_t : public:
      unary_function{
         class const_mem_fun_t{
         }; // end of const_mem_fun_t
      public:
         constructor explicit void const_mem_fun_t<_Ret, _Tp> (::*_Ret (void) const __pf);
         _Ret operator() (const const _Tp *  __p)const volatile restrict ;
      private:
      }; // end of const_mem_fun_t
   template < typename _Ret, typename _Tp >
      class mem_fun_ref_t : public:
      unary_function<_Tp, _Ret>{
         class mem_fun_ref_t{
         }; // end of mem_fun_ref_t
      public:
         constructor explicit void mem_fun_ref_t<_Ret, _Tp> (::*_Ret (void) __pf);
         _Ret operator() (_Tp &  __r)const volatile restrict ;
      private:
      }; // end of mem_fun_ref_t
   template < typename _Ret, typename _Tp >
      class const_mem_fun_ref_t : public:
      unary_function<_Tp, _Ret>{
         class const_mem_fun_ref_t{
         }; // end of const_mem_fun_ref_t
      public:
         constructor explicit void const_mem_fun_ref_t<_Ret, _Tp> (::*_Ret (void) const __pf);
         _Ret operator() (const const _Tp &  __r)const volatile restrict ;
      private:
      }; // end of const_mem_fun_ref_t
   template < typename _Ret, typename _Tp, typename _Arg >
      class mem_fun1_t : public:
      binary_function<_Tp *, _Arg, _Ret>{
         class mem_fun1_t{
         }; // end of mem_fun1_t
      public:
         constructor explicit void mem_fun1_t<_Ret, _Tp, _Arg> (::*_Ret (_Arg) __pf);
         _Ret operator() (_Tp *  __p, _Arg __x)const volatile restrict ;
      private:
      }; // end of mem_fun1_t
   template < typename _Ret, typename _Tp, typename _Arg >
      class const_mem_fun1_t : public:
      binary_function{
         class const_mem_fun1_t{
         }; // end of const_mem_fun1_t
      public:
         constructor explicit void const_mem_fun1_t<_Ret, _Tp, _Arg> (::*_Ret (_Arg) const __pf);
         _Ret operator() (const const _Tp *  __p, _Arg __x)const volatile restrict ;
      private:
      }; // end of const_mem_fun1_t
   template < typename _Ret, typename _Tp, typename _Arg >
      class mem_fun1_ref_t : public:
      binary_function<_Tp, _Arg, _Ret>{
         class mem_fun1_ref_t{
         }; // end of mem_fun1_ref_t
      public:
         constructor explicit void mem_fun1_ref_t<_Ret, _Tp, _Arg> (::*_Ret (_Arg) __pf);
         _Ret operator() (_Tp &  __r, _Arg __x)const volatile restrict ;
      private:
      }; // end of mem_fun1_ref_t
   template < typename _Ret, typename _Tp, typename _Arg >
      class const_mem_fun1_ref_t : public:
      binary_function<_Tp, _Arg, _Ret>{
         class const_mem_fun1_ref_t{
         }; // end of const_mem_fun1_ref_t
      public:
         constructor explicit void const_mem_fun1_ref_t<_Ret, _Tp, _Arg> (::*_Ret (_Arg) const __pf);
         _Ret operator() (const const _Tp &  __r, _Arg __x)const volatile restrict ;
      private:
      }; // end of const_mem_fun1_ref_t
   template < typename _Ret, typename _Tp >
      inline mem_fun_t<_Ret, _Tp> mem_fun (::*_Ret (void) __f);
   template < typename _Ret, typename _Tp >
      inline const_mem_fun_t<_Ret, _Tp> mem_fun (::*_Ret (void) const __f);
   template < typename _Ret, typename _Tp >
      inline mem_fun_ref_t<_Ret, _Tp> mem_fun_ref (::*_Ret (void) __f);
   template < typename _Ret, typename _Tp >
      inline const_mem_fun_ref_t<_Ret, _Tp> mem_fun_ref (::*_Ret (void) const __f);
   template < typename _Ret, typename _Tp, typename _Arg >
      inline mem_fun1_t<_Ret, _Tp, _Arg> mem_fun (::*_Ret (_Arg) __f);
   template < typename _Ret, typename _Tp, typename _Arg >
      inline const_mem_fun1_t<_Ret, _Tp, _Arg> mem_fun (::*_Ret (_Arg) const __f);
   template < typename _Ret, typename _Tp, typename _Arg >
      inline mem_fun1_ref_t<_Ret, _Tp, _Arg> mem_fun_ref (::*_Ret (_Arg) __f);
   template < typename _Ret, typename _Tp, typename _Arg >
      inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg> mem_fun_ref (::*_Ret (_Arg) const __f);
} // end of std
namespace std
{
   template < typename _Operation >
      class binder1st : public:
      unary_function{
         class binder1st{
         }; // end of binder1st
      protected:
      public:
         constructor void binder1st<_Operation> (const const _Operation &  __x, const const typename _Operation::first_argument_type &  __y);
         typename _Operation::result_type operator() (const const typename _Operation::second_argument_type &  __x)const volatile restrict ;
         typename _Operation::result_type operator() (typename _Operation::second_argument_type &  __x)const volatile restrict ;
      }; // end of binder1st
   template < typename _Operation, typename _Tp >
      inline binder1st<_Operation> bind1st (const const _Operation &  __fn, const const _Tp &  __x);
   template < typename _Operation >
      class binder2nd : public:
      unary_function{
         class binder2nd{
         }; // end of binder2nd
      protected:
      public:
         constructor void binder2nd<_Operation> (const const _Operation &  __x, const const typename _Operation::second_argument_type &  __y);
         typename _Operation::result_type operator() (const const typename _Operation::first_argument_type &  __x)const volatile restrict ;
         typename _Operation::result_type operator() (typename _Operation::first_argument_type &  __x)const volatile restrict ;
      }; // end of binder2nd
   template < typename _Operation, typename _Tp >
      inline binder2nd<_Operation> bind2nd (const const _Operation &  __fn, const const _Tp &  __x);
} // end of std
struct sched_param{
   struct sched_param{
   }; // end of sched_param
}; // end of sched_param
extern "C" extern int clone (int (void *) *  __fn, void *  __child_stack, int __flags, void *  __arg, ... ) throw ();
extern int unshare (int __flags) throw ();
extern int sched_getcpu () throw ();
extern int setns (int __fd, int __nstype) throw ();
typedef unsigned long __cpu_mask;
struct {
}; // end of 
typedef struct cpu_set_t cpu_set_t;
extern "C" extern int __sched_cpucount (size_t __setsize, const const cpu_set_t *  __setp) throw ();
extern cpu_set_t *  __sched_cpualloc (size_t __count) throw ();
extern void __sched_cpufree (cpu_set_t *  __set) throw ();
extern "C" extern int sched_setparam (__pid_t __pid, const const struct sched_param *  __param) throw ();
extern int sched_getparam (__pid_t __pid, struct sched_param *  __param) throw ();
extern int sched_setscheduler (__pid_t __pid, int __policy, const const struct sched_param *  __param) throw ();
extern int sched_getscheduler (__pid_t __pid) throw ();
extern int sched_yield () throw ();
extern int sched_get_priority_max (int __algorithm) throw ();
extern int sched_get_priority_min (int __algorithm) throw ();
extern int sched_rr_get_interval (__pid_t __pid, struct timespec *  __t) throw ();
extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, const const cpu_set_t *  __cpuset) throw ();
extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, cpu_set_t *  __cpuset) throw ();
struct timex{
   struct timex{
   }; // end of timex
}; // end of timex
extern "C" extern int clock_adjtime (__clockid_t __clock_id, struct timex *  __utx) throw ();
struct tm{
   struct tm{
   }; // end of tm
}; // end of tm
struct itimerspec{
   struct itimerspec{
   }; // end of itimerspec
}; // end of itimerspec
struct sigevent{
}; // end of sigevent
extern "C" extern clock_t clock () throw ();
extern time_t time (time_t *  __timer) throw ();
extern double difftime (time_t __time1, time_t __time0) throw ();
extern time_t mktime (struct tm *  __tp) throw ();
extern size_t strftime (char *  __s, size_t __maxsize, const const char *  __format, const const struct tm *  __tp) throw ();
extern char *  strptime (const const char *  __s, const const char *  __fmt, struct tm *  __tp) throw ();
extern size_t strftime_l (char *  __s, size_t __maxsize, const const char *  __format, const const struct tm *  __tp, locale_t __loc) throw ();
extern char *  strptime_l (const const char *  __s, const const char *  __fmt, struct tm *  __tp, locale_t __loc) throw ();
extern struct tm *  gmtime (const const time_t *  __timer) throw ();
extern struct tm *  localtime (const const time_t *  __timer) throw ();
extern struct tm *  gmtime_r (const const time_t *  __timer, struct tm *  __tp) throw ();
extern struct tm *  localtime_r (const const time_t *  __timer, struct tm *  __tp) throw ();
extern char *  asctime (const const struct tm *  __tp) throw ();
extern char *  ctime (const const time_t *  __timer) throw ();
extern char *  asctime_r (const const struct tm *  __tp, char *  __buf) throw ();
extern char *  ctime_r (const const time_t *  __timer, char *  __buf) throw ();
/* variable */ extern char *  [2] __tzname;
/* variable */ extern int __daylight;
/* variable */ extern long __timezone;
/* variable */ extern char *  [2] tzname;
extern void tzset () throw ();
/* variable */ extern int daylight;
/* variable */ extern long timezone;
extern int stime (const const time_t *  __when) throw ();
extern time_t timegm (struct tm *  __tp) throw ();
extern time_t timelocal (struct tm *  __tp) throw ();
extern int dysize (int __year) throw ();
extern int nanosleep (const const struct timespec *  __requested_time, struct timespec *  __remaining);
extern int clock_getres (clockid_t __clock_id, struct timespec *  __res) throw ();
extern int clock_gettime (clockid_t __clock_id, struct timespec *  __tp) throw ();
extern int clock_settime (clockid_t __clock_id, const const struct timespec *  __tp) throw ();
extern int clock_nanosleep (clockid_t __clock_id, int __flags, const const struct timespec *  __req, struct timespec *  __rem);
extern int clock_getcpuclockid (pid_t __pid, clockid_t *  __clock_id) throw ();
extern int timer_create (clockid_t __clock_id, struct sigevent *  __evp, timer_t *  __timerid) throw ();
extern int timer_delete (timer_t __timerid) throw ();
extern int timer_settime (timer_t __timerid, int __flags, const const struct itimerspec *  __value, struct itimerspec *  __ovalue) throw ();
extern int timer_gettime (timer_t __timerid, struct itimerspec *  __value) throw ();
extern int timer_getoverrun (timer_t __timerid) throw ();
extern int timespec_get (struct timespec *  __ts, int __base) throw ();
/* variable */ extern int getdate_err;
extern struct tm *  getdate (const const char *  __string);
extern int getdate_r (const const char *  __string, struct tm *  __resbufp);
typedef int [6] __jmp_buf;
enum 
{
   PTHREAD_CREATE_JOINABLE,
   PTHREAD_CREATE_DETACHED
}; // end of 
enum 
{
   PTHREAD_MUTEX_TIMED_NP,
   PTHREAD_MUTEX_RECURSIVE_NP,
   PTHREAD_MUTEX_ERRORCHECK_NP,
   PTHREAD_MUTEX_ADAPTIVE_NP,
   PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP,
   PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
   PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
   PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL,
   PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP
}; // end of 
enum 
{
   PTHREAD_MUTEX_STALLED,
   PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED,
   PTHREAD_MUTEX_ROBUST,
   PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST
}; // end of 
enum 
{
   PTHREAD_PRIO_NONE,
   PTHREAD_PRIO_INHERIT,
   PTHREAD_PRIO_PROTECT
}; // end of 
enum 
{
   PTHREAD_RWLOCK_PREFER_READER_NP,
   PTHREAD_RWLOCK_PREFER_WRITER_NP,
   PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
   PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP
}; // end of 
enum 
{
   PTHREAD_INHERIT_SCHED,
   PTHREAD_EXPLICIT_SCHED
}; // end of 
enum 
{
   PTHREAD_SCOPE_SYSTEM,
   PTHREAD_SCOPE_PROCESS
}; // end of 
enum 
{
   PTHREAD_PROCESS_PRIVATE,
   PTHREAD_PROCESS_SHARED
}; // end of 
struct _pthread_cleanup_buffer{
   struct _pthread_cleanup_buffer{
   }; // end of _pthread_cleanup_buffer
}; // end of _pthread_cleanup_buffer
enum 
{
   PTHREAD_CANCEL_ENABLE,
   PTHREAD_CANCEL_DISABLE
}; // end of 
enum 
{
   PTHREAD_CANCEL_DEFERRED,
   PTHREAD_CANCEL_ASYNCHRONOUS
}; // end of 
extern "C" extern int pthread_create (pthread_t *  __newthread, const const pthread_attr_t *  __attr, void *(void *) *  __start_routine, void *  __arg) throw ();
extern void pthread_exit (void *  __retval);
extern int pthread_join (pthread_t __th, void *  *  __thread_return);
extern int pthread_tryjoin_np (pthread_t __th, void *  *  __thread_return) throw ();
extern int pthread_timedjoin_np (pthread_t __th, void *  *  __thread_return, const const struct timespec *  __abstime);
extern int pthread_detach (pthread_t __th) throw ();
extern pthread_t pthread_self () throw ();
extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) throw ();
extern int pthread_attr_init (pthread_attr_t *  __attr) throw ();
extern int pthread_attr_destroy (pthread_attr_t *  __attr) throw ();
extern int pthread_attr_getdetachstate (const const pthread_attr_t *  __attr, int *  __detachstate) throw ();
extern int pthread_attr_setdetachstate (pthread_attr_t *  __attr, int __detachstate) throw ();
extern int pthread_attr_getguardsize (const const pthread_attr_t *  __attr, size_t *  __guardsize) throw ();
extern int pthread_attr_setguardsize (pthread_attr_t *  __attr, size_t __guardsize) throw ();
extern int pthread_attr_getschedparam (const const pthread_attr_t *  __attr, struct sched_param *  __param) throw ();
extern int pthread_attr_setschedparam (pthread_attr_t *  __attr, const const struct sched_param *  __param) throw ();
extern int pthread_attr_getschedpolicy (const const pthread_attr_t *  __attr, int *  __policy) throw ();
extern int pthread_attr_setschedpolicy (pthread_attr_t *  __attr, int __policy) throw ();
extern int pthread_attr_getinheritsched (const const pthread_attr_t *  __attr, int *  __inherit) throw ();
extern int pthread_attr_setinheritsched (pthread_attr_t *  __attr, int __inherit) throw ();
extern int pthread_attr_getscope (const const pthread_attr_t *  __attr, int *  __scope) throw ();
extern int pthread_attr_setscope (pthread_attr_t *  __attr, int __scope) throw ();
extern int pthread_attr_getstackaddr (const const pthread_attr_t *  __attr, void *  *  __stackaddr) throw ();
extern int pthread_attr_setstackaddr (pthread_attr_t *  __attr, void *  __stackaddr) throw ();
extern int pthread_attr_getstacksize (const const pthread_attr_t *  __attr, size_t *  __stacksize) throw ();
extern int pthread_attr_setstacksize (pthread_attr_t *  __attr, size_t __stacksize) throw ();
extern int pthread_attr_getstack (const const pthread_attr_t *  __attr, void *  *  __stackaddr, size_t *  __stacksize) throw ();
extern int pthread_attr_setstack (pthread_attr_t *  __attr, void *  __stackaddr, size_t __stacksize) throw ();
extern int pthread_attr_setaffinity_np (pthread_attr_t *  __attr, size_t __cpusetsize, const const cpu_set_t *  __cpuset) throw ();
extern int pthread_attr_getaffinity_np (const const pthread_attr_t *  __attr, size_t __cpusetsize, cpu_set_t *  __cpuset) throw ();
extern int pthread_getattr_default_np (pthread_attr_t *  __attr) throw ();
extern int pthread_setattr_default_np (const const pthread_attr_t *  __attr) throw ();
extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *  __attr) throw ();
extern int pthread_setschedparam (pthread_t __target_thread, int __policy, const const struct sched_param *  __param) throw ();
extern int pthread_getschedparam (pthread_t __target_thread, int *  __policy, struct sched_param *  __param) throw ();
extern int pthread_setschedprio (pthread_t __target_thread, int __prio) throw ();
extern int pthread_getname_np (pthread_t __target_thread, char *  __buf, size_t __buflen) throw ();
extern int pthread_setname_np (pthread_t __target_thread, const const char *  __name) throw ();
extern int pthread_getconcurrency () throw ();
extern int pthread_setconcurrency (int __level) throw ();
extern int pthread_yield () throw ();
extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize, const const cpu_set_t *  __cpuset) throw ();
extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize, cpu_set_t *  __cpuset) throw ();
extern int pthread_once (pthread_once_t *  __once_control, void (void) *  __init_routine);
extern int pthread_setcancelstate (int __state, int *  __oldstate);
extern int pthread_setcanceltype (int __type, int *  __oldtype);
extern int pthread_cancel (pthread_t __th);
extern void pthread_testcancel ();
struct {
   struct {
   }; // end of 
}; // end of 
typedef struct __pthread_unwind_buf_t __pthread_unwind_buf_t;
struct __pthread_cleanup_frame{
   struct __pthread_cleanup_frame{
   }; // end of __pthread_cleanup_frame
}; // end of __pthread_cleanup_frame
extern void __pthread_register_cancel (__pthread_unwind_buf_t *  __buf);
extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *  __buf);
extern void __pthread_register_cancel_defer (__pthread_unwind_buf_t *  __buf);
extern void __pthread_unregister_cancel_restore (__pthread_unwind_buf_t *  __buf);
extern void __pthread_unwind_next (__pthread_unwind_buf_t *  __buf);
struct __jmp_buf_tag{
}; // end of __jmp_buf_tag
extern int __sigsetjmp (struct __jmp_buf_tag *  __env, int __savemask) throw ();
extern int pthread_mutex_init (pthread_mutex_t *  __mutex, const const pthread_mutexattr_t *  __mutexattr) throw ();
extern int pthread_mutex_destroy (pthread_mutex_t *  __mutex) throw ();
extern int pthread_mutex_trylock (pthread_mutex_t *  __mutex) throw ();
extern int pthread_mutex_lock (pthread_mutex_t *  __mutex) throw ();
extern int pthread_mutex_timedlock (pthread_mutex_t *  __mutex, const const struct timespec *  __abstime) throw ();
extern int pthread_mutex_unlock (pthread_mutex_t *  __mutex) throw ();
extern int pthread_mutex_getprioceiling (const const pthread_mutex_t *  __mutex, int *  __prioceiling) throw ();
extern int pthread_mutex_setprioceiling (pthread_mutex_t *  __mutex, int __prioceiling, int *  __old_ceiling) throw ();
extern int pthread_mutex_consistent (pthread_mutex_t *  __mutex) throw ();
extern int pthread_mutex_consistent_np (pthread_mutex_t *  __mutex) throw ();
extern int pthread_mutexattr_init (pthread_mutexattr_t *  __attr) throw ();
extern int pthread_mutexattr_destroy (pthread_mutexattr_t *  __attr) throw ();
extern int pthread_mutexattr_getpshared (const const pthread_mutexattr_t *  __attr, int *  __pshared) throw ();
extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *  __attr, int __pshared) throw ();
extern int pthread_mutexattr_gettype (const const pthread_mutexattr_t *  __attr, int *  __kind) throw ();
extern int pthread_mutexattr_settype (pthread_mutexattr_t *  __attr, int __kind) throw ();
extern int pthread_mutexattr_getprotocol (const const pthread_mutexattr_t *  __attr, int *  __protocol) throw ();
extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *  __attr, int __protocol) throw ();
extern int pthread_mutexattr_getprioceiling (const const pthread_mutexattr_t *  __attr, int *  __prioceiling) throw ();
extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *  __attr, int __prioceiling) throw ();
extern int pthread_mutexattr_getrobust (const const pthread_mutexattr_t *  __attr, int *  __robustness) throw ();
extern int pthread_mutexattr_getrobust_np (const const pthread_mutexattr_t *  __attr, int *  __robustness) throw ();
extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *  __attr, int __robustness) throw ();
extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *  __attr, int __robustness) throw ();
extern int pthread_rwlock_init (pthread_rwlock_t *  __rwlock, const const pthread_rwlockattr_t *  __attr) throw ();
extern int pthread_rwlock_destroy (pthread_rwlock_t *  __rwlock) throw ();
extern int pthread_rwlock_rdlock (pthread_rwlock_t *  __rwlock) throw ();
extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *  __rwlock) throw ();
extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *  __rwlock, const const struct timespec *  __abstime) throw ();
extern int pthread_rwlock_wrlock (pthread_rwlock_t *  __rwlock) throw ();
extern int pthread_rwlock_trywrlock (pthread_rwlock_t *  __rwlock) throw ();
extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *  __rwlock, const const struct timespec *  __abstime) throw ();
extern int pthread_rwlock_unlock (pthread_rwlock_t *  __rwlock) throw ();
extern int pthread_rwlockattr_init (pthread_rwlockattr_t *  __attr) throw ();
extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *  __attr) throw ();
extern int pthread_rwlockattr_getpshared (const const pthread_rwlockattr_t *  __attr, int *  __pshared) throw ();
extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *  __attr, int __pshared) throw ();
extern int pthread_rwlockattr_getkind_np (const const pthread_rwlockattr_t *  __attr, int *  __pref) throw ();
extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *  __attr, int __pref) throw ();
extern int pthread_cond_init (pthread_cond_t *  __cond, const const pthread_condattr_t *  __cond_attr) throw ();
extern int pthread_cond_destroy (pthread_cond_t *  __cond) throw ();
extern int pthread_cond_signal (pthread_cond_t *  __cond) throw ();
extern int pthread_cond_broadcast (pthread_cond_t *  __cond) throw ();
extern int pthread_cond_wait (pthread_cond_t *  __cond, pthread_mutex_t *  __mutex);
extern int pthread_cond_timedwait (pthread_cond_t *  __cond, pthread_mutex_t *  __mutex, const const struct timespec *  __abstime);
extern int pthread_condattr_init (pthread_condattr_t *  __attr) throw ();
extern int pthread_condattr_destroy (pthread_condattr_t *  __attr) throw ();
extern int pthread_condattr_getpshared (const const pthread_condattr_t *  __attr, int *  __pshared) throw ();
extern int pthread_condattr_setpshared (pthread_condattr_t *  __attr, int __pshared) throw ();
extern int pthread_condattr_getclock (const const pthread_condattr_t *  __attr, __clockid_t *  __clock_id) throw ();
extern int pthread_condattr_setclock (pthread_condattr_t *  __attr, __clockid_t __clock_id) throw ();
extern int pthread_spin_init (volatile pthread_spinlock_t *  __lock, int __pshared) throw ();
extern int pthread_spin_destroy (volatile pthread_spinlock_t *  __lock) throw ();
extern int pthread_spin_lock (volatile pthread_spinlock_t *  __lock) throw ();
extern int pthread_spin_trylock (volatile pthread_spinlock_t *  __lock) throw ();
extern int pthread_spin_unlock (volatile pthread_spinlock_t *  __lock) throw ();
extern int pthread_barrier_init (pthread_barrier_t *  __barrier, const const pthread_barrierattr_t *  __attr, unsigned int __count) throw ();
extern int pthread_barrier_destroy (pthread_barrier_t *  __barrier) throw ();
extern int pthread_barrier_wait (pthread_barrier_t *  __barrier) throw ();
extern int pthread_barrierattr_init (pthread_barrierattr_t *  __attr) throw ();
extern int pthread_barrierattr_destroy (pthread_barrierattr_t *  __attr) throw ();
extern int pthread_barrierattr_getpshared (const const pthread_barrierattr_t *  __attr, int *  __pshared) throw ();
extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *  __attr, int __pshared) throw ();
extern int pthread_key_create (pthread_key_t *  __key, void (void *) *  __destr_function) throw ();
extern int pthread_key_delete (pthread_key_t __key) throw ();
extern void *  pthread_getspecific (pthread_key_t __key) throw ();
extern int pthread_setspecific (pthread_key_t __key, const const void *  __pointer) throw ();
extern int pthread_getcpuclockid (pthread_t __thread_id, __clockid_t *  __clock_id) throw ();
extern int pthread_atfork (void (void) *  __prepare, void (void) *  __parent, void (void) *  __child) throw ();
typedef pthread_t __gthread_t;
typedef pthread_key_t __gthread_key_t;
typedef pthread_once_t __gthread_once_t;
typedef pthread_mutex_t __gthread_mutex_t;
typedef pthread_mutex_t __gthread_recursive_mutex_t;
typedef pthread_cond_t __gthread_cond_t;
typedef struct timespec __gthread_time_t;
static int __gthrw_pthread_once (pthread_once_t *  , void (void) *  );
static void *  __gthrw_pthread_getspecific (pthread_key_t );
static int __gthrw_pthread_setspecific (pthread_key_t , const const void *  );
static int __gthrw_pthread_create (pthread_t *  , const const pthread_attr_t *  , void *(void *) *  , void *  );
static int __gthrw_pthread_join (pthread_t , void *  *  );
static int __gthrw_pthread_equal (pthread_t , pthread_t );
static pthread_t __gthrw_pthread_self ();
static int __gthrw_pthread_detach (pthread_t );
static int __gthrw_pthread_cancel (pthread_t );
static int __gthrw_sched_yield ();
static int __gthrw_pthread_mutex_lock (pthread_mutex_t *  );
static int __gthrw_pthread_mutex_trylock (pthread_mutex_t *  );
static int __gthrw_pthread_mutex_timedlock (pthread_mutex_t *  , const const struct timespec *  );
static int __gthrw_pthread_mutex_unlock (pthread_mutex_t *  );
static int __gthrw_pthread_mutex_init (pthread_mutex_t *  , const const pthread_mutexattr_t *  );
static int __gthrw_pthread_mutex_destroy (pthread_mutex_t *  );
static int __gthrw_pthread_cond_init (pthread_cond_t *  , const const pthread_condattr_t *  );
static int __gthrw_pthread_cond_broadcast (pthread_cond_t *  );
static int __gthrw_pthread_cond_signal (pthread_cond_t *  );
static int __gthrw_pthread_cond_wait (pthread_cond_t *  , pthread_mutex_t *  );
static int __gthrw_pthread_cond_timedwait (pthread_cond_t *  , pthread_mutex_t *  , const const struct timespec *  );
static int __gthrw_pthread_cond_destroy (pthread_cond_t *  );
static int __gthrw_pthread_key_create (pthread_key_t *  , void (void *) *  );
static int __gthrw_pthread_key_delete (pthread_key_t );
static int __gthrw_pthread_mutexattr_init (pthread_mutexattr_t *  );
static int __gthrw_pthread_mutexattr_settype (pthread_mutexattr_t *  , int );
static int __gthrw_pthread_mutexattr_destroy (pthread_mutexattr_t *  );
static int __gthrw___pthread_key_create (pthread_key_t *  , void (void *) *  );
static inline int __gthread_active_p ();
static inline int __gthread_create (__gthread_t *  __threadid, void *(void *) *  __func, void *  __args);
static inline int __gthread_join (__gthread_t __threadid, void *  *  __value_ptr);
static inline int __gthread_detach (__gthread_t __threadid);
static inline int __gthread_equal (__gthread_t __t1, __gthread_t __t2);
static inline __gthread_t __gthread_self ();
static inline int __gthread_yield ();
static inline int __gthread_once (__gthread_once_t *  __once, void (void) *  __func);
static inline int __gthread_key_create (__gthread_key_t *  __key, void (void *) *  __dtor);
static inline int __gthread_key_delete (__gthread_key_t __key);
static inline void *  __gthread_getspecific (__gthread_key_t __key);
static inline int __gthread_setspecific (__gthread_key_t __key, const const void *  __ptr);
static inline void __gthread_mutex_init_function (__gthread_mutex_t *  __mutex);
static inline int __gthread_mutex_destroy (__gthread_mutex_t *  __mutex);
static inline int __gthread_mutex_lock (__gthread_mutex_t *  __mutex);
static inline int __gthread_mutex_trylock (__gthread_mutex_t *  __mutex);
static inline int __gthread_mutex_timedlock (__gthread_mutex_t *  __mutex, const const __gthread_time_t *  __abs_timeout);
static inline int __gthread_mutex_unlock (__gthread_mutex_t *  __mutex);
static inline int __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *  __mutex);
static inline int __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *  __mutex);
static inline int __gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *  __mutex, const const __gthread_time_t *  __abs_timeout);
static inline int __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *  __mutex);
static inline int __gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *  __mutex);
static inline int __gthread_cond_broadcast (__gthread_cond_t *  __cond);
static inline int __gthread_cond_signal (__gthread_cond_t *  __cond);
static inline int __gthread_cond_wait (__gthread_cond_t *  __cond, __gthread_mutex_t *  __mutex);
static inline int __gthread_cond_timedwait (__gthread_cond_t *  __cond, __gthread_mutex_t *  __mutex, const const __gthread_time_t *  __abs_timeout);
static inline int __gthread_cond_wait_recursive (__gthread_cond_t *  __cond, __gthread_recursive_mutex_t *  __mutex);
static inline int __gthread_cond_destroy (__gthread_cond_t *  __cond);
typedef int _Atomic_word;
namespace __gnu_cxx
{
   static inline _Atomic_word __exchange_and_add (volatile volatile _Atomic_word *  __mem, int __val);
   static inline void __atomic_add (volatile volatile _Atomic_word *  __mem, int __val);
   static inline _Atomic_word __exchange_and_add_single (_Atomic_word *  __mem, int __val);
   static inline void __atomic_add_single (_Atomic_word *  __mem, int __val);
   static inline _Atomic_word __exchange_and_add_dispatch (_Atomic_word *  __mem, int __val);
   static inline void __atomic_add_dispatch (_Atomic_word *  __mem, int __val);
} // end of __gnu_cxx
extern "C" extern void __atomic_fetch_add (... );
namespace std
{
   namespace __cxx11
   {
      template < typename _CharT, typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<_CharT> >
         class basic_string{
            class basic_string{
            }; // end of basic_string
            typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template __gnu_cxx::__alloc_traits<_Alloc>::rebind<_CharT>::other std::__cxx11::basic_string::_Char_alloc_type;
            typedef __gnu_cxx::__alloc_traits<_Char_alloc_type> std::__cxx11::basic_string::_Alloc_traits;
         public:
            typedef _Traits std::__cxx11::basic_string::traits_type;
            typedef typename _Traits::char_type std::__cxx11::basic_string::value_type;
            typedef _Char_alloc_type std::__cxx11::basic_string::allocator_type;
            typedef typename _Alloc_traits::size_type std::__cxx11::basic_string::size_type;
            typedef typename _Alloc_traits::difference_type std::__cxx11::basic_string::difference_type;
            typedef typename _Alloc_traits::reference std::__cxx11::basic_string::reference;
            typedef typename _Alloc_traits::const_reference std::__cxx11::basic_string::const_reference;
            typedef typename _Alloc_traits::pointer std::__cxx11::basic_string::pointer;
            typedef typename _Alloc_traits::const_pointer std::__cxx11::basic_string::const_pointer;
            typedef __gnu_cxx::__normal_iterator > std::__cxx11::basic_string::iterator;
            typedef __gnu_cxx::__normal_iterator > std::__cxx11::basic_string::const_iterator;
            typedef std::reverse_iterator std::__cxx11::basic_string::const_reverse_iterator;
            typedef std::reverse_iterator std::__cxx11::basic_string::reverse_iterator;
            /* variable */ static const const size_type = static_cast(-1) npos;
         private:
            typedef iterator std::__cxx11::basic_string::__const_iterator;
            struct _Alloc_hider : public:
            allocator_type{
               struct _Alloc_hider{
               }; // end of _Alloc_hider
               constructor converter void _Alloc_hider (pointer __dat, const const _Alloc &  __a = _Alloc());
            }; // end of _Alloc_hider
            enum 
            {
               _S_local_capacity = 15 / sizeof(_CharT)
            }; // end of 
            union {
            }; // end of 
            void _M_data (pointer __p);
            void _M_length (size_type __length);
            pointer _M_data ()const volatile restrict ;
            pointer _M_local_data ();
            const_pointer _M_local_data ()const volatile restrict ;
            void _M_capacity (size_type __capacity);
            void _M_set_length (size_type __n);
            _Bool _M_is_local ()const volatile restrict ;
            pointer _M_create (size_type &  , size_type );
            void _M_dispose ();
            void _M_destroy (size_type __size) throw ();
            template < typename _InIterator >
               void _M_construct_aux (_InIterator __beg, _InIterator __end, std::__false_type );
            template < typename _Integer >
               void _M_construct_aux (_Integer __beg, _Integer __end, std::__true_type );
            void _M_construct_aux_2 (size_type __req, _CharT __c);
            template < typename _InIterator >
               void _M_construct (_InIterator __beg, _InIterator __end);
            template < typename _InIterator >
               void _M_construct (_InIterator __beg, _InIterator __end, std::input_iterator_tag );
            template < typename _FwdIterator >
               void _M_construct (_FwdIterator __beg, _FwdIterator __end, std::forward_iterator_tag );
            void _M_construct (size_type __req, _CharT __c);
            allocator_type &  _M_get_allocator ();
            const const allocator_type &  _M_get_allocator ()const volatile restrict ;
         private:
            size_type _M_check (size_type __pos, const const char *  __s)const volatile restrict ;
            void _M_check_length (size_type __n1, size_type __n2, const const char *  __s)const volatile restrict ;
            size_type _M_limit (size_type __pos, size_type __off)const volatile restrict ;
            _Bool _M_disjunct (const const _CharT *  __s)const volatile restrict ;
            static static void _S_copy (_CharT *  __d, const const _CharT *  __s, size_type __n);
            static static void _S_move (_CharT *  __d, const const _CharT *  __s, size_type __n);
            static static void _S_assign (_CharT *  __d, size_type __n, _CharT __c);
            template < class _Iterator >
               static static void _S_copy_chars (_CharT *  __p, _Iterator __k1, _Iterator __k2);
            static static void _S_copy_chars (_CharT *  __p, iterator __k1, iterator __k2);
            static static void _S_copy_chars (_CharT *  __p, const_iterator __k1, const_iterator __k2);
            static static void _S_copy_chars (_CharT *  __p, _CharT *  __k1, _CharT *  __k2);
            static static void _S_copy_chars (_CharT *  __p, const const _CharT *  __k1, const const _CharT *  __k2);
            static static int _S_compare (size_type __n1, size_type __n2);
            void _M_assign (const const basic_string<_CharT, _Traits, _Alloc> &  );
            void _M_mutate (size_type __pos, size_type __len1, const const _CharT *  __s, size_type __len2);
            void _M_erase (size_type __pos, size_type __n);
         public:
            constructor void basic_string<_CharT, _Traits, _Alloc> ();
            constructor explicit void basic_string<_CharT, _Traits, _Alloc> (const const _Alloc &  __a);
            constructor copyconstructor converter void basic_string<_CharT, _Traits, _Alloc> (const const basic_string<_CharT, _Traits, _Alloc> &  __str);
            constructor void basic_string<_CharT, _Traits, _Alloc> (const const basic_string<_CharT, _Traits, _Alloc> &  __str, size_type __pos, const const _Alloc &  __a = _Alloc());
            constructor void basic_string<_CharT, _Traits, _Alloc> (const const basic_string<_CharT, _Traits, _Alloc> &  __str, size_type __pos, size_type __n);
            constructor void basic_string<_CharT, _Traits, _Alloc> (const const basic_string<_CharT, _Traits, _Alloc> &  __str, size_type __pos, size_type __n, const const _Alloc &  __a);
            constructor void basic_string<_CharT, _Traits, _Alloc> (const const _CharT *  __s, size_type __n, const const _Alloc &  __a = _Alloc());
            constructor converter void basic_string<_CharT, _Traits, _Alloc> (const const _CharT *  __s, const const _Alloc &  __a = _Alloc());
            constructor void basic_string<_CharT, _Traits, _Alloc> (size_type __n, _CharT __c, const const _Alloc &  __a = _Alloc());
            template < typename _InputIterator >
               constructor void basic_string<_CharT, _Traits, _Alloc> (_InputIterator __beg, _InputIterator __end, const const _Alloc &  __a = _Alloc());
            destructor void ~basic_string<_CharT, _Traits, _Alloc> ();
            basic_string<_CharT, _Traits, _Alloc> &  operator= (const const basic_string<_CharT, _Traits, _Alloc> &  __str);
            basic_string<_CharT, _Traits, _Alloc> &  operator= (const const _CharT *  __s);
            basic_string<_CharT, _Traits, _Alloc> &  operator= (_CharT __c);
            iterator begin ();
            const_iterator begin ()const volatile restrict ;
            iterator end ();
            const_iterator end ()const volatile restrict ;
            reverse_iterator rbegin ();
            const_reverse_iterator rbegin ()const volatile restrict ;
            reverse_iterator rend ();
            const_reverse_iterator rend ()const volatile restrict ;
         public:
            size_type size ()const volatile restrict ;
            size_type length ()const volatile restrict ;
            size_type max_size ()const volatile restrict ;
            void resize (size_type __n, _CharT __c);
            void resize (size_type __n);
            size_type capacity ()const volatile restrict ;
            void reserve (size_type __res_arg = 0);
            void clear ();
            _Bool empty ()const volatile restrict ;
            const_reference operator[] (size_type __pos)const volatile restrict ;
            reference operator[] (size_type __pos);
            const_reference at (size_type __n)const volatile restrict ;
            reference at (size_type __n);
            basic_string<_CharT, _Traits, _Alloc> &  operator+= (const const basic_string<_CharT, _Traits, _Alloc> &  __str);
            basic_string<_CharT, _Traits, _Alloc> &  operator+= (const const _CharT *  __s);
            basic_string<_CharT, _Traits, _Alloc> &  operator+= (_CharT __c);
            basic_string<_CharT, _Traits, _Alloc> &  append (const const basic_string<_CharT, _Traits, _Alloc> &  __str);
            basic_string<_CharT, _Traits, _Alloc> &  append (const const basic_string<_CharT, _Traits, _Alloc> &  __str, size_type __pos, size_type __n);
            basic_string<_CharT, _Traits, _Alloc> &  append (const const _CharT *  __s, size_type __n);
            basic_string<_CharT, _Traits, _Alloc> &  append (const const _CharT *  __s);
            basic_string<_CharT, _Traits, _Alloc> &  append (size_type __n, _CharT __c);
            template < class _InputIterator >
               basic_string<_CharT, _Traits, _Alloc> &  append (_InputIterator __first, _InputIterator __last);
            void push_back (_CharT __c);
            basic_string<_CharT, _Traits, _Alloc> &  assign (const const basic_string<_CharT, _Traits, _Alloc> &  __str);
            basic_string<_CharT, _Traits, _Alloc> &  assign (const const basic_string<_CharT, _Traits, _Alloc> &  __str, size_type __pos, size_type __n);
            basic_string<_CharT, _Traits, _Alloc> &  assign (const const _CharT *  __s, size_type __n);
            basic_string<_CharT, _Traits, _Alloc> &  assign (const const _CharT *  __s);
            basic_string<_CharT, _Traits, _Alloc> &  assign (size_type __n, _CharT __c);
            template < class _InputIterator >
               basic_string<_CharT, _Traits, _Alloc> &  assign (_InputIterator __first, _InputIterator __last);
            void insert (iterator __p, size_type __n, _CharT __c);
            template < class _InputIterator >
               void insert (iterator __p, _InputIterator __beg, _InputIterator __end);
            basic_string<_CharT, _Traits, _Alloc> &  insert (size_type __pos1, const const basic_string<_CharT, _Traits, _Alloc> &  __str);
            basic_string<_CharT, _Traits, _Alloc> &  insert (size_type __pos1, const const basic_string<_CharT, _Traits, _Alloc> &  __str, size_type __pos2, size_type __n);
            basic_string<_CharT, _Traits, _Alloc> &  insert (size_type __pos, const const _CharT *  __s, size_type __n);
            basic_string<_CharT, _Traits, _Alloc> &  insert (size_type __pos, const const _CharT *  __s);
            basic_string<_CharT, _Traits, _Alloc> &  insert (size_type __pos, size_type __n, _CharT __c);
            iterator insert (__const_iterator __p, _CharT __c);
            basic_string<_CharT, _Traits, _Alloc> &  erase (size_type __pos = 0, size_type __n = npos);
            iterator erase (__const_iterator __position);
            iterator erase (__const_iterator __first, __const_iterator __last);
            basic_string<_CharT, _Traits, _Alloc> &  replace (size_type __pos, size_type __n, const const basic_string<_CharT, _Traits, _Alloc> &  __str);
            basic_string<_CharT, _Traits, _Alloc> &  replace (size_type __pos1, size_type __n1, const const basic_string<_CharT, _Traits, _Alloc> &  __str, size_type __pos2, size_type __n2);
            basic_string<_CharT, _Traits, _Alloc> &  replace (size_type __pos, size_type __n1, const const _CharT *  __s, size_type __n2);
            basic_string<_CharT, _Traits, _Alloc> &  replace (size_type __pos, size_type __n1, const const _CharT *  __s);
            basic_string<_CharT, _Traits, _Alloc> &  replace (size_type __pos, size_type __n1, size_type __n2, _CharT __c);
            basic_string<_CharT, _Traits, _Alloc> &  replace (__const_iterator __i1, __const_iterator __i2, const const basic_string<_CharT, _Traits, _Alloc> &  __str);
            basic_string<_CharT, _Traits, _Alloc> &  replace (__const_iterator __i1, __const_iterator __i2, const const _CharT *  __s, size_type __n);
            basic_string<_CharT, _Traits, _Alloc> &  replace (__const_iterator __i1, __const_iterator __i2, const const _CharT *  __s);
            basic_string<_CharT, _Traits, _Alloc> &  replace (__const_iterator __i1, __const_iterator __i2, size_type __n, _CharT __c);
            template < class _InputIterator >
               basic_string<_CharT, _Traits, _Alloc> &  replace (iterator __i1, iterator __i2, _InputIterator __k1, _InputIterator __k2);
            basic_string<_CharT, _Traits, _Alloc> &  replace (__const_iterator __i1, __const_iterator __i2, _CharT *  __k1, _CharT *  __k2);
            basic_string<_CharT, _Traits, _Alloc> &  replace (__const_iterator __i1, __const_iterator __i2, const const _CharT *  __k1, const const _CharT *  __k2);
            basic_string<_CharT, _Traits, _Alloc> &  replace (__const_iterator __i1, __const_iterator __i2, iterator __k1, iterator __k2);
            basic_string<_CharT, _Traits, _Alloc> &  replace (__const_iterator __i1, __const_iterator __i2, const_iterator __k1, const_iterator __k2);
         private:
            template < class _Integer >
               basic_string<_CharT, _Traits, _Alloc> &  _M_replace_dispatch (const_iterator __i1, const_iterator __i2, _Integer __n, _Integer __val, struct std::__true_type );
            template < class _InputIterator >
               basic_string<_CharT, _Traits, _Alloc> &  _M_replace_dispatch (const_iterator __i1, const_iterator __i2, _InputIterator __k1, _InputIterator __k2, struct std::__false_type );
            basic_string<_CharT, _Traits, _Alloc> &  _M_replace_aux (size_type __pos1, size_type __n1, size_type __n2, _CharT __c);
            basic_string<_CharT, _Traits, _Alloc> &  _M_replace (size_type __pos, size_type __len1, const const _CharT *  __s, const const size_type __len2);
            basic_string<_CharT, _Traits, _Alloc> &  _M_append (const const _CharT *  __s, size_type __n);
         public:
            size_type copy (_CharT *  __s, size_type __n, size_type __pos = 0)const volatile restrict ;
            void swap (basic_string<_CharT, _Traits, _Alloc> &  __s);
            const const _CharT *  c_str ()const volatile restrict ;
            const const _CharT *  data ()const volatile restrict ;
            allocator_type get_allocator ()const volatile restrict ;
            size_type find (const const _CharT *  __s, size_type __pos, size_type __n)const volatile restrict ;
            size_type find (const const basic_string<_CharT, _Traits, _Alloc> &  __str, size_type __pos = 0)const volatile restrict ;
            size_type find (const const _CharT *  __s, size_type __pos = 0)const volatile restrict ;
            size_type find (_CharT __c, size_type __pos = 0)const volatile restrict ;
            size_type rfind (const const basic_string<_CharT, _Traits, _Alloc> &  __str, size_type __pos = npos)const volatile restrict ;
            size_type rfind (const const _CharT *  __s, size_type __pos, size_type __n)const volatile restrict ;
            size_type rfind (const const _CharT *  __s, size_type __pos = npos)const volatile restrict ;
            size_type rfind (_CharT __c, size_type __pos = npos)const volatile restrict ;
            size_type find_first_of (const const basic_string<_CharT, _Traits, _Alloc> &  __str, size_type __pos = 0)const volatile restrict ;
            size_type find_first_of (const const _CharT *  __s, size_type __pos, size_type __n)const volatile restrict ;
            size_type find_first_of (const const _CharT *  __s, size_type __pos = 0)const volatile restrict ;
            size_type find_first_of (_CharT __c, size_type __pos = 0)const volatile restrict ;
            size_type find_last_of (const const basic_string<_CharT, _Traits, _Alloc> &  __str, size_type __pos = npos)const volatile restrict ;
            size_type find_last_of (const const _CharT *  __s, size_type __pos, size_type __n)const volatile restrict ;
            size_type find_last_of (const const _CharT *  __s, size_type __pos = npos)const volatile restrict ;
            size_type find_last_of (_CharT __c, size_type __pos = npos)const volatile restrict ;
            size_type find_first_not_of (const const basic_string<_CharT, _Traits, _Alloc> &  __str, size_type __pos = 0)const volatile restrict ;
            size_type find_first_not_of (const const _CharT *  __s, size_type __pos, size_type __n)const volatile restrict ;
            size_type find_first_not_of (const const _CharT *  __s, size_type __pos = 0)const volatile restrict ;
            size_type find_first_not_of (_CharT __c, size_type __pos = 0)const volatile restrict ;
            size_type find_last_not_of (const const basic_string<_CharT, _Traits, _Alloc> &  __str, size_type __pos = npos)const volatile restrict ;
            size_type find_last_not_of (const const _CharT *  __s, size_type __pos, size_type __n)const volatile restrict ;
            size_type find_last_not_of (const const _CharT *  __s, size_type __pos = npos)const volatile restrict ;
            size_type find_last_not_of (_CharT __c, size_type __pos = npos)const volatile restrict ;
            basic_string<_CharT, _Traits, _Alloc> substr (size_type __pos = 0, size_type __n = npos)const volatile restrict ;
            int compare (const const basic_string<_CharT, _Traits, _Alloc> &  __str)const volatile restrict ;
            int compare (size_type __pos, size_type __n, const const basic_string<_CharT, _Traits, _Alloc> &  __str)const volatile restrict ;
            int compare (size_type __pos1, size_type __n1, const const basic_string<_CharT, _Traits, _Alloc> &  __str, size_type __pos2, size_type __n2)const volatile restrict ;
            int compare (const const _CharT *  __s)const volatile restrict ;
            int compare (size_type __pos, size_type __n1, const const _CharT *  __s)const volatile restrict ;
            int compare (size_type __pos, size_type __n1, const const _CharT *  __s, size_type __n2)const volatile restrict ;
            friend basic_stringbuf;
         }; // end of basic_string
   } // end of __cxx11
   template < typename _CharT, typename _Traits, typename _Alloc >
      basic_string<_CharT, _Traits, _Alloc> operator+ (const const basic_string<_CharT, _Traits, _Alloc> &  __lhs, const const basic_string<_CharT, _Traits, _Alloc> &  __rhs);
   template < typename _CharT, typename _Traits, typename _Alloc >
      basic_string<_CharT, _Traits, _Alloc> operator+ (const const _CharT *  __lhs, const const basic_string<_CharT, _Traits, _Alloc> &  __rhs);
   template < typename _CharT, typename _Traits, typename _Alloc >
      basic_string<_CharT, _Traits, _Alloc> operator+ (_CharT __lhs, const const basic_string<_CharT, _Traits, _Alloc> &  __rhs);
   template < typename _CharT, typename _Traits, typename _Alloc >
      inline basic_string<_CharT, _Traits, _Alloc> operator+ (const const basic_string<_CharT, _Traits, _Alloc> &  __lhs, const const _CharT *  __rhs);
   template < typename _CharT, typename _Traits, typename _Alloc >
      inline basic_string<_CharT, _Traits, _Alloc> operator+ (const const basic_string<_CharT, _Traits, _Alloc> &  __lhs, _CharT __rhs);
   template < typename _CharT, typename _Traits, typename _Alloc >
      inline _Bool operator== (const const basic_string<_CharT, _Traits, _Alloc> &  __lhs, const const basic_string<_CharT, _Traits, _Alloc> &  __rhs);
   template < typename _CharT >
      inline typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, _Bool>::__type operator== (const const basic_string<_CharT> &  __lhs, const const basic_string<_CharT> &  __rhs);
   template < typename _CharT, typename _Traits, typename _Alloc >
      inline _Bool operator== (const const _CharT *  __lhs, const const basic_string<_CharT, _Traits, _Alloc> &  __rhs);
   template < typename _CharT, typename _Traits, typename _Alloc >
      inline _Bool operator== (const const basic_string<_CharT, _Traits, _Alloc> &  __lhs, const const _CharT *  __rhs);
   template < typename _CharT, typename _Traits, typename _Alloc >
      inline _Bool operator!= (const const basic_string<_CharT, _Traits, _Alloc> &  __lhs, const const basic_string<_CharT, _Traits, _Alloc> &  __rhs);
   template < typename _CharT, typename _Traits, typename _Alloc >
      inline _Bool operator!= (const const _CharT *  __lhs, const const basic_string<_CharT, _Traits, _Alloc> &  __rhs);
   template < typename _CharT, typename _Traits, typename _Alloc >
      inline _Bool operator!= (const const basic_string<_CharT, _Traits, _Alloc> &  __lhs, const const _CharT *  __rhs);
   template < typename _CharT, typename _Traits, typename _Alloc >
      inline _Bool operator< (const const basic_string<_CharT, _Traits, _Alloc> &  __lhs, const const basic_string<_CharT, _Traits, _Alloc> &  __rhs);
   template < typename _CharT, typename _Traits, typename _Alloc >
      inline _Bool operator< (const const basic_string<_CharT, _Traits, _Alloc> &  __lhs, const const _CharT *  __rhs);
   template < typename _CharT, typename _Traits, typename _Alloc >
      inline _Bool operator< (const const _CharT *  __lhs, const const basic_string<_CharT, _Traits, _Alloc> &  __rhs);
   template < typename _CharT, typename _Traits, typename _Alloc >
      inline _Bool operator> (const const basic_string<_CharT, _Traits, _Alloc> &  __lhs, const const basic_string<_CharT, _Traits, _Alloc> &  __rhs);
   template < typename _CharT, typename _Traits, typename _Alloc >
      inline _Bool operator> (const const basic_string<_CharT, _Traits, _Alloc> &  __lhs, const const _CharT *  __rhs);
   template < typename _CharT, typename _Traits, typename _Alloc >
      inline _Bool operator> (const const _CharT *  __lhs, const const basic_string<_CharT, _Traits, _Alloc> &  __rhs);
   template < typename _CharT, typename _Traits, typename _Alloc >
      inline _Bool operator<= (const const basic_string<_CharT, _Traits, _Alloc> &  __lhs, const const basic_string<_CharT, _Traits, _Alloc> &  __rhs);
   template < typename _CharT, typename _Traits, typename _Alloc >
      inline _Bool operator<= (const const basic_string<_CharT, _Traits, _Alloc> &  __lhs, const const _CharT *  __rhs);
   template < typename _CharT, typename _Traits, typename _Alloc >
      inline _Bool operator<= (const const _CharT *  __lhs, const const basic_string<_CharT, _Traits, _Alloc> &  __rhs);
   template < typename _CharT, typename _Traits, typename _Alloc >
      inline _Bool operator>= (const const basic_string<_CharT, _Traits, _Alloc> &  __lhs, const const basic_string<_CharT, _Traits, _Alloc> &  __rhs);
   template < typename _CharT, typename _Traits, typename _Alloc >
      inline _Bool operator>= (const const basic_string<_CharT, _Traits, _Alloc> &  __lhs, const const _CharT *  __rhs);
   template < typename _CharT, typename _Traits, typename _Alloc >
      inline _Bool operator>= (const const _CharT *  __lhs, const const basic_string<_CharT, _Traits, _Alloc> &  __rhs);
   template < typename _CharT, typename _Traits, typename _Alloc >
      inline void swap (basic_string<_CharT, _Traits, _Alloc> &  __lhs, basic_string<_CharT, _Traits, _Alloc> &  __rhs);
   template < typename _CharT, typename _Traits, typename _Alloc >
      basic_istream<_CharT, _Traits> &  operator>> (basic_istream<_CharT, _Traits> &  __is, basic_string<_CharT, _Traits, _Alloc> &  __str);
   basic_istream &  operator>> (basic_istream &  __is, basic_string &  __str);
   template < typename _CharT, typename _Traits, typename _Alloc >
      inline basic_ostream<_CharT, _Traits> &  operator<< (basic_ostream<_CharT, _Traits> &  __os, const const basic_string<_CharT, _Traits, _Alloc> &  __str);
   template < typename _CharT, typename _Traits, typename _Alloc >
      basic_istream<_CharT, _Traits> &  getline (basic_istream<_CharT, _Traits> &  __is, basic_string<_CharT, _Traits, _Alloc> &  __str, _CharT __delim);
   template < typename _CharT, typename _Traits, typename _Alloc >
      inline basic_istream<_CharT, _Traits> &  getline (basic_istream<_CharT, _Traits> &  __is, basic_string<_CharT, _Traits, _Alloc> &  __str);
   basic_istream &  getline (basic_istream &  __in, basic_string &  __str, char __delim);
   basic_istream &  getline (basic_istream &  __in, basic_string &  __str, wchar_t __delim);
} // end of std
namespace std
{
   /* variable */ const const typename basic_string<_CharT, _Traits, _Alloc>::size_type npos;
   void swap (basic_string<_CharT, _Traits, _Alloc> &  __s);
   typename basic_string<_CharT, _Traits, _Alloc>::pointer _M_create (size_type &  __capacity, size_type __old_capacity);
   template < typename _InIterator >
      void _M_construct (_InIterator __beg, _InIterator __end, std::input_iterator_tag );
   template < typename _InIterator >
      void _M_construct (_InIterator __beg, _InIterator __end, std::forward_iterator_tag );
   void _M_construct (size_type __n, _CharT __c);
   void _M_assign (const const basic_string<_CharT, _Traits, _Alloc> &  __str);
   void reserve (size_type __res = 0);
   void _M_mutate (size_type __pos, size_type __len1, const const _CharT *  __s, size_type __len2);
   void _M_erase (size_type __pos, size_type __n);
   void resize (size_type __n, _CharT __c);
   basic_string<_CharT, _Traits, _Alloc> &  _M_append (const const _CharT *  __s, size_type __n);
   template < typename _InputIterator >
      basic_string<_CharT, _Traits, _Alloc> &  _M_replace_dispatch (const_iterator __i1, const_iterator __i2, _InputIterator __k1, _InputIterator __k2, std::__false_type );
   basic_string<_CharT, _Traits, _Alloc> &  _M_replace_aux (size_type __pos1, size_type __n1, size_type __n2, _CharT __c);
   basic_string<_CharT, _Traits, _Alloc> &  _M_replace (size_type __pos, size_type __len1, const const _CharT *  __s, const const size_type __len2);
   typename basic_string<_CharT, _Traits, _Alloc>::size_type copy (_CharT *  __s, size_type __n, size_type __pos = 0)const volatile restrict ;
   template < typename _CharT, typename _Traits, typename _Alloc >
      basic_string<_CharT, _Traits, _Alloc> operator+ (const const _CharT *  __lhs, const const basic_string<_CharT, _Traits, _Alloc> &  __rhs);
   template < typename _CharT, typename _Traits, typename _Alloc >
      basic_string<_CharT, _Traits, _Alloc> operator+ (_CharT __lhs, const const basic_string<_CharT, _Traits, _Alloc> &  __rhs);
   typename basic_string<_CharT, _Traits, _Alloc>::size_type find (const const _CharT *  __s, size_type __pos, size_type __n)const volatile restrict ;
   typename basic_string<_CharT, _Traits, _Alloc>::size_type find (_CharT __c, size_type __pos = 0)const volatile restrict ;
   typename basic_string<_CharT, _Traits, _Alloc>::size_type rfind (const const _CharT *  __s, size_type __pos, size_type __n)const volatile restrict ;
   typename basic_string<_CharT, _Traits, _Alloc>::size_type rfind (_CharT __c, size_type __pos = npos)const volatile restrict ;
   typename basic_string<_CharT, _Traits, _Alloc>::size_type find_first_of (const const _CharT *  __s, size_type __pos, size_type __n)const volatile restrict ;
   typename basic_string<_CharT, _Traits, _Alloc>::size_type find_last_of (const const _CharT *  __s, size_type __pos, size_type __n)const volatile restrict ;
   typename basic_string<_CharT, _Traits, _Alloc>::size_type find_first_not_of (const const _CharT *  __s, size_type __pos, size_type __n)const volatile restrict ;
   typename basic_string<_CharT, _Traits, _Alloc>::size_type find_first_not_of (_CharT __c, size_type __pos = 0)const volatile restrict ;
   typename basic_string<_CharT, _Traits, _Alloc>::size_type find_last_not_of (const const _CharT *  __s, size_type __pos, size_type __n)const volatile restrict ;
   typename basic_string<_CharT, _Traits, _Alloc>::size_type find_last_not_of (_CharT __c, size_type __pos = npos)const volatile restrict ;
   int compare (size_type __pos, size_type __n, const const basic_string<_CharT, _Traits, _Alloc> &  __str)const volatile restrict ;
   int compare (size_type __pos1, size_type __n1, const const basic_string<_CharT, _Traits, _Alloc> &  __str, size_type __pos2, size_type __n2)const volatile restrict ;
   int compare (const const _CharT *  __s)const volatile restrict ;
   int compare (size_type __pos, size_type __n1, const const _CharT *  __s)const volatile restrict ;
   int compare (size_type __pos, size_type __n1, const const _CharT *  __s, size_type __n2)const volatile restrict ;
   template < typename _CharT, typename _Traits, typename _Alloc >
      basic_istream<_CharT, _Traits> &  operator>> (basic_istream<_CharT, _Traits> &  __in, basic_string<_CharT, _Traits, _Alloc> &  __str);
   template < typename _CharT, typename _Traits, typename _Alloc >
      basic_istream<_CharT, _Traits> &  getline (basic_istream<_CharT, _Traits> &  __in, basic_string<_CharT, _Traits, _Alloc> &  __str, _CharT __delim);
} // end of std
typedef std::basic_string QStdWString;
typedef enum QtValidLicenseForCoreModule QtCoreModule;
class QCharRef{
}; // end of QCharRef
class QRegExp{
}; // end of QRegExp
class QStringList : public:
QList{
}; // end of QStringList
class QTextCodec{
}; // end of QTextCodec
class QLatin1String{
}; // end of QLatin1String
class QStringRef{
}; // end of QStringRef
template < typename T >
   class QVector{
   }; // end of QVector
class QString{
   class QString{
   }; // end of QString
public:
   inline constructor void QString ();
   constructor void QString (const const class QChar *  unicode, int size);
   constructor explicit void QString (const const class QChar *  unicode);
   constructor converter void QString (class QChar c);
   constructor void QString (int size, class QChar c);
   inline constructor converter void QString (const const class QLatin1String &  latin1);
   inline constructor copyconstructor converter void QString (const const class QString &  );
   inline destructor void ~QString ();
   class QString &  operator= (class QChar c);
   class QString &  operator= (const const class QString &  );
   inline class QString &  operator= (const const class QLatin1String &  );
   inline void swap (class QString &  other);
   inline int size ()const volatile restrict ;
   inline int count ()const volatile restrict ;
   inline int length ()const volatile restrict ;
   inline _Bool isEmpty ()const volatile restrict ;
   void resize (int size);
   class QString &  fill (class QChar c, int size = -1);
   void truncate (int pos);
   void chop (int n);
   int capacity ()const volatile restrict ;
   inline void reserve (int size);
   inline void squeeze ();
   inline const const class QChar *  unicode ()const volatile restrict ;
   inline class QChar *  data ();
   inline const const class QChar *  data ()const volatile restrict ;
   inline const const class QChar *  constData ()const volatile restrict ;
   inline void detach ();
   inline _Bool isDetached ()const volatile restrict ;
   inline _Bool isSharedWith (const const class QString &  other)const volatile restrict ;
   void clear ();
   inline const const class QChar at (int i)const volatile restrict ;
   const const class QChar operator[] (int i)const volatile restrict ;
   class QCharRef operator[] (int i);
   const const class QChar operator[] (uint i)const volatile restrict ;
   class QCharRef operator[] (uint i);
   class QString arg (qlonglong a, int fieldwidth = 0, int base = 10, const const class QChar &  fillChar = struct QLatin1Char(' '))const volatile restrict ;
   class QString arg (qulonglong a, int fieldwidth = 0, int base = 10, const const class QChar &  fillChar = struct QLatin1Char(' '))const volatile restrict ;
   class QString arg (long a, int fieldwidth = 0, int base = 10, const const class QChar &  fillChar = struct QLatin1Char(' '))const volatile restrict ;
   class QString arg (ulong a, int fieldwidth = 0, int base = 10, const const class QChar &  fillChar = struct QLatin1Char(' '))const volatile restrict ;
   class QString arg (int a, int fieldWidth = 0, int base = 10, const const class QChar &  fillChar = struct QLatin1Char(' '))const volatile restrict ;
   class QString arg (uint a, int fieldWidth = 0, int base = 10, const const class QChar &  fillChar = struct QLatin1Char(' '))const volatile restrict ;
   class QString arg (short a, int fieldWidth = 0, int base = 10, const const class QChar &  fillChar = struct QLatin1Char(' '))const volatile restrict ;
   class QString arg (ushort a, int fieldWidth = 0, int base = 10, const const class QChar &  fillChar = struct QLatin1Char(' '))const volatile restrict ;
   class QString arg (double a, int fieldWidth = 0, char fmt = 'g', int prec = -1, const const class QChar &  fillChar = struct QLatin1Char(' '))const volatile restrict ;
   class QString arg (char a, int fieldWidth = 0, const const class QChar &  fillChar = struct QLatin1Char(' '))const volatile restrict ;
   class QString arg (class QChar a, int fieldWidth = 0, const const class QChar &  fillChar = struct QLatin1Char(' '))const volatile restrict ;
   class QString arg (const const class QString &  a, int fieldWidth = 0, const const class QChar &  fillChar = struct QLatin1Char(' '))const volatile restrict ;
   class QString arg (const const class QString &  a1, const const class QString &  a2)const volatile restrict ;
   class QString arg (const const class QString &  a1, const const class QString &  a2, const const class QString &  a3)const volatile restrict ;
   class QString arg (const const class QString &  a1, const const class QString &  a2, const const class QString &  a3, const const class QString &  a4)const volatile restrict ;
   class QString arg (const const class QString &  a1, const const class QString &  a2, const const class QString &  a3, const const class QString &  a4, const const class QString &  a5)const volatile restrict ;
   class QString arg (const const class QString &  a1, const const class QString &  a2, const const class QString &  a3, const const class QString &  a4, const const class QString &  a5, const const class QString &  a6)const volatile restrict ;
   class QString arg (const const class QString &  a1, const const class QString &  a2, const const class QString &  a3, const const class QString &  a4, const const class QString &  a5, const const class QString &  a6, const const class QString &  a7)const volatile restrict ;
   class QString arg (const const class QString &  a1, const const class QString &  a2, const const class QString &  a3, const const class QString &  a4, const const class QString &  a5, const const class QString &  a6, const const class QString &  a7, const const class QString &  a8)const volatile restrict ;
   class QString arg (const const class QString &  a1, const const class QString &  a2, const const class QString &  a3, const const class QString &  a4, const const class QString &  a5, const const class QString &  a6, const const class QString &  a7, const const class QString &  a8, const const class QString &  a9)const volatile restrict ;
   class QString &  vsprintf (const const char *  format, va_list ap);
   class QString &  sprintf (const const char *  format, ... );
   int indexOf (class QChar c, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   int indexOf (const const class QString &  s, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   int indexOf (const const class QLatin1String &  s, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   int indexOf (const const class QStringRef &  s, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   int lastIndexOf (class QChar c, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   int lastIndexOf (const const class QString &  s, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   int lastIndexOf (const const class QLatin1String &  s, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   int lastIndexOf (const const class QStringRef &  s, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   inline class QBool contains (class QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   inline class QBool contains (const const class QString &  s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   inline class QBool contains (const const class QStringRef &  s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   int count (class QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   int count (const const class QString &  s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   int count (const const class QStringRef &  s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   int indexOf (const const class QRegExp &  , int from = 0)const volatile restrict ;
   int lastIndexOf (const const class QRegExp &  , int from = -1)const volatile restrict ;
   inline class QBool contains (const const class QRegExp &  rx)const volatile restrict ;
   int count (const const class QRegExp &  )const volatile restrict ;
   int indexOf (class QRegExp &  , int from = 0)const volatile restrict ;
   int lastIndexOf (class QRegExp &  , int from = -1)const volatile restrict ;
   inline class QBool contains (class QRegExp &  rx)const volatile restrict ;
   enum SectionFlag
   {
      SectionDefault = 0,
      SectionSkipEmpty = 1,
      SectionIncludeLeadingSep = 2,
      SectionIncludeTrailingSep = 4,
      SectionCaseInsensitiveSeps = 8
   }; // end of SectionFlag
   typedef QFlags QString::SectionFlags;
   class QString section (class QChar sep, int start, int end = -1, SectionFlags flags = SectionDefault)const volatile restrict ;
   class QString section (const const class QString &  in_sep, int start, int end = -1, SectionFlags flags = SectionDefault)const volatile restrict ;
   class QString section (const const class QRegExp &  reg, int start, int end = -1, SectionFlags flags = SectionDefault)const volatile restrict ;
   class QString left (int n)const volatile restrict ;
   class QString right (int n)const volatile restrict ;
   class QString mid (int position, int n = -1)const volatile restrict ;
   class QStringRef leftRef (int n)const volatile restrict ;
   class QStringRef rightRef (int n)const volatile restrict ;
   class QStringRef midRef (int position, int n = -1)const volatile restrict ;
   _Bool startsWith (const const class QString &  s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   _Bool startsWith (const const class QStringRef &  s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   _Bool startsWith (const const class QLatin1String &  s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   _Bool startsWith (const const class QChar &  c, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   _Bool endsWith (const const class QString &  s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   _Bool endsWith (const const class QStringRef &  s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   _Bool endsWith (const const class QLatin1String &  s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   _Bool endsWith (const const class QChar &  c, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   class QString leftJustified (int width, class QChar fill = struct QLatin1Char(' '), _Bool trunc = false)const volatile restrict ;
   class QString rightJustified (int width, class QChar fill = struct QLatin1Char(' '), _Bool trunc = false)const volatile restrict ;
   class QString toLower ()const volatile restrict ;
   class QString toUpper ()const volatile restrict ;
   class QString toCaseFolded ()const volatile restrict ;
   class QString trimmed ()const volatile restrict ;
   class QString simplified ()const volatile restrict ;
   class QString &  insert (int i, class QChar c);
   class QString &  insert (int i, const const class QChar *  uc, int len);
   inline class QString &  insert (int i, const const class QString &  s);
   class QString &  insert (int i, const const class QLatin1String &  s);
   class QString &  append (class QChar c);
   class QString &  append (const const class QString &  s);
   class QString &  append (const const class QStringRef &  s);
   class QString &  append (const const class QLatin1String &  s);
   inline class QString &  prepend (class QChar c);
   inline class QString &  prepend (const const class QString &  s);
   inline class QString &  prepend (const const class QLatin1String &  s);
   inline class QString &  operator+= (class QChar c);
   inline class QString &  operator+= (class QChar::SpecialCharacter c);
   inline class QString &  operator+= (const const class QString &  s);
   inline class QString &  operator+= (const const class QStringRef &  s);
   inline class QString &  operator+= (const const class QLatin1String &  s);
   class QString &  remove (int i, int len);
   class QString &  remove (class QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive);
   class QString &  remove (const const class QString &  s, Qt::CaseSensitivity cs = Qt::CaseSensitive);
   class QString &  replace (int i, int len, class QChar after);
   class QString &  replace (int i, int len, const const class QChar *  s, int slen);
   class QString &  replace (int i, int len, const const class QString &  after);
   class QString &  replace (class QChar before, class QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive);
   class QString &  replace (const const class QChar *  before, int blen, const const class QChar *  after, int alen, Qt::CaseSensitivity cs = Qt::CaseSensitive);
   class QString &  replace (const const class QLatin1String &  before, const const class QLatin1String &  after, Qt::CaseSensitivity cs = Qt::CaseSensitive);
   class QString &  replace (const const class QLatin1String &  before, const const class QString &  after, Qt::CaseSensitivity cs = Qt::CaseSensitive);
   class QString &  replace (const const class QString &  before, const const class QLatin1String &  after, Qt::CaseSensitivity cs = Qt::CaseSensitive);
   class QString &  replace (const const class QString &  before, const const class QString &  after, Qt::CaseSensitivity cs = Qt::CaseSensitive);
   class QString &  replace (class QChar c, const const class QString &  after, Qt::CaseSensitivity cs = Qt::CaseSensitive);
   class QString &  replace (class QChar c, const const class QLatin1String &  after, Qt::CaseSensitivity cs = Qt::CaseSensitive);
   class QString &  replace (const const class QRegExp &  rx, const const class QString &  after);
   inline class QString &  remove (const const class QRegExp &  rx);
   enum SplitBehavior
   {
      KeepEmptyParts,
      SkipEmptyParts
   }; // end of SplitBehavior
   class QStringList split (const const class QString &  sep, enum QString::SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   class QStringList split (const const class QChar &  sep, enum QString::SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   class QStringList split (const const class QRegExp &  sep, enum QString::SplitBehavior behavior = KeepEmptyParts)const volatile restrict ;
   enum NormalizationForm
   {
      NormalizationForm_D,
      NormalizationForm_C,
      NormalizationForm_KD,
      NormalizationForm_KC
   }; // end of NormalizationForm
   class QString normalized (enum QString::NormalizationForm mode)const volatile restrict ;
   class QString normalized (enum QString::NormalizationForm mode, class QChar::UnicodeVersion version)const volatile restrict ;
   class QString repeated (int times)const volatile restrict ;
   const const ushort *  utf16 ()const volatile restrict ;
   class QByteArray toAscii ()const volatile restrict ;
   class QByteArray toLatin1 ()const volatile restrict ;
   class QByteArray toUtf8 ()const volatile restrict ;
   class QByteArray toLocal8Bit ()const volatile restrict ;
   QVector toUcs4 ()const volatile restrict ;
   static static class QString fromAscii (const const char *  , int size = -1);
   static static class QString fromLatin1 (const const char *  , int size = -1);
   static static class QString fromUtf8 (const const char *  , int size = -1);
   static static class QString fromLocal8Bit (const const char *  , int size = -1);
   static static class QString fromUtf16 (const const ushort *  , int size = -1);
   static static class QString fromUcs4 (const const uint *  , int size = -1);
   static static class QString fromRawData (const const class QChar *  , int size);
   int toWCharArray (wchar_t *  array)const volatile restrict ;
   static static class QString fromWCharArray (const const wchar_t *  , int size = -1);
   class QString &  setRawData (const const class QChar *  unicode, int size);
   class QString &  setUnicode (const const class QChar *  unicode, int size);
   inline class QString &  setUtf16 (const const ushort *  utf16, int size);
   int compare (const const class QString &  s)const volatile restrict ;
   int compare (const const class QString &  s, Qt::CaseSensitivity cs)const volatile restrict ;
   int compare (const const class QLatin1String &  other, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   static inline static int compare (const const class QString &  s1, const const class QString &  s2);
   static inline static int compare (const const class QString &  s1, const const class QString &  s2, Qt::CaseSensitivity cs);
   static inline static int compare (const const class QString &  s1, const const class QLatin1String &  s2, Qt::CaseSensitivity cs = Qt::CaseSensitive);
   static inline static int compare (const const class QLatin1String &  s1, const const class QString &  s2, Qt::CaseSensitivity cs = Qt::CaseSensitive);
   int compare (const const class QStringRef &  s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   static static int compare (const const class QString &  s1, const const class QStringRef &  s2, Qt::CaseSensitivity  = Qt::CaseSensitive);
   int localeAwareCompare (const const class QString &  s)const volatile restrict ;
   static static int localeAwareCompare (const const class QString &  s1, const const class QString &  s2);
   int localeAwareCompare (const const class QStringRef &  s)const volatile restrict ;
   static static int localeAwareCompare (const const class QString &  s1, const const class QStringRef &  s2);
   short toShort (_Bool *  ok = 0, int base = 10)const volatile restrict ;
   ushort toUShort (_Bool *  ok = 0, int base = 10)const volatile restrict ;
   int toInt (_Bool *  ok = 0, int base = 10)const volatile restrict ;
   uint toUInt (_Bool *  ok = 0, int base = 10)const volatile restrict ;
   long toLong (_Bool *  ok = 0, int base = 10)const volatile restrict ;
   ulong toULong (_Bool *  ok = 0, int base = 10)const volatile restrict ;
   qlonglong toLongLong (_Bool *  ok = 0, int base = 10)const volatile restrict ;
   qulonglong toULongLong (_Bool *  ok = 0, int base = 10)const volatile restrict ;
   float toFloat (_Bool *  ok = 0)const volatile restrict ;
   double toDouble (_Bool *  ok = 0)const volatile restrict ;
   class QString &  setNum (short , int base = 10);
   class QString &  setNum (ushort , int base = 10);
   class QString &  setNum (int , int base = 10);
   class QString &  setNum (uint , int base = 10);
   class QString &  setNum (long , int base = 10);
   class QString &  setNum (ulong , int base = 10);
   class QString &  setNum (qlonglong , int base = 10);
   class QString &  setNum (qulonglong , int base = 10);
   class QString &  setNum (float , char f = 'g', int prec = 6);
   class QString &  setNum (double , char f = 'g', int prec = 6);
   static static class QString number (int , int base = 10);
   static static class QString number (uint , int base = 10);
   static static class QString number (long , int base = 10);
   static static class QString number (ulong , int base = 10);
   static static class QString number (qlonglong , int base = 10);
   static static class QString number (qulonglong , int base = 10);
   static static class QString number (double , char f = 'g', int prec = 6);
   _Bool operator== (const const class QString &  s)const volatile restrict ;
   _Bool operator< (const const class QString &  s)const volatile restrict ;
   inline _Bool operator> (const const class QString &  s)const volatile restrict ;
   inline _Bool operator!= (const const class QString &  s)const volatile restrict ;
   inline _Bool operator<= (const const class QString &  s)const volatile restrict ;
   inline _Bool operator>= (const const class QString &  s)const volatile restrict ;
   _Bool operator== (const const class QLatin1String &  s)const volatile restrict ;
   _Bool operator< (const const class QLatin1String &  s)const volatile restrict ;
   _Bool operator> (const const class QLatin1String &  s)const volatile restrict ;
   inline _Bool operator!= (const const class QLatin1String &  s)const volatile restrict ;
   inline _Bool operator<= (const const class QLatin1String &  s)const volatile restrict ;
   inline _Bool operator>= (const const class QLatin1String &  s)const volatile restrict ;
   inline constructor converter void QString (const const char *  ch);
   inline constructor converter void QString (const const class QByteArray &  a);
   inline class QString &  operator= (const const char *  ch);
   inline class QString &  operator= (const const class QByteArray &  a);
   inline class QString &  operator= (char c);
   inline class QString &  prepend (const const char *  s);
   inline class QString &  prepend (const const class QByteArray &  s);
   inline class QString &  append (const const char *  s);
   inline class QString &  append (const const class QByteArray &  s);
   inline class QString &  operator+= (const const char *  s);
   inline class QString &  operator+= (const const class QByteArray &  s);
   inline class QString &  operator+= (char c);
   inline _Bool operator== (const const char *  s)const volatile restrict ;
   inline _Bool operator!= (const const char *  s)const volatile restrict ;
   inline _Bool operator< (const const char *  s)const volatile restrict ;
   inline _Bool operator<= (const const char *  s2)const volatile restrict ;
   inline _Bool operator> (const const char *  s2)const volatile restrict ;
   inline _Bool operator>= (const const char *  s2)const volatile restrict ;
   inline _Bool operator== (const const class QByteArray &  s)const volatile restrict ;
   inline _Bool operator!= (const const class QByteArray &  s)const volatile restrict ;
   inline _Bool operator< (const const class QByteArray &  s)const volatile restrict ;
   inline _Bool operator> (const const class QByteArray &  s)const volatile restrict ;
   inline _Bool operator<= (const const class QByteArray &  s)const volatile restrict ;
   inline _Bool operator>= (const const class QByteArray &  s)const volatile restrict ;
   typedef class QChar *  QString::iterator;
   typedef const const class QChar *  QString::const_iterator;
   typedef iterator QString::Iterator;
   typedef const_iterator QString::ConstIterator;
   iterator begin ();
   const_iterator begin ()const volatile restrict ;
   const_iterator constBegin ()const volatile restrict ;
   iterator end ();
   const_iterator end ()const volatile restrict ;
   const_iterator constEnd ()const volatile restrict ;
   typedef const const class QChar &  QString::const_reference;
   typedef class QChar &  QString::reference;
   typedef class QChar QString::value_type;
   inline void push_back (class QChar c);
   inline void push_back (const const class QString &  s);
   inline void push_front (class QChar c);
   inline void push_front (const const class QString &  s);
   static inline static class QString fromStdString (const const std::string &  s);
   inline std::string toStdString ()const volatile restrict ;
   static inline static class QString fromStdWString (const const QStdWString &  s);
   inline QStdWString toStdWString ()const volatile restrict ;
   struct Null{
      struct Null{
      }; // end of Null
      inline constructor void Null () throw ();
      inline constructor copyconstructor converter void Null (const const struct QString::Null &  ) throw ();
   }; // end of Null
   /* variable */ static const const struct QString::Null null;
   inline constructor converter void QString (const const struct QString::Null &  );
   inline class QString &  operator= (const const struct QString::Null &  );
   inline _Bool isNull ()const volatile restrict ;
   _Bool isSimpleText ()const volatile restrict ;
   _Bool isRightToLeft ()const volatile restrict ;
   constructor void QString (int size, Qt::Initialization );
private:
   struct Data{
      struct Data{
      }; // end of Data
   }; // end of Data
   /* variable */ static struct QString::Data shared_null;
   /* variable */ static struct QString::Data shared_empty;
   constructor void QString (struct QString::Data *  dd, int );
   /* variable */ static class QTextCodec *  codecForCStrings;
   static static int grow (int );
   static static void free (struct QString::Data *  );
   void realloc ();
   void realloc (int alloc);
   void expand (int i);
   void updateProperties ()const volatile restrict ;
   class QString multiArg (int numArgs, const const class QString *  *  args)const volatile restrict ;
   static static int compare_helper (const const class QChar *  data1, int length1, const const class QChar *  data2, int length2, Qt::CaseSensitivity cs = Qt::CaseSensitive);
   static static int compare_helper (const const class QChar *  data1, int length1, class QLatin1String s2, Qt::CaseSensitivity cs = Qt::CaseSensitive);
   static static int localeAwareCompare_helper (const const class QChar *  data1, int length1, const const class QChar *  data2, int length2);
   static static struct QString::Data *  fromLatin1_helper (const const char *  str, int size = -1);
   static static struct QString::Data *  fromAscii_helper (const const char *  str, int size = -1);
   void replace_helper (uint *  indices, int nIndices, int blen, const const class QChar *  after, int alen);
   friend qStringComparisonHelper;
   friend qStringComparisonHelper;
public:
   typedef struct QString::Data *  QString::DataPtr;
   inline DataPtr &  data_ptr ();
}; // end of QString
class QLatin1String{
   class QLatin1String{
   }; // end of QLatin1String
public:
   inline constructor explicit void QLatin1String (const const char *  s);
   inline class QLatin1String &  operator= (const const class QLatin1String &  other);
   inline const const char *  latin1 ()const volatile restrict ;
   inline _Bool operator== (const const class QString &  s)const volatile restrict ;
   inline _Bool operator!= (const const class QString &  s)const volatile restrict ;
   inline _Bool operator> (const const class QString &  s)const volatile restrict ;
   inline _Bool operator< (const const class QString &  s)const volatile restrict ;
   inline _Bool operator>= (const const class QString &  s)const volatile restrict ;
   inline _Bool operator<= (const const class QString &  s)const volatile restrict ;
   inline _Bool operator== (const const char *  s)const volatile restrict ;
   inline _Bool operator!= (const const char *  s)const volatile restrict ;
   inline _Bool operator< (const const char *  s)const volatile restrict ;
   inline _Bool operator> (const const char *  s)const volatile restrict ;
   inline _Bool operator<= (const const char *  s)const volatile restrict ;
   inline _Bool operator>= (const const char *  s)const volatile restrict ;
private:
   inline constructor copyconstructor converter void QLatin1String (const const class QLatin1String &  ) throw ();
   inline destructor void ~QLatin1String () throw ();
}; // end of QLatin1String
inline constructor converter void QString (const const class QLatin1String &  aLatin1);
inline int length ()const volatile restrict ;
inline const const class QChar at (int i)const volatile restrict ;
inline const const class QChar operator[] (int i)const volatile restrict ;
inline const const class QChar operator[] (uint i)const volatile restrict ;
inline _Bool isEmpty ()const volatile restrict ;
inline const const class QChar *  unicode ()const volatile restrict ;
inline const const class QChar *  data ()const volatile restrict ;
inline class QChar *  data ();
inline const const class QChar *  constData ()const volatile restrict ;
inline void detach ();
inline _Bool isDetached ()const volatile restrict ;
inline class QString &  operator= (const const class QLatin1String &  s);
inline void clear ();
inline constructor copyconstructor converter void QString (const const class QString &  other);
inline int capacity ()const volatile restrict ;
inline class QString &  setNum (short n, int base = 10);
inline class QString &  setNum (ushort n, int base = 10);
inline class QString &  setNum (int n, int base = 10);
inline class QString &  setNum (uint n, int base = 10);
inline class QString &  setNum (long n, int base = 10);
inline class QString &  setNum (ulong n, int base = 10);
inline class QString &  setNum (float n, char f = 'g', int prec = 6);
inline class QString arg (int a, int fieldWidth = 0, int base = 10, const const class QChar &  fillChar = struct QLatin1Char(' '))const volatile restrict ;
inline class QString arg (uint a, int fieldWidth = 0, int base = 10, const const class QChar &  fillChar = struct QLatin1Char(' '))const volatile restrict ;
inline class QString arg (long a, int fieldWidth = 0, int base = 10, const const class QChar &  fillChar = struct QLatin1Char(' '))const volatile restrict ;
inline class QString arg (ulong a, int fieldWidth = 0, int base = 10, const const class QChar &  fillChar = struct QLatin1Char(' '))const volatile restrict ;
inline class QString arg (short a, int fieldWidth = 0, int base = 10, const const class QChar &  fillChar = struct QLatin1Char(' '))const volatile restrict ;
inline class QString arg (ushort a, int fieldWidth = 0, int base = 10, const const class QChar &  fillChar = struct QLatin1Char(' '))const volatile restrict ;
inline class QString arg (const const class QString &  a1, const const class QString &  a2)const volatile restrict ;
inline class QString arg (const const class QString &  a1, const const class QString &  a2, const const class QString &  a3)const volatile restrict ;
inline class QString arg (const const class QString &  a1, const const class QString &  a2, const const class QString &  a3, const const class QString &  a4)const volatile restrict ;
inline class QString arg (const const class QString &  a1, const const class QString &  a2, const const class QString &  a3, const const class QString &  a4, const const class QString &  a5)const volatile restrict ;
inline class QString arg (const const class QString &  a1, const const class QString &  a2, const const class QString &  a3, const const class QString &  a4, const const class QString &  a5, const const class QString &  a6)const volatile restrict ;
inline class QString arg (const const class QString &  a1, const const class QString &  a2, const const class QString &  a3, const const class QString &  a4, const const class QString &  a5, const const class QString &  a6, const const class QString &  a7)const volatile restrict ;
inline class QString arg (const const class QString &  a1, const const class QString &  a2, const const class QString &  a3, const const class QString &  a4, const const class QString &  a5, const const class QString &  a6, const const class QString &  a7, const const class QString &  a8)const volatile restrict ;
inline class QString arg (const const class QString &  a1, const const class QString &  a2, const const class QString &  a3, const const class QString &  a4, const const class QString &  a5, const const class QString &  a6, const const class QString &  a7, const const class QString &  a8, const const class QString &  a9)const volatile restrict ;
inline class QString section (class QChar asep, int astart, int aend = -1, SectionFlags aflags = SectionDefault)const volatile restrict ;
class QCharRef{
   class QCharRef{
   }; // end of QCharRef
   inline constructor void QCharRef (class QString &  str, int idx);
public:
   inline converter class QChar operator QChar ()const volatile restrict ;
   inline class QCharRef &  operator= (const const class QChar &  c);
   inline class QCharRef &  operator= (char c);
   inline class QCharRef &  operator= (uchar c);
   inline class QCharRef &  operator= (const const class QCharRef &  c);
   inline class QCharRef &  operator= (ushort rc);
   inline class QCharRef &  operator= (short rc);
   inline class QCharRef &  operator= (uint rc);
   inline class QCharRef &  operator= (int rc);
   inline _Bool isNull ()const volatile restrict ;
   inline _Bool isPrint ()const volatile restrict ;
   inline _Bool isPunct ()const volatile restrict ;
   inline _Bool isSpace ()const volatile restrict ;
   inline _Bool isMark ()const volatile restrict ;
   inline _Bool isLetter ()const volatile restrict ;
   inline _Bool isNumber ()const volatile restrict ;
   inline _Bool isLetterOrNumber ();
   inline _Bool isDigit ()const volatile restrict ;
   inline _Bool isLower ()const volatile restrict ;
   inline _Bool isUpper ()const volatile restrict ;
   inline _Bool isTitleCase ()const volatile restrict ;
   inline int digitValue ()const volatile restrict ;
   class QChar toLower ()const volatile restrict ;
   class QChar toUpper ()const volatile restrict ;
   class QChar toTitleCase ()const volatile restrict ;
   class QChar::Category category ()const volatile restrict ;
   class QChar::Direction direction ()const volatile restrict ;
   class QChar::Joining joining ()const volatile restrict ;
   _Bool hasMirrored ()const volatile restrict ;
   class QChar mirroredChar ()const volatile restrict ;
   class QString decomposition ()const volatile restrict ;
   class QChar::Decomposition decompositionTag ()const volatile restrict ;
   uchar combiningClass ()const volatile restrict ;
   class QChar::UnicodeVersion unicodeVersion ()const volatile restrict ;
   inline uchar cell ()const volatile restrict ;
   inline uchar row ()const volatile restrict ;
   inline void setCell (uchar cell);
   inline void setRow (uchar row);
   char toAscii ()const volatile restrict ;
   char toLatin1 ()const volatile restrict ;
   ushort unicode ()const volatile restrict ;
   ushort &  unicode ();
   inline constructor copyconstructor converter void QCharRef (const const class QCharRef &  ) throw ();
   inline destructor void ~QCharRef () throw ();
}; // end of QCharRef
inline void setRow (uchar arow);
inline void setCell (uchar acell);
inline constructor void QString ();
inline destructor void ~QString ();
inline void reserve (int asize);
inline class QString &  setUtf16 (const const ushort *  autf16, int asize);
inline class QCharRef operator[] (int i);
inline class QCharRef operator[] (uint i);
inline class QString::iterator begin ();
inline class QString::const_iterator begin ()const volatile restrict ;
inline class QString::const_iterator constBegin ()const volatile restrict ;
inline class QString::iterator end ();
inline class QString::const_iterator end ()const volatile restrict ;
inline class QString::const_iterator constEnd ()const volatile restrict ;
inline class QBool contains (const const class QString &  s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
inline class QBool contains (const const class QStringRef &  s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
inline class QBool contains (class QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
inline _Bool operator== (class QString::Null , class QString::Null );
inline _Bool operator== (class QString::Null , const const class QString &  s);
inline _Bool operator== (const const class QString &  s, class QString::Null );
inline _Bool operator!= (class QString::Null , class QString::Null );
inline _Bool operator!= (class QString::Null , const const class QString &  s);
inline _Bool operator!= (const const class QString &  s, class QString::Null );
inline _Bool qStringComparisonHelper (const const class QString &  s1, const const char *  s2);
inline _Bool operator== (const const char *  s)const volatile restrict ;
inline _Bool operator!= (const const char *  s)const volatile restrict ;
inline _Bool operator< (const const char *  s)const volatile restrict ;
inline _Bool operator> (const const char *  s)const volatile restrict ;
inline _Bool operator<= (const const char *  s)const volatile restrict ;
inline _Bool operator>= (const const char *  s)const volatile restrict ;
inline _Bool operator== (const const char *  s1, const const class QString &  s2);
inline _Bool operator!= (const const char *  s1, const const class QString &  s2);
inline _Bool operator< (const const char *  s1, const const class QString &  s2);
inline _Bool operator> (const const char *  s1, const const class QString &  s2);
inline _Bool operator<= (const const char *  s1, const const class QString &  s2);
inline _Bool operator>= (const const char *  s1, const const class QString &  s2);
inline _Bool operator== (const const char *  s1, const const class QLatin1String &  s2);
inline _Bool operator!= (const const char *  s1, const const class QLatin1String &  s2);
inline _Bool operator< (const const char *  s1, const const class QLatin1String &  s2);
inline _Bool operator> (const const char *  s1, const const class QLatin1String &  s2);
inline _Bool operator<= (const const char *  s1, const const class QLatin1String &  s2);
inline _Bool operator>= (const const char *  s1, const const class QLatin1String &  s2);
inline _Bool operator== (const const class QLatin1String &  s1, const const class QLatin1String &  s2);
inline _Bool operator!= (const const class QLatin1String &  s1, const const class QLatin1String &  s2);
inline _Bool operator< (const const class QLatin1String &  s1, const const class QLatin1String &  s2);
inline _Bool operator<= (const const class QLatin1String &  s1, const const class QLatin1String &  s2);
inline _Bool operator> (const const class QLatin1String &  s1, const const class QLatin1String &  s2);
inline _Bool operator>= (const const class QLatin1String &  s1, const const class QLatin1String &  s2);
inline _Bool operator== (const const class QByteArray &  s)const volatile restrict ;
inline _Bool operator!= (const const class QByteArray &  s)const volatile restrict ;
inline _Bool operator== (const const class QString &  s)const volatile restrict ;
inline _Bool operator!= (const const class QString &  s)const volatile restrict ;
inline _Bool operator< (const const class QString &  s)const volatile restrict ;
inline _Bool operator> (const const class QString &  s)const volatile restrict ;
inline _Bool operator<= (const const class QString &  s)const volatile restrict ;
inline _Bool operator>= (const const class QString &  s)const volatile restrict ;
inline class QByteArray &  append (const const class QString &  s);
inline class QByteArray &  insert (int i, const const class QString &  s);
inline class QByteArray &  replace (char c, const const class QString &  after);
inline class QByteArray &  replace (const const class QString &  before, const const char *  after);
inline class QByteArray &  replace (const const class QString &  before, const const class QByteArray &  after);
inline class QByteArray &  operator+= (const const class QString &  s);
inline int indexOf (const const class QString &  s, int from = 0)const volatile restrict ;
inline int lastIndexOf (const const class QString &  s, int from = -1)const volatile restrict ;
inline const const class QString operator+ (const const class QString &  s1, const const class QString &  s2);
inline const const class QString operator+ (const const class QString &  s1, class QChar s2);
inline const const class QString operator+ (class QChar s1, const const class QString &  s2);
inline const const class QString operator+ (const const class QString &  s1, const const char *  s2);
inline const const class QString operator+ (const const char *  s1, const const class QString &  s2);
inline const const class QString operator+ (char c, const const class QString &  s);
inline const const class QString operator+ (const const class QString &  s, char c);
inline const const class QString operator+ (const const class QByteArray &  ba, const const class QString &  s);
inline const const class QString operator+ (const const class QString &  s, const const class QByteArray &  ba);
inline std::string toStdString ()const volatile restrict ;
inline static class QString fromStdString (const const std::string &  s);
inline QStdWString toStdWString ()const volatile restrict ;
inline static class QString fromStdWString (const const QStdWString &  s);
class QDataStream &  operator<< (class QDataStream &  , const const class QString &  );
class QDataStream &  operator>> (class QDataStream &  , class QString &  );
inline _Bool qIsDetached (class QString &  t);
inline void qSwap (class QString &  value1, class QString &  value2);
namespace std
{
   inline void swap (::QString &  value1, ::QString &  value2);
} // end of std
inline QFlags operator| (class QString::SectionFlags::enum_type f1, class QString::SectionFlags::enum_type f2);
inline QFlags operator| (class QString::SectionFlags::enum_type f1, QFlags f2);
inline class QIncompatibleFlag operator| (class QString::SectionFlags::enum_type f1, int f2);
class QStringRef{
   class QStringRef{
   }; // end of QStringRef
public:
   inline constructor void QStringRef ();
   inline constructor void QStringRef (const const class QString *  string, int position, int size);
   inline constructor converter void QStringRef (const const class QString *  string);
   inline constructor copyconstructor converter void QStringRef (const const class QStringRef &  other);
   inline destructor void ~QStringRef ();
   inline const const class QString *  string ()const volatile restrict ;
   inline int position ()const volatile restrict ;
   inline int size ()const volatile restrict ;
   inline int count ()const volatile restrict ;
   inline int length ()const volatile restrict ;
   inline class QStringRef &  operator= (const const class QStringRef &  other);
   int indexOf (const const class QString &  str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   int indexOf (class QChar ch, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   int indexOf (class QLatin1String str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   int indexOf (const const class QStringRef &  str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   int lastIndexOf (const const class QString &  str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   int lastIndexOf (class QChar ch, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   int lastIndexOf (class QLatin1String str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   int lastIndexOf (const const class QStringRef &  str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   inline class QBool contains (const const class QString &  str, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   inline class QBool contains (class QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   inline class QBool contains (class QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   inline class QBool contains (const const class QStringRef &  str, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   int count (const const class QString &  s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   int count (class QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   int count (const const class QStringRef &  s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   _Bool startsWith (const const class QString &  s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   _Bool startsWith (class QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   _Bool startsWith (class QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   _Bool startsWith (const const class QStringRef &  c, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   _Bool endsWith (const const class QString &  s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   _Bool endsWith (class QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   _Bool endsWith (class QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   _Bool endsWith (const const class QStringRef &  c, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   inline class QStringRef &  operator= (const const class QString *  string);
   inline const const class QChar *  unicode ()const volatile restrict ;
   inline const const class QChar *  data ()const volatile restrict ;
   inline const const class QChar *  constData ()const volatile restrict ;
   class QByteArray toAscii ()const volatile restrict ;
   class QByteArray toLatin1 ()const volatile restrict ;
   class QByteArray toUtf8 ()const volatile restrict ;
   class QByteArray toLocal8Bit ()const volatile restrict ;
   QVector toUcs4 ()const volatile restrict ;
   inline void clear ();
   class QString toString ()const volatile restrict ;
   inline _Bool isEmpty ()const volatile restrict ;
   inline _Bool isNull ()const volatile restrict ;
   class QStringRef appendTo (class QString *  string)const volatile restrict ;
   inline const const class QChar at (int i)const volatile restrict ;
   int compare (const const class QString &  s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   int compare (const const class QStringRef &  s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   int compare (class QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   static static int compare (const const class QStringRef &  s1, const const class QString &  s2, Qt::CaseSensitivity  = Qt::CaseSensitive);
   static static int compare (const const class QStringRef &  s1, const const class QStringRef &  s2, Qt::CaseSensitivity  = Qt::CaseSensitive);
   static static int compare (const const class QStringRef &  s1, class QLatin1String s2, Qt::CaseSensitivity cs = Qt::CaseSensitive);
   int localeAwareCompare (const const class QString &  s)const volatile restrict ;
   int localeAwareCompare (const const class QStringRef &  s)const volatile restrict ;
   static static int localeAwareCompare (const const class QStringRef &  s1, const const class QString &  s2);
   static static int localeAwareCompare (const const class QStringRef &  s1, const const class QStringRef &  s2);
}; // end of QStringRef
inline class QStringRef &  operator= (const const class QString *  aString);
inline constructor void QStringRef (const const class QString *  aString, int aPosition, int aSize);
inline constructor converter void QStringRef (const const class QString *  aString);
_Bool operator== (const const class QStringRef &  s1, const const class QStringRef &  s2);
inline _Bool operator!= (const const class QStringRef &  s1, const const class QStringRef &  s2);
_Bool operator== (const const class QString &  s1, const const class QStringRef &  s2);
inline _Bool operator!= (const const class QString &  s1, const const class QStringRef &  s2);
inline _Bool operator== (const const class QStringRef &  s1, const const class QString &  s2);
inline _Bool operator!= (const const class QStringRef &  s1, const const class QString &  s2);
_Bool operator== (const const class QLatin1String &  s1, const const class QStringRef &  s2);
inline _Bool operator!= (const const class QLatin1String &  s1, const const class QStringRef &  s2);
inline _Bool operator== (const const class QStringRef &  s1, const const class QLatin1String &  s2);
inline _Bool operator!= (const const class QStringRef &  s1, const const class QLatin1String &  s2);
_Bool operator< (const const class QStringRef &  s1, const const class QStringRef &  s2);
inline _Bool operator> (const const class QStringRef &  s1, const const class QStringRef &  s2);
inline _Bool operator<= (const const class QStringRef &  s1, const const class QStringRef &  s2);
inline _Bool operator>= (const const class QStringRef &  s1, const const class QStringRef &  s2);
inline _Bool qStringComparisonHelper (const const class QStringRef &  s1, const const char *  s2);
inline _Bool operator== (const const char *  s1, const const class QStringRef &  s2);
inline _Bool operator== (const const class QStringRef &  s1, const const char *  s2);
inline _Bool operator!= (const const char *  s1, const const class QStringRef &  s2);
inline _Bool operator!= (const const class QStringRef &  s1, const const char *  s2);
inline int compare (const const class QStringRef &  s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
inline static int compare (const const class QString &  s1, const const class QStringRef &  s2, Qt::CaseSensitivity cs = Qt::CaseSensitive);
inline int compare (const const class QString &  s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
inline int compare (const const class QStringRef &  s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
inline int compare (class QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
inline static int compare (const const class QStringRef &  s1, const const class QString &  s2, Qt::CaseSensitivity cs = Qt::CaseSensitive);
inline static int compare (const const class QStringRef &  s1, const const class QStringRef &  s2, Qt::CaseSensitivity cs = Qt::CaseSensitive);
inline static int compare (const const class QStringRef &  s1, class QLatin1String s2, Qt::CaseSensitivity cs = Qt::CaseSensitive);
inline int localeAwareCompare (const const class QStringRef &  s)const volatile restrict ;
inline static int localeAwareCompare (const const class QString &  s1, const const class QStringRef &  s2);
inline int localeAwareCompare (const const class QString &  s)const volatile restrict ;
inline int localeAwareCompare (const const class QStringRef &  s)const volatile restrict ;
inline static int localeAwareCompare (const const class QStringRef &  s1, const const class QString &  s2);
inline static int localeAwareCompare (const const class QStringRef &  s1, const const class QStringRef &  s2);
inline class QBool contains (const const class QString &  s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
inline class QBool contains (class QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
inline class QBool contains (class QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
inline class QBool contains (const const class QStringRef &  s, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
typedef enum QtValidLicenseForCoreModule QtCoreModule;
typedef enum QtValidLicenseForCoreModule QtCoreModule;
namespace QAlgorithmsPrivate
{
   template < typename RandomAccessIterator, typename T, typename LessThan >
      void qSortHelper (RandomAccessIterator start, RandomAccessIterator end, const const T &  t, LessThan lessThan);
   template < typename RandomAccessIterator, typename T >
      inline void qSortHelper (RandomAccessIterator begin, RandomAccessIterator end, const const T &  dummy);
   template < typename RandomAccessIterator, typename T, typename LessThan >
      void qStableSortHelper (RandomAccessIterator start, RandomAccessIterator end, const const T &  t, LessThan lessThan);
   template < typename RandomAccessIterator, typename T >
      inline void qStableSortHelper (RandomAccessIterator , RandomAccessIterator , const const T &  );
   template < typename RandomAccessIterator, typename T, typename LessThan >
      RandomAccessIterator qLowerBoundHelper (RandomAccessIterator begin, RandomAccessIterator end, const const T &  value, LessThan lessThan);
   template < typename RandomAccessIterator, typename T, typename LessThan >
      RandomAccessIterator qUpperBoundHelper (RandomAccessIterator begin, RandomAccessIterator end, const const T &  value, LessThan lessThan);
   template < typename RandomAccessIterator, typename T, typename LessThan >
      RandomAccessIterator qBinaryFindHelper (RandomAccessIterator begin, RandomAccessIterator end, const const T &  value, LessThan lessThan);
} // end of QAlgorithmsPrivate
template < typename InputIterator, typename OutputIterator >
   inline OutputIterator qCopy (InputIterator begin, InputIterator end, OutputIterator dest);
template < typename BiIterator1, typename BiIterator2 >
   inline BiIterator2 qCopyBackward (BiIterator1 begin, BiIterator1 end, BiIterator2 dest);
template < typename InputIterator1, typename InputIterator2 >
   inline _Bool qEqual (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2);
template < typename ForwardIterator, typename T >
   inline void qFill (ForwardIterator first, ForwardIterator last, const const T &  val);
template < typename Container, typename T >
   inline void qFill (Container &  container, const const T &  val);
template < typename InputIterator, typename T >
   inline InputIterator qFind (InputIterator first, InputIterator last, const const T &  val);
template < typename Container, typename T >
   inline typename Container::const_iterator qFind (const const Container &  container, const const T &  val);
template < typename InputIterator, typename T, typename Size >
   inline void qCount (InputIterator first, InputIterator last, const const T &  value, Size &  n);
template < typename Container, typename T, typename Size >
   inline void qCount (const const Container &  container, const const T &  value, Size &  n);
template < typename T >
   class qLess{
      class qLess{
      }; // end of qLess
   public:
      inline _Bool operator() (const const T &  t1, const const T &  t2)const volatile restrict ;
   }; // end of qLess
template < typename T >
   class qGreater{
      class qGreater{
      }; // end of qGreater
   public:
      inline _Bool operator() (const const T &  t1, const const T &  t2)const volatile restrict ;
   }; // end of qGreater
template < typename RandomAccessIterator >
   inline void qSort (RandomAccessIterator start, RandomAccessIterator end);
template < typename RandomAccessIterator, typename LessThan >
   inline void qSort (RandomAccessIterator start, RandomAccessIterator end, LessThan lessThan);
template < typename Container >
   inline void qSort (Container &  c);
template < typename RandomAccessIterator >
   inline void qStableSort (RandomAccessIterator start, RandomAccessIterator end);
template < typename RandomAccessIterator, typename LessThan >
   inline void qStableSort (RandomAccessIterator start, RandomAccessIterator end, LessThan lessThan);
template < typename Container >
   inline void qStableSort (Container &  c);
template < typename RandomAccessIterator, typename T >
   RandomAccessIterator qLowerBound (RandomAccessIterator begin, RandomAccessIterator end, const const T &  value);
template < typename RandomAccessIterator, typename T, typename LessThan >
   RandomAccessIterator qLowerBound (RandomAccessIterator begin, RandomAccessIterator end, const const T &  value, LessThan lessThan);
template < typename Container, typename T >
   typename Container::const_iterator qLowerBound (const const Container &  container, const const T &  value);
template < typename RandomAccessIterator, typename T >
   RandomAccessIterator qUpperBound (RandomAccessIterator begin, RandomAccessIterator end, const const T &  value);
template < typename RandomAccessIterator, typename T, typename LessThan >
   RandomAccessIterator qUpperBound (RandomAccessIterator begin, RandomAccessIterator end, const const T &  value, LessThan lessThan);
template < typename Container, typename T >
   typename Container::const_iterator qUpperBound (const const Container &  container, const const T &  value);
template < typename RandomAccessIterator, typename T >
   RandomAccessIterator qBinaryFind (RandomAccessIterator begin, RandomAccessIterator end, const const T &  value);
template < typename RandomAccessIterator, typename T, typename LessThan >
   RandomAccessIterator qBinaryFind (RandomAccessIterator begin, RandomAccessIterator end, const const T &  value, LessThan lessThan);
template < typename Container, typename T >
   typename Container::const_iterator qBinaryFind (const const Container &  container, const const T &  value);
template < typename ForwardIterator >
   void qDeleteAll (ForwardIterator begin, ForwardIterator end);
template < typename Container >
   inline void qDeleteAll (const const Container &  c);
namespace QAlgorithmsPrivate
{
   template < typename RandomAccessIterator, typename T, typename LessThan >
      void qSortHelper (RandomAccessIterator start, RandomAccessIterator end, const const T &  t, LessThan lessThan);
   template < typename RandomAccessIterator, typename T >
      inline void qSortHelper (RandomAccessIterator begin, RandomAccessIterator end, const const T &  dummy);
   template < typename RandomAccessIterator >
      void qReverse (RandomAccessIterator begin, RandomAccessIterator end);
   template < typename RandomAccessIterator >
      void qRotate (RandomAccessIterator begin, RandomAccessIterator middle, RandomAccessIterator end);
   template < typename RandomAccessIterator, typename T, typename LessThan >
      void qMerge (RandomAccessIterator begin, RandomAccessIterator pivot, RandomAccessIterator end, T &  t, LessThan lessThan);
   template < typename RandomAccessIterator, typename T, typename LessThan >
      void qStableSortHelper (RandomAccessIterator begin, RandomAccessIterator end, const const T &  t, LessThan lessThan);
   template < typename RandomAccessIterator, typename T >
      inline void qStableSortHelper (RandomAccessIterator begin, RandomAccessIterator end, const const T &  dummy);
   template < typename RandomAccessIterator, typename T, typename LessThan >
      RandomAccessIterator qLowerBoundHelper (RandomAccessIterator begin, RandomAccessIterator end, const const T &  value, LessThan lessThan);
   template < typename RandomAccessIterator, typename T, typename LessThan >
      RandomAccessIterator qUpperBoundHelper (RandomAccessIterator begin, RandomAccessIterator end, const const T &  value, LessThan lessThan);
   template < typename RandomAccessIterator, typename T, typename LessThan >
      RandomAccessIterator qBinaryFindHelper (RandomAccessIterator begin, RandomAccessIterator end, const const T &  value, LessThan lessThan);
} // end of QAlgorithmsPrivate
namespace std
{
   class locale{
      class locale{
      }; // end of locale
   public:
      typedef int std::locale::category;
      class facet{
      }; // end of facet
      class id{
      }; // end of id
      class _Impl{
      }; // end of _Impl
      friend has_facet;
      friend use_facet;
      friend __use_cache;
      /* variable */ static const const category = 0 none;
      /* variable */ static const const category = 1L << 0 ctype;
      /* variable */ static const const category = 1L << 1 numeric;
      /* variable */ static const const category = 1L << 2 collate;
      /* variable */ static const const category = 1L << 3 time;
      /* variable */ static const const category = 1L << 4 monetary;
      /* variable */ static const const category = 1L << 5 messages;
      /* variable */ static const const category = (ctype | numeric | collate | time | monetary | messages) all;
      constructor void locale () throw ();
      constructor copyconstructor converter void locale (const const class std::locale &  __other) throw ();
      constructor explicit void locale (const const char *  __s);
      constructor void locale (const const class std::locale &  __base, const const char *  __s, category __cat);
      constructor void locale (const const class std::locale &  __base, const const class std::locale &  __add, category __cat);
      template < typename _Facet >
         constructor void locale (const const class std::locale &  __other, _Facet *  __f);
      destructor void ~locale () throw ();
      const const class std::locale &  operator= (const const class std::locale &  __other) throw ();
      template < typename _Facet >
         class std::locale combine (const const class std::locale &  __other)const volatile restrict ;
      string name ()const volatile restrict ;
      _Bool operator== (const const class std::locale &  __other) throw ()const volatile restrict ;
      _Bool operator!= (const const class std::locale &  __other) throw ()const volatile restrict ;
      template < typename _Char, typename _Traits, typename _Alloc >
         _Bool operator() (const const basic_string<_Char, _Traits, _Alloc> &  __s1, const const basic_string<_Char, _Traits, _Alloc> &  __s2)const volatile restrict ;
      static static class std::locale global (const const class std::locale &  __loc);
      static static const const class std::locale &  classic ();
   private:
      /* variable */ static class std::locale::_Impl *  _S_classic;
      /* variable */ static class std::locale::_Impl *  _S_global;
      /* variable */ static const const const const char *  *  _S_categories;
      enum 
      {
         _S_categories_size = 6 + 6
      }; // end of 
      /* variable */ static __gthread_once_t _S_once;
      constructor explicit void locale (class std::locale::_Impl *  ) throw ();
      static static void _S_initialize ();
      static static void _S_initialize_once () throw ();
      static static category _S_normalize_category (category );
      void _M_coalesce (const const class std::locale &  __base, const const class std::locale &  __add, category __cat);
      /* variable */ static const const const const class std::locale::id *  [] _S_twinned_facets;
   }; // end of locale
   class facet{
      class facet{
      }; // end of facet
   private:
      /* variable */ static __c_locale _S_c_locale;
      /* variable */ static const const const char [2] _S_c_name;
      /* variable */ static __gthread_once_t _S_once;
      static static void _S_initialize_once ();
   protected:
      constructor explicit void facet (size_t __refs = 0) throw ();
      virtual destructor void ~facet ();
      static static void _S_create_c_locale (__c_locale &  __cloc, const const char *  __s, __c_locale __old = 0);
      static static __c_locale _S_clone_c_locale (__c_locale &  __cloc) throw ();
      static static void _S_destroy_c_locale (__c_locale &  __cloc);
      static static __c_locale _S_lc_ctype_c_locale (__c_locale __cloc, const const char *  __s);
      static static __c_locale _S_get_c_locale ();
      static static const const char *  _S_get_c_name () throw ();
   private:
      constructor copyconstructor converter void facet (const const class std::locale::facet &  );
      class std::locale::facet &  operator= (const const class std::locale::facet &  );
   private:
      void _M_add_reference () throw ()const volatile restrict ;
      void _M_remove_reference () throw ()const volatile restrict ;
      const const class std::locale::facet *  _M_sso_shim (const const class std::locale::id *  )const volatile restrict ;
      const const class std::locale::facet *  _M_cow_shim (const const class std::locale::id *  )const volatile restrict ;
   protected:
      class __shim{
      }; // end of __shim
   }; // end of facet
   class id{
      class id{
      }; // end of id
   private:
      friend use_facet;
      friend has_facet;
      /* variable */ static _Atomic_word _S_refcount;
      void operator= (const const class std::locale::id &  );
      constructor copyconstructor converter void id (const const class std::locale::id &  );
   public:
      constructor void id ();
      size_t _M_id () throw ()const volatile restrict ;
   }; // end of id
   class _Impl{
      class _Impl{
      }; // end of _Impl
   public:
      friend has_facet;
      friend use_facet;
      friend __use_cache;
   private:
      /* variable */ static const const const const class locale::id *  [] _S_id_ctype;
      /* variable */ static const const const const class locale::id *  [] _S_id_numeric;
      /* variable */ static const const const const class locale::id *  [] _S_id_collate;
      /* variable */ static const const const const class locale::id *  [] _S_id_time;
      /* variable */ static const const const const class locale::id *  [] _S_id_monetary;
      /* variable */ static const const const const class locale::id *  [] _S_id_messages;
      /* variable */ static const const const const const class locale::id *  *  [] _S_facet_categories;
      void _M_add_reference () throw ();
      void _M_remove_reference () throw ();
      constructor void _Impl (const const class std::locale::_Impl &  , size_t );
      constructor void _Impl (const const char *  , size_t );
      constructor converter void _Impl (size_t ) throw ();
      destructor void ~_Impl () throw ();
      constructor copyconstructor converter void _Impl (const const class std::locale::_Impl &  );
      void operator= (const const class std::locale::_Impl &  );
      _Bool _M_check_same_name ();
      void _M_replace_categories (const const class std::locale::_Impl *  , category );
      void _M_replace_category (const const class std::locale::_Impl *  , const const const class locale::id *  *  );
      void _M_replace_facet (const const class std::locale::_Impl *  , const const class locale::id *  );
      void _M_install_facet (const const class locale::id *  , const const class std::locale::facet *  );
      template < typename _Facet >
         void _M_init_facet (_Facet *  __facet);
      template < typename _Facet >
         void _M_init_facet_unchecked (_Facet *  __facet);
      void _M_install_cache (const const class std::locale::facet *  , size_t );
      void _M_init_extra (class std::locale::facet *  *  );
      void _M_init_extra (void *  , void *  , const const char *  , const const char *  );
   }; // end of _Impl
   template < typename _CharT >
      class collate : public:
      class locale::facet{
         class collate{
         }; // end of collate
      public:
         typedef _CharT std::__cxx11::collate::char_type;
         typedef basic_string<_CharT> std::__cxx11::collate::string_type;
      protected:
      public:
         /* variable */ static class locale::id id;
         constructor explicit void collate<_CharT> (size_t __refs = 0);
         constructor explicit void collate<_CharT> (__c_locale __cloc, size_t __refs = 0);
         int compare (const const _CharT *  __lo1, const const _CharT *  __hi1, const const _CharT *  __lo2, const const _CharT *  __hi2)const volatile restrict ;
         string_type transform (const const _CharT *  __lo, const const _CharT *  __hi)const volatile restrict ;
         long hash (const const _CharT *  __lo, const const _CharT *  __hi)const volatile restrict ;
         int _M_compare (const const _CharT *  , const const _CharT *  ) throw ()const volatile restrict ;
         size_t _M_transform (_CharT *  , const const _CharT *  , size_t ) throw ()const volatile restrict ;
      protected:
         virtual destructor void ~collate<_CharT> ();
         virtual int do_compare (const const _CharT *  __lo1, const const _CharT *  __hi1, const const _CharT *  __lo2, const const _CharT *  __hi2)const volatile restrict ;
         virtual string_type do_transform (const const _CharT *  __lo, const const _CharT *  __hi)const volatile restrict ;
         virtual long do_hash (const const _CharT *  __lo, const const _CharT *  __hi)const volatile restrict ;
      }; // end of collate
   /* variable */ class locale::id =  id;
   int _M_compare (const const char *  , const const char *  ) throw ()const volatile restrict ;
   size_t _M_transform (char *  , const const char *  , size_t ) throw ()const volatile restrict ;
   int _M_compare (const const wchar_t *  , const const wchar_t *  ) throw ()const volatile restrict ;
   size_t _M_transform (wchar_t *  , const const wchar_t *  , size_t ) throw ()const volatile restrict ;
   template < typename _CharT >
      class collate_byname : public:
      collate<_CharT>{
         class collate_byname{
         }; // end of collate_byname
      public:
         typedef _CharT std::__cxx11::collate_byname::char_type;
         typedef basic_string<_CharT> std::__cxx11::collate_byname::string_type;
         constructor explicit void collate_byname<_CharT> (const const char *  __s, size_t __refs = 0);
      protected:
         virtual destructor void ~collate_byname<_CharT> ();
      }; // end of collate_byname
} // end of std
extern "C" extern int __builtin_strcmp (const const char *  , const const char *  ) throw ();
namespace std
{
   template < typename _Facet >
      constructor void locale (const const class std::locale &  __other, _Facet *  __f);
   template < typename _Facet >
      class std::locale combine (const const class std::locale &  __other)const volatile restrict ;
   template < typename _CharT, typename _Traits, typename _Alloc >
      _Bool operator() (const const basic_string<_CharT, _Traits, _Alloc> &  __s1, const const basic_string<_CharT, _Traits, _Alloc> &  __s2)const volatile restrict ;
   template < typename _Facet >
      _Bool has_facet (const const class std::locale &  __loc) throw ();
   template < typename _Facet >
      const const _Facet &  use_facet (const const class std::locale &  __loc);
   int _M_compare (const const _CharT *  , const const _CharT *  ) throw ()const volatile restrict ;
   size_t _M_transform (_CharT *  , const const _CharT *  , size_t ) throw ()const volatile restrict ;
   virtual int do_compare (const const _CharT *  __lo1, const const _CharT *  __hi1, const const _CharT *  __lo2, const const _CharT *  __hi2)const volatile restrict ;
   virtual typename collate<_CharT>::string_type do_transform (const const _CharT *  __lo, const const _CharT *  __hi)const volatile restrict ;
   virtual long do_hash (const const _CharT *  __lo, const const _CharT *  __hi)const volatile restrict ;
} // end of std
namespace std
{
   struct __cow_string{
      struct __cow_string{
      }; // end of __cow_string
      union {
      }; // end of 
      constructor void __cow_string ();
      constructor converter void __cow_string (const const std::string &  );
      constructor void __cow_string (const const char *  , size_t );
      constructor copyconstructor converter void __cow_string (const const struct std::__cow_string &  ) throw ();
      struct std::__cow_string &  operator= (const const struct std::__cow_string &  ) throw ();
      destructor void ~__cow_string ();
   }; // end of __cow_string
   typedef basic_string std::__sso_string;
   class logic_error : public:
   class std::exception{
      class logic_error{
      }; // end of logic_error
   public:
      constructor explicit void logic_error (const const string &  __arg);
      constructor copyconstructor converter void logic_error (const const class std::logic_error &  ) throw ();
      class std::logic_error &  operator= (const const class std::logic_error &  ) throw ();
      virtual destructor void ~logic_error () throw ();
      virtual const const char *  what () throw ()const volatile restrict ;
   }; // end of logic_error
   class domain_error : public:
   class std::logic_error{
      class domain_error{
      }; // end of domain_error
   public:
      constructor explicit void domain_error (const const string &  __arg);
      virtual destructor void ~domain_error () throw ();
      inline class std::domain_error &  operator= (const const class std::domain_error &  ) throw ();
   }; // end of domain_error
   class invalid_argument : public:
   class std::logic_error{
      class invalid_argument{
      }; // end of invalid_argument
   public:
      constructor explicit void invalid_argument (const const string &  __arg);
      virtual destructor void ~invalid_argument () throw ();
      inline class std::invalid_argument &  operator= (const const class std::invalid_argument &  ) throw ();
   }; // end of invalid_argument
   class length_error : public:
   class std::logic_error{
      class length_error{
      }; // end of length_error
   public:
      constructor explicit void length_error (const const string &  __arg);
      virtual destructor void ~length_error () throw ();
      inline class std::length_error &  operator= (const const class std::length_error &  ) throw ();
   }; // end of length_error
   class out_of_range : public:
   class std::logic_error{
      class out_of_range{
      }; // end of out_of_range
   public:
      constructor explicit void out_of_range (const const string &  __arg);
      virtual destructor void ~out_of_range () throw ();
      inline class std::out_of_range &  operator= (const const class std::out_of_range &  ) throw ();
   }; // end of out_of_range
   class runtime_error : public:
   class std::exception{
      class runtime_error{
      }; // end of runtime_error
   public:
      constructor explicit void runtime_error (const const string &  __arg);
      constructor copyconstructor converter void runtime_error (const const class std::runtime_error &  ) throw ();
      class std::runtime_error &  operator= (const const class std::runtime_error &  ) throw ();
      virtual destructor void ~runtime_error () throw ();
      virtual const const char *  what () throw ()const volatile restrict ;
   }; // end of runtime_error
   class range_error : public:
   class std::runtime_error{
      class range_error{
      }; // end of range_error
   public:
      constructor explicit void range_error (const const string &  __arg);
      virtual destructor void ~range_error () throw ();
      inline class std::range_error &  operator= (const const class std::range_error &  ) throw ();
   }; // end of range_error
   class overflow_error : public:
   class std::runtime_error{
      class overflow_error{
      }; // end of overflow_error
   public:
      constructor explicit void overflow_error (const const string &  __arg);
      virtual destructor void ~overflow_error () throw ();
      inline class std::overflow_error &  operator= (const const class std::overflow_error &  ) throw ();
   }; // end of overflow_error
   class underflow_error : public:
   class std::runtime_error{
      class underflow_error{
      }; // end of underflow_error
   public:
      constructor explicit void underflow_error (const const string &  __arg);
      virtual destructor void ~underflow_error () throw ();
      inline class std::underflow_error &  operator= (const const class std::underflow_error &  ) throw ();
   }; // end of underflow_error
} // end of std
namespace std
{
   enum _Ios_Fmtflags
   {
      _S_boolalpha = 1L << 0,
      _S_dec = 1L << 1,
      _S_fixed = 1L << 2,
      _S_hex = 1L << 3,
      _S_internal = 1L << 4,
      _S_left = 1L << 5,
      _S_oct = 1L << 6,
      _S_right = 1L << 7,
      _S_scientific = 1L << 8,
      _S_showbase = 1L << 9,
      _S_showpoint = 1L << 10,
      _S_showpos = 1L << 11,
      _S_skipws = 1L << 12,
      _S_unitbuf = 1L << 13,
      _S_uppercase = 1L << 14,
      _S_adjustfield = _S_left | _S_right | _S_internal,
      _S_basefield = _S_dec | _S_oct | _S_hex,
      _S_floatfield = _S_scientific | _S_fixed,
      _S_ios_fmtflags_end = 1L << 16,
      _S_ios_fmtflags_max = 2147483647,
      _S_ios_fmtflags_min = ~2147483647
   }; // end of _Ios_Fmtflags
   inline enum std::_Ios_Fmtflags operator& (enum std::_Ios_Fmtflags __a, enum std::_Ios_Fmtflags __b);
   inline enum std::_Ios_Fmtflags operator| (enum std::_Ios_Fmtflags __a, enum std::_Ios_Fmtflags __b);
   inline enum std::_Ios_Fmtflags operator^ (enum std::_Ios_Fmtflags __a, enum std::_Ios_Fmtflags __b);
   inline enum std::_Ios_Fmtflags operator~ (enum std::_Ios_Fmtflags __a);
   inline const const enum std::_Ios_Fmtflags &  operator|= (enum std::_Ios_Fmtflags &  __a, enum std::_Ios_Fmtflags __b);
   inline const const enum std::_Ios_Fmtflags &  operator&= (enum std::_Ios_Fmtflags &  __a, enum std::_Ios_Fmtflags __b);
   inline const const enum std::_Ios_Fmtflags &  operator^= (enum std::_Ios_Fmtflags &  __a, enum std::_Ios_Fmtflags __b);
   enum _Ios_Openmode
   {
      _S_app = 1L << 0,
      _S_ate = 1L << 1,
      _S_bin = 1L << 2,
      _S_in = 1L << 3,
      _S_out = 1L << 4,
      _S_trunc = 1L << 5,
      _S_ios_openmode_end = 1L << 16,
      _S_ios_openmode_max = 2147483647,
      _S_ios_openmode_min = ~2147483647
   }; // end of _Ios_Openmode
   inline enum std::_Ios_Openmode operator& (enum std::_Ios_Openmode __a, enum std::_Ios_Openmode __b);
   inline enum std::_Ios_Openmode operator| (enum std::_Ios_Openmode __a, enum std::_Ios_Openmode __b);
   inline enum std::_Ios_Openmode operator^ (enum std::_Ios_Openmode __a, enum std::_Ios_Openmode __b);
   inline enum std::_Ios_Openmode operator~ (enum std::_Ios_Openmode __a);
   inline const const enum std::_Ios_Openmode &  operator|= (enum std::_Ios_Openmode &  __a, enum std::_Ios_Openmode __b);
   inline const const enum std::_Ios_Openmode &  operator&= (enum std::_Ios_Openmode &  __a, enum std::_Ios_Openmode __b);
   inline const const enum std::_Ios_Openmode &  operator^= (enum std::_Ios_Openmode &  __a, enum std::_Ios_Openmode __b);
   enum _Ios_Iostate
   {
      _S_goodbit = 0,
      _S_badbit = 1L << 0,
      _S_eofbit = 1L << 1,
      _S_failbit = 1L << 2,
      _S_ios_iostate_end = 1L << 16,
      _S_ios_iostate_max = 2147483647,
      _S_ios_iostate_min = ~2147483647
   }; // end of _Ios_Iostate
   inline enum std::_Ios_Iostate operator& (enum std::_Ios_Iostate __a, enum std::_Ios_Iostate __b);
   inline enum std::_Ios_Iostate operator| (enum std::_Ios_Iostate __a, enum std::_Ios_Iostate __b);
   inline enum std::_Ios_Iostate operator^ (enum std::_Ios_Iostate __a, enum std::_Ios_Iostate __b);
   inline enum std::_Ios_Iostate operator~ (enum std::_Ios_Iostate __a);
   inline const const enum std::_Ios_Iostate &  operator|= (enum std::_Ios_Iostate &  __a, enum std::_Ios_Iostate __b);
   inline const const enum std::_Ios_Iostate &  operator&= (enum std::_Ios_Iostate &  __a, enum std::_Ios_Iostate __b);
   inline const const enum std::_Ios_Iostate &  operator^= (enum std::_Ios_Iostate &  __a, enum std::_Ios_Iostate __b);
   enum _Ios_Seekdir
   {
      _S_beg = 0,
      _S_cur = 1,
      _S_end = 2,
      _S_ios_seekdir_end = 1L << 16
   }; // end of _Ios_Seekdir
   class ios_base{
      class ios_base{
      }; // end of ios_base
      struct system_error : public:
      std::runtime_error{
         struct system_error{
         }; // end of system_error
         struct error_code{
            struct error_code{
            }; // end of error_code
            constructor void error_code ();
         private:
         }; // end of error_code
         inline struct std::ios_base::system_error &  operator= (const const struct std::ios_base::system_error &  ) throw ();
         inline virtual destructor void ~system_error () throw ();
      }; // end of system_error
   public:
      class failure : public:
      struct std::ios_base::system_error{
         class failure{
         }; // end of failure
      public:
         constructor explicit void failure (const const string &  __str);
         virtual destructor void ~failure () throw ();
         virtual const const char *  what () throw ()const volatile restrict ;
         inline class std::ios_base::failure &  operator= (const const class std::ios_base::failure &  ) throw ();
      }; // end of failure
      typedef enum std::_Ios_Fmtflags std::ios_base::fmtflags;
      /* variable */ static const const fmtflags = _S_boolalpha boolalpha;
      /* variable */ static const const fmtflags = _S_dec dec;
      /* variable */ static const const fmtflags = _S_fixed fixed;
      /* variable */ static const const fmtflags = _S_hex hex;
      /* variable */ static const const fmtflags = _S_internal internal;
      /* variable */ static const const fmtflags = _S_left left;
      /* variable */ static const const fmtflags = _S_oct oct;
      /* variable */ static const const fmtflags = _S_right right;
      /* variable */ static const const fmtflags = _S_scientific scientific;
      /* variable */ static const const fmtflags = _S_showbase showbase;
      /* variable */ static const const fmtflags = _S_showpoint showpoint;
      /* variable */ static const const fmtflags = _S_showpos showpos;
      /* variable */ static const const fmtflags = _S_skipws skipws;
      /* variable */ static const const fmtflags = _S_unitbuf unitbuf;
      /* variable */ static const const fmtflags = _S_uppercase uppercase;
      /* variable */ static const const fmtflags = _S_adjustfield adjustfield;
      /* variable */ static const const fmtflags = _S_basefield basefield;
      /* variable */ static const const fmtflags = _S_floatfield floatfield;
      typedef enum std::_Ios_Iostate std::ios_base::iostate;
      /* variable */ static const const iostate = _S_badbit badbit;
      /* variable */ static const const iostate = _S_eofbit eofbit;
      /* variable */ static const const iostate = _S_failbit failbit;
      /* variable */ static const const iostate = _S_goodbit goodbit;
      typedef enum std::_Ios_Openmode std::ios_base::openmode;
      /* variable */ static const const openmode = _S_app app;
      /* variable */ static const const openmode = _S_ate ate;
      /* variable */ static const const openmode = _S_bin binary;
      /* variable */ static const const openmode = _S_in in;
      /* variable */ static const const openmode = _S_out out;
      /* variable */ static const const openmode = _S_trunc trunc;
      typedef enum std::_Ios_Seekdir std::ios_base::seekdir;
      /* variable */ static const const seekdir = _S_beg beg;
      /* variable */ static const const seekdir = _S_cur cur;
      /* variable */ static const const seekdir = _S_end end;
      typedef int std::ios_base::io_state;
      typedef int std::ios_base::open_mode;
      typedef int std::ios_base::seek_dir;
      typedef std::streampos std::ios_base::streampos;
      typedef std::streamoff std::ios_base::streamoff;
      enum event
      {
         erase_event,
         imbue_event,
         copyfmt_event
      }; // end of event
      typedef void (enum std::ios_base::event, class std::ios_base &, int) *  std::ios_base::event_callback;
      void register_callback (event_callback __fn, int __index);
   protected:
      struct _Callback_list{
         struct _Callback_list{
         }; // end of _Callback_list
         constructor void _Callback_list (class ios_base::event_callback __fn, int __index, struct std::ios_base::_Callback_list *  __cb);
         void _M_add_reference ();
         int _M_remove_reference ();
      }; // end of _Callback_list
      void _M_call_callbacks (enum std::ios_base::event __ev) throw ();
      void _M_dispose_callbacks () throw ();
      struct _Words{
         struct _Words{
         }; // end of _Words
         constructor void _Words ();
         inline constructor copyconstructor converter void _Words (const const struct std::ios_base::_Words &  ) throw ();
         inline destructor void ~_Words () throw ();
      }; // end of _Words
      enum 
      {
         _S_local_word_size = 8
      }; // end of 
      struct std::ios_base::_Words &  _M_grow_words (int __index, _Bool __iword);
      void _M_init () throw ();
   public:
      class Init{
         class Init{
         }; // end of Init
      public:
         constructor void Init ();
         destructor void ~Init ();
      private:
         /* variable */ static _Atomic_word _S_refcount;
         /* variable */ static _Bool _S_synced_with_stdio;
      }; // end of Init
      fmtflags flags ()const volatile restrict ;
      fmtflags flags (fmtflags __fmtfl);
      fmtflags setf (fmtflags __fmtfl);
      fmtflags setf (fmtflags __fmtfl, fmtflags __mask);
      void unsetf (fmtflags __mask);
      streamsize precision ()const volatile restrict ;
      streamsize precision (streamsize __prec);
      streamsize width ()const volatile restrict ;
      streamsize width (streamsize __wide);
      static static _Bool sync_with_stdio (_Bool __sync = true);
      class std::locale imbue (const const class std::locale &  __loc) throw ();
      class std::locale getloc ()const volatile restrict ;
      const const class std::locale &  _M_getloc ()const volatile restrict ;
      static static int xalloc () throw ();
      long &  iword (int __ix);
      void *  &  pword (int __ix);
      virtual destructor void ~ios_base ();
   protected:
      constructor void ios_base () throw ();
   private:
      constructor copyconstructor converter void ios_base (const const class std::ios_base &  );
      class std::ios_base &  operator= (const const class std::ios_base &  );
   }; // end of ios_base
   inline class std::ios_base &  boolalpha (class std::ios_base &  __base);
   inline class std::ios_base &  noboolalpha (class std::ios_base &  __base);
   inline class std::ios_base &  showbase (class std::ios_base &  __base);
   inline class std::ios_base &  noshowbase (class std::ios_base &  __base);
   inline class std::ios_base &  showpoint (class std::ios_base &  __base);
   inline class std::ios_base &  noshowpoint (class std::ios_base &  __base);
   inline class std::ios_base &  showpos (class std::ios_base &  __base);
   inline class std::ios_base &  noshowpos (class std::ios_base &  __base);
   inline class std::ios_base &  skipws (class std::ios_base &  __base);
   inline class std::ios_base &  noskipws (class std::ios_base &  __base);
   inline class std::ios_base &  uppercase (class std::ios_base &  __base);
   inline class std::ios_base &  nouppercase (class std::ios_base &  __base);
   inline class std::ios_base &  unitbuf (class std::ios_base &  __base);
   inline class std::ios_base &  nounitbuf (class std::ios_base &  __base);
   inline class std::ios_base &  internal (class std::ios_base &  __base);
   inline class std::ios_base &  left (class std::ios_base &  __base);
   inline class std::ios_base &  right (class std::ios_base &  __base);
   inline class std::ios_base &  dec (class std::ios_base &  __base);
   inline class std::ios_base &  hex (class std::ios_base &  __base);
   inline class std::ios_base &  oct (class std::ios_base &  __base);
   inline class std::ios_base &  fixed (class std::ios_base &  __base);
   inline class std::ios_base &  scientific (class std::ios_base &  __base);
} // end of std
namespace std
{
   template < typename _CharT, typename _Traits >
      streamsize __copy_streambufs_eof (basic_streambuf<_CharT, _Traits> *  , basic_streambuf<_CharT, _Traits> *  , _Bool &  );
   template < typename _CharT, typename _Traits = char_traits<_CharT> >
      class basic_streambuf{
         class basic_streambuf{
         }; // end of basic_streambuf
      public:
         typedef _CharT std::basic_streambuf::char_type;
         typedef _Traits std::basic_streambuf::traits_type;
         typedef typename traits_type::int_type std::basic_streambuf::int_type;
         typedef typename traits_type::pos_type std::basic_streambuf::pos_type;
         typedef typename traits_type::off_type std::basic_streambuf::off_type;
         typedef basic_streambuf std::basic_streambuf::__streambuf_type;
         friend __copy_streambufs_eof;
         friend __copy_move_a2;
         friend find;
         friend operator>>;
         friend operator>>;
         friend getline;
      protected:
      public:
         virtual destructor void ~basic_streambuf<_CharT, _Traits> ();
         class std::locale pubimbue (const const class std::locale &  __loc);
         class std::locale getloc ()const volatile restrict ;
         basic_streambuf<_CharT, _Traits> *  pubsetbuf (char_type *  __s, streamsize __n);
         pos_type pubseekoff (off_type __off, class ios_base::seekdir __way, class ios_base::openmode __mode = class ios_base::in | class ios_base::out);
         pos_type pubseekpos (pos_type __sp, class ios_base::openmode __mode = class ios_base::in | class ios_base::out);
         int pubsync ();
         streamsize in_avail ();
         int_type snextc ();
         int_type sbumpc ();
         int_type sgetc ();
         streamsize sgetn (char_type *  __s, streamsize __n);
         int_type sputbackc (char_type __c);
         int_type sungetc ();
         int_type sputc (char_type __c);
         streamsize sputn (const const char_type *  __s, streamsize __n);
      protected:
         constructor void basic_streambuf<_CharT, _Traits> ();
         char_type *  eback ()const volatile restrict ;
         char_type *  gptr ()const volatile restrict ;
         char_type *  egptr ()const volatile restrict ;
         void gbump (int __n);
         void setg (char_type *  __gbeg, char_type *  __gnext, char_type *  __gend);
         char_type *  pbase ()const volatile restrict ;
         char_type *  pptr ()const volatile restrict ;
         char_type *  epptr ()const volatile restrict ;
         void pbump (int __n);
         void setp (char_type *  __pbeg, char_type *  __pend);
         virtual void imbue (const const class std::locale &  __loc);
         virtual basic_streambuf *  setbuf (char_type *  , streamsize );
         virtual pos_type seekoff (off_type , class ios_base::seekdir , class ios_base::openmode  = class ios_base::in | class ios_base::out);
         virtual pos_type seekpos (pos_type , class ios_base::openmode  = class ios_base::in | class ios_base::out);
         virtual int sync ();
         virtual streamsize showmanyc ();
         virtual streamsize xsgetn (char_type *  __s, streamsize __n);
         virtual int_type underflow ();
         virtual int_type uflow ();
         virtual int_type pbackfail (int_type __c = traits_type::eof());
         virtual streamsize xsputn (const const char_type *  __s, streamsize __n);
         virtual int_type overflow (int_type __c = traits_type::eof());
      public:
         void stossc ();
         void __safe_gbump (streamsize __n);
         void __safe_pbump (streamsize __n);
      private:
         constructor copyconstructor converter void basic_streambuf<_CharT, _Traits> (const const basic_streambuf<_CharT, _Traits> &  );
         basic_streambuf<_CharT, _Traits> &  operator= (const const basic_streambuf<_CharT, _Traits> &  );
      }; // end of basic_streambuf
   streamsize __copy_streambufs_eof (basic_streambuf *  __sbin, basic_streambuf *  __sbout, _Bool &  __ineof);
   streamsize __copy_streambufs_eof (basic_streambuf *  __sbin, basic_streambuf *  __sbout, _Bool &  __ineof);
} // end of std
extern "C" extern long __builtin_expect (long , long ) throw ();
namespace std
{
   virtual streamsize xsgetn (char_type *  __s, streamsize __n);
   virtual streamsize xsputn (const const char_type *  __s, streamsize __n);
   template < typename _CharT, typename _Traits >
      streamsize __copy_streambufs_eof (basic_streambuf<_CharT, _Traits> *  __sbin, basic_streambuf<_CharT, _Traits> *  __sbout, _Bool &  __ineof);
   template < typename _CharT, typename _Traits >
      inline streamsize __copy_streambufs (basic_streambuf<_CharT, _Traits> *  __sbin, basic_streambuf<_CharT, _Traits> *  __sbout);
} // end of std
typedef unsigned long wctype_t;
enum 
{
   __ISwupper = 0,
   __ISwlower = 1,
   __ISwalpha = 2,
   __ISwdigit = 3,
   __ISwxdigit = 4,
   __ISwspace = 5,
   __ISwprint = 6,
   __ISwgraph = 7,
   __ISwblank = 8,
   __ISwcntrl = 9,
   __ISwpunct = 10,
   __ISwalnum = 11,
   _ISwupper = ((__ISwupper) < 8 ? (int)((1UL << (__ISwupper)) << 24) : ((__ISwupper) < 16 ? (int)((1UL << (__ISwupper)) << 8) : ((__ISwupper) < 24 ? (int)((1UL << (__ISwupper)) >> 8) : (int)((1UL << (__ISwupper)) >> 24)))),
   _ISwlower = ((__ISwlower) < 8 ? (int)((1UL << (__ISwlower)) << 24) : ((__ISwlower) < 16 ? (int)((1UL << (__ISwlower)) << 8) : ((__ISwlower) < 24 ? (int)((1UL << (__ISwlower)) >> 8) : (int)((1UL << (__ISwlower)) >> 24)))),
   _ISwalpha = ((__ISwalpha) < 8 ? (int)((1UL << (__ISwalpha)) << 24) : ((__ISwalpha) < 16 ? (int)((1UL << (__ISwalpha)) << 8) : ((__ISwalpha) < 24 ? (int)((1UL << (__ISwalpha)) >> 8) : (int)((1UL << (__ISwalpha)) >> 24)))),
   _ISwdigit = ((__ISwdigit) < 8 ? (int)((1UL << (__ISwdigit)) << 24) : ((__ISwdigit) < 16 ? (int)((1UL << (__ISwdigit)) << 8) : ((__ISwdigit) < 24 ? (int)((1UL << (__ISwdigit)) >> 8) : (int)((1UL << (__ISwdigit)) >> 24)))),
   _ISwxdigit = ((__ISwxdigit) < 8 ? (int)((1UL << (__ISwxdigit)) << 24) : ((__ISwxdigit) < 16 ? (int)((1UL << (__ISwxdigit)) << 8) : ((__ISwxdigit) < 24 ? (int)((1UL << (__ISwxdigit)) >> 8) : (int)((1UL << (__ISwxdigit)) >> 24)))),
   _ISwspace = ((__ISwspace) < 8 ? (int)((1UL << (__ISwspace)) << 24) : ((__ISwspace) < 16 ? (int)((1UL << (__ISwspace)) << 8) : ((__ISwspace) < 24 ? (int)((1UL << (__ISwspace)) >> 8) : (int)((1UL << (__ISwspace)) >> 24)))),
   _ISwprint = ((__ISwprint) < 8 ? (int)((1UL << (__ISwprint)) << 24) : ((__ISwprint) < 16 ? (int)((1UL << (__ISwprint)) << 8) : ((__ISwprint) < 24 ? (int)((1UL << (__ISwprint)) >> 8) : (int)((1UL << (__ISwprint)) >> 24)))),
   _ISwgraph = ((__ISwgraph) < 8 ? (int)((1UL << (__ISwgraph)) << 24) : ((__ISwgraph) < 16 ? (int)((1UL << (__ISwgraph)) << 8) : ((__ISwgraph) < 24 ? (int)((1UL << (__ISwgraph)) >> 8) : (int)((1UL << (__ISwgraph)) >> 24)))),
   _ISwblank = ((__ISwblank) < 8 ? (int)((1UL << (__ISwblank)) << 24) : ((__ISwblank) < 16 ? (int)((1UL << (__ISwblank)) << 8) : ((__ISwblank) < 24 ? (int)((1UL << (__ISwblank)) >> 8) : (int)((1UL << (__ISwblank)) >> 24)))),
   _ISwcntrl = ((__ISwcntrl) < 8 ? (int)((1UL << (__ISwcntrl)) << 24) : ((__ISwcntrl) < 16 ? (int)((1UL << (__ISwcntrl)) << 8) : ((__ISwcntrl) < 24 ? (int)((1UL << (__ISwcntrl)) >> 8) : (int)((1UL << (__ISwcntrl)) >> 24)))),
   _ISwpunct = ((__ISwpunct) < 8 ? (int)((1UL << (__ISwpunct)) << 24) : ((__ISwpunct) < 16 ? (int)((1UL << (__ISwpunct)) << 8) : ((__ISwpunct) < 24 ? (int)((1UL << (__ISwpunct)) >> 8) : (int)((1UL << (__ISwpunct)) >> 24)))),
   _ISwalnum = ((__ISwalnum) < 8 ? (int)((1UL << (__ISwalnum)) << 24) : ((__ISwalnum) < 16 ? (int)((1UL << (__ISwalnum)) << 8) : ((__ISwalnum) < 24 ? (int)((1UL << (__ISwalnum)) >> 8) : (int)((1UL << (__ISwalnum)) >> 24))))
}; // end of 
extern "C" extern int iswalnum (wint_t __wc) throw ();
extern int iswalpha (wint_t __wc) throw ();
extern int iswcntrl (wint_t __wc) throw ();
extern int iswdigit (wint_t __wc) throw ();
extern int iswgraph (wint_t __wc) throw ();
extern int iswlower (wint_t __wc) throw ();
extern int iswprint (wint_t __wc) throw ();
extern int iswpunct (wint_t __wc) throw ();
extern int iswspace (wint_t __wc) throw ();
extern int iswupper (wint_t __wc) throw ();
extern int iswxdigit (wint_t __wc) throw ();
extern int iswblank (wint_t __wc) throw ();
extern wctype_t wctype (const const char *  __property) throw ();
extern int iswctype (wint_t __wc, wctype_t __desc) throw ();
extern wint_t towlower (wint_t __wc) throw ();
extern wint_t towupper (wint_t __wc) throw ();
extern "C" typedef const const __int32_t *  wctrans_t;
extern wctrans_t wctrans (const const char *  __property) throw ();
extern wint_t towctrans (wint_t __wc, wctrans_t __desc) throw ();
extern int iswalnum_l (wint_t __wc, locale_t __locale) throw ();
extern int iswalpha_l (wint_t __wc, locale_t __locale) throw ();
extern int iswcntrl_l (wint_t __wc, locale_t __locale) throw ();
extern int iswdigit_l (wint_t __wc, locale_t __locale) throw ();
extern int iswgraph_l (wint_t __wc, locale_t __locale) throw ();
extern int iswlower_l (wint_t __wc, locale_t __locale) throw ();
extern int iswprint_l (wint_t __wc, locale_t __locale) throw ();
extern int iswpunct_l (wint_t __wc, locale_t __locale) throw ();
extern int iswspace_l (wint_t __wc, locale_t __locale) throw ();
extern int iswupper_l (wint_t __wc, locale_t __locale) throw ();
extern int iswxdigit_l (wint_t __wc, locale_t __locale) throw ();
extern int iswblank_l (wint_t __wc, locale_t __locale) throw ();
extern wctype_t wctype_l (const const char *  __property, locale_t __locale) throw ();
extern int iswctype_l (wint_t __wc, wctype_t __desc, locale_t __locale) throw ();
extern wint_t towlower_l (wint_t __wc, locale_t __locale) throw ();
extern wint_t towupper_l (wint_t __wc, locale_t __locale) throw ();
extern wctrans_t wctrans_l (const const char *  __property, locale_t __locale) throw ();
extern wint_t towctrans_l (wint_t __wc, wctrans_t __desc, locale_t __locale) throw ();
namespace std
{
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
   using ::;
} // end of std
namespace std
{
   struct ctype_base{
      struct ctype_base{
      }; // end of ctype_base
      typedef const const int *  std::ctype_base::__to_type;
      typedef unsigned short std::ctype_base::mask;
      /* variable */ static const const mask = _ISupper upper;
      /* variable */ static const const mask = _ISlower lower;
      /* variable */ static const const mask = _ISalpha alpha;
      /* variable */ static const const mask = _ISdigit digit;
      /* variable */ static const const mask = _ISxdigit xdigit;
      /* variable */ static const const mask = _ISspace space;
      /* variable */ static const const mask = _ISprint print;
      /* variable */ static const const mask = _ISalpha | _ISdigit | _ISpunct graph;
      /* variable */ static const const mask = _IScntrl cntrl;
      /* variable */ static const const mask = _ISpunct punct;
      /* variable */ static const const mask = _ISalpha | _ISdigit alnum;
   }; // end of ctype_base
} // end of std
namespace std
{
   template < typename _CharT, typename _Traits = char_traits<_CharT> >
      class istreambuf_iterator : public:
      iterator{
         class istreambuf_iterator{
         }; // end of istreambuf_iterator
      public:
         typedef _CharT std::istreambuf_iterator::char_type;
         typedef _Traits std::istreambuf_iterator::traits_type;
         typedef typename _Traits::int_type std::istreambuf_iterator::int_type;
         typedef basic_streambuf<_CharT, _Traits> std::istreambuf_iterator::streambuf_type;
         typedef basic_istream<_CharT, _Traits> std::istreambuf_iterator::istream_type;
         friend copy;
         friend __copy_move_a2;
         friend find;
      private:
      public:
         constructor void istreambuf_iterator<_CharT, _Traits> () throw ();
         constructor converter void istreambuf_iterator<_CharT, _Traits> (istream_type &  __s) throw ();
         constructor converter void istreambuf_iterator<_CharT, _Traits> (streambuf_type *  __s) throw ();
         char_type operator* ()const volatile restrict ;
         istreambuf_iterator<_CharT, _Traits> &  operator++ ();
         istreambuf_iterator<_CharT, _Traits> operator++ (int );
         _Bool equal (const const istreambuf_iterator<_CharT, _Traits> &  __b)const volatile restrict ;
      private:
         int_type _M_get ()const volatile restrict ;
         _Bool _M_at_eof ()const volatile restrict ;
      }; // end of istreambuf_iterator
   template < typename _CharT, typename _Traits >
      inline _Bool operator== (const const istreambuf_iterator<_CharT, _Traits> &  __a, const const istreambuf_iterator<_CharT, _Traits> &  __b);
   template < typename _CharT, typename _Traits >
      inline _Bool operator!= (const const istreambuf_iterator<_CharT, _Traits> &  __a, const const istreambuf_iterator<_CharT, _Traits> &  __b);
   template < typename _CharT, typename _Traits = char_traits<_CharT> >
      class ostreambuf_iterator : public:
      iterator{
         class ostreambuf_iterator{
         }; // end of ostreambuf_iterator
      public:
         typedef _CharT std::ostreambuf_iterator::char_type;
         typedef _Traits std::ostreambuf_iterator::traits_type;
         typedef basic_streambuf<_CharT, _Traits> std::ostreambuf_iterator::streambuf_type;
         typedef basic_ostream<_CharT, _Traits> std::ostreambuf_iterator::ostream_type;
         friend copy;
      private:
      public:
         constructor converter void ostreambuf_iterator<_CharT, _Traits> (ostream_type &  __s) throw ();
         constructor converter void ostreambuf_iterator<_CharT, _Traits> (streambuf_type *  __s) throw ();
         ostreambuf_iterator<_CharT, _Traits> &  operator= (_CharT __c);
         ostreambuf_iterator<_CharT, _Traits> &  operator* ();
         ostreambuf_iterator<_CharT, _Traits> &  operator++ (int );
         ostreambuf_iterator<_CharT, _Traits> &  operator++ ();
         _Bool failed () throw ()const volatile restrict ;
         ostreambuf_iterator<_CharT, _Traits> &  _M_put (const const _CharT *  __ws, streamsize __len);
      }; // end of ostreambuf_iterator
   template < typename _CharT >
      typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, ostreambuf_iterator<_CharT> >::__type copy (istreambuf_iterator<_CharT> __first, istreambuf_iterator<_CharT> __last, ostreambuf_iterator<_CharT> __result);
   template < _Bool _IsMove, typename _CharT >
      typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, ostreambuf_iterator<_CharT> >::__type __copy_move_a2 (_CharT *  __first, _CharT *  __last, ostreambuf_iterator<_CharT> __result);
   template < _Bool _IsMove, typename _CharT >
      typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, ostreambuf_iterator<_CharT> >::__type __copy_move_a2 (const const _CharT *  __first, const const _CharT *  __last, ostreambuf_iterator<_CharT> __result);
   template < _Bool _IsMove, typename _CharT >
      typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, _CharT *>::__type __copy_move_a2 (istreambuf_iterator<_CharT> __first, istreambuf_iterator<_CharT> __last, _CharT *  __result);
   template < typename _CharT >
      typename __gnu_cxx::__enable_if<__is_char<_CharT>::__value, istreambuf_iterator<_CharT> >::__type find (istreambuf_iterator<_CharT> __first, istreambuf_iterator<_CharT> __last, const const _CharT &  __val);
} // end of std
namespace std
{
   template < typename _Tp >
      void __convert_to_v (const const char *  , _Tp &  , class ios_base::iostate &  , const const __c_locale &  ) throw ();
   void __convert_to_v (const const char *  , float &  , class ios_base::iostate &  , const const __c_locale &  ) throw ();
   void __convert_to_v (const const char *  , double &  , class ios_base::iostate &  , const const __c_locale &  ) throw ();
   void __convert_to_v (const const char *  , long double &  , class ios_base::iostate &  , const const __c_locale &  ) throw ();
   template < typename _CharT, typename _Traits >
      struct __pad{
         struct __pad{
         }; // end of __pad
         static static void _S_pad (class std::ios_base &  __io, _CharT __fill, _CharT *  __news, const const _CharT *  __olds, streamsize __newlen, streamsize __oldlen);
      }; // end of __pad
   template < typename _CharT >
      _CharT *  __add_grouping (_CharT *  __s, _CharT __sep, const const char *  __gbeg, size_t __gsize, const const _CharT *  __first, const const _CharT *  __last);
   template < typename _CharT >
      inline ostreambuf_iterator<_CharT> __write (ostreambuf_iterator<_CharT> __s, const const _CharT *  __ws, int __len);
   template < typename _CharT, typename _OutIter >
      inline _OutIter __write (_OutIter __s, const const _CharT *  __ws, int __len);
   template < typename _CharT >
      class __ctype_abstract_base : public:
      class locale::facet, public:
      struct std::ctype_base{
         class __ctype_abstract_base{
         }; // end of __ctype_abstract_base
      public:
         typedef _CharT std::__ctype_abstract_base::char_type;
         _Bool is (mask __m, char_type __c)const volatile restrict ;
         const const char_type *  is (const const char_type *  __lo, const const char_type *  __hi, mask *  __vec)const volatile restrict ;
         const const char_type *  scan_is (mask __m, const const char_type *  __lo, const const char_type *  __hi)const volatile restrict ;
         const const char_type *  scan_not (mask __m, const const char_type *  __lo, const const char_type *  __hi)const volatile restrict ;
         char_type toupper (char_type __c)const volatile restrict ;
         const const char_type *  toupper (char_type *  __lo, const const char_type *  __hi)const volatile restrict ;
         char_type tolower (char_type __c)const volatile restrict ;
         const const char_type *  tolower (char_type *  __lo, const const char_type *  __hi)const volatile restrict ;
         char_type widen (char __c)const volatile restrict ;
         const const char *  widen (const const char *  __lo, const const char *  __hi, char_type *  __to)const volatile restrict ;
         char narrow (char_type __c, char __dfault)const volatile restrict ;
         const const char_type *  narrow (const const char_type *  __lo, const const char_type *  __hi, char __dfault, char *  __to)const volatile restrict ;
      protected:
         constructor explicit void __ctype_abstract_base<_CharT> (size_t __refs = 0);
         virtual destructor void ~__ctype_abstract_base<_CharT> ();
         virtual _Bool do_is (mask __m, char_type __c) = 0const volatile restrict ;
         virtual const const char_type *  do_is (const const char_type *  __lo, const const char_type *  __hi, mask *  __vec) = 0const volatile restrict ;
         virtual const const char_type *  do_scan_is (mask __m, const const char_type *  __lo, const const char_type *  __hi) = 0const volatile restrict ;
         virtual const const char_type *  do_scan_not (mask __m, const const char_type *  __lo, const const char_type *  __hi) = 0const volatile restrict ;
         virtual char_type do_toupper (char_type __c) = 0const volatile restrict ;
         virtual const const char_type *  do_toupper (char_type *  __lo, const const char_type *  __hi) = 0const volatile restrict ;
         virtual char_type do_tolower (char_type __c) = 0const volatile restrict ;
         virtual const const char_type *  do_tolower (char_type *  __lo, const const char_type *  __hi) = 0const volatile restrict ;
         virtual char_type do_widen (char __c) = 0const volatile restrict ;
         virtual const const char *  do_widen (const const char *  __lo, const const char *  __hi, char_type *  __to) = 0const volatile restrict ;
         virtual char do_narrow (char_type __c, char __dfault) = 0const volatile restrict ;
         virtual const const char_type *  do_narrow (const const char_type *  __lo, const const char_type *  __hi, char __dfault, char *  __to) = 0const volatile restrict ;
      }; // end of __ctype_abstract_base
   template < typename _CharT >
      class ctype : public:
      __ctype_abstract_base<_CharT>{
         class ctype{
         }; // end of ctype
      public:
         typedef _CharT std::ctype::char_type;
         typedef typename __ctype_abstract_base<_CharT>::mask std::ctype::mask;
         /* variable */ static class locale::id id;
         constructor explicit void ctype<_CharT> (size_t __refs = 0);
      protected:
         virtual destructor void ~ctype<_CharT> ();
         virtual _Bool do_is (mask __m, char_type __c)const volatile restrict ;
         virtual const const char_type *  do_is (const const char_type *  __lo, const const char_type *  __hi, mask *  __vec)const volatile restrict ;
         virtual const const char_type *  do_scan_is (mask __m, const const char_type *  __lo, const const char_type *  __hi)const volatile restrict ;
         virtual const const char_type *  do_scan_not (mask __m, const const char_type *  __lo, const const char_type *  __hi)const volatile restrict ;
         virtual char_type do_toupper (char_type __c)const volatile restrict ;
         virtual const const char_type *  do_toupper (char_type *  __lo, const const char_type *  __hi)const volatile restrict ;
         virtual char_type do_tolower (char_type __c)const volatile restrict ;
         virtual const const char_type *  do_tolower (char_type *  __lo, const const char_type *  __hi)const volatile restrict ;
         virtual char_type do_widen (char __c)const volatile restrict ;
         virtual const const char *  do_widen (const const char *  __lo, const const char *  __hi, char_type *  __dest)const volatile restrict ;
         virtual char do_narrow (char_type , char __dfault)const volatile restrict ;
         virtual const const char_type *  do_narrow (const const char_type *  __lo, const const char_type *  __hi, char __dfault, char *  __to)const volatile restrict ;
      }; // end of ctype
   /* variable */ class locale::id =  id;
   template < typename _CharT >
      class ctype_byname : public:
      ctype<_CharT>{
         class ctype_byname{
         }; // end of ctype_byname
      public:
         typedef typename ctype<_CharT>::mask std::ctype_byname::mask;
         constructor explicit void ctype_byname<_CharT> (const const char *  __s, size_t __refs = 0);
      protected:
         virtual destructor void ~ctype_byname<_CharT> ();
      }; // end of ctype_byname
} // end of std
namespace std
{
   _Bool is (mask __m, char __c)const volatile restrict ;
   const const char *  is (const const char *  __low, const const char *  __high, mask *  __vec)const volatile restrict ;
   const const char *  scan_is (mask __m, const const char *  __low, const const char *  __high)const volatile restrict ;
   const const char *  scan_not (mask __m, const const char *  __low, const const char *  __high)const volatile restrict ;
} // end of std
namespace std
{
   class __num_base{
      class __num_base{
      }; // end of __num_base
   public:
      enum 
      {
         _S_ominus,
         _S_oplus,
         _S_ox,
         _S_oX,
         _S_odigits,
         _S_odigits_end = _S_odigits + 16,
         _S_oudigits = _S_odigits_end,
         _S_oudigits_end = _S_oudigits + 16,
         _S_oe = _S_odigits + 14,
         _S_oE = _S_oudigits + 14,
         _S_oend = _S_oudigits_end
      }; // end of 
      /* variable */ static const const char *  _S_atoms_out;
      /* variable */ static const const char *  _S_atoms_in;
      enum 
      {
         _S_iminus,
         _S_iplus,
         _S_ix,
         _S_iX,
         _S_izero,
         _S_ie = _S_izero + 14,
         _S_iE = _S_izero + 20,
         _S_iend = 26
      }; // end of 
      static static void _S_format_float (const const class std::ios_base &  __io, char *  __fptr, char __mod) throw ();
   }; // end of __num_base
   template < typename _CharT >
      struct __numpunct_cache : public:
      class locale::facet{
         struct __numpunct_cache{
         }; // end of __numpunct_cache
         constructor converter void __numpunct_cache<_CharT> (size_t __refs = 0);
         virtual destructor void ~__numpunct_cache<_CharT> ();
         void _M_cache (const const class std::locale &  __loc);
      private:
         __numpunct_cache<_CharT> &  operator= (const const __numpunct_cache<_CharT> &  );
         constructor copyconstructor explicit void __numpunct_cache<_CharT> (const const __numpunct_cache<_CharT> &  );
      }; // end of __numpunct_cache
   virtual destructor void ~__numpunct_cache<_CharT> ();
   namespace __cxx11
   {
      template < typename _CharT >
         class numpunct : public:
         class locale::facet{
            class numpunct{
            }; // end of numpunct
         public:
            typedef _CharT std::__cxx11::numpunct::char_type;
            typedef basic_string<_CharT> std::__cxx11::numpunct::string_type;
            typedef __numpunct_cache<_CharT> std::__cxx11::numpunct::__cache_type;
         protected:
         public:
            /* variable */ static class locale::id id;
            constructor explicit void numpunct<_CharT> (size_t __refs = 0);
            constructor explicit void numpunct<_CharT> (__cache_type *  __cache, size_t __refs = 0);
            constructor explicit void numpunct<_CharT> (__c_locale __cloc, size_t __refs = 0);
            char_type decimal_point ()const volatile restrict ;
            char_type thousands_sep ()const volatile restrict ;
            string grouping ()const volatile restrict ;
            string_type truename ()const volatile restrict ;
            string_type falsename ()const volatile restrict ;
         protected:
            virtual destructor void ~numpunct<_CharT> ();
            virtual char_type do_decimal_point ()const volatile restrict ;
            virtual char_type do_thousands_sep ()const volatile restrict ;
            virtual string do_grouping ()const volatile restrict ;
            virtual string_type do_truename ()const volatile restrict ;
            virtual string_type do_falsename ()const volatile restrict ;
            void _M_initialize_numpunct (__c_locale __cloc = 0);
         }; // end of numpunct
      /* variable */ class locale::id =  id;
      virtual destructor void ~numpunct ();
      void _M_initialize_numpunct (__c_locale __cloc);
      virtual destructor void ~numpunct ();
      void _M_initialize_numpunct (__c_locale __cloc);
      template < typename _CharT >
         class numpunct_byname : public:
         numpunct<_CharT>{
            class numpunct_byname{
            }; // end of numpunct_byname
         public:
            typedef _CharT std::__cxx11::numpunct_byname::char_type;
            typedef basic_string<_CharT> std::__cxx11::numpunct_byname::string_type;
            constructor explicit void numpunct_byname<_CharT> (const const char *  __s, size_t __refs = 0);
         protected:
            virtual destructor void ~numpunct_byname<_CharT> ();
         }; // end of numpunct_byname
   } // end of __cxx11
   template < typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
      class num_get : public:
      class locale::facet{
         class num_get{
         }; // end of num_get
      public:
         typedef _CharT std::num_get::char_type;
         typedef _InIter std::num_get::iter_type;
         /* variable */ static class locale::id id;
         constructor explicit void num_get<_CharT, _InIter> (size_t __refs = 0);
         iter_type get (iter_type __in, iter_type __end, class std::ios_base &  __io, class ios_base::iostate &  __err, _Bool &  __v)const volatile restrict ;
         iter_type get (iter_type __in, iter_type __end, class std::ios_base &  __io, class ios_base::iostate &  __err, long &  __v)const volatile restrict ;
         iter_type get (iter_type __in, iter_type __end, class std::ios_base &  __io, class ios_base::iostate &  __err, unsigned short &  __v)const volatile restrict ;
         iter_type get (iter_type __in, iter_type __end, class std::ios_base &  __io, class ios_base::iostate &  __err, unsigned int &  __v)const volatile restrict ;
         iter_type get (iter_type __in, iter_type __end, class std::ios_base &  __io, class ios_base::iostate &  __err, unsigned long &  __v)const volatile restrict ;
         iter_type get (iter_type __in, iter_type __end, class std::ios_base &  __io, class ios_base::iostate &  __err, long long &  __v)const volatile restrict ;
         iter_type get (iter_type __in, iter_type __end, class std::ios_base &  __io, class ios_base::iostate &  __err, unsigned long long &  __v)const volatile restrict ;
         iter_type get (iter_type __in, iter_type __end, class std::ios_base &  __io, class ios_base::iostate &  __err, float &  __v)const volatile restrict ;
         iter_type get (iter_type __in, iter_type __end, class std::ios_base &  __io, class ios_base::iostate &  __err, double &  __v)const volatile restrict ;
         iter_type get (iter_type __in, iter_type __end, class std::ios_base &  __io, class ios_base::iostate &  __err, long double &  __v)const volatile restrict ;
         iter_type get (iter_type __in, iter_type __end, class std::ios_base &  __io, class ios_base::iostate &  __err, void *  &  __v)const volatile restrict ;
      protected:
         virtual destructor void ~num_get<_CharT, _InIter> ();
         iter_type _M_extract_float (iter_type , iter_type , class std::ios_base &  , class ios_base::iostate &  , string &  )const volatile restrict ;
         template < typename _ValueT >
            iter_type _M_extract_int (iter_type , iter_type , class std::ios_base &  , class ios_base::iostate &  , _ValueT &  )const volatile restrict ;
         template < typename _CharT2 >
            typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value, int>::__type _M_find (const const _CharT2 *  , size_t __len, _CharT2 __c)const volatile restrict ;
         template < typename _CharT2 >
            typename __gnu_cxx::__enable_if::__value, int>::__type _M_find (const const _CharT2 *  __zero, size_t __len, _CharT2 __c)const volatile restrict ;
         virtual iter_type do_get (iter_type , iter_type , class std::ios_base &  , class ios_base::iostate &  , _Bool &  )const volatile restrict ;
         virtual iter_type do_get (iter_type __beg, iter_type __end, class std::ios_base &  __io, class ios_base::iostate &  __err, long &  __v)const volatile restrict ;
         virtual iter_type do_get (iter_type __beg, iter_type __end, class std::ios_base &  __io, class ios_base::iostate &  __err, unsigned short &  __v)const volatile restrict ;
         virtual iter_type do_get (iter_type __beg, iter_type __end, class std::ios_base &  __io, class ios_base::iostate &  __err, unsigned int &  __v)const volatile restrict ;
         virtual iter_type do_get (iter_type __beg, iter_type __end, class std::ios_base &  __io, class ios_base::iostate &  __err, unsigned long &  __v)const volatile restrict ;
         virtual iter_type do_get (iter_type __beg, iter_type __end, class std::ios_base &  __io, class ios_base::iostate &  __err, long long &  __v)const volatile restrict ;
         virtual iter_type do_get (iter_type __beg, iter_type __end, class std::ios_base &  __io, class ios_base::iostate &  __err, unsigned long long &  __v)const volatile restrict ;
         virtual iter_type do_get (iter_type , iter_type , class std::ios_base &  , class ios_base::iostate &  , float &  )const volatile restrict ;
         virtual iter_type do_get (iter_type , iter_type , class std::ios_base &  , class ios_base::iostate &  , double &  )const volatile restrict ;
         virtual iter_type do_get (iter_type , iter_type , class std::ios_base &  , class ios_base::iostate &  , long double &  )const volatile restrict ;
         virtual iter_type do_get (iter_type , iter_type , class std::ios_base &  , class ios_base::iostate &  , void *  &  )const volatile restrict ;
      }; // end of num_get
   /* variable */ class locale::id =  id;
   template < typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
      class num_put : public:
      class locale::facet{
         class num_put{
         }; // end of num_put
      public:
         typedef _CharT std::num_put::char_type;
         typedef _OutIter std::num_put::iter_type;
         /* variable */ static class locale::id id;
         constructor explicit void num_put<_CharT, _OutIter> (size_t __refs = 0);
         iter_type put (iter_type __s, class std::ios_base &  __io, char_type __fill, _Bool __v)const volatile restrict ;
         iter_type put (iter_type __s, class std::ios_base &  __io, char_type __fill, long __v)const volatile restrict ;
         iter_type put (iter_type __s, class std::ios_base &  __io, char_type __fill, unsigned long __v)const volatile restrict ;
         iter_type put (iter_type __s, class std::ios_base &  __io, char_type __fill, long long __v)const volatile restrict ;
         iter_type put (iter_type __s, class std::ios_base &  __io, char_type __fill, unsigned long long __v)const volatile restrict ;
         iter_type put (iter_type __s, class std::ios_base &  __io, char_type __fill, double __v)const volatile restrict ;
         iter_type put (iter_type __s, class std::ios_base &  __io, char_type __fill, long double __v)const volatile restrict ;
         iter_type put (iter_type __s, class std::ios_base &  __io, char_type __fill, const const void *  __v)const volatile restrict ;
      protected:
         template < typename _ValueT >
            iter_type _M_insert_float (iter_type , class std::ios_base &  __io, char_type __fill, char __mod, _ValueT __v)const volatile restrict ;
         void _M_group_float (const const char *  __grouping, size_t __grouping_size, char_type __sep, const const char_type *  __p, char_type *  __new, char_type *  __cs, int &  __len)const volatile restrict ;
         template < typename _ValueT >
            iter_type _M_insert_int (iter_type , class std::ios_base &  __io, char_type __fill, _ValueT __v)const volatile restrict ;
         void _M_group_int (const const char *  __grouping, size_t __grouping_size, char_type __sep, class std::ios_base &  __io, char_type *  __new, char_type *  __cs, int &  __len)const volatile restrict ;
         void _M_pad (char_type __fill, streamsize __w, class std::ios_base &  __io, char_type *  __new, const const char_type *  __cs, int &  __len)const volatile restrict ;
         virtual destructor void ~num_put<_CharT, _OutIter> ();
         virtual iter_type do_put (iter_type __s, class std::ios_base &  __io, char_type __fill, _Bool __v)const volatile restrict ;
         virtual iter_type do_put (iter_type __s, class std::ios_base &  __io, char_type __fill, long __v)const volatile restrict ;
         virtual iter_type do_put (iter_type __s, class std::ios_base &  __io, char_type __fill, unsigned long __v)const volatile restrict ;
         virtual iter_type do_put (iter_type __s, class std::ios_base &  __io, char_type __fill, long long __v)const volatile restrict ;
         virtual iter_type do_put (iter_type __s, class std::ios_base &  __io, char_type __fill, unsigned long long __v)const volatile restrict ;
         virtual iter_type do_put (iter_type , class std::ios_base &  , char_type , double )const volatile restrict ;
         virtual iter_type do_put (iter_type , class std::ios_base &  , char_type , long double )const volatile restrict ;
         virtual iter_type do_put (iter_type , class std::ios_base &  , char_type , const const void *  )const volatile restrict ;
      }; // end of num_put
   /* variable */ class locale::id =  id;
   template < typename _CharT >
      inline _Bool isspace (_CharT __c, const const class std::locale &  __loc);
   template < typename _CharT >
      inline _Bool isprint (_CharT __c, const const class std::locale &  __loc);
   template < typename _CharT >
      inline _Bool iscntrl (_CharT __c, const const class std::locale &  __loc);
   template < typename _CharT >
      inline _Bool isupper (_CharT __c, const const class std::locale &  __loc);
   template < typename _CharT >
      inline _Bool islower (_CharT __c, const const class std::locale &  __loc);
   template < typename _CharT >
      inline _Bool isalpha (_CharT __c, const const class std::locale &  __loc);
   template < typename _CharT >
      inline _Bool isdigit (_CharT __c, const const class std::locale &  __loc);
   template < typename _CharT >
      inline _Bool ispunct (_CharT __c, const const class std::locale &  __loc);
   template < typename _CharT >
      inline _Bool isxdigit (_CharT __c, const const class std::locale &  __loc);
   template < typename _CharT >
      inline _Bool isalnum (_CharT __c, const const class std::locale &  __loc);
   template < typename _CharT >
      inline _Bool isgraph (_CharT __c, const const class std::locale &  __loc);
   template < typename _CharT >
      inline _CharT toupper (_CharT __c, const const class std::locale &  __loc);
   template < typename _CharT >
      inline _CharT tolower (_CharT __c, const const class std::locale &  __loc);
} // end of std
namespace std
{
   template < typename _Facet >
      struct __use_cache{
         struct __use_cache{
         }; // end of __use_cache
         const const _Facet *  operator() (const const class std::locale &  __loc)const volatile restrict ;
      }; // end of __use_cache
   void _M_cache (const const class std::locale &  __loc);
   _Bool __verify_grouping (const const char *  __grouping, size_t __grouping_size, const const string &  __grouping_tmp) throw ();
   _InIter _M_extract_float (_InIter __beg, _InIter __end, class std::ios_base &  __io, class ios_base::iostate &  __err, string &  __xtrc)const volatile restrict ;
   template < typename _ValueT >
      _InIter _M_extract_int (_InIter __beg, _InIter __end, class std::ios_base &  __io, class ios_base::iostate &  __err, _ValueT &  __v)const volatile restrict ;
   virtual _InIter do_get (iter_type __beg, iter_type __end, class std::ios_base &  __io, class ios_base::iostate &  __err, _Bool &  __v)const volatile restrict ;
   virtual _InIter do_get (iter_type __beg, iter_type __end, class std::ios_base &  __io, class ios_base::iostate &  __err, float &  __v)const volatile restrict ;
   virtual _InIter do_get (iter_type __beg, iter_type __end, class std::ios_base &  __io, class ios_base::iostate &  __err, double &  __v)const volatile restrict ;
   virtual _InIter do_get (iter_type __beg, iter_type __end, class std::ios_base &  __io, class ios_base::iostate &  __err, long double &  __v)const volatile restrict ;
   virtual _InIter do_get (iter_type __beg, iter_type __end, class std::ios_base &  __io, class ios_base::iostate &  __err, void *  &  __v)const volatile restrict ;
   void _M_pad (_CharT __fill, streamsize __w, class std::ios_base &  __io, _CharT *  __new, const const _CharT *  __cs, int &  __len)const volatile restrict ;
   template < typename _CharT, typename _ValueT >
      int __int_to_char (_CharT *  __bufend, _ValueT __v, const const _CharT *  __lit, class ios_base::fmtflags __flags, _Bool __dec);
   void _M_group_int (const const char *  __grouping, size_t __grouping_size, _CharT __sep, class std::ios_base &  , _CharT *  __new, _CharT *  __cs, int &  __len)const volatile restrict ;
   template < typename _ValueT >
      _OutIter _M_insert_int (_OutIter __s, class std::ios_base &  __io, _CharT __fill, _ValueT __v)const volatile restrict ;
   void _M_group_float (const const char *  __grouping, size_t __grouping_size, _CharT __sep, const const _CharT *  __p, _CharT *  __new, _CharT *  __cs, int &  __len)const volatile restrict ;
   template < typename _ValueT >
      _OutIter _M_insert_float (_OutIter __s, class std::ios_base &  __io, _CharT __fill, char __mod, _ValueT __v)const volatile restrict ;
   virtual _OutIter do_put (iter_type __s, class std::ios_base &  __io, char_type __fill, _Bool __v)const volatile restrict ;
   virtual _OutIter do_put (iter_type __s, class std::ios_base &  __io, char_type __fill, double __v)const volatile restrict ;
   virtual _OutIter do_put (iter_type __s, class std::ios_base &  __io, char_type __fill, long double __v)const volatile restrict ;
   virtual _OutIter do_put (iter_type __s, class std::ios_base &  __io, char_type __fill, const const void *  __v)const volatile restrict ;
   static void _S_pad (class std::ios_base &  __io, _CharT __fill, _CharT *  __news, const const _CharT *  __olds, streamsize __newlen, streamsize __oldlen);
   template < typename _CharT >
      _CharT *  __add_grouping (_CharT *  __s, _CharT __sep, const const char *  __gbeg, size_t __gsize, const const _CharT *  __first, const const _CharT *  __last);
} // end of std
extern "C" extern void *  __builtin_alloca (unsigned int ) throw ();
namespace std
{
   template < typename _Facet >
      inline const const _Facet &  __check_facet (const const _Facet *  __f);
   template < typename _CharT, typename _Traits = char_traits<_CharT> >
      class basic_ios : public:
      class std::ios_base{
         class basic_ios{
         }; // end of basic_ios
      public:
         typedef _CharT std::basic_ios::char_type;
         typedef typename _Traits::int_type std::basic_ios::int_type;
         typedef typename _Traits::pos_type std::basic_ios::pos_type;
         typedef typename _Traits::off_type std::basic_ios::off_type;
         typedef _Traits std::basic_ios::traits_type;
         typedef ctype<_CharT> std::basic_ios::__ctype_type;
         typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > std::basic_ios::__num_put_type;
         typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > std::basic_ios::__num_get_type;
      protected:
      public:
         converter void *  operator void * ()const volatile restrict ;
         _Bool operator! ()const volatile restrict ;
         iostate rdstate ()const volatile restrict ;
         void clear (iostate __state = goodbit);
         void setstate (iostate __state);
         void _M_setstate (iostate __state);
         _Bool good ()const volatile restrict ;
         _Bool eof ()const volatile restrict ;
         _Bool fail ()const volatile restrict ;
         _Bool bad ()const volatile restrict ;
         iostate exceptions ()const volatile restrict ;
         void exceptions (iostate __except);
         constructor explicit void basic_ios<_CharT, _Traits> (basic_streambuf<_CharT, _Traits> *  __sb);
         virtual destructor void ~basic_ios<_CharT, _Traits> ();
         basic_ostream<_CharT, _Traits> *  tie ()const volatile restrict ;
         basic_ostream<_CharT, _Traits> *  tie (basic_ostream<_CharT, _Traits> *  __tiestr);
         basic_streambuf<_CharT, _Traits> *  rdbuf ()const volatile restrict ;
         basic_streambuf<_CharT, _Traits> *  rdbuf (basic_streambuf<_CharT, _Traits> *  __sb);
         basic_ios<_CharT, _Traits> &  copyfmt (const const basic_ios<_CharT, _Traits> &  __rhs);
         char_type fill ()const volatile restrict ;
         char_type fill (char_type __ch);
         class std::locale imbue (const const class std::locale &  __loc);
         char narrow (char_type __c, char __dfault)const volatile restrict ;
         char_type widen (char __c)const volatile restrict ;
      protected:
         constructor void basic_ios<_CharT, _Traits> ();
         void init (basic_streambuf<_CharT, _Traits> *  __sb);
         void _M_cache_locale (const const class std::locale &  __loc);
      }; // end of basic_ios
} // end of std
namespace std
{
   void clear (iostate __state = goodbit);
   basic_streambuf<_CharT, _Traits> *  rdbuf (basic_streambuf<_CharT, _Traits> *  __sb);
   basic_ios<_CharT, _Traits> &  copyfmt (const const basic_ios<_CharT, _Traits> &  __rhs);
   class std::locale imbue (const const class std::locale &  __loc);
   void init (basic_streambuf<_CharT, _Traits> *  __sb);
   void _M_cache_locale (const const class std::locale &  __loc);
} // end of std
namespace std
{
   template < typename _CharT, typename _Traits = char_traits<_CharT> >
      class basic_ostream : virtual public:
      basic_ios<_CharT, _Traits>{
         class basic_ostream{
         }; // end of basic_ostream
      public:
         typedef _CharT std::basic_ostream::char_type;
         typedef typename _Traits::int_type std::basic_ostream::int_type;
         typedef typename _Traits::pos_type std::basic_ostream::pos_type;
         typedef typename _Traits::off_type std::basic_ostream::off_type;
         typedef _Traits std::basic_ostream::traits_type;
         typedef basic_streambuf<_CharT, _Traits> std::basic_ostream::__streambuf_type;
         typedef basic_ios<_CharT, _Traits> std::basic_ostream::__ios_type;
         typedef basic_ostream<_CharT, _Traits> std::basic_ostream::__ostream_type;
         typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > std::basic_ostream::__num_put_type;
         typedef ctype<_CharT> std::basic_ostream::__ctype_type;
         constructor explicit void basic_ostream<_CharT, _Traits> (__streambuf_type *  __sb);
         virtual destructor void ~basic_ostream<_CharT, _Traits> ();
         class sentry{
         }; // end of sentry
         __ostream_type &  operator<< (__ostream_type &(__ostream_type &) *  __pf);
         __ostream_type &  operator<< (__ios_type &(__ios_type &) *  __pf);
         __ostream_type &  operator<< (class std::ios_base &(class std::ios_base &) *  __pf);
         __ostream_type &  operator<< (long __n);
         __ostream_type &  operator<< (unsigned long __n);
         __ostream_type &  operator<< (_Bool __n);
         __ostream_type &  operator<< (short __n);
         __ostream_type &  operator<< (unsigned short __n);
         __ostream_type &  operator<< (int __n);
         __ostream_type &  operator<< (unsigned int __n);
         __ostream_type &  operator<< (long long __n);
         __ostream_type &  operator<< (unsigned long long __n);
         __ostream_type &  operator<< (double __f);
         __ostream_type &  operator<< (float __f);
         __ostream_type &  operator<< (long double __f);
         __ostream_type &  operator<< (const const void *  __p);
         __ostream_type &  operator<< (__streambuf_type *  __sb);
         __ostream_type &  put (char_type __c);
         void _M_write (const const char_type *  __s, streamsize __n);
         __ostream_type &  write (const const char_type *  __s, streamsize __n);
         __ostream_type &  flush ();
         pos_type tellp ();
         __ostream_type &  seekp (pos_type );
         __ostream_type &  seekp (off_type , class ios_base::seekdir );
      protected:
         constructor void basic_ostream<_CharT, _Traits> ();
         template < typename _ValueT >
            __ostream_type &  _M_insert (_ValueT __v);
      }; // end of basic_ostream
   class sentry{
      class sentry{
      }; // end of sentry
   public:
      constructor explicit void sentry (basic_ostream<_CharT, _Traits> &  __os);
      destructor void ~sentry ();
      converter _Bool operator bool ()const volatile restrict ;
   }; // end of sentry
   template < typename _CharT, typename _Traits >
      inline basic_ostream<_CharT, _Traits> &  operator<< (basic_ostream<_CharT, _Traits> &  __out, _CharT __c);
   template < typename _CharT, typename _Traits >
      inline basic_ostream<_CharT, _Traits> &  operator<< (basic_ostream<_CharT, _Traits> &  __out, char __c);
   template < class _Traits >
      inline basic_ostream &  operator<< (basic_ostream &  __out, char __c);
   template < class _Traits >
      inline basic_ostream &  operator<< (basic_ostream &  __out, signed char __c);
   template < class _Traits >
      inline basic_ostream &  operator<< (basic_ostream &  __out, unsigned char __c);
   template < typename _CharT, typename _Traits >
      inline basic_ostream<_CharT, _Traits> &  operator<< (basic_ostream<_CharT, _Traits> &  __out, const const _CharT *  __s);
   template < typename _CharT, typename _Traits >
      basic_ostream<_CharT, _Traits> &  operator<< (basic_ostream<_CharT, _Traits> &  __out, const const char *  __s);
   template < class _Traits >
      inline basic_ostream &  operator<< (basic_ostream &  __out, const const char *  __s);
   template < class _Traits >
      inline basic_ostream &  operator<< (basic_ostream &  __out, const const signed char *  __s);
   template < class _Traits >
      inline basic_ostream &  operator<< (basic_ostream &  __out, const const unsigned char *  __s);
   template < typename _CharT, typename _Traits >
      inline basic_ostream<_CharT, _Traits> &  endl (basic_ostream<_CharT, _Traits> &  __os);
   template < typename _CharT, typename _Traits >
      inline basic_ostream<_CharT, _Traits> &  ends (basic_ostream<_CharT, _Traits> &  __os);
   template < typename _CharT, typename _Traits >
      inline basic_ostream<_CharT, _Traits> &  flush (basic_ostream<_CharT, _Traits> &  __os);
} // end of std
namespace std
{
   constructor explicit void sentry (basic_ostream<_CharT, _Traits> &  __os);
   template < typename _ValueT >
      basic_ostream<_CharT, _Traits> &  _M_insert (_ValueT __v);
   basic_ostream<_CharT, _Traits> &  operator<< (short __n);
   basic_ostream<_CharT, _Traits> &  operator<< (int __n);
   basic_ostream<_CharT, _Traits> &  operator<< (__streambuf_type *  __sbin);
   basic_ostream<_CharT, _Traits> &  put (char_type __c);
   basic_ostream<_CharT, _Traits> &  write (const const _CharT *  __s, streamsize __n);
   basic_ostream<_CharT, _Traits> &  flush ();
   typename basic_ostream<_CharT, _Traits>::pos_type tellp ();
   basic_ostream<_CharT, _Traits> &  seekp (pos_type __pos);
   basic_ostream<_CharT, _Traits> &  seekp (off_type __off, class ios_base::seekdir __dir);
   template < typename _CharT, typename _Traits >
      basic_ostream<_CharT, _Traits> &  operator<< (basic_ostream<_CharT, _Traits> &  __out, const const char *  __s);
} // end of std
namespace std
{
   template < typename _CharT, typename _Traits = char_traits<_CharT> >
      class basic_istream : virtual public:
      basic_ios<_CharT, _Traits>{
         class basic_istream{
         }; // end of basic_istream
      public:
         typedef _CharT std::basic_istream::char_type;
         typedef typename _Traits::int_type std::basic_istream::int_type;
         typedef typename _Traits::pos_type std::basic_istream::pos_type;
         typedef typename _Traits::off_type std::basic_istream::off_type;
         typedef _Traits std::basic_istream::traits_type;
         typedef basic_streambuf<_CharT, _Traits> std::basic_istream::__streambuf_type;
         typedef basic_ios<_CharT, _Traits> std::basic_istream::__ios_type;
         typedef basic_istream<_CharT, _Traits> std::basic_istream::__istream_type;
         typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > std::basic_istream::__num_get_type;
         typedef ctype<_CharT> std::basic_istream::__ctype_type;
      protected:
      public:
         constructor explicit void basic_istream<_CharT, _Traits> (__streambuf_type *  __sb);
         virtual destructor void ~basic_istream<_CharT, _Traits> ();
         class sentry{
         }; // end of sentry
         __istream_type &  operator>> (__istream_type &(__istream_type &) *  __pf);
         __istream_type &  operator>> (__ios_type &(__ios_type &) *  __pf);
         __istream_type &  operator>> (class std::ios_base &(class std::ios_base &) *  __pf);
         __istream_type &  operator>> (_Bool &  __n);
         __istream_type &  operator>> (short &  __n);
         __istream_type &  operator>> (unsigned short &  __n);
         __istream_type &  operator>> (int &  __n);
         __istream_type &  operator>> (unsigned int &  __n);
         __istream_type &  operator>> (long &  __n);
         __istream_type &  operator>> (unsigned long &  __n);
         __istream_type &  operator>> (long long &  __n);
         __istream_type &  operator>> (unsigned long long &  __n);
         __istream_type &  operator>> (float &  __f);
         __istream_type &  operator>> (double &  __f);
         __istream_type &  operator>> (long double &  __f);
         __istream_type &  operator>> (void *  &  __p);
         __istream_type &  operator>> (__streambuf_type *  __sb);
         streamsize gcount ()const volatile restrict ;
         int_type get ();
         __istream_type &  get (char_type &  __c);
         __istream_type &  get (char_type *  __s, streamsize __n, char_type __delim);
         __istream_type &  get (char_type *  __s, streamsize __n);
         __istream_type &  get (__streambuf_type &  __sb, char_type __delim);
         __istream_type &  get (__streambuf_type &  __sb);
         __istream_type &  getline (char_type *  __s, streamsize __n, char_type __delim);
         __istream_type &  getline (char_type *  __s, streamsize __n);
         __istream_type &  ignore (streamsize __n, int_type __delim);
         __istream_type &  ignore (streamsize __n);
         __istream_type &  ignore ();
         int_type peek ();
         __istream_type &  read (char_type *  __s, streamsize __n);
         streamsize readsome (char_type *  __s, streamsize __n);
         __istream_type &  putback (char_type __c);
         __istream_type &  unget ();
         int sync ();
         pos_type tellg ();
         __istream_type &  seekg (pos_type );
         __istream_type &  seekg (off_type , class ios_base::seekdir );
      protected:
         constructor void basic_istream<_CharT, _Traits> ();
         template < typename _ValueT >
            __istream_type &  _M_extract (_ValueT &  __v);
      }; // end of basic_istream
   basic_istream &  getline (char_type *  __s, streamsize __n, char_type __delim);
   basic_istream &  ignore (streamsize __n);
   basic_istream &  ignore (streamsize __n, int_type __delim);
   basic_istream &  getline (char_type *  __s, streamsize __n, char_type __delim);
   basic_istream &  ignore (streamsize __n);
   basic_istream &  ignore (streamsize __n, int_type __delim);
   class sentry{
      class sentry{
      }; // end of sentry
   public:
      typedef _Traits std::basic_istream::sentry::traits_type;
      typedef basic_streambuf<_CharT, _Traits> std::basic_istream::sentry::__streambuf_type;
      typedef basic_istream<_CharT, _Traits> std::basic_istream::sentry::__istream_type;
      typedef typename __istream_type::__ctype_type std::basic_istream::sentry::__ctype_type;
      typedef typename _Traits::int_type std::basic_istream::sentry::__int_type;
      constructor explicit void sentry (basic_istream<_CharT, _Traits> &  __is, _Bool __noskipws = false);
      converter _Bool operator bool ()const volatile restrict ;
   }; // end of sentry
   template < typename _CharT, typename _Traits >
      basic_istream<_CharT, _Traits> &  operator>> (basic_istream<_CharT, _Traits> &  __in, _CharT &  __c);
   template < class _Traits >
      inline basic_istream &  operator>> (basic_istream &  __in, unsigned char &  __c);
   template < class _Traits >
      inline basic_istream &  operator>> (basic_istream &  __in, signed char &  __c);
   template < typename _CharT, typename _Traits >
      basic_istream<_CharT, _Traits> &  operator>> (basic_istream<_CharT, _Traits> &  __in, _CharT *  __s);
   basic_istream &  operator>> (basic_istream &  __in, char *  __s);
   template < class _Traits >
      inline basic_istream &  operator>> (basic_istream &  __in, unsigned char *  __s);
   template < class _Traits >
      inline basic_istream &  operator>> (basic_istream &  __in, signed char *  __s);
   template < typename _CharT, typename _Traits = char_traits<_CharT> >
      class basic_iostream : public:
      basic_istream<_CharT, _Traits>, public:
      basic_ostream<_CharT, _Traits>{
         class basic_iostream{
         }; // end of basic_iostream
      public:
         typedef _CharT std::basic_iostream::char_type;
         typedef typename _Traits::int_type std::basic_iostream::int_type;
         typedef typename _Traits::pos_type std::basic_iostream::pos_type;
         typedef typename _Traits::off_type std::basic_iostream::off_type;
         typedef _Traits std::basic_iostream::traits_type;
         typedef basic_istream<_CharT, _Traits> std::basic_iostream::__istream_type;
         typedef basic_ostream<_CharT, _Traits> std::basic_iostream::__ostream_type;
         constructor explicit void basic_iostream<_CharT, _Traits> (basic_streambuf<_CharT, _Traits> *  __sb);
         virtual destructor void ~basic_iostream<_CharT, _Traits> ();
      protected:
         constructor void basic_iostream<_CharT, _Traits> ();
      }; // end of basic_iostream
   template < typename _CharT, typename _Traits >
      basic_istream<_CharT, _Traits> &  ws (basic_istream<_CharT, _Traits> &  __is);
} // end of std
namespace std
{
   constructor explicit void sentry (basic_istream<_CharT, _Traits> &  __in, _Bool __noskip = false);
   template < typename _ValueT >
      basic_istream<_CharT, _Traits> &  _M_extract (_ValueT &  __v);
   basic_istream<_CharT, _Traits> &  operator>> (short &  __n);
   basic_istream<_CharT, _Traits> &  operator>> (int &  __n);
   basic_istream<_CharT, _Traits> &  operator>> (__streambuf_type *  __sbout);
   typename basic_istream<_CharT, _Traits>::int_type get ();
   basic_istream<_CharT, _Traits> &  get (char_type &  __c);
   basic_istream<_CharT, _Traits> &  get (char_type *  __s, streamsize __n, char_type __delim);
   basic_istream<_CharT, _Traits> &  get (__streambuf_type &  __sb, char_type __delim);
   basic_istream<_CharT, _Traits> &  getline (char_type *  __s, streamsize __n, char_type __delim);
   basic_istream<_CharT, _Traits> &  ignore ();
   basic_istream<_CharT, _Traits> &  ignore (streamsize __n);
   basic_istream<_CharT, _Traits> &  ignore (streamsize __n, int_type __delim);
   typename basic_istream<_CharT, _Traits>::int_type peek ();
   basic_istream<_CharT, _Traits> &  read (char_type *  __s, streamsize __n);
   streamsize readsome (char_type *  __s, streamsize __n);
   basic_istream<_CharT, _Traits> &  putback (char_type __c);
   basic_istream<_CharT, _Traits> &  unget ();
   int sync ();
   typename basic_istream<_CharT, _Traits>::pos_type tellg ();
   basic_istream<_CharT, _Traits> &  seekg (pos_type __pos);
   basic_istream<_CharT, _Traits> &  seekg (off_type __off, class ios_base::seekdir __dir);
   template < typename _CharT, typename _Traits >
      basic_istream<_CharT, _Traits> &  operator>> (basic_istream<_CharT, _Traits> &  __in, _CharT &  __c);
   template < typename _CharT, typename _Traits >
      basic_istream<_CharT, _Traits> &  operator>> (basic_istream<_CharT, _Traits> &  __in, _CharT *  __s);
   template < typename _CharT, typename _Traits >
      basic_istream<_CharT, _Traits> &  ws (basic_istream<_CharT, _Traits> &  __in);
} // end of std
namespace std
{
   template < typename _Tp, typename _CharT = char, typename _Traits = char_traits<_CharT>, typename _Dist = ptrdiff_t >
      class istream_iterator : public:
      iterator{
         class istream_iterator{
         }; // end of istream_iterator
      public:
         typedef _CharT std::istream_iterator::char_type;
         typedef _Traits std::istream_iterator::traits_type;
         typedef basic_istream<_CharT, _Traits> std::istream_iterator::istream_type;
      private:
      public:
         constructor void istream_iterator<_Tp, _CharT, _Traits, _Dist> ();
         constructor converter void istream_iterator<_Tp, _CharT, _Traits, _Dist> (istream_type &  __s);
         constructor copyconstructor converter void istream_iterator<_Tp, _CharT, _Traits, _Dist> (const const istream_iterator<_Tp, _CharT, _Traits, _Dist> &  __obj);
         const const _Tp &  operator* ()const volatile restrict ;
         const const _Tp *  operator-> ()const volatile restrict ;
         istream_iterator<_Tp, _CharT, _Traits, _Dist> &  operator++ ();
         istream_iterator<_Tp, _CharT, _Traits, _Dist> operator++ (int );
         _Bool _M_equal (const const istream_iterator<_Tp, _CharT, _Traits, _Dist> &  __x)const volatile restrict ;
      private:
         void _M_read ();
      }; // end of istream_iterator
   template < typename _Tp, typename _CharT, typename _Traits, typename _Dist >
      inline _Bool operator== (const const istream_iterator<_Tp, _CharT, _Traits, _Dist> &  __x, const const istream_iterator<_Tp, _CharT, _Traits, _Dist> &  __y);
   template < class _Tp, class _CharT, class _Traits, class _Dist >
      inline _Bool operator!= (const const istream_iterator<_Tp, _CharT, _Traits, _Dist> &  __x, const const istream_iterator<_Tp, _CharT, _Traits, _Dist> &  __y);
   template < typename _Tp, typename _CharT = char, typename _Traits = char_traits<_CharT> >
      class ostream_iterator : public:
      iterator{
         class ostream_iterator{
         }; // end of ostream_iterator
      public:
         typedef _CharT std::ostream_iterator::char_type;
         typedef _Traits std::ostream_iterator::traits_type;
         typedef basic_ostream<_CharT, _Traits> std::ostream_iterator::ostream_type;
      private:
      public:
         constructor converter void ostream_iterator<_Tp, _CharT, _Traits> (ostream_type &  __s);
         constructor void ostream_iterator<_Tp, _CharT, _Traits> (ostream_type &  __s, const const _CharT *  __c);
         constructor copyconstructor converter void ostream_iterator<_Tp, _CharT, _Traits> (const const ostream_iterator<_Tp, _CharT, _Traits> &  __obj);
         ostream_iterator<_Tp, _CharT, _Traits> &  operator= (const const _Tp &  __value);
         ostream_iterator<_Tp, _CharT, _Traits> &  operator* ();
         ostream_iterator<_Tp, _CharT, _Traits> &  operator++ ();
         ostream_iterator<_Tp, _CharT, _Traits> &  operator++ (int );
      }; // end of ostream_iterator
} // end of std
namespace std
{
   namespace __detail
   {
      struct _List_node_base{
         struct _List_node_base{
         }; // end of _List_node_base
         static static void swap (struct std::__detail::_List_node_base &  __x, struct std::__detail::_List_node_base &  __y) throw ();
         void _M_transfer (const struct std::__detail::_List_node_base *  __first, const struct std::__detail::_List_node_base *  __last) throw ();
         void _M_reverse () throw ();
         void _M_hook (const struct std::__detail::_List_node_base *  __position) throw ();
         void _M_unhook () throw ();
         inline constructor void _List_node_base () throw ();
      }; // end of _List_node_base
   } // end of __detail
   template < typename _Tp >
      struct _List_node : public:
      __detail::_List_node_base{
         struct _List_node{
         }; // end of _List_node
         _Tp *  _M_valptr ();
         const const _Tp *  _M_valptr ()const volatile restrict ;
      }; // end of _List_node
   template < typename _Tp >
      struct _List_iterator{
         struct _List_iterator{
         }; // end of _List_iterator
         typedef _List_iterator<_Tp> std::_List_iterator::_Self;
         typedef _List_node<_Tp> std::_List_iterator::_Node;
         typedef ptrdiff_t std::_List_iterator::difference_type;
         typedef std::bidirectional_iterator_tag std::_List_iterator::iterator_category;
         typedef _Tp std::_List_iterator::value_type;
         typedef _Tp *  std::_List_iterator::pointer;
         typedef _Tp &  std::_List_iterator::reference;
         constructor void _List_iterator ();
         constructor explicit void _List_iterator (__detail::_List_node_base *  __x);
         _Self _M_const_cast ()const volatile restrict ;
         reference operator* ()const volatile restrict ;
         pointer operator-> ()const volatile restrict ;
         _Self &  operator++ ();
         _Self operator++ (int );
         _Self &  operator-- ();
         _Self operator-- (int );
         _Bool operator== (const const _Self &  __x)const volatile restrict ;
         _Bool operator!= (const const _Self &  __x)const volatile restrict ;
      }; // end of _List_iterator
   template < typename _Tp >
      struct _List_const_iterator{
         struct _List_const_iterator{
         }; // end of _List_const_iterator
         typedef _List_const_iterator<_Tp> std::_List_const_iterator::_Self;
         typedef const const _List_node<_Tp> std::_List_const_iterator::_Node;
         typedef _List_iterator<_Tp> std::_List_const_iterator::iterator;
         typedef ptrdiff_t std::_List_const_iterator::difference_type;
         typedef std::bidirectional_iterator_tag std::_List_const_iterator::iterator_category;
         typedef _Tp std::_List_const_iterator::value_type;
         typedef const const _Tp *  std::_List_const_iterator::pointer;
         typedef const const _Tp &  std::_List_const_iterator::reference;
         constructor void _List_const_iterator ();
         constructor explicit void _List_const_iterator (const const __detail::_List_node_base *  __x);
         constructor converter void _List_const_iterator (const const iterator &  __x);
         iterator _M_const_cast ()const volatile restrict ;
         reference operator* ()const volatile restrict ;
         pointer operator-> ()const volatile restrict ;
         _Self &  operator++ ();
         _Self operator++ (int );
         _Self &  operator-- ();
         _Self operator-- (int );
         _Bool operator== (const const _Self &  __x)const volatile restrict ;
         _Bool operator!= (const const _Self &  __x)const volatile restrict ;
      }; // end of _List_const_iterator
   template < typename _Val >
      inline _Bool operator== (const const _List_iterator<_Val> &  __x, const const _List_const_iterator<_Val> &  __y);
   template < typename _Val >
      inline _Bool operator!= (const const _List_iterator<_Val> &  __x, const const _List_const_iterator<_Val> &  __y);
   namespace __cxx11
   {
      template < typename _Tp, typename _Alloc >
         class _List_base{
            class _List_base{
            }; // end of _List_base
         protected:
            typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Tp>::other std::__cxx11::_List_base::_Tp_alloc_type;
            typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> std::__cxx11::_List_base::_Tp_alloc_traits;
            typedef typename _Tp_alloc_traits::template _Tp_alloc_traits::rebind<_List_node<_Tp> >::other std::__cxx11::_List_base::_Node_alloc_type;
            typedef __gnu_cxx::__alloc_traits<_Node_alloc_type> std::__cxx11::_List_base::_Node_alloc_traits;
            static static size_t _S_distance (const const __detail::_List_node_base *  __first, const const __detail::_List_node_base *  __last);
            struct _List_impl : public:
            _Node_alloc_type{
               struct _List_impl{
               }; // end of _List_impl
               constructor void _List_impl ();
               constructor converter void _List_impl (const const _Node_alloc_type &  __a);
            }; // end of _List_impl
            size_t _M_get_size ()const volatile restrict ;
            void _M_set_size (size_t __n);
            void _M_inc_size (size_t __n);
            void _M_dec_size (size_t __n);
            size_t _M_distance (const const __detail::_List_node_base *  __first, const const __detail::_List_node_base *  __last)const volatile restrict ;
            size_t _M_node_count ()const volatile restrict ;
            typename _Node_alloc_traits::pointer _M_get_node ();
            void _M_put_node (typename _Node_alloc_traits::pointer __p);
         public:
            typedef _Alloc std::__cxx11::_List_base::allocator_type;
            _Node_alloc_type &  _M_get_Node_allocator ();
            const const _Node_alloc_type &  _M_get_Node_allocator ()const volatile restrict ;
            constructor void _List_base<_Tp, _Alloc> ();
            constructor converter void _List_base<_Tp, _Alloc> (const const _Node_alloc_type &  __a);
            destructor void ~_List_base<_Tp, _Alloc> ();
            void _M_clear ();
            void _M_init ();
         }; // end of _List_base
      template < typename _Tp, typename _Alloc = std::allocator<_Tp> >
         class list : protected:
         _List_base<_Tp, _Alloc>{
            class list{
            }; // end of list
            typedef _List_base<_Tp, _Alloc> std::__cxx11::list::_Base;
            typedef typename _Base::_Tp_alloc_type std::__cxx11::list::_Tp_alloc_type;
            typedef typename _Base::_Tp_alloc_traits std::__cxx11::list::_Tp_alloc_traits;
            typedef typename _Base::_Node_alloc_type std::__cxx11::list::_Node_alloc_type;
            typedef typename _Base::_Node_alloc_traits std::__cxx11::list::_Node_alloc_traits;
         public:
            typedef _Tp std::__cxx11::list::value_type;
            typedef typename _Tp_alloc_traits::pointer std::__cxx11::list::pointer;
            typedef typename _Tp_alloc_traits::const_pointer std::__cxx11::list::const_pointer;
            typedef typename _Tp_alloc_traits::reference std::__cxx11::list::reference;
            typedef typename _Tp_alloc_traits::const_reference std::__cxx11::list::const_reference;
            typedef _List_iterator<_Tp> std::__cxx11::list::iterator;
            typedef _List_const_iterator<_Tp> std::__cxx11::list::const_iterator;
            typedef std::reverse_iterator std::__cxx11::list::const_reverse_iterator;
            typedef std::reverse_iterator std::__cxx11::list::reverse_iterator;
            typedef size_t std::__cxx11::list::size_type;
            typedef ptrdiff_t std::__cxx11::list::difference_type;
            typedef _Alloc std::__cxx11::list::allocator_type;
         protected:
            typedef _List_node<_Tp> std::__cxx11::list::_Node;
            using _Base::;
            using _Base::;
            using _Base::;
            using _Base::;
            _Node *  _M_create_node (const const value_type &  __x);
         public:
            constructor void list<_Tp, _Alloc> ();
            constructor explicit void list<_Tp, _Alloc> (const const allocator_type &  __a);
            constructor explicit void list<_Tp, _Alloc> (size_type __n, const const value_type &  __value = value_type(), const const allocator_type &  __a = allocator_type());
            constructor copyconstructor converter void list<_Tp, _Alloc> (const const list<_Tp, _Alloc> &  __x);
            template < typename _InputIterator >
               constructor void list<_Tp, _Alloc> (_InputIterator __first, _InputIterator __last, const const allocator_type &  __a = allocator_type());
            list<_Tp, _Alloc> &  operator= (const const list<_Tp, _Alloc> &  __x);
            void assign (size_type __n, const const value_type &  __val);
            template < typename _InputIterator >
               void assign (_InputIterator __first, _InputIterator __last);
            allocator_type get_allocator ()const volatile restrict ;
            iterator begin ();
            const_iterator begin ()const volatile restrict ;
            iterator end ();
            const_iterator end ()const volatile restrict ;
            reverse_iterator rbegin ();
            const_reverse_iterator rbegin ()const volatile restrict ;
            reverse_iterator rend ();
            const_reverse_iterator rend ()const volatile restrict ;
            _Bool empty ()const volatile restrict ;
            size_type size ()const volatile restrict ;
            size_type max_size ()const volatile restrict ;
            void resize (size_type __new_size, value_type __x = value_type());
            reference front ();
            const_reference front ()const volatile restrict ;
            reference back ();
            const_reference back ()const volatile restrict ;
            void push_front (const const value_type &  __x);
            void pop_front ();
            void push_back (const const value_type &  __x);
            void pop_back ();
            iterator insert (iterator __position, const const value_type &  __x);
            void insert (iterator __position, size_type __n, const const value_type &  __x);
            template < typename _InputIterator >
               void insert (iterator __position, _InputIterator __first, _InputIterator __last);
            iterator erase (iterator __position);
            iterator erase (iterator __first, iterator __last);
            void swap (list<_Tp, _Alloc> &  __x);
            void clear ();
            void splice (iterator __position, list<_Tp, _Alloc> &  __x);
            void splice (iterator __position, list<_Tp, _Alloc> &  __x, iterator __i);
            void splice (iterator __position, list<_Tp, _Alloc> &  __x, iterator __first, iterator __last);
            void remove (const const _Tp &  __value);
            template < typename _Predicate >
               void remove_if (_Predicate );
            void unique ();
            template < typename _BinaryPredicate >
               void unique (_BinaryPredicate );
            void merge (list<_Tp, _Alloc> &  __x);
            template < typename _StrictWeakOrdering >
               void merge (list<_Tp, _Alloc> &  __x, _StrictWeakOrdering __comp);
            void reverse ();
            void sort ();
            template < typename _StrictWeakOrdering >
               void sort (_StrictWeakOrdering );
         protected:
            template < typename _Integer >
               void _M_initialize_dispatch (_Integer __n, _Integer __x, struct std::__true_type );
            template < typename _InputIterator >
               void _M_initialize_dispatch (_InputIterator __first, _InputIterator __last, struct std::__false_type );
            void _M_fill_initialize (size_type __n, const const value_type &  __x);
            template < typename _Integer >
               void _M_assign_dispatch (_Integer __n, _Integer __val, struct std::__true_type );
            template < typename _InputIterator >
               void _M_assign_dispatch (_InputIterator __first, _InputIterator __last, struct std::__false_type );
            void _M_fill_assign (size_type __n, const const value_type &  __val);
            void _M_transfer (iterator __position, iterator __first, iterator __last);
            void _M_insert (iterator __position, const const value_type &  __x);
            void _M_erase (iterator __position);
            void _M_check_equal_allocators (list<_Tp, _Alloc> &  __x);
            const_iterator _M_resize_pos (size_type &  __new_size)const volatile restrict ;
         }; // end of list
   } // end of __cxx11
   template < typename _Tp, typename _Alloc >
      inline _Bool operator== (const const list<_Tp, _Alloc> &  __x, const const list<_Tp, _Alloc> &  __y);
   template < typename _Tp, typename _Alloc >
      inline _Bool operator< (const const list<_Tp, _Alloc> &  __x, const const list<_Tp, _Alloc> &  __y);
   template < typename _Tp, typename _Alloc >
      inline _Bool operator!= (const const list<_Tp, _Alloc> &  __x, const const list<_Tp, _Alloc> &  __y);
   template < typename _Tp, typename _Alloc >
      inline _Bool operator> (const const list<_Tp, _Alloc> &  __x, const const list<_Tp, _Alloc> &  __y);
   template < typename _Tp, typename _Alloc >
      inline _Bool operator<= (const const list<_Tp, _Alloc> &  __x, const const list<_Tp, _Alloc> &  __y);
   template < typename _Tp, typename _Alloc >
      inline _Bool operator>= (const const list<_Tp, _Alloc> &  __x, const const list<_Tp, _Alloc> &  __y);
   template < typename _Tp, typename _Alloc >
      inline void swap (list<_Tp, _Alloc> &  __x, list<_Tp, _Alloc> &  __y);
   template < typename _Tp >
      inline ptrdiff_t __distance (std::_List_iterator<_Tp> __first, std::_List_iterator<_Tp> __last, struct std::input_iterator_tag __tag);
   template < typename _Tp >
      inline ptrdiff_t __distance (std::_List_const_iterator<_Tp> __first, std::_List_const_iterator<_Tp> __last, struct std::input_iterator_tag );
} // end of std
extern "C" extern void __builtin_abort () throw ();
extern "C" extern int __builtin_constant_p (... ) throw ();
namespace std
{
   void _M_clear ();
   typename list<_Tp, _Alloc>::iterator insert (iterator __position, const const value_type &  __x);
   typename list<_Tp, _Alloc>::iterator erase (iterator __position);
   typename list<_Tp, _Alloc>::const_iterator _M_resize_pos (size_type &  __new_size)const volatile restrict ;
   void resize (size_type __new_size, value_type __x = value_type());
   list<_Tp, _Alloc> &  operator= (const const list<_Tp, _Alloc> &  __x);
   void _M_fill_assign (size_type __n, const const value_type &  __val);
   template < typename _InputIterator >
      void _M_assign_dispatch (_InputIterator __first2, _InputIterator __last2, struct std::__false_type );
   void remove (const const value_type &  __value);
   void unique ();
   void merge (list<_Tp, _Alloc> &  __x);
   template < typename _StrictWeakOrdering >
      void merge (list<_Tp, _Alloc> &  __x, _StrictWeakOrdering __comp);
   void sort ();
   template < typename _Predicate >
      void remove_if (_Predicate __pred);
   template < typename _BinaryPredicate >
      void unique (_BinaryPredicate __binary_pred);
   template < typename _StrictWeakOrdering >
      void sort (_StrictWeakOrdering __comp);
} // end of std
typedef enum QtValidLicenseForCoreModule QtCoreModule;
template < typename T >
   class QVector{
   }; // end of QVector
template < typename T >
   class QSet{
   }; // end of QSet
struct QListData{
   struct QListData{
   }; // end of QListData
   struct Data{
      struct Data{
      }; // end of Data
   }; // end of Data
   enum 
   {
      DataHeaderSize = sizeof(struct QListData::Data) - sizeof(void *)
   }; // end of 
   struct QListData::Data *  detach (int alloc);
   struct QListData::Data *  detach_grow (int *  i, int n);
   struct QListData::Data *  detach ();
   struct QListData::Data *  detach2 ();
   struct QListData::Data *  detach3 ();
   void realloc (int alloc);
   /* variable */ static struct QListData::Data shared_null;
   void *  *  erase (void *  *  xi);
   void *  *  append (int n);
   void *  *  append ();
   void *  *  append (const const struct QListData &  l);
   void *  *  append2 (const const struct QListData &  l);
   void *  *  prepend ();
   void *  *  insert (int i);
   void remove (int i);
   void remove (int i, int n);
   void move (int from, int to);
   inline int size ()const volatile restrict ;
   inline _Bool isEmpty ()const volatile restrict ;
   inline void *  *  at (int i)const volatile restrict ;
   inline void *  *  begin ()const volatile restrict ;
   inline void *  *  end ()const volatile restrict ;
}; // end of QListData
template < typename T >
   class QList{
      class QList{
      }; // end of QList
      struct Node{
         struct Node{
         }; // end of Node
         inline T &  t ();
      }; // end of Node
      union {
      }; // end of 
   public:
      inline constructor void QList ();
      inline constructor copyconstructor converter void QList (const const QList &  l);
      destructor void ~QList ();
      QList &  operator= (const const QList &  l);
      inline void swap (QList &  other);
      _Bool operator== (const const QList &  l)const volatile restrict ;
      inline _Bool operator!= (const const QList &  l)const volatile restrict ;
      inline int size ()const volatile restrict ;
      inline void detach ();
      inline void detachShared ();
      inline _Bool isDetached ()const volatile restrict ;
      inline void setSharable (_Bool sharable);
      inline _Bool isSharedWith (const const QList &  other)const volatile restrict ;
      inline _Bool isEmpty ()const volatile restrict ;
      void clear ();
      const const T &  at (int i)const volatile restrict ;
      const const T &  operator[] (int i)const volatile restrict ;
      T &  operator[] (int i);
      void reserve (int size);
      void append (const const T &  t);
      void append (const const QList &  t);
      void prepend (const const T &  t);
      void insert (int i, const const T &  t);
      void replace (int i, const const T &  t);
      void removeAt (int i);
      int removeAll (const const T &  t);
      _Bool removeOne (const const T &  t);
      T takeAt (int i);
      T takeFirst ();
      T takeLast ();
      void move (int from, int to);
      void swap (int i, int j);
      int indexOf (const const T &  t, int from = 0)const volatile restrict ;
      int lastIndexOf (const const T &  t, int from = -1)const volatile restrict ;
      class QBool contains (const const T &  t)const volatile restrict ;
      int count (const const T &  t)const volatile restrict ;
      class const_iterator{
      }; // end of const_iterator
      class iterator{
         class iterator{
         }; // end of iterator
      public:
         typedef std::random_access_iterator_tag QList::iterator::iterator_category;
         typedef qptrdiff QList::iterator::difference_type;
         typedef T QList::iterator::value_type;
         typedef T *  QList::iterator::pointer;
         typedef T &  QList::iterator::reference;
         inline constructor void iterator ();
         inline constructor converter void iterator (struct QList::Node *  n);
         inline constructor copyconstructor converter void iterator (const const class QList::iterator &  o);
         inline T &  operator* ()const volatile restrict ;
         inline T *  operator-> ()const volatile restrict ;
         inline T &  operator[] (int j)const volatile restrict ;
         inline _Bool operator== (const const class QList::iterator &  o)const volatile restrict ;
         inline _Bool operator!= (const const class QList::iterator &  o)const volatile restrict ;
         inline _Bool operator< (const const class QList::iterator &  other)const volatile restrict ;
         inline _Bool operator<= (const const class QList::iterator &  other)const volatile restrict ;
         inline _Bool operator> (const const class QList::iterator &  other)const volatile restrict ;
         inline _Bool operator>= (const const class QList::iterator &  other)const volatile restrict ;
         inline _Bool operator== (const const class QList::const_iterator &  o)const volatile restrict ;
         inline _Bool operator!= (const const class QList::const_iterator &  o)const volatile restrict ;
         inline _Bool operator< (const const class QList::const_iterator &  other)const volatile restrict ;
         inline _Bool operator<= (const const class QList::const_iterator &  other)const volatile restrict ;
         inline _Bool operator> (const const class QList::const_iterator &  other)const volatile restrict ;
         inline _Bool operator>= (const const class QList::const_iterator &  other)const volatile restrict ;
         inline class QList::iterator &  operator++ ();
         inline class QList::iterator operator++ (int );
         inline class QList::iterator &  operator-- ();
         inline class QList::iterator operator-- (int );
         inline class QList::iterator &  operator+= (int j);
         inline class QList::iterator &  operator-= (int j);
         inline class QList::iterator operator+ (int j)const volatile restrict ;
         inline class QList::iterator operator- (int j)const volatile restrict ;
         inline int operator- (class QList::iterator j)const volatile restrict ;
      }; // end of iterator
      class const_iterator{
         class const_iterator{
         }; // end of const_iterator
      public:
         typedef std::random_access_iterator_tag QList::const_iterator::iterator_category;
         typedef qptrdiff QList::const_iterator::difference_type;
         typedef T QList::const_iterator::value_type;
         typedef const const T *  QList::const_iterator::pointer;
         typedef const const T &  QList::const_iterator::reference;
         inline constructor void const_iterator ();
         inline constructor converter void const_iterator (struct QList::Node *  n);
         inline constructor copyconstructor converter void const_iterator (const const class QList::const_iterator &  o);
         inline constructor converter void const_iterator (const const class QList::iterator &  o);
         inline const const T &  operator* ()const volatile restrict ;
         inline const const T *  operator-> ()const volatile restrict ;
         inline const const T &  operator[] (int j)const volatile restrict ;
         inline _Bool operator== (const const class QList::const_iterator &  o)const volatile restrict ;
         inline _Bool operator!= (const const class QList::const_iterator &  o)const volatile restrict ;
         inline _Bool operator< (const const class QList::const_iterator &  other)const volatile restrict ;
         inline _Bool operator<= (const const class QList::const_iterator &  other)const volatile restrict ;
         inline _Bool operator> (const const class QList::const_iterator &  other)const volatile restrict ;
         inline _Bool operator>= (const const class QList::const_iterator &  other)const volatile restrict ;
         inline class QList::const_iterator &  operator++ ();
         inline class QList::const_iterator operator++ (int );
         inline class QList::const_iterator &  operator-- ();
         inline class QList::const_iterator operator-- (int );
         inline class QList::const_iterator &  operator+= (int j);
         inline class QList::const_iterator &  operator-= (int j);
         inline class QList::const_iterator operator+ (int j)const volatile restrict ;
         inline class QList::const_iterator operator- (int j)const volatile restrict ;
         inline int operator- (class QList::const_iterator j)const volatile restrict ;
      }; // end of const_iterator
      inline class QList::iterator begin ();
      inline class QList::const_iterator begin ()const volatile restrict ;
      inline class QList::const_iterator constBegin ()const volatile restrict ;
      inline class QList::iterator end ();
      inline class QList::const_iterator end ()const volatile restrict ;
      inline class QList::const_iterator constEnd ()const volatile restrict ;
      class QList::iterator insert (class QList::iterator before, const const T &  t);
      class QList::iterator erase (class QList::iterator pos);
      class QList::iterator erase (class QList::iterator first, class QList::iterator last);
      typedef class QList::iterator QList::Iterator;
      typedef class QList::const_iterator QList::ConstIterator;
      inline int count ()const volatile restrict ;
      inline int length ()const volatile restrict ;
      inline T &  first ();
      inline const const T &  first ()const volatile restrict ;
      T &  last ();
      const const T &  last ()const volatile restrict ;
      inline void removeFirst ();
      inline void removeLast ();
      inline _Bool startsWith (const const T &  t)const volatile restrict ;
      inline _Bool endsWith (const const T &  t)const volatile restrict ;
      QList mid (int pos, int length = -1)const volatile restrict ;
      T value (int i)const volatile restrict ;
      T value (int i, const const T &  defaultValue)const volatile restrict ;
      inline void push_back (const const T &  t);
      inline void push_front (const const T &  t);
      inline T &  front ();
      inline const const T &  front ()const volatile restrict ;
      inline T &  back ();
      inline const const T &  back ()const volatile restrict ;
      inline void pop_front ();
      inline void pop_back ();
      inline _Bool empty ()const volatile restrict ;
      typedef int QList::size_type;
      typedef T QList::value_type;
      typedef value_type *  QList::pointer;
      typedef const const value_type *  QList::const_pointer;
      typedef value_type &  QList::reference;
      typedef const const value_type &  QList::const_reference;
      typedef qptrdiff QList::difference_type;
      QList &  operator+= (const const QList &  l);
      inline QList operator+ (const const QList &  l)const volatile restrict ;
      inline QList &  operator+= (const const T &  t);
      inline QList &  operator<< (const const T &  t);
      inline QList &  operator<< (const const QList &  l);
      QVector toVector ()const volatile restrict ;
      QSet toSet ()const volatile restrict ;
      static static QList fromVector (const const QVector &  vector);
      static static QList fromSet (const const QSet &  set);
      static inline static QList fromStdList (const const std::list &  list);
      inline std::list toStdList ()const volatile restrict ;
   private:
      struct QList::Node *  detach_helper_grow (int i, int n);
      void detach_helper (int alloc);
      void detach_helper ();
      void free (struct QListData::Data *  d);
      void node_construct (struct QList::Node *  n, const const T &  t);
      void node_destruct (struct QList::Node *  n);
      void node_copy (struct QList::Node *  from, struct QList::Node *  to, struct QList::Node *  src);
      void node_destruct (struct QList::Node *  from, struct QList::Node *  to);
   }; // end of QList
inline void node_construct (struct QList::Node *  n, const const T &  t);
inline void node_destruct (struct QList::Node *  n);
inline void node_copy (struct QList::Node *  from, struct QList::Node *  to, struct QList::Node *  src);
inline void node_destruct (struct QList::Node *  from, struct QList::Node *  to);
inline QList &  operator= (const const QList &  l);
inline typename QList::iterator insert (class QList::iterator before, const const T &  t);
inline typename QList::iterator erase (class QList::iterator it);
inline const const T &  at (int i)const volatile restrict ;
inline const const T &  operator[] (int i)const volatile restrict ;
inline T &  operator[] (int i);
inline void removeAt (int i);
inline T takeAt (int i);
inline T takeFirst ();
inline T takeLast ();
void reserve (int alloc);
void append (const const T &  t);
inline void prepend (const const T &  t);
inline void insert (int i, const const T &  t);
inline void replace (int i, const const T &  t);
inline void swap (int i, int j);
inline void move (int from, int to);
QList mid (int pos, int alength = -1)const volatile restrict ;
T value (int i)const volatile restrict ;
T value (int i, const const T &  defaultValue)const volatile restrict ;
typename QList::Node *  detach_helper_grow (int i, int c);
void detach_helper (int alloc);
void detach_helper ();
destructor void ~QList ();
_Bool operator== (const const QList &  l)const volatile restrict ;
void free (struct QListData::Data *  data);
void clear ();
int removeAll (const const T &  _t);
_Bool removeOne (const const T &  _t);
typename QList::iterator erase (typename QList::iterator afirst, typename QList::iterator alast);
QList &  operator+= (const const QList &  l);
inline void append (const const QList &  t);
int indexOf (const const T &  t, int from = 0)const volatile restrict ;
int lastIndexOf (const const T &  t, int from = -1)const volatile restrict ;
class QBool contains (const const T &  t)const volatile restrict ;
int count (const const T &  t)const volatile restrict ;
template < class T >
   class QListIterator{
      class QListIterator{
      }; // end of QListIterator
      typedef typename QList::const_iterator QListIterator::const_iterator;
   public:
      inline constructor converter void QListIterator (const const QList &  container);
      inline QListIterator &  operator= (const const QList &  container);
      inline void toFront ();
      inline void toBack ();
      inline _Bool hasNext ()const volatile restrict ;
      inline const const T &  next ();
      inline const const T &  peekNext ()const volatile restrict ;
      inline _Bool hasPrevious ()const volatile restrict ;
      inline const const T &  previous ();
      inline const const T &  peekPrevious ()const volatile restrict ;
      inline _Bool findNext (const const T &  t);
      inline _Bool findPrevious (const const T &  t);
   }; // end of QListIterator
template < class T >
   class QMutableListIterator{
      class QMutableListIterator{
      }; // end of QMutableListIterator
      typedef typename QList::iterator QMutableListIterator::iterator;
      typedef typename QList::const_iterator QMutableListIterator::const_iterator;
      inline _Bool item_exists ()const volatile restrict ;
   public:
      inline constructor converter void QMutableListIterator (QList &  container);
      inline destructor void ~QMutableListIterator ();
      inline QMutableListIterator &  operator= (QList &  container);
      inline void toFront ();
      inline void toBack ();
      inline _Bool hasNext ()const volatile restrict ;
      inline T &  next ();
      inline T &  peekNext ()const volatile restrict ;
      inline _Bool hasPrevious ()const volatile restrict ;
      inline T &  previous ();
      inline T &  peekPrevious ()const volatile restrict ;
      inline void remove ();
      inline void setValue (const const T &  t)const volatile restrict ;
      inline T &  value ();
      inline const const T &  value ()const volatile restrict ;
      inline void insert (const const T &  t);
      inline _Bool findNext (const const T &  t);
      inline _Bool findPrevious (const const T &  t);
   }; // end of QMutableListIterator
typedef enum QtValidLicenseForCoreModule QtCoreModule;
template < typename T >
   struct QScopedPointerDeleter{
      struct QScopedPointerDeleter{
      }; // end of QScopedPointerDeleter
      static inline static void cleanup (T *  pointer);
   }; // end of QScopedPointerDeleter
template < typename T >
   struct QScopedPointerArrayDeleter{
      struct QScopedPointerArrayDeleter{
      }; // end of QScopedPointerArrayDeleter
      static inline static void cleanup (T *  pointer);
   }; // end of QScopedPointerArrayDeleter
struct QScopedPointerPodDeleter{
   struct QScopedPointerPodDeleter{
   }; // end of QScopedPointerPodDeleter
   static inline static void cleanup (void *  pointer);
}; // end of QScopedPointerPodDeleter
template < typename T, typename Cleanup = QScopedPointerDeleter >
   class QScopedPointer{
      class QScopedPointer{
      }; // end of QScopedPointer
      typedef ::*T *  QScopedPointer::RestrictedBool;
   public:
      inline constructor explicit void QScopedPointer (T *  p = 0);
      inline destructor void ~QScopedPointer ();
      inline T &  operator* ()const volatile restrict ;
      inline T *  operator-> ()const volatile restrict ;
      inline _Bool operator! ()const volatile restrict ;
      inline converter RestrictedBool operator type-parameter-0-0 *QScopedPointer::* ()const volatile restrict ;
      inline T *  data ()const volatile restrict ;
      inline _Bool isNull ()const volatile restrict ;
      inline void reset (T *  other = 0);
      inline T *  take ();
      inline void swap (QScopedPointer &  other);
      typedef T *  QScopedPointer::pointer;
   protected:
   private:
      constructor copyconstructor converter void QScopedPointer (const const QScopedPointer &  );
      QScopedPointer &  operator= (const const QScopedPointer &  );
   }; // end of QScopedPointer
template < class T, class Cleanup >
   inline _Bool operator== (const const QScopedPointer &  lhs, const const QScopedPointer &  rhs);
template < class T, class Cleanup >
   inline _Bool operator!= (const const QScopedPointer &  lhs, const const QScopedPointer &  rhs);
template < class T, class Cleanup >
   inline void qSwap (QScopedPointer &  p1, QScopedPointer &  p2);
namespace std
{
   template < class T, class Cleanup >
      inline void swap (::QScopedPointer &  p1, ::QScopedPointer &  p2);
} // end of std
namespace QtPrivate
{
   template < typename X, typename Y >
      struct QScopedArrayEnsureSameType{
      }; // end of QScopedArrayEnsureSameType
} // end of QtPrivate
template < typename T, typename Cleanup = QScopedPointerArrayDeleter >
   class QScopedArrayPointer : public:
   QScopedPointer{
      class QScopedArrayPointer{
      }; // end of QScopedArrayPointer
   public:
      inline constructor void QScopedArrayPointer ();
      template < typename D >
         inline constructor explicit void QScopedArrayPointer (D *  p, typename QtPrivate::QScopedArrayEnsureSameType::Type  = 0);
      inline T &  operator[] (int i);
      inline const const T &  operator[] (int i)const volatile restrict ;
   private:
      inline constructor explicit void QScopedArrayPointer (void *  );
      constructor copyconstructor converter void QScopedArrayPointer (const const QScopedArrayPointer &  );
      QScopedArrayPointer &  operator= (const const QScopedArrayPointer &  );
   }; // end of QScopedArrayPointer
typedef enum QtValidLicenseForCoreModule QtCoreModule;
class QEvent{
}; // end of QEvent
class QTimerEvent : public:
class QEvent{
}; // end of QTimerEvent
class QChildEvent : public:
class QEvent{
}; // end of QChildEvent
struct QMetaObject{
}; // end of QMetaObject
class QVariant{
}; // end of QVariant
class QObjectPrivate{
}; // end of QObjectPrivate
class QObject{
}; // end of QObject
class QThread{
}; // end of QThread
class QWidget : public:
class QObject, public:
class QPaintDevice{
}; // end of QWidget
class QRegExp{
}; // end of QRegExp
class QObjectUserData{
}; // end of QObjectUserData
typedef QList QObjectList;
void qt_qFindChildren_helper (const const class QObject *  parent, const const class QString &  name, const const class QRegExp *  re, const const struct QMetaObject &  mo, QList *  list);
class QObject *  qt_qFindChild_helper (const const class QObject *  parent, const const class QString &  name, const const struct QMetaObject &  mo);
class QObjectData{
   class QObjectData{
   }; // end of QObjectData
public:
   virtual destructor void ~QObjectData () = 0;
   inline class QObjectData &  operator= (const const class QObjectData &  ) throw ();
}; // end of QObjectData
class QObject{
   class QObject{
   }; // end of QObject
public:
   template < typename T >
      inline void qt_check_for_QOBJECT_macro (const const T &  _q_argument)const volatile restrict ;
   /* variable */ static const const struct QMetaObject staticMetaObject;
   virtual const const struct QMetaObject *  metaObject ()const volatile restrict ;
   virtual void *  qt_metacast (const const char *  );
   static inline static class QString tr (const const char *  s, const const char *  c = 0);
   static inline static class QString trUtf8 (const const char *  s, const const char *  c = 0);
   static inline static class QString tr (const const char *  s, const const char *  c, int n);
   static inline static class QString trUtf8 (const const char *  s, const const char *  c, int n);
   virtual int qt_metacall (struct QMetaObject::Call , int , void *  *  );
private:
   /* variable */ static const const struct QMetaObjectExtraData staticMetaObjectExtraData;
   static static void qt_static_metacall (class QObject *  , struct QMetaObject::Call , int , void *  *  );
   inline class QObjectPrivate *  d_func ();
   inline const const class QObjectPrivate *  d_func ()const volatile restrict ;
public:
   constructor explicit void QObject (class QObject *  parent = 0);
   virtual destructor void ~QObject ();
   virtual _Bool event (class QEvent *  );
   virtual _Bool eventFilter (class QObject *  , class QEvent *  );
   class QString objectName ()const volatile restrict ;
   void setObjectName (const const class QString &  name);
   inline _Bool isWidgetType ()const volatile restrict ;
   inline _Bool signalsBlocked ()const volatile restrict ;
   _Bool blockSignals (_Bool b);
   class QThread *  thread ()const volatile restrict ;
   void moveToThread (class QThread *  thread);
   int startTimer (int interval);
   void killTimer (int id);
   template < typename T >
      inline T findChild (const const class QString &  aName = class QString())const volatile restrict ;
   template < typename T >
      inline QList findChildren (const const class QString &  aName = class QString())const volatile restrict ;
   template < typename T >
      inline QList findChildren (const const class QRegExp &  re)const volatile restrict ;
   inline const const QObjectList &  children ()const volatile restrict ;
   void setParent (class QObject *  );
   void installEventFilter (class QObject *  );
   void removeEventFilter (class QObject *  );
   static static _Bool connect (const const class QObject *  sender, const const char *  signal, const const class QObject *  receiver, const const char *  member, Qt::ConnectionType  = Qt::AutoConnection);
   static static _Bool connect (const const class QObject *  sender, const const class QMetaMethod &  signal, const const class QObject *  receiver, const const class QMetaMethod &  method, Qt::ConnectionType type = Qt::AutoConnection);
   inline _Bool connect (const const class QObject *  sender, const const char *  signal, const const char *  member, Qt::ConnectionType type = Qt::AutoConnection)const volatile restrict ;
   static static _Bool disconnect (const const class QObject *  sender, const const char *  signal, const const class QObject *  receiver, const const char *  member);
   static static _Bool disconnect (const const class QObject *  sender, const const class QMetaMethod &  signal, const const class QObject *  receiver, const const class QMetaMethod &  member);
   inline _Bool disconnect (const const char *  signal = 0, const const class QObject *  receiver = 0, const const char *  member = 0);
   inline _Bool disconnect (const const class QObject *  receiver, const const char *  member = 0);
   void dumpObjectTree ();
   void dumpObjectInfo ();
   _Bool setProperty (const const char *  name, const const class QVariant &  value);
   class QVariant property (const const char *  name)const volatile restrict ;
   QList dynamicPropertyNames ()const volatile restrict ;
   static static uint registerUserData ();
   void setUserData (uint id, class QObjectUserData *  data);
   class QObjectUserData *  userData (uint id)const volatile restrict ;
protected:
   void destroyed (class QObject *   = 0);
public:
   inline class QObject *  parent ()const volatile restrict ;
   inline _Bool inherits (const const char *  classname)const volatile restrict ;
public:
   void deleteLater ();
protected:
   class QObject *  sender ()const volatile restrict ;
   int senderSignalIndex ()const volatile restrict ;
   int receivers (const const char *  signal)const volatile restrict ;
   virtual void timerEvent (class QTimerEvent *  );
   virtual void childEvent (class QChildEvent *  );
   virtual void customEvent (class QEvent *  );
   virtual void connectNotify (const const char *  signal);
   virtual void disconnectNotify (const const char *  signal);
protected:
   constructor converter void QObject (class QObjectPrivate &  dd, class QObject *  parent = 0);
protected:
   /* variable */ static const const struct QMetaObject staticQtMetaObject;
private:
   constructor copyconstructor converter void QObject (const const class QObject &  );
   class QObject &  operator= (const const class QObject &  );
}; // end of QObject
inline _Bool connect (const const class QObject *  asender, const const char *  asignal, const const char *  amember, Qt::ConnectionType atype = Qt::AutoConnection)const volatile restrict ;
class QObjectUserData{
   class QObjectUserData{
   }; // end of QObjectUserData
public:
   virtual destructor void ~QObjectUserData ();
   inline class QObjectUserData &  operator= (const const class QObjectUserData &  ) throw ();
}; // end of QObjectUserData
template < typename T >
   inline T qFindChild (const const class QObject *  o, const const class QString &  name = class QString());
template < typename T >
   inline QList qFindChildren (const const class QObject *  o, const const class QString &  name = class QString());
template < typename T >
   inline QList qFindChildren (const const class QObject *  o, const const class QRegExp &  re);
template < class T >
   inline T qobject_cast (class QObject *  object);
template < class T >
   inline T qobject_cast (const const class QObject *  object);
template < class T >
   inline const const char *  qobject_interface_iid ();
class QDebug operator<< (class QDebug , const const class QObject *  );
typedef enum QtValidLicenseForCoreModule QtCoreModule;
class QEventPrivate{
}; // end of QEventPrivate
class QEvent{
   class QEvent{
   }; // end of QEvent
public:
   /* variable */ static const const struct QMetaObject staticMetaObject;
private:
public:
   enum Type
   {
      None = 0,
      Timer = 1,
      MouseButtonPress = 2,
      MouseButtonRelease = 3,
      MouseButtonDblClick = 4,
      MouseMove = 5,
      KeyPress = 6,
      KeyRelease = 7,
      FocusIn = 8,
      FocusOut = 9,
      Enter = 10,
      Leave = 11,
      Paint = 12,
      Move = 13,
      Resize = 14,
      Create = 15,
      Destroy = 16,
      Show = 17,
      Hide = 18,
      Close = 19,
      Quit = 20,
      ParentChange = 21,
      ParentAboutToChange = 131,
      ThreadChange = 22,
      WindowActivate = 24,
      WindowDeactivate = 25,
      ShowToParent = 26,
      HideToParent = 27,
      Wheel = 31,
      WindowTitleChange = 33,
      WindowIconChange = 34,
      ApplicationWindowIconChange = 35,
      ApplicationFontChange = 36,
      ApplicationLayoutDirectionChange = 37,
      ApplicationPaletteChange = 38,
      PaletteChange = 39,
      Clipboard = 40,
      Speech = 42,
      MetaCall = 43,
      SockAct = 50,
      WinEventAct = 132,
      DeferredDelete = 52,
      DragEnter = 60,
      DragMove = 61,
      DragLeave = 62,
      Drop = 63,
      DragResponse = 64,
      ChildAdded = 68,
      ChildPolished = 69,
      ChildRemoved = 71,
      ShowWindowRequest = 73,
      PolishRequest = 74,
      Polish = 75,
      LayoutRequest = 76,
      UpdateRequest = 77,
      UpdateLater = 78,
      EmbeddingControl = 79,
      ActivateControl = 80,
      DeactivateControl = 81,
      ContextMenu = 82,
      InputMethod = 83,
      AccessibilityPrepare = 86,
      TabletMove = 87,
      LocaleChange = 88,
      LanguageChange = 89,
      LayoutDirectionChange = 90,
      Style = 91,
      TabletPress = 92,
      TabletRelease = 93,
      OkRequest = 94,
      HelpRequest = 95,
      IconDrag = 96,
      FontChange = 97,
      EnabledChange = 98,
      ActivationChange = 99,
      StyleChange = 100,
      IconTextChange = 101,
      ModifiedChange = 102,
      MouseTrackingChange = 109,
      WindowBlocked = 103,
      WindowUnblocked = 104,
      WindowStateChange = 105,
      ToolTip = 110,
      WhatsThis = 111,
      StatusTip = 112,
      ActionChanged = 113,
      ActionAdded = 114,
      ActionRemoved = 115,
      FileOpen = 116,
      Shortcut = 117,
      ShortcutOverride = 51,
      WhatsThisClicked = 118,
      ToolBarChange = 120,
      ApplicationActivate = 121,
      ApplicationActivated = ApplicationActivate,
      ApplicationDeactivate = 122,
      ApplicationDeactivated = ApplicationDeactivate,
      QueryWhatsThis = 123,
      EnterWhatsThisMode = 124,
      LeaveWhatsThisMode = 125,
      ZOrderChange = 126,
      HoverEnter = 127,
      HoverLeave = 128,
      HoverMove = 129,
      AccessibilityHelp = 119,
      AccessibilityDescription = 130,
      AcceptDropsChange = 152,
      MenubarUpdated = 153,
      ZeroTimerEvent = 154,
      GraphicsSceneMouseMove = 155,
      GraphicsSceneMousePress = 156,
      GraphicsSceneMouseRelease = 157,
      GraphicsSceneMouseDoubleClick = 158,
      GraphicsSceneContextMenu = 159,
      GraphicsSceneHoverEnter = 160,
      GraphicsSceneHoverMove = 161,
      GraphicsSceneHoverLeave = 162,
      GraphicsSceneHelp = 163,
      GraphicsSceneDragEnter = 164,
      GraphicsSceneDragMove = 165,
      GraphicsSceneDragLeave = 166,
      GraphicsSceneDrop = 167,
      GraphicsSceneWheel = 168,
      KeyboardLayoutChange = 169,
      DynamicPropertyChange = 170,
      TabletEnterProximity = 171,
      TabletLeaveProximity = 172,
      NonClientAreaMouseMove = 173,
      NonClientAreaMouseButtonPress = 174,
      NonClientAreaMouseButtonRelease = 175,
      NonClientAreaMouseButtonDblClick = 176,
      MacSizeChange = 177,
      ContentsRectChange = 178,
      MacGLWindowChange = 179,
      FutureCallOut = 180,
      GraphicsSceneResize = 181,
      GraphicsSceneMove = 182,
      CursorChange = 183,
      ToolTipChange = 184,
      NetworkReplyUpdated = 185,
      GrabMouse = 186,
      UngrabMouse = 187,
      GrabKeyboard = 188,
      UngrabKeyboard = 189,
      MacGLClearDrawable = 191,
      StateMachineSignal = 192,
      StateMachineWrapped = 193,
      TouchBegin = 194,
      TouchUpdate = 195,
      TouchEnd = 196,
      NativeGesture = 197,
      RequestSoftwareInputPanel = 199,
      CloseSoftwareInputPanel = 200,
      UpdateSoftKeys = 201,
      WinIdChange = 203,
      Gesture = 198,
      GestureOverride = 202,
      PlatformPanel = 212,
      User = 1000,
      MaxUser = 65535
   }; // end of Type
   constructor converter void QEvent (enum QEvent::Type type);
   virtual destructor void ~QEvent ();
   inline enum QEvent::Type type ()const volatile restrict ;
   inline _Bool spontaneous ()const volatile restrict ;
   inline void setAccepted (_Bool accepted);
   inline _Bool isAccepted ()const volatile restrict ;
   inline void accept ();
   inline void ignore ();
   static static int registerEventType (int hint = -1);
protected:
private:
   inline class QEvent &  operator= (const const class QEvent &  ) throw ();
}; // end of QEvent
class QTimerEvent : public:
class QEvent{
   class QTimerEvent{
   }; // end of QTimerEvent
public:
   constructor converter void QTimerEvent (int timerId);
   virtual destructor void ~QTimerEvent ();
   int timerId ()const volatile restrict ;
protected:
   inline class QTimerEvent &  operator= (const const class QTimerEvent &  ) throw ();
}; // end of QTimerEvent
class QObject{
}; // end of QObject
class QChildEvent : public:
class QEvent{
   class QChildEvent{
   }; // end of QChildEvent
public:
   constructor void QChildEvent (enum QEvent::Type type, class QObject *  child);
   virtual destructor void ~QChildEvent ();
   class QObject *  child ()const volatile restrict ;
   _Bool added ()const volatile restrict ;
   _Bool polished ()const volatile restrict ;
   _Bool removed ()const volatile restrict ;
protected:
   inline class QChildEvent &  operator= (const const class QChildEvent &  ) throw ();
}; // end of QChildEvent
class QDynamicPropertyChangeEvent : public:
class QEvent{
   class QDynamicPropertyChangeEvent{
   }; // end of QDynamicPropertyChangeEvent
public:
   constructor converter void QDynamicPropertyChangeEvent (const const class QByteArray &  name);
   virtual destructor void ~QDynamicPropertyChangeEvent ();
   inline class QByteArray propertyName ()const volatile restrict ;
private:
   inline class QDynamicPropertyChangeEvent &  operator= (const const class QDynamicPropertyChangeEvent &  ) throw ();
}; // end of QDynamicPropertyChangeEvent
typedef enum QtValidLicenseForCoreModule QtCoreModule;
class QEventLoopPrivate{
}; // end of QEventLoopPrivate
class QEventLoop : public:
class QObject{
   class QEventLoop{
   }; // end of QEventLoop
public:
   template < typename T >
      inline void qt_check_for_QOBJECT_macro (const const T &  _q_argument)const volatile restrict ;
   /* variable */ static const const struct QMetaObject staticMetaObject;
   virtual const const struct QMetaObject *  metaObject ()const volatile restrict ;
   virtual void *  qt_metacast (const const char *  );
   static inline static class QString tr (const const char *  s, const const char *  c = 0);
   static inline static class QString trUtf8 (const const char *  s, const const char *  c = 0);
   static inline static class QString tr (const const char *  s, const const char *  c, int n);
   static inline static class QString trUtf8 (const const char *  s, const const char *  c, int n);
   virtual int qt_metacall (struct QMetaObject::Call , int , void *  *  );
private:
   /* variable */ static const const struct QMetaObjectExtraData staticMetaObjectExtraData;
   static static void qt_static_metacall (class QObject *  , struct QMetaObject::Call , int , void *  *  );
   inline class QEventLoopPrivate *  d_func ();
   inline const const class QEventLoopPrivate *  d_func ()const volatile restrict ;
public:
   constructor explicit void QEventLoop (class QObject *  parent = 0);
   virtual destructor void ~QEventLoop ();
   enum ProcessEventsFlag
   {
      AllEvents = 0,
      ExcludeUserInputEvents = 1,
      ExcludeSocketNotifiers = 2,
      WaitForMoreEvents = 4,
      X11ExcludeTimers = 8,
      DeferredDeletion = 16,
      EventLoopExec = 32,
      DialogExec = 64
   }; // end of ProcessEventsFlag
   typedef QFlags QEventLoop::ProcessEventsFlags;
   _Bool processEvents (ProcessEventsFlags flags = AllEvents);
   void processEvents (ProcessEventsFlags flags, int maximumTime);
   int exec (ProcessEventsFlags flags = AllEvents);
   void exit (int returnCode = 0);
   _Bool isRunning ()const volatile restrict ;
   void wakeUp ();
public:
   void quit ();
   inline class QEventLoop &  operator= (const const class QEventLoop &  ) throw ();
}; // end of QEventLoop
inline QFlags operator| (class QEventLoop::ProcessEventsFlags::enum_type f1, class QEventLoop::ProcessEventsFlags::enum_type f2);
inline QFlags operator| (class QEventLoop::ProcessEventsFlags::enum_type f1, QFlags f2);
inline class QIncompatibleFlag operator| (class QEventLoop::ProcessEventsFlags::enum_type f1, int f2);
typedef enum QtValidLicenseForCoreModule QtCoreModule;
class QCoreApplicationPrivate{
}; // end of QCoreApplicationPrivate
class QTextCodec{
}; // end of QTextCodec
class QTranslator{
}; // end of QTranslator
class QPostEventList{
}; // end of QPostEventList
class QStringList : public:
QList{
}; // end of QStringList
class QCoreApplication : public:
class QObject{
   class QCoreApplication{
   }; // end of QCoreApplication
public:
   template < typename T >
      inline void qt_check_for_QOBJECT_macro (const const T &  _q_argument)const volatile restrict ;
   /* variable */ static const const struct QMetaObject staticMetaObject;
   virtual const const struct QMetaObject *  metaObject ()const volatile restrict ;
   virtual void *  qt_metacast (const const char *  );
   static inline static class QString tr (const const char *  s, const const char *  c = 0);
   static inline static class QString trUtf8 (const const char *  s, const const char *  c = 0);
   static inline static class QString tr (const const char *  s, const const char *  c, int n);
   static inline static class QString trUtf8 (const const char *  s, const const char *  c, int n);
   virtual int qt_metacall (struct QMetaObject::Call , int , void *  *  );
private:
   /* variable */ static const const struct QMetaObjectExtraData staticMetaObjectExtraData;
   static static void qt_static_metacall (class QObject *  , struct QMetaObject::Call , int , void *  *  );
   inline class QCoreApplicationPrivate *  d_func ();
   inline const const class QCoreApplicationPrivate *  d_func ()const volatile restrict ;
public:
   enum 
   {
      ApplicationFlags = 264199 | 16777216
   }; // end of 
   constructor void QCoreApplication (int &  argc, char *  *  argv, int  = ApplicationFlags);
   virtual destructor void ~QCoreApplication ();
   static static int argc ();
   static static char *  *  argv ();
   static static class QStringList arguments ();
   static static void setAttribute (Qt::ApplicationAttribute attribute, _Bool on = true);
   static static _Bool testAttribute (Qt::ApplicationAttribute attribute);
   static static void setOrganizationDomain (const const class QString &  orgDomain);
   static static class QString organizationDomain ();
   static static void setOrganizationName (const const class QString &  orgName);
   static static class QString organizationName ();
   static static void setApplicationName (const const class QString &  application);
   static static class QString applicationName ();
   static static void setApplicationVersion (const const class QString &  version);
   static static class QString applicationVersion ();
   static static class QCoreApplication *  instance ();
   static static int exec ();
   static static void processEvents (class QEventLoop::ProcessEventsFlags flags = class QEventLoop::AllEvents);
   static static void processEvents (class QEventLoop::ProcessEventsFlags flags, int maxtime);
   static static void exit (int retcode = 0);
   static static _Bool sendEvent (class QObject *  receiver, class QEvent *  event);
   static static void postEvent (class QObject *  receiver, class QEvent *  event);
   static static void postEvent (class QObject *  receiver, class QEvent *  event, int priority);
   static static void sendPostedEvents (class QObject *  receiver, int event_type);
   static static void sendPostedEvents ();
   static static void removePostedEvents (class QObject *  receiver);
   static static void removePostedEvents (class QObject *  receiver, int eventType);
   static static _Bool hasPendingEvents ();
   virtual _Bool notify (class QObject *  , class QEvent *  );
   static static _Bool startingUp ();
   static static _Bool closingDown ();
   static static class QString applicationDirPath ();
   static static class QString applicationFilePath ();
   static static qint64 applicationPid ();
   static static void setLibraryPaths (const const class QStringList &  );
   static static class QStringList libraryPaths ();
   static static void addLibraryPath (const const class QString &  );
   static static void removeLibraryPath (const const class QString &  );
   static static void installTranslator (class QTranslator *  messageFile);
   static static void removeTranslator (class QTranslator *  messageFile);
   enum Encoding
   {
      CodecForTr,
      UnicodeUTF8,
      DefaultCodec = CodecForTr
   }; // end of Encoding
   static static class QString translate (const const char *  context, const const char *  key, const const char *  disambiguation = 0, enum QCoreApplication::Encoding encoding = CodecForTr);
   static static class QString translate (const const char *  context, const const char *  key, const const char *  disambiguation, enum QCoreApplication::Encoding encoding, int n);
   static static void flush ();
   static static void watchUnixSignal (int signal, _Bool watch);
   typedef _Bool (void *, long *) *  QCoreApplication::EventFilter;
   EventFilter setEventFilter (EventFilter filter);
   _Bool filterEvent (void *  message, long *  result);
public:
   static static void quit ();
protected:
   void aboutToQuit ();
   void unixSignal (int );
protected:
   virtual _Bool event (class QEvent *  );
   virtual _Bool compressEvent (class QEvent *  , class QObject *  receiver, class QPostEventList *  );
protected:
   constructor converter void QCoreApplication (class QCoreApplicationPrivate &  p);
private:
   static static _Bool sendSpontaneousEvent (class QObject *  receiver, class QEvent *  event);
   _Bool notifyInternal (class QObject *  receiver, class QEvent *  event);
   void init ();
   /* variable */ static class QCoreApplication *  self;
   constructor copyconstructor converter void QCoreApplication (const const class QCoreApplication &  );
   class QCoreApplication &  operator= (const const class QCoreApplication &  );
   friend qt_sendSpontaneousEvent;
   friend qAppName;
}; // end of QCoreApplication
inline static _Bool sendEvent (class QObject *  receiver, class QEvent *  event);
inline static _Bool sendSpontaneousEvent (class QObject *  receiver, class QEvent *  event);
inline static void sendPostedEvents ();
typedef void (void) *  QtCleanUpFunction;
void qAddPostRoutine (QtCleanUpFunction );
void qRemovePostRoutine (QtCleanUpFunction );
class QString qAppName ();
typedef enum QtValidLicenseForGuiModule QtGuiModule;
class QPaintDevice{
}; // end of QPaintDevice
class QWidget : public:
class QObject, public:
class QPaintDevice{
}; // end of QWidget
class QDialog{
}; // end of QDialog
class QColor{
}; // end of QColor
class QPalette{
}; // end of QPalette
class QCursor{
}; // end of QCursor
class QPoint{
}; // end of QPoint
class QSize{
}; // end of QSize
class QRect{
}; // end of QRect
class QPolygon : public:
QVector{
}; // end of QPolygon
class QPainter{
}; // end of QPainter
class QRegion{
}; // end of QRegion
class QFont{
}; // end of QFont
class QFontMetrics{
}; // end of QFontMetrics
class QFontInfo{
}; // end of QFontInfo
class QPen{
}; // end of QPen
class QBrush{
}; // end of QBrush
class QMatrix{
}; // end of QMatrix
class QPixmap : public:
class QPaintDevice{
}; // end of QPixmap
class QBitmap{
}; // end of QBitmap
class QMovie{
}; // end of QMovie
class QImage : public:
class QPaintDevice{
}; // end of QImage
class QPicture{
}; // end of QPicture
class QPrinter{
}; // end of QPrinter
class QTimer{
}; // end of QTimer
class QTime{
}; // end of QTime
class QClipboard{
}; // end of QClipboard
class QString{
}; // end of QString
class QByteArray{
}; // end of QByteArray
class QApplication : public:
class QGuiApplication{
}; // end of QApplication
template < typename T >
   class QList{
   }; // end of QList
typedef QList QWidgetList;
struct _XDisplay{
}; // end of _XDisplay
typedef struct _XDisplay Display;
union _XEvent{
}; // end of _XEvent
typedef union _XEvent XEvent;
struct _XGC{
}; // end of _XGC
typedef struct _XGC *  GC;
struct _XRegion{
}; // end of _XRegion
typedef struct _XRegion *  Region;
typedef unsigned long WId;
template < class K, class V >
   class QHash{
   }; // end of QHash
typedef QHash QWidgetMapper;
template < class V >
   class QSet{
   }; // end of QSet
typedef QSet QWidgetSet;
typedef enum QtValidLicenseForCoreModule QtCoreModule;
class QPoint{
   class QPoint{
   }; // end of QPoint
public:
   constructor void QPoint ();
   constructor void QPoint (int xpos, int ypos);
   _Bool isNull ()const volatile restrict ;
   int x ()const volatile restrict ;
   int y ()const volatile restrict ;
   void setX (int x);
   void setY (int y);
   int manhattanLength ()const volatile restrict ;
   int &  rx ();
   int &  ry ();
   class QPoint &  operator+= (const const class QPoint &  p);
   class QPoint &  operator-= (const const class QPoint &  p);
   class QPoint &  operator*= (float c);
   class QPoint &  operator*= (double c);
   class QPoint &  operator*= (int c);
   class QPoint &  operator/= (qreal c);
   friend operator==;
   friend operator!=;
   friend operator+;
   friend operator-;
   friend operator*;
   friend operator*;
   friend operator*;
   friend operator*;
   friend operator*;
   friend operator*;
   friend operator-;
   friend operator/;
private:
   inline constructor copyconstructor converter void QPoint (const const class QPoint &  ) throw ();
   inline destructor void ~QPoint () throw ();
   inline class QPoint &  operator= (const const class QPoint &  ) throw ();
}; // end of QPoint
class QDataStream &  operator<< (class QDataStream &  , const const class QPoint &  );
class QDataStream &  operator>> (class QDataStream &  , class QPoint &  );
inline constructor void QPoint ();
inline constructor void QPoint (int xpos, int ypos);
inline _Bool isNull ()const volatile restrict ;
inline int x ()const volatile restrict ;
inline int y ()const volatile restrict ;
inline void setX (int xpos);
inline void setY (int ypos);
inline int &  rx ();
inline int &  ry ();
inline class QPoint &  operator+= (const const class QPoint &  p);
inline class QPoint &  operator-= (const const class QPoint &  p);
inline class QPoint &  operator*= (float c);
inline class QPoint &  operator*= (double c);
inline class QPoint &  operator*= (int c);
inline _Bool operator== (const const class QPoint &  p1, const const class QPoint &  p2);
inline _Bool operator!= (const const class QPoint &  p1, const const class QPoint &  p2);
inline const const class QPoint operator+ (const const class QPoint &  p1, const const class QPoint &  p2);
inline const const class QPoint operator- (const const class QPoint &  p1, const const class QPoint &  p2);
inline const const class QPoint operator* (const const class QPoint &  p, float c);
inline const const class QPoint operator* (const const class QPoint &  p, double c);
inline const const class QPoint operator* (const const class QPoint &  p, int c);
inline const const class QPoint operator* (float c, const const class QPoint &  p);
inline const const class QPoint operator* (double c, const const class QPoint &  p);
inline const const class QPoint operator* (int c, const const class QPoint &  p);
inline const const class QPoint operator- (const const class QPoint &  p);
inline class QPoint &  operator/= (qreal c);
inline const const class QPoint operator/ (const const class QPoint &  p, qreal c);
class QDebug operator<< (class QDebug , const const class QPoint &  );
class QPointF{
   class QPointF{
   }; // end of QPointF
public:
   constructor void QPointF ();
   constructor converter void QPointF (const const class QPoint &  p);
   constructor void QPointF (qreal xpos, qreal ypos);
   qreal manhattanLength ()const volatile restrict ;
   _Bool isNull ()const volatile restrict ;
   qreal x ()const volatile restrict ;
   qreal y ()const volatile restrict ;
   void setX (qreal x);
   void setY (qreal y);
   qreal &  rx ();
   qreal &  ry ();
   class QPointF &  operator+= (const const class QPointF &  p);
   class QPointF &  operator-= (const const class QPointF &  p);
   class QPointF &  operator*= (qreal c);
   class QPointF &  operator/= (qreal c);
   friend operator==;
   friend operator!=;
   friend operator+;
   friend operator-;
   friend operator*;
   friend operator*;
   friend operator-;
   friend operator/;
   class QPoint toPoint ()const volatile restrict ;
private:
   inline constructor copyconstructor converter void QPointF (const const class QPointF &  ) throw ();
   inline destructor void ~QPointF () throw ();
   inline class QPointF &  operator= (const const class QPointF &  ) throw ();
}; // end of QPointF
class QDataStream &  operator<< (class QDataStream &  , const const class QPointF &  );
class QDataStream &  operator>> (class QDataStream &  , class QPointF &  );
inline constructor void QPointF ();
inline constructor void QPointF (qreal xpos, qreal ypos);
inline constructor converter void QPointF (const const class QPoint &  p);
inline _Bool isNull ()const volatile restrict ;
inline qreal x ()const volatile restrict ;
inline qreal y ()const volatile restrict ;
inline void setX (qreal xpos);
inline void setY (qreal ypos);
inline qreal &  rx ();
inline qreal &  ry ();
inline class QPointF &  operator+= (const const class QPointF &  p);
inline class QPointF &  operator-= (const const class QPointF &  p);
inline class QPointF &  operator*= (qreal c);
inline _Bool operator== (const const class QPointF &  p1, const const class QPointF &  p2);
inline _Bool operator!= (const const class QPointF &  p1, const const class QPointF &  p2);
inline const const class QPointF operator+ (const const class QPointF &  p1, const const class QPointF &  p2);
inline const const class QPointF operator- (const const class QPointF &  p1, const const class QPointF &  p2);
inline const const class QPointF operator* (const const class QPointF &  p, qreal c);
inline const const class QPointF operator* (qreal c, const const class QPointF &  p);
inline const const class QPointF operator- (const const class QPointF &  p);
inline class QPointF &  operator/= (qreal c);
inline const const class QPointF operator/ (const const class QPointF &  p, qreal c);
inline class QPoint toPoint ()const volatile restrict ;
class QDebug operator<< (class QDebug d, const const class QPointF &  p);
typedef enum QtValidLicenseForCoreModule QtCoreModule;
class QSize{
   class QSize{
   }; // end of QSize
public:
   constructor void QSize ();
   constructor void QSize (int w, int h);
   _Bool isNull ()const volatile restrict ;
   _Bool isEmpty ()const volatile restrict ;
   _Bool isValid ()const volatile restrict ;
   int width ()const volatile restrict ;
   int height ()const volatile restrict ;
   void setWidth (int w);
   void setHeight (int h);
   void transpose ();
   void scale (int w, int h, Qt::AspectRatioMode mode);
   void scale (const const class QSize &  s, Qt::AspectRatioMode mode);
   class QSize expandedTo (const const class QSize &  )const volatile restrict ;
   class QSize boundedTo (const const class QSize &  )const volatile restrict ;
   int &  rwidth ();
   int &  rheight ();
   class QSize &  operator+= (const const class QSize &  );
   class QSize &  operator-= (const const class QSize &  );
   class QSize &  operator*= (qreal c);
   class QSize &  operator/= (qreal c);
   friend operator==;
   friend operator!=;
   friend operator+;
   friend operator-;
   friend operator*;
   friend operator*;
   friend operator/;
private:
   inline constructor copyconstructor converter void QSize (const const class QSize &  ) throw ();
   inline destructor void ~QSize () throw ();
}; // end of QSize
class QDataStream &  operator<< (class QDataStream &  , const const class QSize &  );
class QDataStream &  operator>> (class QDataStream &  , class QSize &  );
inline constructor void QSize ();
inline constructor void QSize (int w, int h);
inline _Bool isNull ()const volatile restrict ;
inline _Bool isEmpty ()const volatile restrict ;
inline _Bool isValid ()const volatile restrict ;
inline int width ()const volatile restrict ;
inline int height ()const volatile restrict ;
inline void setWidth (int w);
inline void setHeight (int h);
inline void scale (int w, int h, Qt::AspectRatioMode mode);
inline int &  rwidth ();
inline int &  rheight ();
inline class QSize &  operator+= (const const class QSize &  s);
inline class QSize &  operator-= (const const class QSize &  s);
inline class QSize &  operator*= (qreal c);
inline _Bool operator== (const const class QSize &  s1, const const class QSize &  s2);
inline _Bool operator!= (const const class QSize &  s1, const const class QSize &  s2);
inline const const class QSize operator+ (const const class QSize &  s1, const const class QSize &  s2);
inline const const class QSize operator- (const const class QSize &  s1, const const class QSize &  s2);
inline const const class QSize operator* (const const class QSize &  s, qreal c);
inline const const class QSize operator* (qreal c, const const class QSize &  s);
inline class QSize &  operator/= (qreal c);
inline const const class QSize operator/ (const const class QSize &  s, qreal c);
inline class QSize expandedTo (const const class QSize &  otherSize)const volatile restrict ;
inline class QSize boundedTo (const const class QSize &  otherSize)const volatile restrict ;
class QDebug operator<< (class QDebug , const const class QSize &  );
class QSizeF{
   class QSizeF{
   }; // end of QSizeF
public:
   constructor void QSizeF ();
   constructor converter void QSizeF (const const class QSize &  sz);
   constructor void QSizeF (qreal w, qreal h);
   _Bool isNull ()const volatile restrict ;
   _Bool isEmpty ()const volatile restrict ;
   _Bool isValid ()const volatile restrict ;
   qreal width ()const volatile restrict ;
   qreal height ()const volatile restrict ;
   void setWidth (qreal w);
   void setHeight (qreal h);
   void transpose ();
   void scale (qreal w, qreal h, Qt::AspectRatioMode mode);
   void scale (const const class QSizeF &  s, Qt::AspectRatioMode mode);
   class QSizeF expandedTo (const const class QSizeF &  )const volatile restrict ;
   class QSizeF boundedTo (const const class QSizeF &  )const volatile restrict ;
   qreal &  rwidth ();
   qreal &  rheight ();
   class QSizeF &  operator+= (const const class QSizeF &  );
   class QSizeF &  operator-= (const const class QSizeF &  );
   class QSizeF &  operator*= (qreal c);
   class QSizeF &  operator/= (qreal c);
   friend operator==;
   friend operator!=;
   friend operator+;
   friend operator-;
   friend operator*;
   friend operator*;
   friend operator/;
   inline class QSize toSize ()const volatile restrict ;
private:
   inline constructor copyconstructor converter void QSizeF (const const class QSizeF &  ) throw ();
   inline destructor void ~QSizeF () throw ();
}; // end of QSizeF
class QDataStream &  operator<< (class QDataStream &  , const const class QSizeF &  );
class QDataStream &  operator>> (class QDataStream &  , class QSizeF &  );
inline constructor void QSizeF ();
inline constructor converter void QSizeF (const const class QSize &  sz);
inline constructor void QSizeF (qreal w, qreal h);
inline _Bool isNull ()const volatile restrict ;
inline _Bool isEmpty ()const volatile restrict ;
inline _Bool isValid ()const volatile restrict ;
inline qreal width ()const volatile restrict ;
inline qreal height ()const volatile restrict ;
inline void setWidth (qreal w);
inline void setHeight (qreal h);
inline void scale (qreal w, qreal h, Qt::AspectRatioMode mode);
inline qreal &  rwidth ();
inline qreal &  rheight ();
inline class QSizeF &  operator+= (const const class QSizeF &  s);
inline class QSizeF &  operator-= (const const class QSizeF &  s);
inline class QSizeF &  operator*= (qreal c);
inline _Bool operator== (const const class QSizeF &  s1, const const class QSizeF &  s2);
inline _Bool operator!= (const const class QSizeF &  s1, const const class QSizeF &  s2);
inline const const class QSizeF operator+ (const const class QSizeF &  s1, const const class QSizeF &  s2);
inline const const class QSizeF operator- (const const class QSizeF &  s1, const const class QSizeF &  s2);
inline const const class QSizeF operator* (const const class QSizeF &  s, qreal c);
inline const const class QSizeF operator* (qreal c, const const class QSizeF &  s);
inline class QSizeF &  operator/= (qreal c);
inline const const class QSizeF operator/ (const const class QSizeF &  s, qreal c);
inline class QSizeF expandedTo (const const class QSizeF &  otherSize)const volatile restrict ;
inline class QSizeF boundedTo (const const class QSizeF &  otherSize)const volatile restrict ;
inline class QSize toSize ()const volatile restrict ;
class QDebug operator<< (class QDebug , const const class QSizeF &  );
typedef enum QtValidLicenseForGuiModule QtGuiModule;
class QVariant{
}; // end of QVariant
class QCursorData{
}; // end of QCursorData
class QBitmap{
}; // end of QBitmap
class QPixmap : public:
class QPaintDevice{
}; // end of QPixmap
class QCursor{
   class QCursor{
   }; // end of QCursor
public:
   constructor void QCursor ();
   constructor converter void QCursor (Qt::CursorShape shape);
   constructor void QCursor (const const class QBitmap &  bitmap, const const class QBitmap &  mask, int hotX = -1, int hotY = -1);
   constructor converter void QCursor (const const class QPixmap &  pixmap, int hotX = -1, int hotY = -1);
   constructor copyconstructor converter void QCursor (const const class QCursor &  cursor);
   destructor void ~QCursor ();
   class QCursor &  operator= (const const class QCursor &  cursor);
   converter class QVariant operator QVariant ()const volatile restrict ;
   Qt::CursorShape shape ()const volatile restrict ;
   void setShape (Qt::CursorShape newShape);
   const const class QBitmap *  bitmap ()const volatile restrict ;
   const const class QBitmap *  mask ()const volatile restrict ;
   class QPixmap pixmap ()const volatile restrict ;
   class QPoint hotSpot ()const volatile restrict ;
   static static class QPoint pos ();
   static static void setPos (int x, int y);
   static inline static void setPos (const const class QPoint &  p);
   Qt::HANDLE handle ()const volatile restrict ;
   constructor converter void QCursor (Qt::HANDLE cursor);
   static static int x11Screen ();
private:
}; // end of QCursor
class QDataStream &  operator<< (class QDataStream &  outS, const const class QCursor &  cursor);
class QDataStream &  operator>> (class QDataStream &  inS, class QCursor &  cursor);
class QInputMethodPrivate{
}; // end of QInputMethodPrivate
class QWindow{
}; // end of QWindow
class QRectF{
}; // end of QRectF
class QTransform{
}; // end of QTransform
class QInputMethodQueryEvent{
}; // end of QInputMethodQueryEvent
class QInputMethod : public:
class QObject{
   class QInputMethod{
   }; // end of QInputMethod
public:
   template < typename T >
      inline void qt_check_for_QOBJECT_macro (const const T &  _q_argument)const volatile restrict ;
   /* variable */ static const const struct QMetaObject staticMetaObject;
   virtual const const struct QMetaObject *  metaObject ()const volatile restrict ;
   virtual void *  qt_metacast (const const char *  );
   static inline static class QString tr (const const char *  s, const const char *  c = 0);
   static inline static class QString trUtf8 (const const char *  s, const const char *  c = 0);
   static inline static class QString tr (const const char *  s, const const char *  c, int n);
   static inline static class QString trUtf8 (const const char *  s, const const char *  c, int n);
   virtual int qt_metacall (struct QMetaObject::Call , int , void *  *  );
private:
   /* variable */ static const const struct QMetaObjectExtraData staticMetaObjectExtraData;
   static static void qt_static_metacall (class QObject *  , struct QMetaObject::Call , int , void *  *  );
   inline class QInputMethodPrivate *  d_func ();
   inline const const class QInputMethodPrivate *  d_func ()const volatile restrict ;
public:
   class QTransform inputItemTransform ()const volatile restrict ;
   void setInputItemTransform (const const class QTransform &  transform);
   class QRectF inputItemRectangle ()const volatile restrict ;
   void setInputItemRectangle (const const class QRectF &  rect);
   class QRectF cursorRectangle ()const volatile restrict ;
   class QRectF anchorRectangle ()const volatile restrict ;
   class QRectF keyboardRectangle ()const volatile restrict ;
   class QRectF inputItemClipRectangle ()const volatile restrict ;
   enum Action
   {
      Click,
      ContextMenu
   }; // end of Action
   void setVisible (_Bool visible);
   _Bool isAnimating ()const volatile restrict ;
   int locale ()const volatile restrict ;
   Qt::LayoutDirection inputDirection ()const volatile restrict ;
   static static class QVariant queryFocusObject (Qt::InputMethodQuery query, class QVariant argument);
public:
   void show ();
   void hide ();
   void update (Qt::InputMethodQuery queries);
   void reset ();
   void commit ();
   void invokeAction (enum QInputMethod::Action a, int cursorPosition);
protected:
   void cursorRectangleChanged ();
   void anchorRectangleChanged ();
   void keyboardRectangleChanged ();
   void inputItemClipRectangleChanged ();
   void visibleChanged ();
   void animatingChanged ();
   void localeChanged ();
   void inputDirectionChanged (Qt::LayoutDirection newDirection);
private:
   constructor void QInputMethod ();
   virtual destructor void ~QInputMethod ();
}; // end of QInputMethod
typedef enum QtValidLicenseForCoreModule QtCoreModule;
class QByteArray{
}; // end of QByteArray
class QIODevicePrivate{
}; // end of QIODevicePrivate
class QIODevice : public:
class QObject{
   class QIODevice{
   }; // end of QIODevice
public:
   template < typename T >
      inline void qt_check_for_QOBJECT_macro (const const T &  _q_argument)const volatile restrict ;
   /* variable */ static const const struct QMetaObject staticMetaObject;
   virtual const const struct QMetaObject *  metaObject ()const volatile restrict ;
   virtual void *  qt_metacast (const const char *  );
   static inline static class QString tr (const const char *  s, const const char *  c = 0);
   static inline static class QString trUtf8 (const const char *  s, const const char *  c = 0);
   static inline static class QString tr (const const char *  s, const const char *  c, int n);
   static inline static class QString trUtf8 (const const char *  s, const const char *  c, int n);
   virtual int qt_metacall (struct QMetaObject::Call , int , void *  *  );
private:
   /* variable */ static const const struct QMetaObjectExtraData staticMetaObjectExtraData;
   static static void qt_static_metacall (class QObject *  , struct QMetaObject::Call , int , void *  *  );
public:
   enum OpenModeFlag
   {
      NotOpen = 0,
      ReadOnly = 1,
      WriteOnly = 2,
      ReadWrite = ReadOnly | WriteOnly,
      Append = 4,
      Truncate = 8,
      Text = 16,
      Unbuffered = 32
   }; // end of OpenModeFlag
   typedef QFlags QIODevice::OpenMode;
   constructor void QIODevice ();
   constructor explicit void QIODevice (class QObject *  parent);
   virtual destructor void ~QIODevice ();
   OpenMode openMode ()const volatile restrict ;
   void setTextModeEnabled (_Bool enabled);
   _Bool isTextModeEnabled ()const volatile restrict ;
   _Bool isOpen ()const volatile restrict ;
   _Bool isReadable ()const volatile restrict ;
   _Bool isWritable ()const volatile restrict ;
   virtual _Bool isSequential ()const volatile restrict ;
   virtual _Bool open (OpenMode mode);
   virtual void close ();
   virtual qint64 pos ()const volatile restrict ;
   virtual qint64 size ()const volatile restrict ;
   virtual _Bool seek (qint64 pos);
   virtual _Bool atEnd ()const volatile restrict ;
   virtual _Bool reset ();
   virtual qint64 bytesAvailable ()const volatile restrict ;
   virtual qint64 bytesToWrite ()const volatile restrict ;
   qint64 read (char *  data, qint64 maxlen);
   class QByteArray read (qint64 maxlen);
   class QByteArray readAll ();
   qint64 readLine (char *  data, qint64 maxlen);
   class QByteArray readLine (qint64 maxlen = 0);
   virtual _Bool canReadLine ()const volatile restrict ;
   qint64 write (const const char *  data, qint64 len);
   qint64 write (const const char *  data);
   inline qint64 write (const const class QByteArray &  data);
   qint64 peek (char *  data, qint64 maxlen);
   class QByteArray peek (qint64 maxlen);
   virtual _Bool waitForReadyRead (int msecs);
   virtual _Bool waitForBytesWritten (int msecs);
   void ungetChar (char c);
   _Bool putChar (char c);
   _Bool getChar (char *  c);
   class QString errorString ()const volatile restrict ;
protected:
   void readyRead ();
   void bytesWritten (qint64 bytes);
   void aboutToClose ();
   void readChannelFinished ();
protected:
   constructor converter void QIODevice (class QIODevicePrivate &  dd, class QObject *  parent = 0);
   virtual qint64 readData (char *  data, qint64 maxlen) = 0;
   virtual qint64 readLineData (char *  data, qint64 maxlen);
   virtual qint64 writeData (const const char *  data, qint64 len) = 0;
   void setOpenMode (OpenMode openMode);
   void setErrorString (const const class QString &  errorString);
private:
   inline class QIODevicePrivate *  d_func ();
   inline const const class QIODevicePrivate *  d_func ()const volatile restrict ;
   constructor copyconstructor converter void QIODevice (const const class QIODevice &  );
   class QIODevice &  operator= (const const class QIODevice &  );
}; // end of QIODevice
inline QFlags operator| (class QIODevice::OpenMode::enum_type f1, class QIODevice::OpenMode::enum_type f2);
inline QFlags operator| (class QIODevice::OpenMode::enum_type f1, QFlags f2);
inline class QIncompatibleFlag operator| (class QIODevice::OpenMode::enum_type f1, int f2);
class QDebug{
}; // end of QDebug
class QDebug operator<< (class QDebug debug, class QIODevice::OpenMode modes);
typedef enum QtValidLicenseForCoreModule QtCoreModule;
class QByteArray{
}; // end of QByteArray
class QIODevice : public:
class QObject{
}; // end of QIODevice
template < typename T >
   class QList{
   }; // end of QList
template < typename T >
   class QLinkedList{
   }; // end of QLinkedList
template < typename T >
   class QVector{
   }; // end of QVector
template < typename T >
   class QSet{
   }; // end of QSet
template < class Key, class T >
   class QHash{
   }; // end of QHash
template < class Key, class T >
   class QMap{
   }; // end of QMap
class QDataStreamPrivate{
}; // end of QDataStreamPrivate
class QDataStream{
   class QDataStream{
   }; // end of QDataStream
public:
   enum Version
   {
      Qt_1_0 = 1,
      Qt_2_0 = 2,
      Qt_2_1 = 3,
      Qt_3_0 = 4,
      Qt_3_1 = 5,
      Qt_3_3 = 6,
      Qt_4_0 = 7,
      Qt_4_1 = Qt_4_0,
      Qt_4_2 = 8,
      Qt_4_3 = 9,
      Qt_4_4 = 10,
      Qt_4_5 = 11,
      Qt_4_6 = 12,
      Qt_4_7 = Qt_4_6,
      Qt_4_8 = Qt_4_7
   }; // end of Version
   enum ByteOrder
   {
      BigEndian = class QSysInfo::BigEndian,
      LittleEndian = class QSysInfo::LittleEndian
   }; // end of ByteOrder
   enum Status
   {
      Ok,
      ReadPastEnd,
      ReadCorruptData,
      WriteFailed
   }; // end of Status
   enum FloatingPointPrecision
   {
      SinglePrecision,
      DoublePrecision
   }; // end of FloatingPointPrecision
   constructor void QDataStream ();
   constructor explicit void QDataStream (class QIODevice *  );
   constructor void QDataStream (class QByteArray *  , class QIODevice::OpenMode flags);
   constructor converter void QDataStream (const const class QByteArray &  );
   virtual destructor void ~QDataStream ();
   class QIODevice *  device ()const volatile restrict ;
   void setDevice (class QIODevice *  );
   void unsetDevice ();
   _Bool atEnd ()const volatile restrict ;
   enum QDataStream::Status status ()const volatile restrict ;
   void setStatus (enum QDataStream::Status status);
   void resetStatus ();
   enum QDataStream::FloatingPointPrecision floatingPointPrecision ()const volatile restrict ;
   void setFloatingPointPrecision (enum QDataStream::FloatingPointPrecision precision);
   enum QDataStream::ByteOrder byteOrder ()const volatile restrict ;
   void setByteOrder (enum QDataStream::ByteOrder );
   int version ()const volatile restrict ;
   void setVersion (int );
   class QDataStream &  operator>> (qint8 &  i);
   class QDataStream &  operator>> (quint8 &  i);
   class QDataStream &  operator>> (qint16 &  i);
   class QDataStream &  operator>> (quint16 &  i);
   class QDataStream &  operator>> (qint32 &  i);
   class QDataStream &  operator>> (quint32 &  i);
   class QDataStream &  operator>> (qint64 &  i);
   class QDataStream &  operator>> (quint64 &  i);
   class QDataStream &  operator>> (_Bool &  i);
   class QDataStream &  operator>> (float &  f);
   class QDataStream &  operator>> (double &  f);
   class QDataStream &  operator>> (char *  &  str);
   class QDataStream &  operator<< (qint8 i);
   class QDataStream &  operator<< (quint8 i);
   class QDataStream &  operator<< (qint16 i);
   class QDataStream &  operator<< (quint16 i);
   class QDataStream &  operator<< (qint32 i);
   class QDataStream &  operator<< (quint32 i);
   class QDataStream &  operator<< (qint64 i);
   class QDataStream &  operator<< (quint64 i);
   class QDataStream &  operator<< (_Bool i);
   class QDataStream &  operator<< (float f);
   class QDataStream &  operator<< (double f);
   class QDataStream &  operator<< (const const char *  str);
   class QDataStream &  readBytes (char *  &  , uint &  len);
   int readRawData (char *  , int len);
   class QDataStream &  writeBytes (const const char *  , uint len);
   int writeRawData (const const char *  , int len);
   int skipRawData (int len);
private:
   constructor copyconstructor converter void QDataStream (const const class QDataStream &  );
   class QDataStream &  operator= (const const class QDataStream &  );
}; // end of QDataStream
inline class QIODevice *  device ()const volatile restrict ;
inline class QDataStream::ByteOrder byteOrder ()const volatile restrict ;
inline int version ()const volatile restrict ;
inline void setVersion (int v);
inline class QDataStream &  operator>> (quint8 &  i);
inline class QDataStream &  operator>> (quint16 &  i);
inline class QDataStream &  operator>> (quint32 &  i);
inline class QDataStream &  operator>> (quint64 &  i);
inline class QDataStream &  operator<< (quint8 i);
inline class QDataStream &  operator<< (quint16 i);
inline class QDataStream &  operator<< (quint32 i);
inline class QDataStream &  operator<< (quint64 i);
template < typename T >
   class QDataStream &  operator>> (class QDataStream &  s, QList &  l);
template < typename T >
   class QDataStream &  operator<< (class QDataStream &  s, const const QList &  l);
template < typename T >
   class QDataStream &  operator>> (class QDataStream &  s, QLinkedList &  l);
template < typename T >
   class QDataStream &  operator<< (class QDataStream &  s, const const QLinkedList &  l);
template < typename T >
   class QDataStream &  operator>> (class QDataStream &  s, QVector &  v);
template < typename T >
   class QDataStream &  operator<< (class QDataStream &  s, const const QVector &  v);
template < typename T >
   class QDataStream &  operator>> (class QDataStream &  in, QSet &  set);
template < typename T >
   class QDataStream &  operator<< (class QDataStream &  out, const const QSet &  set);
template < class Key, class T >
   class QDataStream &  operator>> (class QDataStream &  in, QHash &  hash);
template < class Key, class T >
   class QDataStream &  operator<< (class QDataStream &  out, const const QHash &  hash);
template < class aKey, class aT >
   class QDataStream &  operator>> (class QDataStream &  in, QMap &  map);
template < class Key, class T >
   class QDataStream &  operator<< (class QDataStream &  out, const const QMap &  map);
typedef enum QtValidLicenseForCoreModule QtCoreModule;
class QMetaType{
   class QMetaType{
   }; // end of QMetaType
public:
   enum Type
   {
      Void = 0,
      Bool = 1,
      Int = 2,
      UInt = 3,
      LongLong = 4,
      ULongLong = 5,
      Double = 6,
      QChar = 7,
      QVariantMap = 8,
      QVariantList = 9,
      QString = 10,
      QStringList = 11,
      QByteArray = 12,
      QBitArray = 13,
      QDate = 14,
      QTime = 15,
      QDateTime = 16,
      QUrl = 17,
      QLocale = 18,
      QRect = 19,
      QRectF = 20,
      QSize = 21,
      QSizeF = 22,
      QLine = 23,
      QLineF = 24,
      QPoint = 25,
      QPointF = 26,
      QRegExp = 27,
      QVariantHash = 28,
      QEasingCurve = 29,
      LastCoreType = QEasingCurve,
      FirstGuiType = 63,
      QFont = 64,
      QPixmap = 65,
      QBrush = 66,
      QColor = 67,
      QPalette = 68,
      QIcon = 69,
      QImage = 70,
      QPolygon = 71,
      QRegion = 72,
      QBitmap = 73,
      QCursor = 74,
      QSizePolicy = 75,
      QKeySequence = 76,
      QPen = 77,
      QTextLength = 78,
      QTextFormat = 79,
      QMatrix = 80,
      QTransform = 81,
      QMatrix4x4 = 82,
      QVector2D = 83,
      QVector3D = 84,
      QVector4D = 85,
      QQuaternion = 86,
      LastGuiType = QQuaternion,
      FirstCoreExtType = 128,
      VoidStar = 128,
      Long = 129,
      Short = 130,
      Char = 131,
      ULong = 132,
      UShort = 133,
      UChar = 134,
      Float = 135,
      QObjectStar = 136,
      QWidgetStar = 137,
      QVariant = 138,
      LastCoreExtType = QVariant,
      QReal = Double,
      User = 256
   }; // end of Type
   typedef void (void *) *  QMetaType::Destructor;
   typedef void *(const void *) *  QMetaType::Constructor;
   typedef void (class QDataStream &, const void *) *  QMetaType::SaveOperator;
   typedef void (class QDataStream &, void *) *  QMetaType::LoadOperator;
   static static void registerStreamOperators (const const char *  typeName, SaveOperator saveOp, LoadOperator loadOp);
   static static void registerStreamOperators (int type, SaveOperator saveOp, LoadOperator loadOp);
   static static int registerType (const const char *  typeName, Destructor destructor, Constructor constructor);
   static static int registerTypedef (const const char *  typeName, int aliasId);
   static static int type (const const char *  typeName);
   static static const const char *  typeName (int type);
   static static _Bool isRegistered (int type);
   static static void *  construct (int type, const const void *  copy = 0);
   static static void destroy (int type, void *  data);
   static static void unregisterType (const const char *  typeName);
   static static _Bool save (class QDataStream &  stream, int type, const const void *  data);
   static static _Bool load (class QDataStream &  stream, int type, void *  data);
}; // end of QMetaType
template < typename T >
   void qMetaTypeDeleteHelper (T *  t);
template < typename T >
   void *  qMetaTypeConstructHelper (const const T *  t);
template < typename T >
   void qMetaTypeSaveHelper (class QDataStream &  stream, const const T *  t);
template < typename T >
   void qMetaTypeLoadHelper (class QDataStream &  stream, T *  t);
template < typename T >
   struct QMetaTypeId{
      struct QMetaTypeId{
      }; // end of QMetaTypeId
      enum 
      {
         Defined = 0
      }; // end of 
   }; // end of QMetaTypeId
template < typename T >
   struct QMetaTypeId2{
      struct QMetaTypeId2{
      }; // end of QMetaTypeId2
      enum 
      {
         Defined = QMetaTypeId::Defined
      }; // end of 
      static inline static int qt_metatype_id ();
   }; // end of QMetaTypeId2
namespace QtPrivate
{
   template < typename T, _Bool Defined = QMetaTypeId2::Defined >
      struct QMetaTypeIdHelper{
         struct QMetaTypeIdHelper{
         }; // end of QMetaTypeIdHelper
         static inline static int qt_metatype_id ();
      }; // end of QMetaTypeIdHelper
} // end of QtPrivate
template < typename T >
   int qRegisterMetaType (const const char *  typeName, T *  dummy = 0);
template < typename T >
   void qRegisterMetaTypeStreamOperators (const const char *  typeName, T *   = 0);
template < typename T >
   inline int qMetaTypeId (T *   = 0);
template < typename T >
   inline int qRegisterMetaType (T *  dummy = 0);
template < typename T >
   inline int qRegisterMetaTypeStreamOperators ();
class QString{
}; // end of QString
class QByteArray{
}; // end of QByteArray
class QChar{
}; // end of QChar
class QStringList : public:
QList{
}; // end of QStringList
class QBitArray{
}; // end of QBitArray
class QDate{
}; // end of QDate
class QTime{
}; // end of QTime
class QDateTime{
}; // end of QDateTime
class QUrl{
}; // end of QUrl
class QLocale{
}; // end of QLocale
class QRect{
}; // end of QRect
class QRectF{
}; // end of QRectF
class QSize{
}; // end of QSize
class QSizeF{
}; // end of QSizeF
class QLine{
}; // end of QLine
class QLineF{
}; // end of QLineF
class QPoint{
}; // end of QPoint
class QPointF{
}; // end of QPointF
class QRegExp{
}; // end of QRegExp
class QEasingCurve{
}; // end of QEasingCurve
class QWidget : public:
class QObject, public:
class QPaintDevice{
}; // end of QWidget
class QObject{
}; // end of QObject
class QFont{
}; // end of QFont
class QPixmap : public:
class QPaintDevice{
}; // end of QPixmap
class QBrush{
}; // end of QBrush
class QColor{
}; // end of QColor
class QPalette{
}; // end of QPalette
class QIcon{
}; // end of QIcon
class QImage : public:
class QPaintDevice{
}; // end of QImage
class QPolygon : public:
QVector{
}; // end of QPolygon
class QRegion{
}; // end of QRegion
class QBitmap{
}; // end of QBitmap
class QCursor{
}; // end of QCursor
class QSizePolicy{
}; // end of QSizePolicy
class QKeySequence{
}; // end of QKeySequence
class QPen{
}; // end of QPen
class QTextLength{
}; // end of QTextLength
class QTextFormat{
}; // end of QTextFormat
class QMatrix{
}; // end of QMatrix
class QTransform{
}; // end of QTransform
class QMatrix4x4{
}; // end of QMatrix4x4
class QVector2D{
}; // end of QVector2D
class QVector3D{
}; // end of QVector3D
class QVector4D{
}; // end of QVector4D
class QQuaternion{
}; // end of QQuaternion
class QVariant{
}; // end of QVariant
namespace std
{
   enum _Rb_tree_color
   {
      _S_red = false,
      _S_black = true
   }; // end of _Rb_tree_color
   struct _Rb_tree_node_base{
      struct _Rb_tree_node_base{
      }; // end of _Rb_tree_node_base
      typedef struct std::_Rb_tree_node_base *  std::_Rb_tree_node_base::_Base_ptr;
      typedef const const struct std::_Rb_tree_node_base *  std::_Rb_tree_node_base::_Const_Base_ptr;
      static static _Base_ptr _S_minimum (_Base_ptr __x);
      static static _Const_Base_ptr _S_minimum (_Const_Base_ptr __x);
      static static _Base_ptr _S_maximum (_Base_ptr __x);
      static static _Const_Base_ptr _S_maximum (_Const_Base_ptr __x);
      inline constructor void _Rb_tree_node_base () throw ();
      inline constructor copyconstructor converter void _Rb_tree_node_base (const const struct std::_Rb_tree_node_base &  ) throw ();
   }; // end of _Rb_tree_node_base
   template < typename _Key_compare >
      struct _Rb_tree_key_compare{
         struct _Rb_tree_key_compare{
         }; // end of _Rb_tree_key_compare
         constructor void _Rb_tree_key_compare<_Key_compare> ();
         constructor converter void _Rb_tree_key_compare<_Key_compare> (const const _Key_compare &  __comp);
      }; // end of _Rb_tree_key_compare
   struct _Rb_tree_header{
      struct _Rb_tree_header{
      }; // end of _Rb_tree_header
      constructor void _Rb_tree_header ();
      void _M_move_data (struct std::_Rb_tree_header &  __from);
      void _M_reset ();
   }; // end of _Rb_tree_header
   template < typename _Val >
      struct _Rb_tree_node : public:
      struct std::_Rb_tree_node_base{
         struct _Rb_tree_node{
         }; // end of _Rb_tree_node
         typedef _Rb_tree_node<_Val> *  std::_Rb_tree_node::_Link_type;
         _Val *  _M_valptr ();
         const const _Val *  _M_valptr ()const volatile restrict ;
      }; // end of _Rb_tree_node
   struct std::_Rb_tree_node_base *  _Rb_tree_increment (struct std::_Rb_tree_node_base *  __x) throw ();
   const const struct std::_Rb_tree_node_base *  _Rb_tree_increment (const const struct std::_Rb_tree_node_base *  __x) throw ();
   struct std::_Rb_tree_node_base *  _Rb_tree_decrement (struct std::_Rb_tree_node_base *  __x) throw ();
   const const struct std::_Rb_tree_node_base *  _Rb_tree_decrement (const const struct std::_Rb_tree_node_base *  __x) throw ();
   template < typename _Tp >
      struct _Rb_tree_iterator{
         struct _Rb_tree_iterator{
         }; // end of _Rb_tree_iterator
         typedef _Tp std::_Rb_tree_iterator::value_type;
         typedef _Tp &  std::_Rb_tree_iterator::reference;
         typedef _Tp *  std::_Rb_tree_iterator::pointer;
         typedef struct std::bidirectional_iterator_tag std::_Rb_tree_iterator::iterator_category;
         typedef ptrdiff_t std::_Rb_tree_iterator::difference_type;
         typedef _Rb_tree_iterator<_Tp> std::_Rb_tree_iterator::_Self;
         typedef struct _Rb_tree_node_base::_Base_ptr std::_Rb_tree_iterator::_Base_ptr;
         typedef _Rb_tree_node<_Tp> *  std::_Rb_tree_iterator::_Link_type;
         constructor void _Rb_tree_iterator<_Tp> ();
         constructor explicit void _Rb_tree_iterator<_Tp> (_Base_ptr __x);
         reference operator* ()const volatile restrict ;
         pointer operator-> ()const volatile restrict ;
         _Self &  operator++ ();
         _Self operator++ (int );
         _Self &  operator-- ();
         _Self operator-- (int );
         _Bool operator== (const const _Self &  __x)const volatile restrict ;
         _Bool operator!= (const const _Self &  __x)const volatile restrict ;
      }; // end of _Rb_tree_iterator
   template < typename _Tp >
      struct _Rb_tree_const_iterator{
         struct _Rb_tree_const_iterator{
         }; // end of _Rb_tree_const_iterator
         typedef _Tp std::_Rb_tree_const_iterator::value_type;
         typedef const const _Tp &  std::_Rb_tree_const_iterator::reference;
         typedef const const _Tp *  std::_Rb_tree_const_iterator::pointer;
         typedef _Rb_tree_iterator<_Tp> std::_Rb_tree_const_iterator::iterator;
         typedef struct std::bidirectional_iterator_tag std::_Rb_tree_const_iterator::iterator_category;
         typedef ptrdiff_t std::_Rb_tree_const_iterator::difference_type;
         typedef _Rb_tree_const_iterator<_Tp> std::_Rb_tree_const_iterator::_Self;
         typedef struct _Rb_tree_node_base::_Const_Base_ptr std::_Rb_tree_const_iterator::_Base_ptr;
         typedef const const _Rb_tree_node<_Tp> *  std::_Rb_tree_const_iterator::_Link_type;
         constructor void _Rb_tree_const_iterator<_Tp> ();
         constructor explicit void _Rb_tree_const_iterator<_Tp> (_Base_ptr __x);
         constructor converter void _Rb_tree_const_iterator<_Tp> (const const iterator &  __it);
         iterator _M_const_cast ()const volatile restrict ;
         reference operator* ()const volatile restrict ;
         pointer operator-> ()const volatile restrict ;
         _Self &  operator++ ();
         _Self operator++ (int );
         _Self &  operator-- ();
         _Self operator-- (int );
         _Bool operator== (const const _Self &  __x)const volatile restrict ;
         _Bool operator!= (const const _Self &  __x)const volatile restrict ;
      }; // end of _Rb_tree_const_iterator
   template < typename _Val >
      inline _Bool operator== (const const _Rb_tree_iterator<_Val> &  __x, const const _Rb_tree_const_iterator<_Val> &  __y);
   template < typename _Val >
      inline _Bool operator!= (const const _Rb_tree_iterator<_Val> &  __x, const const _Rb_tree_const_iterator<_Val> &  __y);
   void _Rb_tree_insert_and_rebalance (const const _Bool __insert_left, struct std::_Rb_tree_node_base *  __x, struct std::_Rb_tree_node_base *  __p, struct std::_Rb_tree_node_base &  __header) throw ();
   struct std::_Rb_tree_node_base *  _Rb_tree_rebalance_for_erase (const struct std::_Rb_tree_node_base *  __z, struct std::_Rb_tree_node_base &  __header) throw ();
   template < typename _Key, typename _Val, typename _KeyOfValue, typename _Compare, typename _Alloc = allocator<_Val> >
      class _Rb_tree{
         class _Rb_tree{
         }; // end of _Rb_tree
         typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Rb_tree_node<_Val> >::other std::_Rb_tree::_Node_allocator;
         typedef __gnu_cxx::__alloc_traits<_Node_allocator> std::_Rb_tree::_Alloc_traits;
      protected:
         typedef struct std::_Rb_tree_node_base *  std::_Rb_tree::_Base_ptr;
         typedef const const struct std::_Rb_tree_node_base *  std::_Rb_tree::_Const_Base_ptr;
         typedef _Rb_tree_node<_Val> *  std::_Rb_tree::_Link_type;
         typedef const const _Rb_tree_node<_Val> *  std::_Rb_tree::_Const_Link_type;
      private:
         struct _Reuse_or_alloc_node{
            struct _Reuse_or_alloc_node{
            }; // end of _Reuse_or_alloc_node
            constructor converter void _Reuse_or_alloc_node (_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> &  __t);
            destructor void ~_Reuse_or_alloc_node ();
            template < typename _Arg >
               _Link_type operator() (const const _Arg &  __arg);
         private:
            _Base_ptr _M_extract ();
         }; // end of _Reuse_or_alloc_node
         struct _Alloc_node{
            struct _Alloc_node{
            }; // end of _Alloc_node
            constructor converter void _Alloc_node (_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> &  __t);
            template < typename _Arg >
               _Link_type operator() (const const _Arg &  __arg)const volatile restrict ;
         private:
         }; // end of _Alloc_node
      public:
         typedef _Key std::_Rb_tree::key_type;
         typedef _Val std::_Rb_tree::value_type;
         typedef value_type *  std::_Rb_tree::pointer;
         typedef const const value_type *  std::_Rb_tree::const_pointer;
         typedef value_type &  std::_Rb_tree::reference;
         typedef const const value_type &  std::_Rb_tree::const_reference;
         typedef size_t std::_Rb_tree::size_type;
         typedef ptrdiff_t std::_Rb_tree::difference_type;
         typedef _Alloc std::_Rb_tree::allocator_type;
         _Node_allocator &  _M_get_Node_allocator ();
         const const _Node_allocator &  _M_get_Node_allocator ()const volatile restrict ;
         allocator_type get_allocator ()const volatile restrict ;
      protected:
         _Link_type _M_get_node ();
         void _M_put_node (_Link_type __p);
         void _M_construct_node (_Link_type __node, const const value_type &  __x);
         _Link_type _M_create_node (const const value_type &  __x);
         void _M_destroy_node (_Link_type __p);
         void _M_drop_node (_Link_type __p);
         template < typename _NodeGen >
            _Link_type _M_clone_node (_Const_Link_type __x, _NodeGen &  __node_gen);
      protected:
         template < typename _Key_compare, _Bool = __is_pod(_Key_compare) >
            struct _Rb_tree_impl : public:
            _Node_allocator, public:
            _Rb_tree_key_compare<_Key_compare>, public:
            struct std::_Rb_tree_header{
               struct _Rb_tree_impl{
               }; // end of _Rb_tree_impl
               typedef _Rb_tree_key_compare<_Key_compare> std::_Rb_tree::_Rb_tree_impl::_Base_key_compare;
               constructor void _Rb_tree_impl<_Key_compare, > ();
               constructor copyconstructor converter void _Rb_tree_impl<_Key_compare, > (const const _Rb_tree_impl<_Key_compare, > &  __x);
               constructor void _Rb_tree_impl<_Key_compare, > (const const _Key_compare &  __comp, const const _Node_allocator &  __a);
            }; // end of _Rb_tree_impl
      protected:
         _Base_ptr &  _M_root ();
         _Const_Base_ptr _M_root ()const volatile restrict ;
         _Base_ptr &  _M_leftmost ();
         _Const_Base_ptr _M_leftmost ()const volatile restrict ;
         _Base_ptr &  _M_rightmost ();
         _Const_Base_ptr _M_rightmost ()const volatile restrict ;
         _Link_type _M_begin ();
         _Const_Link_type _M_begin ()const volatile restrict ;
         _Base_ptr _M_end ();
         _Const_Base_ptr _M_end ()const volatile restrict ;
         static static const_reference _S_value (_Const_Link_type __x);
         static static const const _Key &  _S_key (_Const_Link_type __x);
         static static _Link_type _S_left (_Base_ptr __x);
         static static _Const_Link_type _S_left (_Const_Base_ptr __x);
         static static _Link_type _S_right (_Base_ptr __x);
         static static _Const_Link_type _S_right (_Const_Base_ptr __x);
         static static const_reference _S_value (_Const_Base_ptr __x);
         static static const const _Key &  _S_key (_Const_Base_ptr __x);
         static static _Base_ptr _S_minimum (_Base_ptr __x);
         static static _Const_Base_ptr _S_minimum (_Const_Base_ptr __x);
         static static _Base_ptr _S_maximum (_Base_ptr __x);
         static static _Const_Base_ptr _S_maximum (_Const_Base_ptr __x);
      public:
         typedef _Rb_tree_iterator std::_Rb_tree::iterator;
         typedef _Rb_tree_const_iterator std::_Rb_tree::const_iterator;
         typedef std::reverse_iterator std::_Rb_tree::reverse_iterator;
         typedef std::reverse_iterator std::_Rb_tree::const_reverse_iterator;
         pair<_Base_ptr, _Base_ptr> _M_get_insert_unique_pos (const const key_type &  __k);
         pair<_Base_ptr, _Base_ptr> _M_get_insert_equal_pos (const const key_type &  __k);
         pair<_Base_ptr, _Base_ptr> _M_get_insert_hint_unique_pos (const_iterator __pos, const const key_type &  __k);
         pair<_Base_ptr, _Base_ptr> _M_get_insert_hint_equal_pos (const_iterator __pos, const const key_type &  __k);
      private:
         template < typename _NodeGen >
            iterator _M_insert_ (_Base_ptr __x, _Base_ptr __y, const const value_type &  __v, _NodeGen &  );
         iterator _M_insert_lower (_Base_ptr __y, const const value_type &  __v);
         iterator _M_insert_equal_lower (const const value_type &  __x);
         template < typename _NodeGen >
            _Link_type _M_copy (_Const_Link_type __x, _Base_ptr __p, _NodeGen &  );
         template < typename _NodeGen >
            _Link_type _M_copy (const const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> &  __x, _NodeGen &  __gen);
         _Link_type _M_copy (const const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> &  __x);
         void _M_erase (_Link_type __x);
         iterator _M_lower_bound (_Link_type __x, _Base_ptr __y, const const _Key &  __k);
         const_iterator _M_lower_bound (_Const_Link_type __x, _Const_Base_ptr __y, const const _Key &  __k)const volatile restrict ;
         iterator _M_upper_bound (_Link_type __x, _Base_ptr __y, const const _Key &  __k);
         const_iterator _M_upper_bound (_Const_Link_type __x, _Const_Base_ptr __y, const const _Key &  __k)const volatile restrict ;
      public:
         constructor void _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> ();
         constructor converter void _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> (const const _Compare &  __comp, const const allocator_type &  __a = allocator_type());
         constructor copyconstructor converter void _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> (const const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> &  __x);
         destructor void ~_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> ();
         _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> &  operator= (const const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> &  __x);
         _Compare key_comp ()const volatile restrict ;
         iterator begin ();
         const_iterator begin ()const volatile restrict ;
         iterator end ();
         const_iterator end ()const volatile restrict ;
         reverse_iterator rbegin ();
         const_reverse_iterator rbegin ()const volatile restrict ;
         reverse_iterator rend ();
         const_reverse_iterator rend ()const volatile restrict ;
         _Bool empty ()const volatile restrict ;
         size_type size ()const volatile restrict ;
         size_type max_size ()const volatile restrict ;
         void swap (_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> &  __t);
         pair _M_insert_unique (const const value_type &  __x);
         iterator _M_insert_equal (const const value_type &  __x);
         template < typename _NodeGen >
            iterator _M_insert_unique_ (const_iterator __pos, const const value_type &  __x, _NodeGen &  );
         iterator _M_insert_unique_ (const_iterator __pos, const const value_type &  __x);
         template < typename _NodeGen >
            iterator _M_insert_equal_ (const_iterator __pos, const const value_type &  __x, _NodeGen &  );
         iterator _M_insert_equal_ (const_iterator __pos, const const value_type &  __x);
         template < typename _InputIterator >
            void _M_insert_unique (_InputIterator __first, _InputIterator __last);
         template < typename _InputIterator >
            void _M_insert_equal (_InputIterator __first, _InputIterator __last);
      private:
         void _M_erase_aux (const_iterator __position);
         void _M_erase_aux (const_iterator __first, const_iterator __last);
      public:
         void erase (iterator __position);
         void erase (const_iterator __position);
         size_type erase (const const key_type &  __x);
         void erase (iterator __first, iterator __last);
         void erase (const_iterator __first, const_iterator __last);
         void erase (const const key_type *  __first, const const key_type *  __last);
         void clear ();
         iterator find (const const key_type &  __k);
         const_iterator find (const const key_type &  __k)const volatile restrict ;
         size_type count (const const key_type &  __k)const volatile restrict ;
         iterator lower_bound (const const key_type &  __k);
         const_iterator lower_bound (const const key_type &  __k)const volatile restrict ;
         iterator upper_bound (const const key_type &  __k);
         const_iterator upper_bound (const const key_type &  __k)const volatile restrict ;
         pair equal_range (const const key_type &  __k);
         pair equal_range (const const key_type &  __k)const volatile restrict ;
         _Bool __rb_verify ()const volatile restrict ;
      }; // end of _Rb_tree
   template < typename _Key, typename _Val, typename _KeyOfValue, typename _Compare, typename _Alloc >
      inline _Bool operator== (const const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> &  __x, const const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> &  __y);
   template < typename _Key, typename _Val, typename _KeyOfValue, typename _Compare, typename _Alloc >
      inline _Bool operator< (const const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> &  __x, const const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> &  __y);
   template < typename _Key, typename _Val, typename _KeyOfValue, typename _Compare, typename _Alloc >
      inline _Bool operator!= (const const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> &  __x, const const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> &  __y);
   template < typename _Key, typename _Val, typename _KeyOfValue, typename _Compare, typename _Alloc >
      inline _Bool operator> (const const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> &  __x, const const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> &  __y);
   template < typename _Key, typename _Val, typename _KeyOfValue, typename _Compare, typename _Alloc >
      inline _Bool operator<= (const const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> &  __x, const const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> &  __y);
   template < typename _Key, typename _Val, typename _KeyOfValue, typename _Compare, typename _Alloc >
      inline _Bool operator>= (const const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> &  __x, const const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> &  __y);
   template < typename _Key, typename _Val, typename _KeyOfValue, typename _Compare, typename _Alloc >
      inline void swap (_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> &  __x, _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> &  __y);
   _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> &  operator= (const const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> &  __x);
   template < typename _NodeGen >
      typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _M_insert_ (_Base_ptr __x, _Base_ptr __p, const const _Val &  __v, _NodeGen &  __node_gen);
   typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _M_insert_lower (_Base_ptr __p, const const _Val &  __v);
   typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _M_insert_equal_lower (const const _Val &  __v);
   template < typename _NodeGen >
      typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::_Link_type _M_copy (_Const_Link_type __x, _Base_ptr __p, _NodeGen &  __node_gen);
   void _M_erase (_Link_type __x);
   typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _M_lower_bound (_Link_type __x, _Base_ptr __y, const const _Key &  __k);
   typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator _M_lower_bound (_Const_Link_type __x, _Const_Base_ptr __y, const const _Key &  __k)const volatile restrict ;
   typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _M_upper_bound (_Link_type __x, _Base_ptr __y, const const _Key &  __k);
   typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator _M_upper_bound (_Const_Link_type __x, _Const_Base_ptr __y, const const _Key &  __k)const volatile restrict ;
   pair::iterator, typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator> equal_range (const const _Key &  __k);
   pair::const_iterator, typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator> equal_range (const const _Key &  __k)const volatile restrict ;
   void swap (_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> &  __t);
   pair::_Base_ptr, typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Base_ptr> _M_get_insert_unique_pos (const const key_type &  __k);
   pair::_Base_ptr, typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Base_ptr> _M_get_insert_equal_pos (const const key_type &  __k);
   pair::iterator, _Bool> _M_insert_unique (const const _Val &  __v);
   typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _M_insert_equal (const const _Val &  __v);
   pair::_Base_ptr, typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Base_ptr> _M_get_insert_hint_unique_pos (const_iterator __position, const const key_type &  __k);
   template < typename _NodeGen >
      typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _M_insert_unique_ (const_iterator __position, const const _Val &  __v, _NodeGen &  __node_gen);
   pair::_Base_ptr, typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Base_ptr> _M_get_insert_hint_equal_pos (const_iterator __position, const const key_type &  __k);
   template < typename _NodeGen >
      typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator _M_insert_equal_ (const_iterator __position, const const _Val &  __v, _NodeGen &  __node_gen);
   template < class _II >
      void _M_insert_unique (_II __first, _II __last);
   template < class _II >
      void _M_insert_equal (_II __first, _II __last);
   void _M_erase_aux (const_iterator __position);
   void _M_erase_aux (const_iterator __first, const_iterator __last);
   typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type erase (const const _Key &  __x);
   void erase (const const _Key *  __first, const const _Key *  __last);
   typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator find (const const _Key &  __k);
   typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator find (const const _Key &  __k)const volatile restrict ;
   typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type count (const const _Key &  __k)const volatile restrict ;
   unsigned int _Rb_tree_black_count (const const struct std::_Rb_tree_node_base *  __node, const const struct std::_Rb_tree_node_base *  __root) throw ();
   _Bool __rb_verify ()const volatile restrict ;
} // end of std
namespace std
{
   template < typename _Key, typename _Tp, typename _Compare, typename _Alloc >
      class multimap{
      }; // end of multimap
   template < typename _Key, typename _Tp, typename _Compare = std::less<_Key>, typename _Alloc = std::allocator > >
      class map{
         class map{
         }; // end of map
      public:
         typedef _Key std::map::key_type;
         typedef _Tp std::map::mapped_type;
         typedef std::pair std::map::value_type;
         typedef _Compare std::map::key_compare;
         typedef _Alloc std::map::allocator_type;
      private:
      public:
         class value_compare : public:
         std::binary_function{
            class value_compare{
            }; // end of value_compare
         protected:
            constructor converter void value_compare (_Compare __c);
         public:
            _Bool operator() (const const value_type &  __x, const const value_type &  __y)const volatile restrict ;
         }; // end of value_compare
      private:
         typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template __gnu_cxx::__alloc_traits<_Alloc>::rebind::other std::map::_Pair_alloc_type;
         typedef _Rb_tree, key_compare, _Pair_alloc_type> std::map::_Rep_type;
         typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> std::map::_Alloc_traits;
      public:
         typedef typename _Alloc_traits::pointer std::map::pointer;
         typedef typename _Alloc_traits::const_pointer std::map::const_pointer;
         typedef typename _Alloc_traits::reference std::map::reference;
         typedef typename _Alloc_traits::const_reference std::map::const_reference;
         typedef typename _Rep_type::iterator std::map::iterator;
         typedef typename _Rep_type::const_iterator std::map::const_iterator;
         typedef typename _Rep_type::size_type std::map::size_type;
         typedef typename _Rep_type::difference_type std::map::difference_type;
         typedef typename _Rep_type::reverse_iterator std::map::reverse_iterator;
         typedef typename _Rep_type::const_reverse_iterator std::map::const_reverse_iterator;
         constructor void map<_Key, _Tp, _Compare, _Alloc> ();
         constructor explicit void map<_Key, _Tp, _Compare, _Alloc> (const const _Compare &  __comp, const const allocator_type &  __a = allocator_type());
         constructor copyconstructor converter void map<_Key, _Tp, _Compare, _Alloc> (const const map<_Key, _Tp, _Compare, _Alloc> &  __x);
         template < typename _InputIterator >
            constructor void map<_Key, _Tp, _Compare, _Alloc> (_InputIterator __first, _InputIterator __last);
         template < typename _InputIterator >
            constructor void map<_Key, _Tp, _Compare, _Alloc> (_InputIterator __first, _InputIterator __last, const const _Compare &  __comp, const const allocator_type &  __a = allocator_type());
         map<_Key, _Tp, _Compare, _Alloc> &  operator= (const const map<_Key, _Tp, _Compare, _Alloc> &  __x);
         allocator_type get_allocator ()const volatile restrict ;
         iterator begin ();
         const_iterator begin ()const volatile restrict ;
         iterator end ();
         const_iterator end ()const volatile restrict ;
         reverse_iterator rbegin ();
         const_reverse_iterator rbegin ()const volatile restrict ;
         reverse_iterator rend ();
         const_reverse_iterator rend ()const volatile restrict ;
         _Bool empty ()const volatile restrict ;
         size_type size ()const volatile restrict ;
         size_type max_size ()const volatile restrict ;
         mapped_type &  operator[] (const const key_type &  __k);
         mapped_type &  at (const const key_type &  __k);
         const const mapped_type &  at (const const key_type &  __k)const volatile restrict ;
         std::pair insert (const const value_type &  __x);
         iterator insert (iterator __position, const const value_type &  __x);
         template < typename _InputIterator >
            void insert (_InputIterator __first, _InputIterator __last);
         void erase (iterator __position);
         size_type erase (const const key_type &  __x);
         void erase (iterator __first, iterator __last);
         void swap (map<_Key, _Tp, _Compare, _Alloc> &  __x);
         void clear ();
         key_compare key_comp ()const volatile restrict ;
         class std::map::value_compare value_comp ()const volatile restrict ;
         iterator find (const const key_type &  __x);
         const_iterator find (const const key_type &  __x)const volatile restrict ;
         size_type count (const const key_type &  __x)const volatile restrict ;
         iterator lower_bound (const const key_type &  __x);
         const_iterator lower_bound (const const key_type &  __x)const volatile restrict ;
         iterator upper_bound (const const key_type &  __x);
         const_iterator upper_bound (const const key_type &  __x)const volatile restrict ;
         std::pair equal_range (const const key_type &  __x);
         std::pair equal_range (const const key_type &  __x)const volatile restrict ;
         friend operator==;
         friend operator<;
      }; // end of map
   template < typename _Key, typename _Tp, typename _Compare, typename _Alloc >
      inline _Bool operator== (const const map<_Key, _Tp, _Compare, _Alloc> &  __x, const const map<_Key, _Tp, _Compare, _Alloc> &  __y);
   template < typename _Key, typename _Tp, typename _Compare, typename _Alloc >
      inline _Bool operator< (const const map<_Key, _Tp, _Compare, _Alloc> &  __x, const const map<_Key, _Tp, _Compare, _Alloc> &  __y);
   template < typename _Key, typename _Tp, typename _Compare, typename _Alloc >
      inline _Bool operator!= (const const map<_Key, _Tp, _Compare, _Alloc> &  __x, const const map<_Key, _Tp, _Compare, _Alloc> &  __y);
   template < typename _Key, typename _Tp, typename _Compare, typename _Alloc >
      inline _Bool operator> (const const map<_Key, _Tp, _Compare, _Alloc> &  __x, const const map<_Key, _Tp, _Compare, _Alloc> &  __y);
   template < typename _Key, typename _Tp, typename _Compare, typename _Alloc >
      inline _Bool operator<= (const const map<_Key, _Tp, _Compare, _Alloc> &  __x, const const map<_Key, _Tp, _Compare, _Alloc> &  __y);
   template < typename _Key, typename _Tp, typename _Compare, typename _Alloc >
      inline _Bool operator>= (const const map<_Key, _Tp, _Compare, _Alloc> &  __x, const const map<_Key, _Tp, _Compare, _Alloc> &  __y);
   template < typename _Key, typename _Tp, typename _Compare, typename _Alloc >
      inline void swap (map<_Key, _Tp, _Compare, _Alloc> &  __x, map<_Key, _Tp, _Compare, _Alloc> &  __y);
} // end of std
namespace std
{
   template < typename _Key, typename _Tp, typename _Compare = std::less<_Key>, typename _Alloc = std::allocator > >
      class map{
      }; // end of map
   template < typename _Key, typename _Tp, typename _Compare = std::less<_Key>, typename _Alloc = std::allocator > >
      class multimap{
         class multimap{
         }; // end of multimap
      public:
         typedef _Key std::multimap::key_type;
         typedef _Tp std::multimap::mapped_type;
         typedef std::pair std::multimap::value_type;
         typedef _Compare std::multimap::key_compare;
         typedef _Alloc std::multimap::allocator_type;
      private:
      public:
         class value_compare : public:
         std::binary_function{
            class value_compare{
            }; // end of value_compare
         protected:
            constructor converter void value_compare (_Compare __c);
         public:
            _Bool operator() (const const value_type &  __x, const const value_type &  __y)const volatile restrict ;
         }; // end of value_compare
      private:
         typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template __gnu_cxx::__alloc_traits<_Alloc>::rebind::other std::multimap::_Pair_alloc_type;
         typedef _Rb_tree, key_compare, _Pair_alloc_type> std::multimap::_Rep_type;
         typedef __gnu_cxx::__alloc_traits<_Pair_alloc_type> std::multimap::_Alloc_traits;
      public:
         typedef typename _Alloc_traits::pointer std::multimap::pointer;
         typedef typename _Alloc_traits::const_pointer std::multimap::const_pointer;
         typedef typename _Alloc_traits::reference std::multimap::reference;
         typedef typename _Alloc_traits::const_reference std::multimap::const_reference;
         typedef typename _Rep_type::iterator std::multimap::iterator;
         typedef typename _Rep_type::const_iterator std::multimap::const_iterator;
         typedef typename _Rep_type::size_type std::multimap::size_type;
         typedef typename _Rep_type::difference_type std::multimap::difference_type;
         typedef typename _Rep_type::reverse_iterator std::multimap::reverse_iterator;
         typedef typename _Rep_type::const_reverse_iterator std::multimap::const_reverse_iterator;
         constructor void multimap<_Key, _Tp, _Compare, _Alloc> ();
         constructor explicit void multimap<_Key, _Tp, _Compare, _Alloc> (const const _Compare &  __comp, const const allocator_type &  __a = allocator_type());
         constructor copyconstructor converter void multimap<_Key, _Tp, _Compare, _Alloc> (const const multimap<_Key, _Tp, _Compare, _Alloc> &  __x);
         template < typename _InputIterator >
            constructor void multimap<_Key, _Tp, _Compare, _Alloc> (_InputIterator __first, _InputIterator __last);
         template < typename _InputIterator >
            constructor void multimap<_Key, _Tp, _Compare, _Alloc> (_InputIterator __first, _InputIterator __last, const const _Compare &  __comp, const const allocator_type &  __a = allocator_type());
         multimap<_Key, _Tp, _Compare, _Alloc> &  operator= (const const multimap<_Key, _Tp, _Compare, _Alloc> &  __x);
         allocator_type get_allocator ()const volatile restrict ;
         iterator begin ();
         const_iterator begin ()const volatile restrict ;
         iterator end ();
         const_iterator end ()const volatile restrict ;
         reverse_iterator rbegin ();
         const_reverse_iterator rbegin ()const volatile restrict ;
         reverse_iterator rend ();
         const_reverse_iterator rend ()const volatile restrict ;
         _Bool empty ()const volatile restrict ;
         size_type size ()const volatile restrict ;
         size_type max_size ()const volatile restrict ;
         iterator insert (const const value_type &  __x);
         iterator insert (iterator __position, const const value_type &  __x);
         template < typename _InputIterator >
            void insert (_InputIterator __first, _InputIterator __last);
         void erase (iterator __position);
         size_type erase (const const key_type &  __x);
         void erase (iterator __first, iterator __last);
         void swap (multimap<_Key, _Tp, _Compare, _Alloc> &  __x);
         void clear ();
         key_compare key_comp ()const volatile restrict ;
         class std::multimap::value_compare value_comp ()const volatile restrict ;
         iterator find (const const key_type &  __x);
         const_iterator find (const const key_type &  __x)const volatile restrict ;
         size_type count (const const key_type &  __x)const volatile restrict ;
         iterator lower_bound (const const key_type &  __x);
         const_iterator lower_bound (const const key_type &  __x)const volatile restrict ;
         iterator upper_bound (const const key_type &  __x);
         const_iterator upper_bound (const const key_type &  __x)const volatile restrict ;
         std::pair equal_range (const const key_type &  __x);
         std::pair equal_range (const const key_type &  __x)const volatile restrict ;
         friend operator==;
         friend operator<;
      }; // end of multimap
   template < typename _Key, typename _Tp, typename _Compare, typename _Alloc >
      inline _Bool operator== (const const multimap<_Key, _Tp, _Compare, _Alloc> &  __x, const const multimap<_Key, _Tp, _Compare, _Alloc> &  __y);
   template < typename _Key, typename _Tp, typename _Compare, typename _Alloc >
      inline _Bool operator< (const const multimap<_Key, _Tp, _Compare, _Alloc> &  __x, const const multimap<_Key, _Tp, _Compare, _Alloc> &  __y);
   template < typename _Key, typename _Tp, typename _Compare, typename _Alloc >
      inline _Bool operator!= (const const multimap<_Key, _Tp, _Compare, _Alloc> &  __x, const const multimap<_Key, _Tp, _Compare, _Alloc> &  __y);
   template < typename _Key, typename _Tp, typename _Compare, typename _Alloc >
      inline _Bool operator> (const const multimap<_Key, _Tp, _Compare, _Alloc> &  __x, const const multimap<_Key, _Tp, _Compare, _Alloc> &  __y);
   template < typename _Key, typename _Tp, typename _Compare, typename _Alloc >
      inline _Bool operator<= (const const multimap<_Key, _Tp, _Compare, _Alloc> &  __x, const const multimap<_Key, _Tp, _Compare, _Alloc> &  __y);
   template < typename _Key, typename _Tp, typename _Compare, typename _Alloc >
      inline _Bool operator>= (const const multimap<_Key, _Tp, _Compare, _Alloc> &  __x, const const multimap<_Key, _Tp, _Compare, _Alloc> &  __y);
   template < typename _Key, typename _Tp, typename _Compare, typename _Alloc >
      inline void swap (multimap<_Key, _Tp, _Compare, _Alloc> &  __x, multimap<_Key, _Tp, _Compare, _Alloc> &  __y);
} // end of std
typedef enum QtValidLicenseForCoreModule QtCoreModule;
struct QMapData{
   struct QMapData{
   }; // end of QMapData
   struct Node{
      struct Node{
      }; // end of Node
   }; // end of Node
   enum 
   {
      LastLevel = 11,
      Sparseness = 3
   }; // end of 
   static static struct QMapData *  createData ();
   static static struct QMapData *  createData (int alignment);
   void continueFreeData (int offset);
   struct QMapData::Node *  node_create (struct QMapData::Node ** update, int offset);
   struct QMapData::Node *  node_create (struct QMapData::Node ** update, int offset, int alignment);
   void node_delete (struct QMapData::Node ** update, int offset, struct QMapData::Node *  node);
   /* variable */ static struct QMapData shared_null;
}; // end of QMapData
template < class Key >
   inline _Bool qMapLessThanKey (const const Key &  key1, const const Key &  key2);
template < class Ptr >
   inline _Bool qMapLessThanKey (Ptr *  key1, Ptr *  key2);
template < class Ptr >
   inline _Bool qMapLessThanKey (const const Ptr *  key1, const const Ptr *  key2);
template < class Key, class T >
   struct QMapNode{
      struct QMapNode{
      }; // end of QMapNode
   private:
   }; // end of QMapNode
template < class Key, class T >
   struct QMapPayloadNode{
      struct QMapPayloadNode{
      }; // end of QMapPayloadNode
   private:
   }; // end of QMapPayloadNode
template < class Key, class T >
   class QMap{
      class QMap{
      }; // end of QMap
      typedef QMapNode QMap::Node;
      typedef QMapPayloadNode QMap::PayloadNode;
      union {
      }; // end of 
      static inline static int payload ();
      static inline static int alignment ();
      static inline static Node *  concrete (struct QMapData::Node *  node);
   public:
      inline constructor void QMap ();
      inline constructor copyconstructor converter void QMap (const const QMap &  other);
      inline destructor void ~QMap ();
      QMap &  operator= (const const QMap &  other);
      inline void swap (QMap &  other);
      constructor explicit void QMap (const const typename std::map &  other);
      std::map toStdMap ()const volatile restrict ;
      _Bool operator== (const const QMap &  other)const volatile restrict ;
      inline _Bool operator!= (const const QMap &  other)const volatile restrict ;
      inline int size ()const volatile restrict ;
      inline _Bool isEmpty ()const volatile restrict ;
      inline void detach ();
      inline _Bool isDetached ()const volatile restrict ;
      inline void setSharable (_Bool sharable);
      inline _Bool isSharedWith (const const QMap &  other)const volatile restrict ;
      inline void setInsertInOrder (_Bool ordered);
      void clear ();
      int remove (const const Key &  key);
      T take (const const Key &  key);
      _Bool contains (const const Key &  key)const volatile restrict ;
      const const Key key (const const T &  value)const volatile restrict ;
      const const Key key (const const T &  value, const const Key &  defaultKey)const volatile restrict ;
      const const T value (const const Key &  key)const volatile restrict ;
      const const T value (const const Key &  key, const const T &  defaultValue)const volatile restrict ;
      T &  operator[] (const const Key &  key);
      const const T operator[] (const const Key &  key)const volatile restrict ;
      QList uniqueKeys ()const volatile restrict ;
      QList keys ()const volatile restrict ;
      QList keys (const const T &  value)const volatile restrict ;
      QList values ()const volatile restrict ;
      QList values (const const Key &  key)const volatile restrict ;
      int count (const const Key &  key)const volatile restrict ;
      class const_iterator{
      }; // end of const_iterator
      class iterator{
         class iterator{
         }; // end of iterator
      public:
         typedef std::bidirectional_iterator_tag QMap::iterator::iterator_category;
         typedef qptrdiff QMap::iterator::difference_type;
         typedef T QMap::iterator::value_type;
         typedef T *  QMap::iterator::pointer;
         typedef T &  QMap::iterator::reference;
         inline converter struct QMapData::Node *  operator QMapData::Node * ()const volatile restrict ;
         inline constructor void iterator ();
         inline constructor converter void iterator (struct QMapData::Node *  node);
         inline const const Key &  key ()const volatile restrict ;
         inline T &  value ()const volatile restrict ;
         inline T &  operator* ()const volatile restrict ;
         inline T *  operator-> ()const volatile restrict ;
         inline _Bool operator== (const const class QMap::iterator &  o)const volatile restrict ;
         inline _Bool operator!= (const const class QMap::iterator &  o)const volatile restrict ;
         inline class QMap::iterator &  operator++ ();
         inline class QMap::iterator operator++ (int );
         inline class QMap::iterator &  operator-- ();
         inline class QMap::iterator operator-- (int );
         inline class QMap::iterator operator+ (int j)const volatile restrict ;
         inline class QMap::iterator operator- (int j)const volatile restrict ;
         inline class QMap::iterator &  operator+= (int j);
         inline class QMap::iterator &  operator-= (int j);
      public:
         inline _Bool operator== (const const class QMap::const_iterator &  o)const volatile restrict ;
         inline _Bool operator!= (const const class QMap::const_iterator &  o)const volatile restrict ;
      private:
         inline converter _Bool operator bool ()const volatile restrict ;
      }; // end of iterator
      class const_iterator{
         class const_iterator{
         }; // end of const_iterator
      public:
         typedef std::bidirectional_iterator_tag QMap::const_iterator::iterator_category;
         typedef qptrdiff QMap::const_iterator::difference_type;
         typedef T QMap::const_iterator::value_type;
         typedef const const T *  QMap::const_iterator::pointer;
         typedef const const T &  QMap::const_iterator::reference;
         inline converter struct QMapData::Node *  operator QMapData::Node * ()const volatile restrict ;
         inline constructor void const_iterator ();
         inline constructor converter void const_iterator (struct QMapData::Node *  node);
         inline constructor converter void const_iterator (const const class QMap::iterator &  o);
         inline const const Key &  key ()const volatile restrict ;
         inline const const T &  value ()const volatile restrict ;
         inline const const T &  operator* ()const volatile restrict ;
         inline const const T *  operator-> ()const volatile restrict ;
         inline _Bool operator== (const const class QMap::const_iterator &  o)const volatile restrict ;
         inline _Bool operator!= (const const class QMap::const_iterator &  o)const volatile restrict ;
         inline class QMap::const_iterator &  operator++ ();
         inline class QMap::const_iterator operator++ (int );
         inline class QMap::const_iterator &  operator-- ();
         inline class QMap::const_iterator operator-- (int );
         inline class QMap::const_iterator operator+ (int j)const volatile restrict ;
         inline class QMap::const_iterator operator- (int j)const volatile restrict ;
         inline class QMap::const_iterator &  operator+= (int j);
         inline class QMap::const_iterator &  operator-= (int j);
      private:
         inline converter _Bool operator bool ()const volatile restrict ;
      }; // end of const_iterator
      inline class QMap::iterator begin ();
      inline class QMap::const_iterator begin ()const volatile restrict ;
      inline class QMap::const_iterator constBegin ()const volatile restrict ;
      inline class QMap::iterator end ();
      inline class QMap::const_iterator end ()const volatile restrict ;
      inline class QMap::const_iterator constEnd ()const volatile restrict ;
      class QMap::iterator erase (class QMap::iterator it);
      typedef class QMap::iterator QMap::Iterator;
      typedef class QMap::const_iterator QMap::ConstIterator;
      inline int count ()const volatile restrict ;
      class QMap::iterator find (const const Key &  key);
      class QMap::const_iterator find (const const Key &  key)const volatile restrict ;
      class QMap::const_iterator constFind (const const Key &  key)const volatile restrict ;
      class QMap::iterator lowerBound (const const Key &  key);
      class QMap::const_iterator lowerBound (const const Key &  key)const volatile restrict ;
      class QMap::iterator upperBound (const const Key &  key);
      class QMap::const_iterator upperBound (const const Key &  key)const volatile restrict ;
      class QMap::iterator insert (const const Key &  key, const const T &  value);
      class QMap::iterator insertMulti (const const Key &  key, const const T &  value);
      QMap &  unite (const const QMap &  other);
      typedef Key QMap::key_type;
      typedef T QMap::mapped_type;
      typedef qptrdiff QMap::difference_type;
      typedef int QMap::size_type;
      inline _Bool empty ()const volatile restrict ;
   private:
      void detach_helper ();
      void freeData (struct QMapData *  d);
      struct QMapData::Node *  findNode (const const Key &  key)const volatile restrict ;
      struct QMapData::Node *  mutableFindNode (struct QMapData::Node ** update, const const Key &  key)const volatile restrict ;
      struct QMapData::Node *  node_create (struct QMapData *  d, struct QMapData::Node ** update, const const Key &  key, const const T &  value);
   }; // end of QMap
inline QMap &  operator= (const const QMap &  other);
inline void clear ();
inline typename struct QMapData::Node *  node_create (struct QMapData *  adt, struct QMapData::Node ** aupdate, const const Key &  akey, const const T &  avalue);
inline struct QMapData::Node *  findNode (const const Key &  akey)const volatile restrict ;
inline const const T value (const const Key &  akey)const volatile restrict ;
inline const const T value (const const Key &  akey, const const T &  adefaultValue)const volatile restrict ;
inline const const T operator[] (const const Key &  akey)const volatile restrict ;
inline T &  operator[] (const const Key &  akey);
inline int count (const const Key &  akey)const volatile restrict ;
inline _Bool contains (const const Key &  akey)const volatile restrict ;
inline typename QMap::iterator insert (const const Key &  akey, const const T &  avalue);
inline typename QMap::iterator insertMulti (const const Key &  akey, const const T &  avalue);
inline typename QMap::const_iterator find (const const Key &  akey)const volatile restrict ;
inline typename QMap::const_iterator constFind (const const Key &  akey)const volatile restrict ;
inline typename QMap::iterator find (const const Key &  akey);
inline QMap &  unite (const const QMap &  other);
void freeData (struct QMapData *  x);
int remove (const const Key &  akey);
T take (const const Key &  akey);
typename QMap::iterator erase (class QMap::iterator it);
void detach_helper ();
struct QMapData::Node *  mutableFindNode (struct QMapData::Node ** aupdate, const const Key &  akey)const volatile restrict ;
QList uniqueKeys ()const volatile restrict ;
QList keys ()const volatile restrict ;
QList keys (const const T &  avalue)const volatile restrict ;
const const Key key (const const T &  avalue)const volatile restrict ;
const const Key key (const const T &  avalue, const const Key &  defaultKey)const volatile restrict ;
QList values ()const volatile restrict ;
QList values (const const Key &  akey)const volatile restrict ;
inline typename QMap::const_iterator lowerBound (const const Key &  akey)const volatile restrict ;
inline typename QMap::iterator lowerBound (const const Key &  akey);
inline typename QMap::const_iterator upperBound (const const Key &  akey)const volatile restrict ;
inline typename QMap::iterator upperBound (const const Key &  akey);
_Bool operator== (const const QMap &  other)const volatile restrict ;
constructor explicit void QMap (const const std::map &  other);
std::map toStdMap ()const volatile restrict ;
template < class Key, class T >
   class QMultiMap : public:
   QMap{
      class QMultiMap{
      }; // end of QMultiMap
   public:
      constructor void QMultiMap ();
      constructor converter void QMultiMap (const const QMap &  other);
      inline void swap (QMultiMap &  other);
      inline typename QMap::iterator replace (const const Key &  key, const const T &  value);
      inline typename QMap::iterator insert (const const Key &  key, const const T &  value);
      inline QMultiMap &  operator+= (const const QMultiMap &  other);
      inline QMultiMap operator+ (const const QMultiMap &  other)const volatile restrict ;
      using QMap::;
      using QMap::;
      using QMap::;
      using QMap::;
      using QMap::;
      _Bool contains (const const Key &  key, const const T &  value)const volatile restrict ;
      int remove (const const Key &  key, const const T &  value);
      int count (const const Key &  key, const const T &  value)const volatile restrict ;
      typename QMap::iterator find (const const Key &  key, const const T &  value);
      typename QMap::const_iterator find (const const Key &  key, const const T &  value)const volatile restrict ;
      typename QMap::const_iterator constFind (const const Key &  key, const const T &  value)const volatile restrict ;
   private:
      T &  operator[] (const const Key &  key);
      const const T operator[] (const const Key &  key)const volatile restrict ;
   }; // end of QMultiMap
inline _Bool contains (const const Key &  key, const const T &  value)const volatile restrict ;
inline int remove (const const Key &  key, const const T &  value);
inline int count (const const Key &  key, const const T &  value)const volatile restrict ;
template < class Key, class T >
   class QMapIterator{
      class QMapIterator{
      }; // end of QMapIterator
      typedef typename QMap::const_iterator QMapIterator::const_iterator;
      typedef const_iterator QMapIterator::Item;
      inline _Bool item_exists ()const volatile restrict ;
   public:
      inline constructor converter void QMapIterator (const const QMap &  container);
      inline QMapIterator &  operator= (const const QMap &  container);
      inline void toFront ();
      inline void toBack ();
      inline _Bool hasNext ()const volatile restrict ;
      inline Item next ();
      inline Item peekNext ()const volatile restrict ;
      inline _Bool hasPrevious ()const volatile restrict ;
      inline Item previous ();
      inline Item peekPrevious ()const volatile restrict ;
      inline const const T &  value ()const volatile restrict ;
      inline const const Key &  key ()const volatile restrict ;
      inline _Bool findNext (const const T &  t);
      inline _Bool findPrevious (const const T &  t);
   }; // end of QMapIterator
template < class Key, class T >
   class QMutableMapIterator{
      class QMutableMapIterator{
      }; // end of QMutableMapIterator
      typedef typename QMap::iterator QMutableMapIterator::iterator;
      typedef typename QMap::const_iterator QMutableMapIterator::const_iterator;
      typedef iterator QMutableMapIterator::Item;
      inline _Bool item_exists ()const volatile restrict ;
   public:
      inline constructor converter void QMutableMapIterator (QMap &  container);
      inline destructor void ~QMutableMapIterator ();
      inline QMutableMapIterator &  operator= (QMap &  container);
      inline void toFront ();
      inline void toBack ();
      inline _Bool hasNext ()const volatile restrict ;
      inline Item next ();
      inline Item peekNext ()const volatile restrict ;
      inline _Bool hasPrevious ()const volatile restrict ;
      inline Item previous ();
      inline Item peekPrevious ()const volatile restrict ;
      inline void remove ();
      inline void setValue (const const T &  t);
      inline T &  value ();
      inline const const T &  value ()const volatile restrict ;
      inline const const Key &  key ()const volatile restrict ;
      inline _Bool findNext (const const T &  t);
      inline _Bool findPrevious (const const T &  t);
   }; // end of QMutableMapIterator
typedef enum QtValidLicenseForCoreModule QtCoreModule;
template < class T1, class T2 >
   struct QPair{
      struct QPair{
      }; // end of QPair
      typedef T1 QPair::first_type;
      typedef T2 QPair::second_type;
      constructor void QPair ();
      constructor void QPair (const const T1 &  t1, const const T2 &  t2);
      QPair &  operator= (const const QPair &  other);
   }; // end of QPair
template < class T1, class T2 >
   inline _Bool operator== (const const QPair &  p1, const const QPair &  p2);
template < class T1, class T2 >
   inline _Bool operator!= (const const QPair &  p1, const const QPair &  p2);
template < class T1, class T2 >
   inline _Bool operator< (const const QPair &  p1, const const QPair &  p2);
template < class T1, class T2 >
   inline _Bool operator> (const const QPair &  p1, const const QPair &  p2);
template < class T1, class T2 >
   inline _Bool operator<= (const const QPair &  p1, const const QPair &  p2);
template < class T1, class T2 >
   inline _Bool operator>= (const const QPair &  p1, const const QPair &  p2);
template < class T1, class T2 >
   QPair qMakePair (const const T1 &  x, const const T2 &  y);
template < class T1, class T2 >
   inline class QDataStream &  operator>> (class QDataStream &  s, QPair &  p);
template < class T1, class T2 >
   inline class QDataStream &  operator<< (class QDataStream &  s, const const QPair &  p);
typedef enum QtValidLicenseForCoreModule QtCoreModule;
class QBitArray{
}; // end of QBitArray
class QByteArray{
}; // end of QByteArray
class QString{
}; // end of QString
class QStringRef{
}; // end of QStringRef
inline uint qHash (char key);
inline uint qHash (uchar key);
inline uint qHash (signed char key);
inline uint qHash (ushort key);
inline uint qHash (short key);
inline uint qHash (uint key);
inline uint qHash (int key);
inline uint qHash (ulong key);
inline uint qHash (long key);
inline uint qHash (quint64 key);
inline uint qHash (qint64 key);
inline uint qHash (class QChar key);
uint qHash (const const class QByteArray &  key);
uint qHash (const const class QString &  key);
uint qHash (const const class QStringRef &  key);
uint qHash (const const class QBitArray &  key);
template < class T >
   inline uint qHash (const const T *  key);
template < typename T1, typename T2 >
   inline uint qHash (const const QPair &  key);
struct QHashData{
   struct QHashData{
   }; // end of QHashData
   struct Node{
      struct Node{
      }; // end of Node
   }; // end of Node
   void *  allocateNode ();
   void *  allocateNode (int nodeAlign);
   void freeNode (void *  node);
   struct QHashData *  detach_helper (void (struct QHashData::Node *, void *) *  node_duplicate, int nodeSize);
   struct QHashData *  detach_helper2 (void (struct QHashData::Node *, void *) *  node_duplicate, void (struct QHashData::Node *) *  node_delete, int nodeSize, int nodeAlign);
   void mightGrow ();
   _Bool willGrow ();
   void hasShrunk ();
   void rehash (int hint);
   void free_helper (void (struct QHashData::Node *) *  node_delete);
   void destroyAndFree ();
   struct QHashData::Node *  firstNode ();
   static static struct QHashData::Node *  nextNode (struct QHashData::Node *  node);
   static static struct QHashData::Node *  previousNode (struct QHashData::Node *  node);
   /* variable */ static struct QHashData shared_null;
}; // end of QHashData
inline void mightGrow ();
inline _Bool willGrow ();
inline void hasShrunk ();
inline struct QHashData::Node *  firstNode ();
struct QHashDummyValue{
   struct QHashDummyValue{
   }; // end of QHashDummyValue
   inline constructor void QHashDummyValue () throw ();
   inline constructor copyconstructor converter void QHashDummyValue (const const struct QHashDummyValue &  ) throw ();
}; // end of QHashDummyValue
inline _Bool operator== (const const struct QHashDummyValue &  , const const struct QHashDummyValue &  );
template < class Key, class T >
   struct QHashDummyNode{
      struct QHashDummyNode{
      }; // end of QHashDummyNode
      inline constructor converter void QHashDummyNode (const const Key &  key0);
   }; // end of QHashDummyNode
template < class Key, class T >
   struct QHashNode{
      struct QHashNode{
      }; // end of QHashNode
      inline constructor converter void QHashNode (const const Key &  key0);
      inline constructor void QHashNode (const const Key &  key0, const const T &  value0);
      inline _Bool same_key (uint h0, const const Key &  key0);
   }; // end of QHashNode
template < class Key, class T >
   class QHash{
      class QHash{
      }; // end of QHash
      typedef QHashDummyNode QHash::DummyNode;
      typedef QHashNode QHash::Node;
      union {
      }; // end of 
      static inline static Node *  concrete (struct QHashData::Node *  node);
      static inline static int alignOfNode ();
      static inline static int alignOfDummyNode ();
   public:
      inline constructor void QHash ();
      inline constructor copyconstructor converter void QHash (const const QHash &  other);
      inline destructor void ~QHash ();
      QHash &  operator= (const const QHash &  other);
      inline void swap (QHash &  other);
      _Bool operator== (const const QHash &  other)const volatile restrict ;
      inline _Bool operator!= (const const QHash &  other)const volatile restrict ;
      inline int size ()const volatile restrict ;
      inline _Bool isEmpty ()const volatile restrict ;
      inline int capacity ()const volatile restrict ;
      void reserve (int size);
      inline void squeeze ();
      inline void detach ();
      inline _Bool isDetached ()const volatile restrict ;
      inline void setSharable (_Bool sharable);
      inline _Bool isSharedWith (const const QHash &  other)const volatile restrict ;
      void clear ();
      int remove (const const Key &  key);
      T take (const const Key &  key);
      _Bool contains (const const Key &  key)const volatile restrict ;
      const const Key key (const const T &  value)const volatile restrict ;
      const const Key key (const const T &  value, const const Key &  defaultKey)const volatile restrict ;
      const const T value (const const Key &  key)const volatile restrict ;
      const const T value (const const Key &  key, const const T &  defaultValue)const volatile restrict ;
      T &  operator[] (const const Key &  key);
      const const T operator[] (const const Key &  key)const volatile restrict ;
      QList uniqueKeys ()const volatile restrict ;
      QList keys ()const volatile restrict ;
      QList keys (const const T &  value)const volatile restrict ;
      QList values ()const volatile restrict ;
      QList values (const const Key &  key)const volatile restrict ;
      int count (const const Key &  key)const volatile restrict ;
      class const_iterator{
      }; // end of const_iterator
      class iterator{
         class iterator{
         }; // end of iterator
      public:
         typedef std::bidirectional_iterator_tag QHash::iterator::iterator_category;
         typedef qptrdiff QHash::iterator::difference_type;
         typedef T QHash::iterator::value_type;
         typedef T *  QHash::iterator::pointer;
         typedef T &  QHash::iterator::reference;
         inline converter Node *  operator QHashNode * ()const volatile restrict ;
         inline constructor void iterator ();
         inline constructor explicit void iterator (void *  node);
         inline const const Key &  key ()const volatile restrict ;
         inline T &  value ()const volatile restrict ;
         inline T &  operator* ()const volatile restrict ;
         inline T *  operator-> ()const volatile restrict ;
         inline _Bool operator== (const const class QHash::iterator &  o)const volatile restrict ;
         inline _Bool operator!= (const const class QHash::iterator &  o)const volatile restrict ;
         inline class QHash::iterator &  operator++ ();
         inline class QHash::iterator operator++ (int );
         inline class QHash::iterator &  operator-- ();
         inline class QHash::iterator operator-- (int );
         inline class QHash::iterator operator+ (int j)const volatile restrict ;
         inline class QHash::iterator operator- (int j)const volatile restrict ;
         inline class QHash::iterator &  operator+= (int j);
         inline class QHash::iterator &  operator-= (int j);
      public:
         inline _Bool operator== (const const class QHash::const_iterator &  o)const volatile restrict ;
         inline _Bool operator!= (const const class QHash::const_iterator &  o)const volatile restrict ;
      private:
         inline converter _Bool operator bool ()const volatile restrict ;
      }; // end of iterator
      class const_iterator{
         class const_iterator{
         }; // end of const_iterator
      public:
         typedef std::bidirectional_iterator_tag QHash::const_iterator::iterator_category;
         typedef qptrdiff QHash::const_iterator::difference_type;
         typedef T QHash::const_iterator::value_type;
         typedef const const T *  QHash::const_iterator::pointer;
         typedef const const T &  QHash::const_iterator::reference;
         inline converter Node *  operator QHashNode * ()const volatile restrict ;
         inline constructor void const_iterator ();
         inline constructor explicit void const_iterator (void *  node);
         inline constructor converter void const_iterator (const const class QHash::iterator &  o);
         inline const const Key &  key ()const volatile restrict ;
         inline const const T &  value ()const volatile restrict ;
         inline const const T &  operator* ()const volatile restrict ;
         inline const const T *  operator-> ()const volatile restrict ;
         inline _Bool operator== (const const class QHash::const_iterator &  o)const volatile restrict ;
         inline _Bool operator!= (const const class QHash::const_iterator &  o)const volatile restrict ;
         inline class QHash::const_iterator &  operator++ ();
         inline class QHash::const_iterator operator++ (int );
         inline class QHash::const_iterator &  operator-- ();
         inline class QHash::const_iterator operator-- (int );
         inline class QHash::const_iterator operator+ (int j)const volatile restrict ;
         inline class QHash::const_iterator operator- (int j)const volatile restrict ;
         inline class QHash::const_iterator &  operator+= (int j);
         inline class QHash::const_iterator &  operator-= (int j);
      private:
         inline converter _Bool operator bool ()const volatile restrict ;
      }; // end of const_iterator
      inline class QHash::iterator begin ();
      inline class QHash::const_iterator begin ()const volatile restrict ;
      inline class QHash::const_iterator constBegin ()const volatile restrict ;
      inline class QHash::iterator end ();
      inline class QHash::const_iterator end ()const volatile restrict ;
      inline class QHash::const_iterator constEnd ()const volatile restrict ;
      class QHash::iterator erase (class QHash::iterator it);
      typedef class QHash::iterator QHash::Iterator;
      typedef class QHash::const_iterator QHash::ConstIterator;
      inline int count ()const volatile restrict ;
      class QHash::iterator find (const const Key &  key);
      class QHash::const_iterator find (const const Key &  key)const volatile restrict ;
      class QHash::const_iterator constFind (const const Key &  key)const volatile restrict ;
      class QHash::iterator insert (const const Key &  key, const const T &  value);
      class QHash::iterator insertMulti (const const Key &  key, const const T &  value);
      QHash &  unite (const const QHash &  other);
      typedef T QHash::mapped_type;
      typedef Key QHash::key_type;
      typedef qptrdiff QHash::difference_type;
      typedef int QHash::size_type;
      inline _Bool empty ()const volatile restrict ;
   private:
      void detach_helper ();
      void freeData (struct QHashData *  d);
      Node *  *  findNode (const const Key &  key, uint *  hp = 0)const volatile restrict ;
      Node *  createNode (uint h, const const Key &  key, const const T &  value, Node *  *  nextNode);
      void deleteNode (Node *  node);
      static static void deleteNode2 (struct QHashData::Node *  node);
      static static void duplicateNode (struct QHashData::Node *  originalNode, void *  newNode);
   }; // end of QHash
inline void deleteNode (Node *  node);
inline static void deleteNode2 (struct QHashData::Node *  node);
inline static void duplicateNode (struct QHashData::Node *  node, void *  newNode);
inline typename QHash::Node *  createNode (uint ah, const const Key &  akey, const const T &  avalue, Node *  *  anextNode);
inline QHash &  unite (const const QHash &  other);
void freeData (struct QHashData *  x);
inline void clear ();
void detach_helper ();
inline QHash &  operator= (const const QHash &  other);
inline const const T value (const const Key &  akey)const volatile restrict ;
inline const const T value (const const Key &  akey, const const T &  adefaultValue)const volatile restrict ;
QList uniqueKeys ()const volatile restrict ;
QList keys ()const volatile restrict ;
QList keys (const const T &  avalue)const volatile restrict ;
const const Key key (const const T &  avalue)const volatile restrict ;
const const Key key (const const T &  avalue, const const Key &  defaultValue)const volatile restrict ;
QList values ()const volatile restrict ;
QList values (const const Key &  akey)const volatile restrict ;
int count (const const Key &  akey)const volatile restrict ;
inline const const T operator[] (const const Key &  akey)const volatile restrict ;
inline T &  operator[] (const const Key &  akey);
inline typename QHash::iterator insert (const const Key &  akey, const const T &  avalue);
inline typename QHash::iterator insertMulti (const const Key &  akey, const const T &  avalue);
int remove (const const Key &  akey);
T take (const const Key &  akey);
typename QHash::iterator erase (class QHash::iterator it);
inline void reserve (int asize);
inline typename QHash::const_iterator find (const const Key &  akey)const volatile restrict ;
inline typename QHash::const_iterator constFind (const const Key &  akey)const volatile restrict ;
inline typename QHash::iterator find (const const Key &  akey);
inline _Bool contains (const const Key &  akey)const volatile restrict ;
typename QHash::Node *  *  findNode (const const Key &  akey, uint *  ahp = 0)const volatile restrict ;
_Bool operator== (const const QHash &  other)const volatile restrict ;
template < class Key, class T >
   class QMultiHash : public:
   QHash{
      class QMultiHash{
      }; // end of QMultiHash
   public:
      constructor void QMultiHash ();
      constructor converter void QMultiHash (const const QHash &  other);
      inline void swap (QMultiHash &  other);
      inline typename QHash::iterator replace (const const Key &  key, const const T &  value);
      inline typename QHash::iterator insert (const const Key &  key, const const T &  value);
      inline QMultiHash &  operator+= (const const QMultiHash &  other);
      inline QMultiHash operator+ (const const QMultiHash &  other)const volatile restrict ;
      using QHash::;
      using QHash::;
      using QHash::;
      using QHash::;
      using QHash::;
      _Bool contains (const const Key &  key, const const T &  value)const volatile restrict ;
      int remove (const const Key &  key, const const T &  value);
      int count (const const Key &  key, const const T &  value)const volatile restrict ;
      typename QHash::iterator find (const const Key &  key, const const T &  value);
      typename QHash::const_iterator find (const const Key &  key, const const T &  value)const volatile restrict ;
      typename QHash::const_iterator constFind (const const Key &  key, const const T &  value)const volatile restrict ;
   private:
      T &  operator[] (const const Key &  key);
      const const T operator[] (const const Key &  key)const volatile restrict ;
   }; // end of QMultiHash
inline _Bool contains (const const Key &  key, const const T &  value)const volatile restrict ;
inline int remove (const const Key &  key, const const T &  value);
inline int count (const const Key &  key, const const T &  value)const volatile restrict ;
template < class Key, class T >
   class QHashIterator{
      class QHashIterator{
      }; // end of QHashIterator
      typedef typename QHash::const_iterator QHashIterator::const_iterator;
      typedef const_iterator QHashIterator::Item;
      inline _Bool item_exists ()const volatile restrict ;
   public:
      inline constructor converter void QHashIterator (const const QHash &  container);
      inline QHashIterator &  operator= (const const QHash &  container);
      inline void toFront ();
      inline void toBack ();
      inline _Bool hasNext ()const volatile restrict ;
      inline Item next ();
      inline Item peekNext ()const volatile restrict ;
      inline _Bool hasPrevious ()const volatile restrict ;
      inline Item previous ();
      inline Item peekPrevious ()const volatile restrict ;
      inline const const T &  value ()const volatile restrict ;
      inline const const Key &  key ()const volatile restrict ;
      inline _Bool findNext (const const T &  t);
      inline _Bool findPrevious (const const T &  t);
   }; // end of QHashIterator
template < class Key, class T >
   class QMutableHashIterator{
      class QMutableHashIterator{
      }; // end of QMutableHashIterator
      typedef typename QHash::iterator QMutableHashIterator::iterator;
      typedef typename QHash::const_iterator QMutableHashIterator::const_iterator;
      typedef iterator QMutableHashIterator::Item;
      inline _Bool item_exists ()const volatile restrict ;
   public:
      inline constructor converter void QMutableHashIterator (QHash &  container);
      inline destructor void ~QMutableHashIterator ();
      inline QMutableHashIterator &  operator= (QHash &  container);
      inline void toFront ();
      inline void toBack ();
      inline _Bool hasNext ()const volatile restrict ;
      inline Item next ();
      inline Item peekNext ()const volatile restrict ;
      inline _Bool hasPrevious ()const volatile restrict ;
      inline Item previous ();
      inline Item peekPrevious ()const volatile restrict ;
      inline void remove ();
      inline void setValue (const const T &  t);
      inline T &  value ();
      inline const const T &  value ()const volatile restrict ;
      inline const const Key &  key ()const volatile restrict ;
      inline _Bool findNext (const const T &  t);
      inline _Bool findPrevious (const const T &  t);
   }; // end of QMutableHashIterator
typedef enum QtValidLicenseForCoreModule QtCoreModule;
class QBitArray{
}; // end of QBitArray
class QDataStream{
}; // end of QDataStream
class QDate{
}; // end of QDate
class QDateTime{
}; // end of QDateTime
class QEasingCurve{
}; // end of QEasingCurve
class QLine{
}; // end of QLine
class QLineF{
}; // end of QLineF
class QLocale{
}; // end of QLocale
class QMatrix{
}; // end of QMatrix
class QTransform{
}; // end of QTransform
class QStringList : public:
QList{
}; // end of QStringList
class QTime{
}; // end of QTime
class QPoint{
}; // end of QPoint
class QPointF{
}; // end of QPointF
class QSize{
}; // end of QSize
class QSizeF{
}; // end of QSizeF
class QRect{
}; // end of QRect
class QRectF{
}; // end of QRectF
class QRegExp{
}; // end of QRegExp
class QTextFormat{
}; // end of QTextFormat
class QTextLength{
}; // end of QTextLength
class QUrl{
}; // end of QUrl
class QVariant{
}; // end of QVariant
class QVariantComparisonHelper{
}; // end of QVariantComparisonHelper
template < typename T >
   inline class QVariant qVariantFromValue (const const T &  );
template < typename T >
   inline T qvariant_cast (const const class QVariant &  );
class QVariant{
   class QVariant{
   }; // end of QVariant
public:
   enum Type
   {
      Invalid = 0,
      Bool = 1,
      Int = 2,
      UInt = 3,
      LongLong = 4,
      ULongLong = 5,
      Double = 6,
      Char = 7,
      Map = 8,
      List = 9,
      String = 10,
      StringList = 11,
      ByteArray = 12,
      BitArray = 13,
      Date = 14,
      Time = 15,
      DateTime = 16,
      Url = 17,
      Locale = 18,
      Rect = 19,
      RectF = 20,
      Size = 21,
      SizeF = 22,
      Line = 23,
      LineF = 24,
      Point = 25,
      PointF = 26,
      RegExp = 27,
      Hash = 28,
      EasingCurve = 29,
      LastCoreType = EasingCurve,
      Font = 64,
      Pixmap = 65,
      Brush = 66,
      Color = 67,
      Palette = 68,
      Icon = 69,
      Image = 70,
      Polygon = 71,
      Region = 72,
      Bitmap = 73,
      Cursor = 74,
      SizePolicy = 75,
      KeySequence = 76,
      Pen = 77,
      TextLength = 78,
      TextFormat = 79,
      Matrix = 80,
      Transform = 81,
      Matrix4x4 = 82,
      Vector2D = 83,
      Vector3D = 84,
      Vector4D = 85,
      Quaternion = 86,
      LastGuiType = Quaternion,
      UserType = 127,
      LastType = 4294967295U
   }; // end of Type
   inline constructor void QVariant ();
   destructor void ~QVariant ();
   constructor converter void QVariant (enum QVariant::Type type);
   constructor void QVariant (int typeOrUserType, const const void *  copy);
   constructor void QVariant (int typeOrUserType, const const void *  copy, uint flags);
   constructor copyconstructor converter void QVariant (const const class QVariant &  other);
   constructor converter void QVariant (class QDataStream &  s);
   constructor converter void QVariant (int i);
   constructor converter void QVariant (uint ui);
   constructor converter void QVariant (qlonglong ll);
   constructor converter void QVariant (qulonglong ull);
   constructor converter void QVariant (_Bool b);
   constructor converter void QVariant (double d);
   constructor converter void QVariant (float f);
   constructor converter void QVariant (const const char *  str);
   constructor converter void QVariant (const const class QByteArray &  bytearray);
   constructor converter void QVariant (const const class QBitArray &  bitarray);
   constructor converter void QVariant (const const class QString &  string);
   constructor converter void QVariant (const const class QLatin1String &  string);
   constructor converter void QVariant (const const class QStringList &  stringlist);
   constructor converter void QVariant (const const class QChar &  qchar);
   constructor converter void QVariant (const const class QDate &  date);
   constructor converter void QVariant (const const class QTime &  time);
   constructor converter void QVariant (const const class QDateTime &  datetime);
   constructor converter void QVariant (const const QList &  list);
   constructor converter void QVariant (const const QMap &  map);
   constructor converter void QVariant (const const QHash &  hash);
   constructor converter void QVariant (const const class QSize &  size);
   constructor converter void QVariant (const const class QSizeF &  size);
   constructor converter void QVariant (const const class QPoint &  pt);
   constructor converter void QVariant (const const class QPointF &  pt);
   constructor converter void QVariant (const const class QLine &  line);
   constructor converter void QVariant (const const class QLineF &  line);
   constructor converter void QVariant (const const class QRect &  rect);
   constructor converter void QVariant (const const class QRectF &  rect);
   constructor converter void QVariant (const const class QUrl &  url);
   constructor converter void QVariant (const const class QLocale &  locale);
   constructor converter void QVariant (const const class QRegExp &  regExp);
   constructor converter void QVariant (const const class QEasingCurve &  easing);
   constructor converter void QVariant (Qt::GlobalColor color);
   class QVariant &  operator= (const const class QVariant &  other);
   inline void swap (class QVariant &  other);
   enum QVariant::Type type ()const volatile restrict ;
   int userType ()const volatile restrict ;
   const const char *  typeName ()const volatile restrict ;
   _Bool canConvert (enum QVariant::Type t)const volatile restrict ;
   _Bool convert (enum QVariant::Type t);
   inline _Bool isValid ()const volatile restrict ;
   _Bool isNull ()const volatile restrict ;
   void clear ();
   void detach ();
   inline _Bool isDetached ()const volatile restrict ;
   int toInt (_Bool *  ok = 0)const volatile restrict ;
   uint toUInt (_Bool *  ok = 0)const volatile restrict ;
   qlonglong toLongLong (_Bool *  ok = 0)const volatile restrict ;
   qulonglong toULongLong (_Bool *  ok = 0)const volatile restrict ;
   _Bool toBool ()const volatile restrict ;
   double toDouble (_Bool *  ok = 0)const volatile restrict ;
   float toFloat (_Bool *  ok = 0)const volatile restrict ;
   qreal toReal (_Bool *  ok = 0)const volatile restrict ;
   class QByteArray toByteArray ()const volatile restrict ;
   class QBitArray toBitArray ()const volatile restrict ;
   class QString toString ()const volatile restrict ;
   class QStringList toStringList ()const volatile restrict ;
   class QChar toChar ()const volatile restrict ;
   class QDate toDate ()const volatile restrict ;
   class QTime toTime ()const volatile restrict ;
   class QDateTime toDateTime ()const volatile restrict ;
   QList toList ()const volatile restrict ;
   QMap toMap ()const volatile restrict ;
   QHash toHash ()const volatile restrict ;
   class QPoint toPoint ()const volatile restrict ;
   class QPointF toPointF ()const volatile restrict ;
   class QRect toRect ()const volatile restrict ;
   class QSize toSize ()const volatile restrict ;
   class QSizeF toSizeF ()const volatile restrict ;
   class QLine toLine ()const volatile restrict ;
   class QLineF toLineF ()const volatile restrict ;
   class QRectF toRectF ()const volatile restrict ;
   class QUrl toUrl ()const volatile restrict ;
   class QLocale toLocale ()const volatile restrict ;
   class QRegExp toRegExp ()const volatile restrict ;
   class QEasingCurve toEasingCurve ()const volatile restrict ;
   void load (class QDataStream &  ds);
   void save (class QDataStream &  ds)const volatile restrict ;
   static static const const char *  typeToName (enum QVariant::Type type);
   static static enum QVariant::Type nameToType (const const char *  name);
   void *  data ();
   const const void *  constData ()const volatile restrict ;
   inline const const void *  data ()const volatile restrict ;
   template < typename T >
      inline void setValue (const const T &  value);
   template < typename T >
      inline T value ()const volatile restrict ;
   template < typename T >
      static inline static class QVariant fromValue (const const T &  value);
   template < typename T >
      _Bool canConvert ()const volatile restrict ;
public:
   struct PrivateShared{
      struct PrivateShared{
      }; // end of PrivateShared
      inline constructor converter void PrivateShared (void *  v);
   }; // end of PrivateShared
   struct Private{
      struct Private{
      }; // end of Private
      inline constructor void Private ();
      inline constructor copyconstructor converter void Private (const const struct QVariant::Private &  other);
      union Data{
         union Data{
         }; // end of Data
         inline constructor void Data () throw ();
         inline constructor copyconstructor converter void Data (const const union QVariant::Private::Data &  ) throw ();
         inline union QVariant::Private::Data &  operator= (const const union QVariant::Private::Data &  ) throw ();
      }; // end of Data
      inline struct QVariant::Private &  operator= (const const struct QVariant::Private &  ) throw ();
   }; // end of Private
public:
   typedef void (struct QVariant::Private *, const void *) *  QVariant::f_construct;
   typedef void (struct QVariant::Private *) *  QVariant::f_clear;
   typedef _Bool (const struct QVariant::Private *) *  QVariant::f_null;
   typedef void (struct QVariant::Private *, class QDataStream &) *  QVariant::f_load;
   typedef void (const struct QVariant::Private *, class QDataStream &) *  QVariant::f_save;
   typedef _Bool (const struct QVariant::Private *, const struct QVariant::Private *) *  QVariant::f_compare;
   typedef _Bool (const class QVariant::Private *, enum QVariant::Type, void *, _Bool *) *  QVariant::f_convert;
   typedef _Bool (const class QVariant::Private *, enum QVariant::Type) *  QVariant::f_canConvert;
   typedef void (class QDebug, const class QVariant &) *  QVariant::f_debugStream;
   struct Handler{
      struct Handler{
      }; // end of Handler
   }; // end of Handler
   inline _Bool operator== (const const class QVariant &  v)const volatile restrict ;
   inline _Bool operator!= (const const class QVariant &  v)const volatile restrict ;
protected:
   friend qvariant_cast_helper;
   friend qRegisterGuiVariant;
   friend qUnregisterGuiVariant;
   friend operator==;
   friend operator<<;
   /* variable */ static const const struct QVariant::Handler *  handler;
   void create (int type, const const void *  copy);
   _Bool cmp (const const class QVariant &  other)const volatile restrict ;
private:
   inline constructor converter void QVariant (void *  );
   inline constructor void QVariant (_Bool , int );
public:
   typedef struct QVariant::Private QVariant::DataPtr;
   inline DataPtr &  data_ptr ();
}; // end of QVariant
typedef QList QVariantList;
typedef QMap QVariantMap;
typedef QHash QVariantHash;
inline _Bool qvariant_cast_helper (const const class QVariant &  v, class QVariant::Type tp, void *  ptr);
template < typename T >
   inline class QVariant qVariantFromValue (const const T &  t);
inline class QVariant qVariantFromValue (const const class QVariant &  t);
template < typename T >
   inline void qVariantSetValue (class QVariant &  v, const const T &  t);
inline void qVariantSetValue (class QVariant &  v, const const class QVariant &  t);
inline constructor void QVariant ();
inline _Bool isValid ()const volatile restrict ;
template < typename T >
   inline void setValue (const const T &  avalue);
class QDataStream &  operator>> (class QDataStream &  s, class QVariant &  p);
class QDataStream &  operator<< (class QDataStream &  s, const const class QVariant &  p);
class QDataStream &  operator>> (class QDataStream &  s, class QVariant::Type &  p);
class QDataStream &  operator<< (class QDataStream &  s, const const class QVariant::Type p);
inline _Bool isDetached ()const volatile restrict ;
class QVariantComparisonHelper{
   class QVariantComparisonHelper{
   }; // end of QVariantComparisonHelper
public:
   inline constructor converter void QVariantComparisonHelper (const const class QVariant &  var);
private:
   friend operator==;
   inline constructor copyconstructor converter void QVariantComparisonHelper (const const class QVariantComparisonHelper &  ) throw ();
}; // end of QVariantComparisonHelper
inline _Bool operator== (const const class QVariant &  v1, const const class QVariantComparisonHelper &  v2);
inline _Bool operator!= (const const class QVariant &  v1, const const class QVariantComparisonHelper &  v2);
template < typename T >
   inline T qvariant_cast (const const class QVariant &  v);
inline class QVariant qvariant_cast (const const class QVariant &  v);
template < typename T >
   inline T qVariantValue (const const class QVariant &  variant);
template < typename T >
   inline _Bool qVariantCanConvert (const const class QVariant &  variant);
inline _Bool qIsDetached (class QVariant &  t);
inline void qSwap (class QVariant &  value1, class QVariant &  value2);
namespace std
{
   inline void swap (::QVariant &  value1, ::QVariant &  value2);
} // end of std
class QDebug operator<< (class QDebug , const const class QVariant &  );
class QDebug operator<< (class QDebug , const const class QVariant::Type );
typedef enum QtValidLicenseForCoreModule QtCoreModule;
class QDataStream{
}; // end of QDataStream
class QDate{
}; // end of QDate
class QDateTime{
}; // end of QDateTime
class QTime{
}; // end of QTime
class QVariant{
}; // end of QVariant
class QTextStream{
}; // end of QTextStream
class QTextStreamPrivate{
}; // end of QTextStreamPrivate
class QLocale{
}; // end of QLocale
class QSystemLocale{
   class QSystemLocale{
   }; // end of QSystemLocale
public:
   constructor void QSystemLocale ();
   virtual destructor void ~QSystemLocale ();
   struct CurrencyToStringArgument{
      struct CurrencyToStringArgument{
      }; // end of CurrencyToStringArgument
      constructor void CurrencyToStringArgument ();
      constructor void CurrencyToStringArgument (const const class QVariant &  v, const const class QString &  s);
      inline destructor void ~CurrencyToStringArgument () throw ();
      inline constructor copyconstructor converter void CurrencyToStringArgument (const const struct QSystemLocale::CurrencyToStringArgument &  ) throw ();
   }; // end of CurrencyToStringArgument
   enum QueryType
   {
      LanguageId,
      CountryId,
      DecimalPoint,
      GroupSeparator,
      ZeroDigit,
      NegativeSign,
      DateFormatLong,
      DateFormatShort,
      TimeFormatLong,
      TimeFormatShort,
      DayNameLong,
      DayNameShort,
      MonthNameLong,
      MonthNameShort,
      DateToStringLong,
      DateToStringShort,
      TimeToStringLong,
      TimeToStringShort,
      DateTimeFormatLong,
      DateTimeFormatShort,
      DateTimeToStringLong,
      DateTimeToStringShort,
      MeasurementSystem,
      PositiveSign,
      AMText,
      PMText,
      FirstDayOfWeek,
      Weekdays,
      CurrencySymbol,
      CurrencyToString,
      UILanguages,
      StringToStandardQuotation,
      StringToAlternateQuotation,
      ScriptId,
      ListToSeparatedString,
      LocaleChanged,
      NativeLanguageName,
      NativeCountryName,
      StandaloneMonthNameLong,
      StandaloneMonthNameShort
   }; // end of QueryType
   virtual class QVariant query (enum QSystemLocale::QueryType type, class QVariant in)const volatile restrict ;
   virtual class QLocale fallbackLocale ()const volatile restrict ;
private:
   constructor converter void QSystemLocale (_Bool );
   friend QSystemLocale_globalSystemLocale;
   inline class QSystemLocale &  operator= (const const class QSystemLocale &  ) throw ();
}; // end of QSystemLocale
struct QLocalePrivate{
}; // end of QLocalePrivate
class QLocale{
   class QLocale{
   }; // end of QLocale
public:
   /* variable */ static const const struct QMetaObject staticMetaObject;
private:
public:
   enum Language
   {
      AnyLanguage = 0,
      C = 1,
      Abkhazian = 2,
      Afan = 3,
      Afar = 4,
      Afrikaans = 5,
      Albanian = 6,
      Amharic = 7,
      Arabic = 8,
      Armenian = 9,
      Assamese = 10,
      Aymara = 11,
      Azerbaijani = 12,
      Bashkir = 13,
      Basque = 14,
      Bengali = 15,
      Bhutani = 16,
      Bihari = 17,
      Bislama = 18,
      Breton = 19,
      Bulgarian = 20,
      Burmese = 21,
      Byelorussian = 22,
      Cambodian = 23,
      Catalan = 24,
      Chinese = 25,
      Corsican = 26,
      Croatian = 27,
      Czech = 28,
      Danish = 29,
      Dutch = 30,
      English = 31,
      Esperanto = 32,
      Estonian = 33,
      Faroese = 34,
      FijiLanguage = 35,
      Finnish = 36,
      French = 37,
      Frisian = 38,
      Gaelic = 39,
      Galician = 40,
      Georgian = 41,
      German = 42,
      Greek = 43,
      Greenlandic = 44,
      Guarani = 45,
      Gujarati = 46,
      Hausa = 47,
      Hebrew = 48,
      Hindi = 49,
      Hungarian = 50,
      Icelandic = 51,
      Indonesian = 52,
      Interlingua = 53,
      Interlingue = 54,
      Inuktitut = 55,
      Inupiak = 56,
      Irish = 57,
      Italian = 58,
      Japanese = 59,
      Javanese = 60,
      Kannada = 61,
      Kashmiri = 62,
      Kazakh = 63,
      Kinyarwanda = 64,
      Kirghiz = 65,
      Korean = 66,
      Kurdish = 67,
      Rundi = 68,
      Laothian = 69,
      Latin = 70,
      Latvian = 71,
      Lingala = 72,
      Lithuanian = 73,
      Macedonian = 74,
      Malagasy = 75,
      Malay = 76,
      Malayalam = 77,
      Maltese = 78,
      Maori = 79,
      Marathi = 80,
      Moldavian = 81,
      Mongolian = 82,
      NauruLanguage = 83,
      Nepali = 84,
      Norwegian = 85,
      Occitan = 86,
      Oriya = 87,
      Pashto = 88,
      Persian = 89,
      Polish = 90,
      Portuguese = 91,
      Punjabi = 92,
      Quechua = 93,
      RhaetoRomance = 94,
      Romanian = 95,
      Russian = 96,
      Samoan = 97,
      Sangho = 98,
      Sanskrit = 99,
      Serbian = 100,
      SerboCroatian = 101,
      Sesotho = 102,
      Setswana = 103,
      Shona = 104,
      Sindhi = 105,
      Singhalese = 106,
      Siswati = 107,
      Slovak = 108,
      Slovenian = 109,
      Somali = 110,
      Spanish = 111,
      Sundanese = 112,
      Swahili = 113,
      Swedish = 114,
      Tagalog = 115,
      Tajik = 116,
      Tamil = 117,
      Tatar = 118,
      Telugu = 119,
      Thai = 120,
      Tibetan = 121,
      Tigrinya = 122,
      TongaLanguage = 123,
      Tsonga = 124,
      Turkish = 125,
      Turkmen = 126,
      Twi = 127,
      Uigur = 128,
      Ukrainian = 129,
      Urdu = 130,
      Uzbek = 131,
      Vietnamese = 132,
      Volapuk = 133,
      Welsh = 134,
      Wolof = 135,
      Xhosa = 136,
      Yiddish = 137,
      Yoruba = 138,
      Zhuang = 139,
      Zulu = 140,
      Nynorsk = 141,
      Bosnian = 142,
      Divehi = 143,
      Manx = 144,
      Cornish = 145,
      Akan = 146,
      Konkani = 147,
      Ga = 148,
      Igbo = 149,
      Kamba = 150,
      Syriac = 151,
      Blin = 152,
      Geez = 153,
      Koro = 154,
      Sidamo = 155,
      Atsam = 156,
      Tigre = 157,
      Jju = 158,
      Friulian = 159,
      Venda = 160,
      Ewe = 161,
      Walamo = 162,
      Hawaiian = 163,
      Tyap = 164,
      Chewa = 165,
      Filipino = 166,
      SwissGerman = 167,
      SichuanYi = 168,
      Kpelle = 169,
      LowGerman = 170,
      SouthNdebele = 171,
      NorthernSotho = 172,
      NorthernSami = 173,
      Taroko = 174,
      Gusii = 175,
      Taita = 176,
      Fulah = 177,
      Kikuyu = 178,
      Samburu = 179,
      Sena = 180,
      NorthNdebele = 181,
      Rombo = 182,
      Tachelhit = 183,
      Kabyle = 184,
      Nyankole = 185,
      Bena = 186,
      Vunjo = 187,
      Bambara = 188,
      Embu = 189,
      Cherokee = 190,
      Morisyen = 191,
      Makonde = 192,
      Langi = 193,
      Ganda = 194,
      Bemba = 195,
      Kabuverdianu = 196,
      Meru = 197,
      Kalenjin = 198,
      Nama = 199,
      Machame = 200,
      Colognian = 201,
      Masai = 202,
      Soga = 203,
      Luyia = 204,
      Asu = 205,
      Teso = 206,
      Saho = 207,
      KoyraChiini = 208,
      Rwa = 209,
      Luo = 210,
      Chiga = 211,
      CentralMoroccoTamazight = 212,
      KoyraboroSenni = 213,
      Shambala = 214,
      Bodo = 215,
      Aghem = 216,
      Basaa = 217,
      Zarma = 218,
      Duala = 219,
      JolaFonyi = 220,
      Ewondo = 221,
      Bafia = 222,
      LubaKatanga = 223,
      MakhuwaMeetto = 224,
      Mundang = 225,
      Kwasio = 226,
      Nuer = 227,
      Sakha = 228,
      Sangu = 229,
      CongoSwahili = 230,
      Tasawaq = 231,
      Vai = 232,
      Walser = 233,
      Yangben = 234,
      NorwegianBokmal = Norwegian,
      NorwegianNynorsk = Nynorsk,
      Kurundi = Rundi,
      LastLanguage = Yangben
   }; // end of Language
   enum Script
   {
      AnyScript = 0,
      ArabicScript = 1,
      CyrillicScript = 2,
      DeseretScript = 3,
      GurmukhiScript = 4,
      SimplifiedHanScript = 5,
      TraditionalHanScript = 6,
      LatinScript = 7,
      MongolianScript = 8,
      TifinaghScript = 9,
      SimplifiedChineseScript = SimplifiedHanScript,
      TraditionalChineseScript = TraditionalHanScript,
      LastScript = TifinaghScript
   }; // end of Script
   enum Country
   {
      AnyCountry = 0,
      Afghanistan = 1,
      Albania = 2,
      Algeria = 3,
      AmericanSamoa = 4,
      Andorra = 5,
      Angola = 6,
      Anguilla = 7,
      Antarctica = 8,
      AntiguaAndBarbuda = 9,
      Argentina = 10,
      Armenia = 11,
      Aruba = 12,
      Australia = 13,
      Austria = 14,
      Azerbaijan = 15,
      Bahamas = 16,
      Bahrain = 17,
      Bangladesh = 18,
      Barbados = 19,
      Belarus = 20,
      Belgium = 21,
      Belize = 22,
      Benin = 23,
      Bermuda = 24,
      Bhutan = 25,
      Bolivia = 26,
      BosniaAndHerzegowina = 27,
      Botswana = 28,
      BouvetIsland = 29,
      Brazil = 30,
      BritishIndianOceanTerritory = 31,
      BruneiDarussalam = 32,
      Bulgaria = 33,
      BurkinaFaso = 34,
      Burundi = 35,
      Cambodia = 36,
      Cameroon = 37,
      Canada = 38,
      CapeVerde = 39,
      CaymanIslands = 40,
      CentralAfricanRepublic = 41,
      Chad = 42,
      Chile = 43,
      China = 44,
      ChristmasIsland = 45,
      CocosIslands = 46,
      Colombia = 47,
      Comoros = 48,
      DemocraticRepublicOfCongo = 49,
      PeoplesRepublicOfCongo = 50,
      CookIslands = 51,
      CostaRica = 52,
      IvoryCoast = 53,
      Croatia = 54,
      Cuba = 55,
      Cyprus = 56,
      CzechRepublic = 57,
      Denmark = 58,
      Djibouti = 59,
      Dominica = 60,
      DominicanRepublic = 61,
      EastTimor = 62,
      Ecuador = 63,
      Egypt = 64,
      ElSalvador = 65,
      EquatorialGuinea = 66,
      Eritrea = 67,
      Estonia = 68,
      Ethiopia = 69,
      FalklandIslands = 70,
      FaroeIslands = 71,
      FijiCountry = 72,
      Finland = 73,
      France = 74,
      MetropolitanFrance = 75,
      FrenchGuiana = 76,
      FrenchPolynesia = 77,
      FrenchSouthernTerritories = 78,
      Gabon = 79,
      Gambia = 80,
      Georgia = 81,
      Germany = 82,
      Ghana = 83,
      Gibraltar = 84,
      Greece = 85,
      Greenland = 86,
      Grenada = 87,
      Guadeloupe = 88,
      Guam = 89,
      Guatemala = 90,
      Guinea = 91,
      GuineaBissau = 92,
      Guyana = 93,
      Haiti = 94,
      HeardAndMcDonaldIslands = 95,
      Honduras = 96,
      HongKong = 97,
      Hungary = 98,
      Iceland = 99,
      India = 100,
      Indonesia = 101,
      Iran = 102,
      Iraq = 103,
      Ireland = 104,
      Israel = 105,
      Italy = 106,
      Jamaica = 107,
      Japan = 108,
      Jordan = 109,
      Kazakhstan = 110,
      Kenya = 111,
      Kiribati = 112,
      DemocraticRepublicOfKorea = 113,
      RepublicOfKorea = 114,
      Kuwait = 115,
      Kyrgyzstan = 116,
      Lao = 117,
      Latvia = 118,
      Lebanon = 119,
      Lesotho = 120,
      Liberia = 121,
      LibyanArabJamahiriya = 122,
      Liechtenstein = 123,
      Lithuania = 124,
      Luxembourg = 125,
      Macau = 126,
      Macedonia = 127,
      Madagascar = 128,
      Malawi = 129,
      Malaysia = 130,
      Maldives = 131,
      Mali = 132,
      Malta = 133,
      MarshallIslands = 134,
      Martinique = 135,
      Mauritania = 136,
      Mauritius = 137,
      Mayotte = 138,
      Mexico = 139,
      Micronesia = 140,
      Moldova = 141,
      Monaco = 142,
      Mongolia = 143,
      Montserrat = 144,
      Morocco = 145,
      Mozambique = 146,
      Myanmar = 147,
      Namibia = 148,
      NauruCountry = 149,
      Nepal = 150,
      Netherlands = 151,
      NetherlandsAntilles = 152,
      NewCaledonia = 153,
      NewZealand = 154,
      Nicaragua = 155,
      Niger = 156,
      Nigeria = 157,
      Niue = 158,
      NorfolkIsland = 159,
      NorthernMarianaIslands = 160,
      Norway = 161,
      Oman = 162,
      Pakistan = 163,
      Palau = 164,
      PalestinianTerritory = 165,
      Panama = 166,
      PapuaNewGuinea = 167,
      Paraguay = 168,
      Peru = 169,
      Philippines = 170,
      Pitcairn = 171,
      Poland = 172,
      Portugal = 173,
      PuertoRico = 174,
      Qatar = 175,
      Reunion = 176,
      Romania = 177,
      RussianFederation = 178,
      Rwanda = 179,
      SaintKittsAndNevis = 180,
      StLucia = 181,
      StVincentAndTheGrenadines = 182,
      Samoa = 183,
      SanMarino = 184,
      SaoTomeAndPrincipe = 185,
      SaudiArabia = 186,
      Senegal = 187,
      Seychelles = 188,
      SierraLeone = 189,
      Singapore = 190,
      Slovakia = 191,
      Slovenia = 192,
      SolomonIslands = 193,
      Somalia = 194,
      SouthAfrica = 195,
      SouthGeorgiaAndTheSouthSandwichIslands = 196,
      Spain = 197,
      SriLanka = 198,
      StHelena = 199,
      StPierreAndMiquelon = 200,
      Sudan = 201,
      Suriname = 202,
      SvalbardAndJanMayenIslands = 203,
      Swaziland = 204,
      Sweden = 205,
      Switzerland = 206,
      SyrianArabRepublic = 207,
      Taiwan = 208,
      Tajikistan = 209,
      Tanzania = 210,
      Thailand = 211,
      Togo = 212,
      Tokelau = 213,
      TongaCountry = 214,
      TrinidadAndTobago = 215,
      Tunisia = 216,
      Turkey = 217,
      Turkmenistan = 218,
      TurksAndCaicosIslands = 219,
      Tuvalu = 220,
      Uganda = 221,
      Ukraine = 222,
      UnitedArabEmirates = 223,
      UnitedKingdom = 224,
      UnitedStates = 225,
      UnitedStatesMinorOutlyingIslands = 226,
      Uruguay = 227,
      Uzbekistan = 228,
      Vanuatu = 229,
      VaticanCityState = 230,
      Venezuela = 231,
      VietNam = 232,
      BritishVirginIslands = 233,
      USVirginIslands = 234,
      WallisAndFutunaIslands = 235,
      WesternSahara = 236,
      Yemen = 237,
      Yugoslavia = 238,
      Zambia = 239,
      Zimbabwe = 240,
      SerbiaAndMontenegro = 241,
      Montenegro = 242,
      Serbia = 243,
      SaintBarthelemy = 244,
      SaintMartin = 245,
      LatinAmericaAndTheCaribbean = 246,
      LastCountry = LatinAmericaAndTheCaribbean
   }; // end of Country
   enum MeasurementSystem
   {
      MetricSystem,
      ImperialSystem
   }; // end of MeasurementSystem
   enum FormatType
   {
      LongFormat,
      ShortFormat,
      NarrowFormat
   }; // end of FormatType
   enum NumberOption
   {
      OmitGroupSeparator = 1,
      RejectGroupSeparator = 2
   }; // end of NumberOption
   typedef QFlags QLocale::NumberOptions;
   enum CurrencySymbolFormat
   {
      CurrencyIsoCode,
      CurrencySymbol,
      CurrencyDisplayName
   }; // end of CurrencySymbolFormat
   constructor void QLocale ();
   constructor converter void QLocale (const const class QString &  name);
   constructor converter void QLocale (enum QLocale::Language language, enum QLocale::Country country = AnyCountry);
   constructor void QLocale (enum QLocale::Language language, enum QLocale::Script script, enum QLocale::Country country);
   constructor copyconstructor converter void QLocale (const const class QLocale &  other);
   class QLocale &  operator= (const const class QLocale &  other);
   enum QLocale::Language language ()const volatile restrict ;
   enum QLocale::Script script ()const volatile restrict ;
   enum QLocale::Country country ()const volatile restrict ;
   class QString name ()const volatile restrict ;
   class QString bcp47Name ()const volatile restrict ;
   class QString nativeLanguageName ()const volatile restrict ;
   class QString nativeCountryName ()const volatile restrict ;
   short toShort (const const class QString &  s, _Bool *  ok = 0, int base = 0)const volatile restrict ;
   ushort toUShort (const const class QString &  s, _Bool *  ok = 0, int base = 0)const volatile restrict ;
   int toInt (const const class QString &  s, _Bool *  ok = 0, int base = 0)const volatile restrict ;
   uint toUInt (const const class QString &  s, _Bool *  ok = 0, int base = 0)const volatile restrict ;
   qlonglong toLongLong (const const class QString &  s, _Bool *  ok = 0, int base = 0)const volatile restrict ;
   qlonglong toULongLong (const const class QString &  s, _Bool *  ok = 0, int base = 0)const volatile restrict ;
   float toFloat (const const class QString &  s, _Bool *  ok = 0)const volatile restrict ;
   double toDouble (const const class QString &  s, _Bool *  ok = 0)const volatile restrict ;
   class QString toString (qlonglong i)const volatile restrict ;
   class QString toString (qulonglong i)const volatile restrict ;
   inline class QString toString (short i)const volatile restrict ;
   inline class QString toString (ushort i)const volatile restrict ;
   inline class QString toString (int i)const volatile restrict ;
   inline class QString toString (uint i)const volatile restrict ;
   class QString toString (double i, char f = 'g', int prec = 6)const volatile restrict ;
   inline class QString toString (float i, char f = 'g', int prec = 6)const volatile restrict ;
   class QString toString (const const class QDate &  date, const const class QString &  formatStr)const volatile restrict ;
   class QString toString (const const class QDate &  date, enum QLocale::FormatType format = LongFormat)const volatile restrict ;
   class QString toString (const const class QTime &  time, const const class QString &  formatStr)const volatile restrict ;
   class QString toString (const const class QTime &  time, enum QLocale::FormatType format = LongFormat)const volatile restrict ;
   class QString toString (const const class QDateTime &  dateTime, enum QLocale::FormatType format = LongFormat)const volatile restrict ;
   class QString toString (const const class QDateTime &  dateTime, const const class QString &  format)const volatile restrict ;
   class QString dateFormat (enum QLocale::FormatType format = LongFormat)const volatile restrict ;
   class QString timeFormat (enum QLocale::FormatType format = LongFormat)const volatile restrict ;
   class QString dateTimeFormat (enum QLocale::FormatType format = LongFormat)const volatile restrict ;
   class QDate toDate (const const class QString &  string, enum QLocale::FormatType  = LongFormat)const volatile restrict ;
   class QTime toTime (const const class QString &  string, enum QLocale::FormatType  = LongFormat)const volatile restrict ;
   class QDateTime toDateTime (const const class QString &  string, enum QLocale::FormatType format = LongFormat)const volatile restrict ;
   class QDate toDate (const const class QString &  string, const const class QString &  format)const volatile restrict ;
   class QTime toTime (const const class QString &  string, const const class QString &  format)const volatile restrict ;
   class QDateTime toDateTime (const const class QString &  string, const const class QString &  format)const volatile restrict ;
   class QChar decimalPoint ()const volatile restrict ;
   class QChar groupSeparator ()const volatile restrict ;
   class QChar percent ()const volatile restrict ;
   class QChar zeroDigit ()const volatile restrict ;
   class QChar negativeSign ()const volatile restrict ;
   class QChar positiveSign ()const volatile restrict ;
   class QChar exponential ()const volatile restrict ;
   class QString monthName (int , enum QLocale::FormatType format = LongFormat)const volatile restrict ;
   class QString standaloneMonthName (int , enum QLocale::FormatType format = LongFormat)const volatile restrict ;
   class QString dayName (int , enum QLocale::FormatType format = LongFormat)const volatile restrict ;
   class QString standaloneDayName (int , enum QLocale::FormatType format = LongFormat)const volatile restrict ;
   Qt::DayOfWeek firstDayOfWeek ()const volatile restrict ;
   QList weekdays ()const volatile restrict ;
   class QString amText ()const volatile restrict ;
   class QString pmText ()const volatile restrict ;
   enum QLocale::MeasurementSystem measurementSystem ()const volatile restrict ;
   Qt::LayoutDirection textDirection ()const volatile restrict ;
   class QString toUpper (const const class QString &  str)const volatile restrict ;
   class QString toLower (const const class QString &  str)const volatile restrict ;
   class QString currencySymbol (enum QLocale::CurrencySymbolFormat  = CurrencySymbol)const volatile restrict ;
   class QString toCurrencyString (qlonglong , const const class QString &  symbol = class QString())const volatile restrict ;
   class QString toCurrencyString (qulonglong , const const class QString &  symbol = class QString())const volatile restrict ;
   inline class QString toCurrencyString (short , const const class QString &  symbol = class QString())const volatile restrict ;
   inline class QString toCurrencyString (ushort , const const class QString &  symbol = class QString())const volatile restrict ;
   inline class QString toCurrencyString (int , const const class QString &  symbol = class QString())const volatile restrict ;
   inline class QString toCurrencyString (uint , const const class QString &  symbol = class QString())const volatile restrict ;
   class QString toCurrencyString (double , const const class QString &  symbol = class QString())const volatile restrict ;
   inline class QString toCurrencyString (float , const const class QString &  symbol = class QString())const volatile restrict ;
   class QStringList uiLanguages ()const volatile restrict ;
   inline _Bool operator== (const const class QLocale &  other)const volatile restrict ;
   inline _Bool operator!= (const const class QLocale &  other)const volatile restrict ;
   static static class QString languageToString (enum QLocale::Language language);
   static static class QString countryToString (enum QLocale::Country country);
   static static class QString scriptToString (enum QLocale::Script script);
   static static void setDefault (const const class QLocale &  locale);
   static static class QLocale c ();
   static static class QLocale system ();
   static static QList matchingLocales (class QLocale::Language language, class QLocale::Script script, class QLocale::Country country);
   static static QList countriesForLanguage (enum QLocale::Language lang);
   void setNumberOptions (NumberOptions options);
   NumberOptions numberOptions ()const volatile restrict ;
   enum QuotationStyle
   {
      StandardQuotation,
      AlternateQuotation
   }; // end of QuotationStyle
   class QString quoteString (const const class QString &  str, enum QLocale::QuotationStyle style = StandardQuotation)const volatile restrict ;
   class QString quoteString (const const class QStringRef &  str, enum QLocale::QuotationStyle style = StandardQuotation)const volatile restrict ;
   class QString createSeparatedList (const const class QStringList &  strl)const volatile restrict ;
   struct Data{
      struct Data{
      }; // end of Data
      inline destructor void ~Data () throw ();
   }; // end of Data
private:
   union {
      inline destructor void ~ () throw ();
   }; // end of 
   const const struct QLocalePrivate *  d ()const volatile restrict ;
   inline destructor void ~QLocale () throw ();
}; // end of QLocale
inline QFlags operator| (class QLocale::NumberOptions::enum_type f1, class QLocale::NumberOptions::enum_type f2);
inline QFlags operator| (class QLocale::NumberOptions::enum_type f1, QFlags f2);
inline class QIncompatibleFlag operator| (class QLocale::NumberOptions::enum_type f1, int f2);
inline class QString toString (short i)const volatile restrict ;
inline class QString toString (ushort i)const volatile restrict ;
inline class QString toString (int i)const volatile restrict ;
inline class QString toString (uint i)const volatile restrict ;
inline class QString toString (float i, char f = 'g', int prec = 6)const volatile restrict ;
inline _Bool operator== (const const class QLocale &  other)const volatile restrict ;
inline _Bool operator!= (const const class QLocale &  other)const volatile restrict ;
inline class QString toCurrencyString (short i, const const class QString &  symbol = class QString())const volatile restrict ;
inline class QString toCurrencyString (ushort i, const const class QString &  symbol = class QString())const volatile restrict ;
inline class QString toCurrencyString (int i, const const class QString &  symbol = class QString())const volatile restrict ;
inline class QString toCurrencyString (uint i, const const class QString &  symbol = class QString())const volatile restrict ;
inline class QString toCurrencyString (float i, const const class QString &  symbol = class QString())const volatile restrict ;
class QDataStream &  operator<< (class QDataStream &  , const const class QLocale &  );
class QDataStream &  operator>> (class QDataStream &  , class QLocale &  );
class QSessionManager{
}; // end of QSessionManager
class QGuiApplicationPrivate{
}; // end of QGuiApplicationPrivate
class QPlatformNativeInterface{
}; // end of QPlatformNativeInterface
class QPlatformIntegration{
}; // end of QPlatformIntegration
class QPalette{
}; // end of QPalette
class QScreen{
}; // end of QScreen
class QStyleHints{
}; // end of QStyleHints
class QGuiApplication : public:
class QCoreApplication{
   class QGuiApplication{
   }; // end of QGuiApplication
public:
   template < typename T >
      inline void qt_check_for_QOBJECT_macro (const const T &  _q_argument)const volatile restrict ;
   /* variable */ static const const struct QMetaObject staticMetaObject;
   virtual const const struct QMetaObject *  metaObject ()const volatile restrict ;
   virtual void *  qt_metacast (const const char *  );
   static inline static class QString tr (const const char *  s, const const char *  c = 0);
   static inline static class QString trUtf8 (const const char *  s, const const char *  c = 0);
   static inline static class QString tr (const const char *  s, const const char *  c, int n);
   static inline static class QString trUtf8 (const const char *  s, const const char *  c, int n);
   virtual int qt_metacall (struct QMetaObject::Call , int , void *  *  );
private:
   /* variable */ static const const struct QMetaObjectExtraData staticMetaObjectExtraData;
   static static void qt_static_metacall (class QObject *  , struct QMetaObject::Call , int , void *  *  );
public:
   constructor void QGuiApplication (int &  argc, char *  *  argv, int  = ApplicationFlags);
   virtual destructor void ~QGuiApplication ();
   static static void setApplicationDisplayName (const const class QString &  name);
   static static class QString applicationDisplayName ();
   static static void setDesktopFileName (const const class QString &  name);
   static static class QString desktopFileName ();
   static static int allWindows ();
   static static int topLevelWindows ();
   static static class QWindow *  topLevelAt (const const class QPoint &  pos);
   static static void setWindowIcon (const const class QIcon &  icon);
   static static class QIcon windowIcon ();
   static static class QString platformName ();
   static static class QWindow *  modalWindow ();
   static static class QWindow *  focusWindow ();
   static static class QObject *  focusObject ();
   static static class QScreen *  primaryScreen ();
   static static QList screens ();
   qreal devicePixelRatio ()const volatile restrict ;
   static static class QCursor *  overrideCursor ();
   static static void setOverrideCursor (const const class QCursor &  );
   static static void changeOverrideCursor (const const class QCursor &  );
   static static void restoreOverrideCursor ();
   static static class QFont font ();
   static static void setFont (const const class QFont &  );
   static static class QClipboard *  clipboard ();
   static static class QPalette palette ();
   static static void setPalette (const const class QPalette &  pal);
   static static Qt::KeyboardModifiers keyboardModifiers ();
   static static Qt::KeyboardModifiers queryKeyboardModifiers ();
   static static Qt::MouseButtons mouseButtons ();
   static static void setLayoutDirection (Qt::LayoutDirection direction);
   static static Qt::LayoutDirection layoutDirection ();
   static inline static _Bool isRightToLeft ();
   static inline static _Bool isLeftToRight ();
   static static class QStyleHints *  styleHints ();
   static static void setDesktopSettingsAware (_Bool on);
   static static _Bool desktopSettingsAware ();
   static static class QInputMethod *  inputMethod ();
   static static class QPlatformNativeInterface *  platformNativeInterface ();
   static static int platformFunction (const const class QByteArray &  function);
   static static void setQuitOnLastWindowClosed (_Bool quit);
   static static _Bool quitOnLastWindowClosed ();
   static static int applicationState ();
   static static int exec ();
   virtual _Bool notify (class QObject *  , class QEvent *  );
   _Bool isSessionRestored ()const volatile restrict ;
   class QString sessionId ()const volatile restrict ;
   class QString sessionKey ()const volatile restrict ;
   _Bool isSavingSession ()const volatile restrict ;
   static static _Bool isFallbackSessionManagementEnabled ();
   static static void setFallbackSessionManagementEnabled (_Bool );
   static static void sync ();
protected:
   void fontDatabaseChanged ();
   void screenAdded (class QScreen *  screen);
   void screenRemoved (class QScreen *  screen);
   void primaryScreenChanged (class QScreen *  screen);
   void lastWindowClosed ();
   void focusObjectChanged (class QObject *  focusObject);
   void focusWindowChanged (class QWindow *  focusWindow);
   void applicationStateChanged (int state);
   void layoutDirectionChanged (Qt::LayoutDirection direction);
   void commitDataRequest (class QSessionManager &  sessionManager);
   void saveStateRequest (class QSessionManager &  sessionManager);
   void paletteChanged (const const class QPalette &  pal);
   void applicationDisplayNameChanged ();
protected:
   virtual _Bool event (class QEvent *  );
   virtual _Bool compressEvent (class QEvent *  , class QObject *  receiver, class QPostEventList *  );
   constructor converter void QGuiApplication (class QGuiApplicationPrivate &  p);
private:
   constructor copyconstructor converter void QGuiApplication (const const class QGuiApplication &  );
   class QGuiApplication &  operator= (const const class QGuiApplication &  );
   inline class QGuiApplicationPrivate *  d_func ();
   inline const const class QGuiApplicationPrivate *  d_func ()const volatile restrict ;
}; // end of QGuiApplication
class QDesktopWidget{
}; // end of QDesktopWidget
class QStyle{
}; // end of QStyle
class QEventLoop : public:
class QObject{
}; // end of QEventLoop
class QIcon{
}; // end of QIcon
template < typename T >
   class QList{
   }; // end of QList
class QLocale{
}; // end of QLocale
class QPlatformNativeInterface{
}; // end of QPlatformNativeInterface
class QApplication : public:
class QGuiApplication{
}; // end of QApplication
class QApplicationPrivate{
}; // end of QApplicationPrivate
class QApplication : public:
class QGuiApplication{
   class QApplication{
   }; // end of QApplication
public:
   template < typename T >
      inline void qt_check_for_QOBJECT_macro (const const T &  _q_argument)const volatile restrict ;
   /* variable */ static const const struct QMetaObject staticMetaObject;
   virtual const const struct QMetaObject *  metaObject ()const volatile restrict ;
   virtual void *  qt_metacast (const const char *  );
   static inline static class QString tr (const const char *  s, const const char *  c = 0);
   static inline static class QString trUtf8 (const const char *  s, const const char *  c = 0);
   static inline static class QString tr (const const char *  s, const const char *  c, int n);
   static inline static class QString trUtf8 (const const char *  s, const const char *  c, int n);
   virtual int qt_metacall (struct QMetaObject::Call , int , void *  *  );
private:
   /* variable */ static const const struct QMetaObjectExtraData staticMetaObjectExtraData;
   static static void qt_static_metacall (class QObject *  , struct QMetaObject::Call , int , void *  *  );
public:
   constructor void QApplication (int &  argc, char *  *  argv, int  = ApplicationFlags);
   virtual destructor void ~QApplication ();
   static static class QStyle *  style ();
   static static void setStyle (class QStyle *  );
   static static class QStyle *  setStyle (const const class QString &  );
   enum ColorSpec
   {
      NormalColor = 0,
      CustomColor = 1,
      ManyColor = 2
   }; // end of ColorSpec
   using class QGuiApplication::;
   static static class QPalette palette (const const class QWidget *  );
   static static class QPalette palette (const const char *  className);
   static static void setPalette (const const class QPalette &  , const const char *  className = );
   static static class QFont font ();
   static static class QFont font (const const class QWidget *  );
   static static class QFont font (const const char *  className);
   static static void setFont (const const class QFont &  , const const char *  className = );
   static static class QFontMetrics fontMetrics ();
   static static void setWindowIcon (const const class QIcon &  icon);
   static static class QIcon windowIcon ();
   static static QWidgetList allWidgets ();
   static static QWidgetList topLevelWidgets ();
   static static class QDesktopWidget *  desktop ();
   static static class QWidget *  activePopupWidget ();
   static static class QWidget *  activeModalWidget ();
   static static class QWidget *  focusWidget ();
   static static class QWidget *  activeWindow ();
   static static void setActiveWindow (class QWidget *  act);
   static static class QWidget *  widgetAt (const const class QPoint &  p);
   static inline static class QWidget *  widgetAt (int x, int y);
   static static class QWidget *  topLevelAt (const const class QPoint &  p);
   static inline static class QWidget *  topLevelAt (int x, int y);
   static static void beep ();
   static static void alert (class QWidget *  widget, int duration = 0);
   static static void setCursorFlashTime (int );
   static static int cursorFlashTime ();
   static static void setDoubleClickInterval (int );
   static static int doubleClickInterval ();
   static static void setKeyboardInputInterval (int );
   static static int keyboardInputInterval ();
   static static void setWheelScrollLines (int );
   static static int wheelScrollLines ();
   static static void setGlobalStrut (const const class QSize &  );
   static static class QSize globalStrut ();
   static static void setStartDragTime (int ms);
   static static int startDragTime ();
   static static void setStartDragDistance (int l);
   static static int startDragDistance ();
   static static _Bool isEffectEnabled (Qt::UIEffect );
   static static void setEffectEnabled (Qt::UIEffect , _Bool enable = true);
   static static int exec ();
   virtual _Bool notify (class QObject *  , class QEvent *  );
protected:
   void focusChanged (class QWidget *  old, class QWidget *  now);
public:
   class QString styleSheet ()const volatile restrict ;
public:
   void setStyleSheet (const const class QString &  sheet);
   void setAutoSipEnabled (const const _Bool enabled);
   _Bool autoSipEnabled ()const volatile restrict ;
   static static void closeAllWindows ();
   static static void aboutQt ();
protected:
   virtual _Bool event (class QEvent *  );
   virtual _Bool compressEvent (class QEvent *  , class QObject *  receiver, class QPostEventList *  );
private:
   constructor copyconstructor converter void QApplication (const const class QApplication &  );
   class QApplication &  operator= (const const class QApplication &  );
   inline class QApplicationPrivate *  d_func ();
   inline const const class QApplicationPrivate *  d_func ()const volatile restrict ;
}; // end of QApplication
typedef enum QtValidLicenseForCoreModule QtCoreModule;
class QMargins{
   class QMargins{
   }; // end of QMargins
public:
   constructor void QMargins ();
   constructor void QMargins (int left, int top, int right, int bottom);
   _Bool isNull ()const volatile restrict ;
   int left ()const volatile restrict ;
   int top ()const volatile restrict ;
   int right ()const volatile restrict ;
   int bottom ()const volatile restrict ;
   void setLeft (int left);
   void setTop (int top);
   void setRight (int right);
   void setBottom (int bottom);
private:
   friend operator==;
   friend operator!=;
   inline constructor copyconstructor converter void QMargins (const const class QMargins &  ) throw ();
}; // end of QMargins
inline constructor void QMargins ();
inline constructor void QMargins (int aleft, int atop, int aright, int abottom);
inline _Bool isNull ()const volatile restrict ;
inline int left ()const volatile restrict ;
inline int top ()const volatile restrict ;
inline int right ()const volatile restrict ;
inline int bottom ()const volatile restrict ;
inline void setLeft (int aleft);
inline void setTop (int atop);
inline void setRight (int aright);
inline void setBottom (int abottom);
inline _Bool operator== (const const class QMargins &  m1, const const class QMargins &  m2);
inline _Bool operator!= (const const class QMargins &  m1, const const class QMargins &  m2);
class QDebug operator<< (class QDebug , const const class QMargins &  );
typedef enum QtValidLicenseForCoreModule QtCoreModule;
class QRect{
   class QRect{
   }; // end of QRect
public:
   constructor void QRect ();
   constructor void QRect (const const class QPoint &  topleft, const const class QPoint &  bottomright);
   constructor void QRect (const const class QPoint &  topleft, const const class QSize &  size);
   constructor void QRect (int left, int top, int width, int height);
   _Bool isNull ()const volatile restrict ;
   _Bool isEmpty ()const volatile restrict ;
   _Bool isValid ()const volatile restrict ;
   int left ()const volatile restrict ;
   int top ()const volatile restrict ;
   int right ()const volatile restrict ;
   int bottom ()const volatile restrict ;
   class QRect normalized ()const volatile restrict ;
   int x ()const volatile restrict ;
   int y ()const volatile restrict ;
   void setLeft (int pos);
   void setTop (int pos);
   void setRight (int pos);
   void setBottom (int pos);
   void setX (int x);
   void setY (int y);
   void setTopLeft (const const class QPoint &  p);
   void setBottomRight (const const class QPoint &  p);
   void setTopRight (const const class QPoint &  p);
   void setBottomLeft (const const class QPoint &  p);
   class QPoint topLeft ()const volatile restrict ;
   class QPoint bottomRight ()const volatile restrict ;
   class QPoint topRight ()const volatile restrict ;
   class QPoint bottomLeft ()const volatile restrict ;
   class QPoint center ()const volatile restrict ;
   void moveLeft (int pos);
   void moveTop (int pos);
   void moveRight (int pos);
   void moveBottom (int pos);
   void moveTopLeft (const const class QPoint &  p);
   void moveBottomRight (const const class QPoint &  p);
   void moveTopRight (const const class QPoint &  p);
   void moveBottomLeft (const const class QPoint &  p);
   void moveCenter (const const class QPoint &  p);
   inline void translate (int dx, int dy);
   inline void translate (const const class QPoint &  p);
   inline class QRect translated (int dx, int dy)const volatile restrict ;
   inline class QRect translated (const const class QPoint &  p)const volatile restrict ;
   void moveTo (int x, int t);
   void moveTo (const const class QPoint &  p);
   void setRect (int x, int y, int w, int h);
   inline void getRect (int *  x, int *  y, int *  w, int *  h)const volatile restrict ;
   void setCoords (int x1, int y1, int x2, int y2);
   inline void getCoords (int *  x1, int *  y1, int *  x2, int *  y2)const volatile restrict ;
   inline void adjust (int x1, int y1, int x2, int y2);
   inline class QRect adjusted (int x1, int y1, int x2, int y2)const volatile restrict ;
   class QSize size ()const volatile restrict ;
   int width ()const volatile restrict ;
   int height ()const volatile restrict ;
   void setWidth (int w);
   void setHeight (int h);
   void setSize (const const class QSize &  s);
   class QRect operator| (const const class QRect &  r)const volatile restrict ;
   class QRect operator& (const const class QRect &  r)const volatile restrict ;
   class QRect &  operator|= (const const class QRect &  r);
   class QRect &  operator&= (const const class QRect &  r);
   _Bool contains (const const class QPoint &  p, _Bool proper = false)const volatile restrict ;
   _Bool contains (int x, int y)const volatile restrict ;
   _Bool contains (int x, int y, _Bool proper)const volatile restrict ;
   _Bool contains (const const class QRect &  r, _Bool proper = false)const volatile restrict ;
   class QRect unite (const const class QRect &  r)const volatile restrict ;
   class QRect united (const const class QRect &  other)const volatile restrict ;
   class QRect intersect (const const class QRect &  r)const volatile restrict ;
   class QRect intersected (const const class QRect &  other)const volatile restrict ;
   _Bool intersects (const const class QRect &  r)const volatile restrict ;
   friend operator==;
   friend operator!=;
private:
   friend qt_setCoords;
   inline constructor copyconstructor converter void QRect (const const class QRect &  ) throw ();
   inline destructor void ~QRect () throw ();
   inline class QRect &  operator= (const const class QRect &  ) throw ();
}; // end of QRect
inline _Bool operator== (const const class QRect &  , const const class QRect &  );
inline _Bool operator!= (const const class QRect &  , const const class QRect &  );
class QDataStream &  operator<< (class QDataStream &  , const const class QRect &  );
class QDataStream &  operator>> (class QDataStream &  , class QRect &  );
inline constructor void QRect (int aleft, int atop, int awidth, int aheight);
inline constructor void QRect (const const class QPoint &  atopLeft, const const class QPoint &  abottomRight);
inline constructor void QRect (const const class QPoint &  atopLeft, const const class QSize &  asize);
inline _Bool isNull ()const volatile restrict ;
inline _Bool isEmpty ()const volatile restrict ;
inline _Bool isValid ()const volatile restrict ;
inline int left ()const volatile restrict ;
inline int top ()const volatile restrict ;
inline int right ()const volatile restrict ;
inline int bottom ()const volatile restrict ;
inline int x ()const volatile restrict ;
inline int y ()const volatile restrict ;
inline void setLeft (int pos);
inline void setTop (int pos);
inline void setRight (int pos);
inline void setBottom (int pos);
inline void setTopLeft (const const class QPoint &  p);
inline void setBottomRight (const const class QPoint &  p);
inline void setTopRight (const const class QPoint &  p);
inline void setBottomLeft (const const class QPoint &  p);
inline void setX (int ax);
inline void setY (int ay);
inline class QPoint topLeft ()const volatile restrict ;
inline class QPoint bottomRight ()const volatile restrict ;
inline class QPoint topRight ()const volatile restrict ;
inline class QPoint bottomLeft ()const volatile restrict ;
inline class QPoint center ()const volatile restrict ;
inline int width ()const volatile restrict ;
inline int height ()const volatile restrict ;
inline class QSize size ()const volatile restrict ;
inline void translate (int dx, int dy);
inline void translate (const const class QPoint &  p);
inline class QRect translated (int dx, int dy)const volatile restrict ;
inline class QRect translated (const const class QPoint &  p)const volatile restrict ;
inline void moveTo (int ax, int ay);
inline void moveTo (const const class QPoint &  p);
inline void moveLeft (int pos);
inline void moveTop (int pos);
inline void moveRight (int pos);
inline void moveBottom (int pos);
inline void moveTopLeft (const const class QPoint &  p);
inline void moveBottomRight (const const class QPoint &  p);
inline void moveTopRight (const const class QPoint &  p);
inline void moveBottomLeft (const const class QPoint &  p);
inline void getRect (int *  ax, int *  ay, int *  aw, int *  ah)const volatile restrict ;
inline void setRect (int ax, int ay, int aw, int ah);
inline void getCoords (int *  xp1, int *  yp1, int *  xp2, int *  yp2)const volatile restrict ;
inline void setCoords (int xp1, int yp1, int xp2, int yp2);
inline class QRect adjusted (int xp1, int yp1, int xp2, int yp2)const volatile restrict ;
inline void adjust (int dx1, int dy1, int dx2, int dy2);
inline void setWidth (int w);
inline void setHeight (int h);
inline void setSize (const const class QSize &  s);
inline _Bool contains (int ax, int ay, _Bool aproper)const volatile restrict ;
inline _Bool contains (int ax, int ay)const volatile restrict ;
inline class QRect &  operator|= (const const class QRect &  r);
inline class QRect &  operator&= (const const class QRect &  r);
inline class QRect intersect (const const class QRect &  r)const volatile restrict ;
inline class QRect intersected (const const class QRect &  other)const volatile restrict ;
inline class QRect unite (const const class QRect &  r)const volatile restrict ;
inline class QRect united (const const class QRect &  r)const volatile restrict ;
inline _Bool operator== (const const class QRect &  r1, const const class QRect &  r2);
inline _Bool operator!= (const const class QRect &  r1, const const class QRect &  r2);
class QDebug operator<< (class QDebug , const const class QRect &  );
class QRectF{
   class QRectF{
   }; // end of QRectF
public:
   constructor void QRectF ();
   constructor void QRectF (const const class QPointF &  topleft, const const class QSizeF &  size);
   constructor void QRectF (const const class QPointF &  topleft, const const class QPointF &  bottomRight);
   constructor void QRectF (qreal left, qreal top, qreal width, qreal height);
   constructor converter void QRectF (const const class QRect &  rect);
   _Bool isNull ()const volatile restrict ;
   _Bool isEmpty ()const volatile restrict ;
   _Bool isValid ()const volatile restrict ;
   class QRectF normalized ()const volatile restrict ;
   inline qreal left ()const volatile restrict ;
   inline qreal top ()const volatile restrict ;
   inline qreal right ()const volatile restrict ;
   inline qreal bottom ()const volatile restrict ;
   inline qreal x ()const volatile restrict ;
   inline qreal y ()const volatile restrict ;
   inline void setLeft (qreal pos);
   inline void setTop (qreal pos);
   inline void setRight (qreal pos);
   inline void setBottom (qreal pos);
   inline void setX (qreal pos);
   inline void setY (qreal pos);
   inline class QPointF topLeft ()const volatile restrict ;
   inline class QPointF bottomRight ()const volatile restrict ;
   inline class QPointF topRight ()const volatile restrict ;
   inline class QPointF bottomLeft ()const volatile restrict ;
   inline class QPointF center ()const volatile restrict ;
   void setTopLeft (const const class QPointF &  p);
   void setBottomRight (const const class QPointF &  p);
   void setTopRight (const const class QPointF &  p);
   void setBottomLeft (const const class QPointF &  p);
   void moveLeft (qreal pos);
   void moveTop (qreal pos);
   void moveRight (qreal pos);
   void moveBottom (qreal pos);
   void moveTopLeft (const const class QPointF &  p);
   void moveBottomRight (const const class QPointF &  p);
   void moveTopRight (const const class QPointF &  p);
   void moveBottomLeft (const const class QPointF &  p);
   void moveCenter (const const class QPointF &  p);
   void translate (qreal dx, qreal dy);
   void translate (const const class QPointF &  p);
   class QRectF translated (qreal dx, qreal dy)const volatile restrict ;
   class QRectF translated (const const class QPointF &  p)const volatile restrict ;
   void moveTo (qreal x, qreal t);
   void moveTo (const const class QPointF &  p);
   void setRect (qreal x, qreal y, qreal w, qreal h);
   void getRect (qreal *  x, qreal *  y, qreal *  w, qreal *  h)const volatile restrict ;
   void setCoords (qreal x1, qreal y1, qreal x2, qreal y2);
   void getCoords (qreal *  x1, qreal *  y1, qreal *  x2, qreal *  y2)const volatile restrict ;
   inline void adjust (qreal x1, qreal y1, qreal x2, qreal y2);
   inline class QRectF adjusted (qreal x1, qreal y1, qreal x2, qreal y2)const volatile restrict ;
   class QSizeF size ()const volatile restrict ;
   qreal width ()const volatile restrict ;
   qreal height ()const volatile restrict ;
   void setWidth (qreal w);
   void setHeight (qreal h);
   void setSize (const const class QSizeF &  s);
   class QRectF operator| (const const class QRectF &  r)const volatile restrict ;
   class QRectF operator& (const const class QRectF &  r)const volatile restrict ;
   class QRectF &  operator|= (const const class QRectF &  r);
   class QRectF &  operator&= (const const class QRectF &  r);
   _Bool contains (const const class QPointF &  p)const volatile restrict ;
   _Bool contains (qreal x, qreal y)const volatile restrict ;
   _Bool contains (const const class QRectF &  r)const volatile restrict ;
   class QRectF unite (const const class QRectF &  r)const volatile restrict ;
   class QRectF united (const const class QRectF &  other)const volatile restrict ;
   class QRectF intersect (const const class QRectF &  r)const volatile restrict ;
   class QRectF intersected (const const class QRectF &  other)const volatile restrict ;
   _Bool intersects (const const class QRectF &  r)const volatile restrict ;
   friend operator==;
   friend operator!=;
   class QRect toRect ()const volatile restrict ;
   class QRect toAlignedRect ()const volatile restrict ;
private:
   inline constructor copyconstructor converter void QRectF (const const class QRectF &  ) throw ();
   inline destructor void ~QRectF () throw ();
   inline class QRectF &  operator= (const const class QRectF &  ) throw ();
}; // end of QRectF
inline _Bool operator== (const const class QRectF &  , const const class QRectF &  );
inline _Bool operator!= (const const class QRectF &  , const const class QRectF &  );
class QDataStream &  operator<< (class QDataStream &  , const const class QRectF &  );
class QDataStream &  operator>> (class QDataStream &  , class QRectF &  );
inline constructor void QRectF (qreal aleft, qreal atop, qreal awidth, qreal aheight);
inline constructor void QRectF (const const class QPointF &  atopLeft, const const class QSizeF &  asize);
inline constructor void QRectF (const const class QPointF &  atopLeft, const const class QPointF &  abottomRight);
inline constructor converter void QRectF (const const class QRect &  r);
inline _Bool isNull ()const volatile restrict ;
inline _Bool isEmpty ()const volatile restrict ;
inline _Bool isValid ()const volatile restrict ;
inline qreal x ()const volatile restrict ;
inline qreal y ()const volatile restrict ;
inline void setLeft (qreal pos);
inline void setRight (qreal pos);
inline void setTop (qreal pos);
inline void setBottom (qreal pos);
inline void setTopLeft (const const class QPointF &  p);
inline void setTopRight (const const class QPointF &  p);
inline void setBottomLeft (const const class QPointF &  p);
inline void setBottomRight (const const class QPointF &  p);
inline class QPointF center ()const volatile restrict ;
inline void moveLeft (qreal pos);
inline void moveTop (qreal pos);
inline void moveRight (qreal pos);
inline void moveBottom (qreal pos);
inline void moveTopLeft (const const class QPointF &  p);
inline void moveTopRight (const const class QPointF &  p);
inline void moveBottomLeft (const const class QPointF &  p);
inline void moveBottomRight (const const class QPointF &  p);
inline void moveCenter (const const class QPointF &  p);
inline qreal width ()const volatile restrict ;
inline qreal height ()const volatile restrict ;
inline class QSizeF size ()const volatile restrict ;
inline void translate (qreal dx, qreal dy);
inline void translate (const const class QPointF &  p);
inline void moveTo (qreal ax, qreal ay);
inline void moveTo (const const class QPointF &  p);
inline class QRectF translated (qreal dx, qreal dy)const volatile restrict ;
inline class QRectF translated (const const class QPointF &  p)const volatile restrict ;
inline void getRect (qreal *  ax, qreal *  ay, qreal *  aaw, qreal *  aah)const volatile restrict ;
inline void setRect (qreal ax, qreal ay, qreal aaw, qreal aah);
inline void getCoords (qreal *  xp1, qreal *  yp1, qreal *  xp2, qreal *  yp2)const volatile restrict ;
inline void setCoords (qreal xp1, qreal yp1, qreal xp2, qreal yp2);
inline void adjust (qreal xp1, qreal yp1, qreal xp2, qreal yp2);
inline class QRectF adjusted (qreal xp1, qreal yp1, qreal xp2, qreal yp2)const volatile restrict ;
inline void setWidth (qreal aw);
inline void setHeight (qreal ah);
inline void setSize (const const class QSizeF &  s);
inline _Bool contains (qreal ax, qreal ay)const volatile restrict ;
inline class QRectF &  operator|= (const const class QRectF &  r);
inline class QRectF &  operator&= (const const class QRectF &  r);
inline class QRectF intersect (const const class QRectF &  r)const volatile restrict ;
inline class QRectF intersected (const const class QRectF &  r)const volatile restrict ;
inline class QRectF unite (const const class QRectF &  r)const volatile restrict ;
inline class QRectF united (const const class QRectF &  r)const volatile restrict ;
inline _Bool operator== (const const class QRectF &  r1, const const class QRectF &  r2);
inline _Bool operator!= (const const class QRectF &  r1, const const class QRectF &  r2);
inline class QRect toRect ()const volatile restrict ;
class QDebug operator<< (class QDebug , const const class QRectF &  );
typedef enum QtValidLicenseForGuiModule QtGuiModule;
class QPaintEngine{
}; // end of QPaintEngine
class QPaintDevice{
   class QPaintDevice{
   }; // end of QPaintDevice
public:
   enum PaintDeviceMetric
   {
      PdmWidth = 1,
      PdmHeight,
      PdmWidthMM,
      PdmHeightMM,
      PdmNumColors,
      PdmDepth,
      PdmDpiX,
      PdmDpiY,
      PdmPhysicalDpiX,
      PdmPhysicalDpiY
   }; // end of PaintDeviceMetric
   virtual destructor void ~QPaintDevice ();
   virtual int devType ()const volatile restrict ;
   _Bool paintingActive ()const volatile restrict ;
   virtual class QPaintEngine *  paintEngine () = 0const volatile restrict ;
   int width ()const volatile restrict ;
   int height ()const volatile restrict ;
   int widthMM ()const volatile restrict ;
   int heightMM ()const volatile restrict ;
   int logicalDpiX ()const volatile restrict ;
   int logicalDpiY ()const volatile restrict ;
   int physicalDpiX ()const volatile restrict ;
   int physicalDpiY ()const volatile restrict ;
   int numColors ()const volatile restrict ;
   int colorCount ()const volatile restrict ;
   int depth ()const volatile restrict ;
protected:
   constructor void QPaintDevice ();
   virtual int metric (enum QPaintDevice::PaintDeviceMetric metric)const volatile restrict ;
private:
   constructor copyconstructor converter void QPaintDevice (const const class QPaintDevice &  );
   class QPaintDevice &  operator= (const const class QPaintDevice &  );
   friend qt_paint_device_metric;
}; // end of QPaintDevice
inline virtual int devType ()const volatile restrict ;
inline _Bool paintingActive ()const volatile restrict ;
typedef enum QtValidLicenseForGuiModule QtGuiModule;
typedef unsigned int QRgb;
/* variable */ const const QRgb = 16777215 RGB_MASK;
inline int qRed (QRgb rgb);
inline int qGreen (QRgb rgb);
inline int qBlue (QRgb rgb);
inline int qAlpha (QRgb rgb);
inline QRgb qRgb (int r, int g, int b);
inline QRgb qRgba (int r, int g, int b, int a);
inline int qGray (int r, int g, int b);
inline int qGray (QRgb rgb);
inline _Bool qIsGray (QRgb rgb);
typedef enum QtValidLicenseForCoreModule QtCoreModule;
struct QRegExpPrivate{
}; // end of QRegExpPrivate
class QStringList : public:
QList{
}; // end of QStringList
class QRegExp{
   class QRegExp{
   }; // end of QRegExp
public:
   enum PatternSyntax
   {
      RegExp,
      Wildcard,
      FixedString,
      RegExp2,
      WildcardUnix,
      W3CXmlSchema11
   }; // end of PatternSyntax
   enum CaretMode
   {
      CaretAtZero,
      CaretAtOffset,
      CaretWontMatch
   }; // end of CaretMode
   constructor void QRegExp ();
   constructor explicit void QRegExp (const const class QString &  pattern, Qt::CaseSensitivity cs = Qt::CaseSensitive, enum QRegExp::PatternSyntax syntax = RegExp);
   constructor copyconstructor converter void QRegExp (const const class QRegExp &  rx);
   destructor void ~QRegExp ();
   class QRegExp &  operator= (const const class QRegExp &  rx);
   inline void swap (class QRegExp &  other);
   _Bool operator== (const const class QRegExp &  rx)const volatile restrict ;
   inline _Bool operator!= (const const class QRegExp &  rx)const volatile restrict ;
   _Bool isEmpty ()const volatile restrict ;
   _Bool isValid ()const volatile restrict ;
   class QString pattern ()const volatile restrict ;
   void setPattern (const const class QString &  pattern);
   Qt::CaseSensitivity caseSensitivity ()const volatile restrict ;
   void setCaseSensitivity (Qt::CaseSensitivity cs);
   enum QRegExp::PatternSyntax patternSyntax ()const volatile restrict ;
   void setPatternSyntax (enum QRegExp::PatternSyntax syntax);
   _Bool isMinimal ()const volatile restrict ;
   void setMinimal (_Bool minimal);
   _Bool exactMatch (const const class QString &  str)const volatile restrict ;
   int indexIn (const const class QString &  str, int offset = 0, enum QRegExp::CaretMode caretMode = CaretAtZero)const volatile restrict ;
   int lastIndexIn (const const class QString &  str, int offset = -1, enum QRegExp::CaretMode caretMode = CaretAtZero)const volatile restrict ;
   int matchedLength ()const volatile restrict ;
   int numCaptures ()const volatile restrict ;
   int captureCount ()const volatile restrict ;
   class QStringList capturedTexts ()const volatile restrict ;
   class QStringList capturedTexts ();
   class QString cap (int nth = 0)const volatile restrict ;
   class QString cap (int nth = 0);
   int pos (int nth = 0)const volatile restrict ;
   int pos (int nth = 0);
   class QString errorString ()const volatile restrict ;
   class QString errorString ();
   static static class QString escape (const const class QString &  str);
private:
}; // end of QRegExp
class QDataStream &  operator<< (class QDataStream &  out, const const class QRegExp &  regExp);
class QDataStream &  operator>> (class QDataStream &  in, class QRegExp &  regExp);
typedef enum QtValidLicenseForCoreModule QtCoreModule;
class QStringMatcherPrivate{
}; // end of QStringMatcherPrivate
class QStringMatcher{
   class QStringMatcher{
   }; // end of QStringMatcher
public:
   constructor void QStringMatcher ();
   constructor converter void QStringMatcher (const const class QString &  pattern, Qt::CaseSensitivity cs = Qt::CaseSensitive);
   constructor void QStringMatcher (const const class QChar *  uc, int len, Qt::CaseSensitivity cs = Qt::CaseSensitive);
   constructor copyconstructor converter void QStringMatcher (const const class QStringMatcher &  other);
   destructor void ~QStringMatcher ();
   class QStringMatcher &  operator= (const const class QStringMatcher &  other);
   void setPattern (const const class QString &  pattern);
   void setCaseSensitivity (Qt::CaseSensitivity cs);
   int indexIn (const const class QString &  str, int from = 0)const volatile restrict ;
   int indexIn (const const class QChar *  str, int length, int from = 0)const volatile restrict ;
   class QString pattern ()const volatile restrict ;
   inline Qt::CaseSensitivity caseSensitivity ()const volatile restrict ;
private:
   struct Data{
      struct Data{
      }; // end of Data
   }; // end of Data
   union {
   }; // end of 
}; // end of QStringMatcher
typedef enum QtValidLicenseForCoreModule QtCoreModule;
class QRegExp{
}; // end of QRegExp
typedef QListIterator QStringListIterator;
typedef QMutableListIterator QMutableStringListIterator;
class QStringList : public:
QList{
   class QStringList{
   }; // end of QStringList
public:
   inline constructor void QStringList ();
   inline constructor explicit void QStringList (const const class QString &  i);
   inline constructor copyconstructor converter void QStringList (const const class QStringList &  l);
   inline constructor converter void QStringList (const const QList &  l);
   inline void sort ();
   inline int removeDuplicates ();
   inline class QString join (const const class QString &  sep)const volatile restrict ;
   inline class QStringList filter (const const class QString &  str, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   inline class QBool contains (const const class QString &  str, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
   inline class QStringList &  replaceInStrings (const const class QString &  before, const const class QString &  after, Qt::CaseSensitivity cs = Qt::CaseSensitive);
   inline class QStringList operator+ (const const class QStringList &  other)const volatile restrict ;
   inline class QStringList &  operator<< (const const class QString &  str);
   inline class QStringList &  operator<< (const const class QStringList &  l);
   inline class QStringList filter (const const class QRegExp &  rx)const volatile restrict ;
   inline class QStringList &  replaceInStrings (const const class QRegExp &  rx, const const class QString &  after);
   inline int indexOf (const const class QRegExp &  rx, int from = 0)const volatile restrict ;
   inline int lastIndexOf (const const class QRegExp &  rx, int from = -1)const volatile restrict ;
   inline int indexOf (class QRegExp &  rx, int from = 0)const volatile restrict ;
   inline int lastIndexOf (class QRegExp &  rx, int from = -1)const volatile restrict ;
   using QList::;
   using QList::;
   inline destructor void ~QStringList () throw ();
}; // end of QStringList
namespace QtPrivate
{
   void QStringList_sort (class QStringList *  that);
   int QStringList_removeDuplicates (class QStringList *  that);
   class QString QStringList_join (const const class QStringList *  that, const const class QString &  sep);
   class QStringList QStringList_filter (const const class QStringList *  that, const const class QString &  str, Qt::CaseSensitivity cs);
   class QBool QStringList_contains (const const class QStringList *  that, const const class QString &  str, Qt::CaseSensitivity cs);
   void QStringList_replaceInStrings (class QStringList *  that, const const class QString &  before, const const class QString &  after, Qt::CaseSensitivity cs);
   void QStringList_replaceInStrings (class QStringList *  that, const const class QRegExp &  rx, const const class QString &  after);
   class QStringList QStringList_filter (const const class QStringList *  that, const const class QRegExp &  re);
   int QStringList_indexOf (const const class QStringList *  that, const const class QRegExp &  rx, int from);
   int QStringList_lastIndexOf (const const class QStringList *  that, const const class QRegExp &  rx, int from);
   int QStringList_indexOf (const const class QStringList *  that, class QRegExp &  rx, int from);
   int QStringList_lastIndexOf (const const class QStringList *  that, class QRegExp &  rx, int from);
} // end of QtPrivate
inline void sort ();
inline int removeDuplicates ();
inline class QString join (const const class QString &  sep)const volatile restrict ;
inline class QStringList filter (const const class QString &  str, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
inline class QBool contains (const const class QString &  str, Qt::CaseSensitivity cs = Qt::CaseSensitive)const volatile restrict ;
inline class QStringList &  replaceInStrings (const const class QString &  before, const const class QString &  after, Qt::CaseSensitivity cs = Qt::CaseSensitive);
inline class QStringList &  replaceInStrings (const const class QRegExp &  rx, const const class QString &  after);
inline class QStringList filter (const const class QRegExp &  rx)const volatile restrict ;
inline int indexOf (const const class QRegExp &  rx, int from = 0)const volatile restrict ;
inline int lastIndexOf (const const class QRegExp &  rx, int from = -1)const volatile restrict ;
inline int indexOf (class QRegExp &  rx, int from = 0)const volatile restrict ;
inline int lastIndexOf (class QRegExp &  rx, int from = -1)const volatile restrict ;
inline class QDataStream &  operator>> (class QDataStream &  in, class QStringList &  list);
inline class QDataStream &  operator<< (class QDataStream &  out, const const class QStringList &  list);
typedef enum QtValidLicenseForGuiModule QtGuiModule;
class QColor{
}; // end of QColor
class QColormap{
}; // end of QColormap
class QVariant{
}; // end of QVariant
class QDebug operator<< (class QDebug , const const class QColor &  );
class QDataStream &  operator<< (class QDataStream &  , const const class QColor &  );
class QDataStream &  operator>> (class QDataStream &  , class QColor &  );
class QColor{
   class QColor{
   }; // end of QColor
public:
   enum Spec
   {
      Invalid,
      Rgb,
      Hsv,
      Cmyk,
      Hsl
   }; // end of Spec
   constructor void QColor ();
   constructor converter void QColor (Qt::GlobalColor color);
   constructor void QColor (int r, int g, int b, int a = 255);
   constructor converter void QColor (QRgb rgb);
   constructor converter void QColor (const const class QString &  name);
   constructor converter void QColor (const const char *  name);
   constructor copyconstructor converter void QColor (const const class QColor &  color);
   constructor converter void QColor (enum QColor::Spec spec);
   _Bool isValid ()const volatile restrict ;
   class QString name ()const volatile restrict ;
   void setNamedColor (const const class QString &  name);
   static static class QStringList colorNames ();
   inline enum QColor::Spec spec ()const volatile restrict ;
   int alpha ()const volatile restrict ;
   void setAlpha (int alpha);
   qreal alphaF ()const volatile restrict ;
   void setAlphaF (qreal alpha);
   int red ()const volatile restrict ;
   int green ()const volatile restrict ;
   int blue ()const volatile restrict ;
   void setRed (int red);
   void setGreen (int green);
   void setBlue (int blue);
   qreal redF ()const volatile restrict ;
   qreal greenF ()const volatile restrict ;
   qreal blueF ()const volatile restrict ;
   void setRedF (qreal red);
   void setGreenF (qreal green);
   void setBlueF (qreal blue);
   void getRgb (int *  r, int *  g, int *  b, int *  a = 0)const volatile restrict ;
   void setRgb (int r, int g, int b, int a = 255);
   void getRgbF (qreal *  r, qreal *  g, qreal *  b, qreal *  a = 0)const volatile restrict ;
   void setRgbF (qreal r, qreal g, qreal b, qreal a = 1.);
   QRgb rgba ()const volatile restrict ;
   void setRgba (QRgb rgba);
   QRgb rgb ()const volatile restrict ;
   void setRgb (QRgb rgb);
   int hue ()const volatile restrict ;
   int saturation ()const volatile restrict ;
   int hsvHue ()const volatile restrict ;
   int hsvSaturation ()const volatile restrict ;
   int value ()const volatile restrict ;
   qreal hueF ()const volatile restrict ;
   qreal saturationF ()const volatile restrict ;
   qreal hsvHueF ()const volatile restrict ;
   qreal hsvSaturationF ()const volatile restrict ;
   qreal valueF ()const volatile restrict ;
   void getHsv (int *  h, int *  s, int *  v, int *  a = 0)const volatile restrict ;
   void setHsv (int h, int s, int v, int a = 255);
   void getHsvF (qreal *  h, qreal *  s, qreal *  v, qreal *  a = 0)const volatile restrict ;
   void setHsvF (qreal h, qreal s, qreal v, qreal a = 1.);
   int cyan ()const volatile restrict ;
   int magenta ()const volatile restrict ;
   int yellow ()const volatile restrict ;
   int black ()const volatile restrict ;
   qreal cyanF ()const volatile restrict ;
   qreal magentaF ()const volatile restrict ;
   qreal yellowF ()const volatile restrict ;
   qreal blackF ()const volatile restrict ;
   void getCmyk (int *  c, int *  m, int *  y, int *  k, int *  a = 0);
   void setCmyk (int c, int m, int y, int k, int a = 255);
   void getCmykF (qreal *  c, qreal *  m, qreal *  y, qreal *  k, qreal *  a = 0);
   void setCmykF (qreal c, qreal m, qreal y, qreal k, qreal a = 1.);
   int hslHue ()const volatile restrict ;
   int hslSaturation ()const volatile restrict ;
   int lightness ()const volatile restrict ;
   qreal hslHueF ()const volatile restrict ;
   qreal hslSaturationF ()const volatile restrict ;
   qreal lightnessF ()const volatile restrict ;
   void getHsl (int *  h, int *  s, int *  l, int *  a = 0)const volatile restrict ;
   void setHsl (int h, int s, int l, int a = 255);
   void getHslF (qreal *  h, qreal *  s, qreal *  l, qreal *  a = 0)const volatile restrict ;
   void setHslF (qreal h, qreal s, qreal l, qreal a = 1.);
   class QColor toRgb ()const volatile restrict ;
   class QColor toHsv ()const volatile restrict ;
   class QColor toCmyk ()const volatile restrict ;
   class QColor toHsl ()const volatile restrict ;
   class QColor convertTo (enum QColor::Spec colorSpec)const volatile restrict ;
   static static class QColor fromRgb (QRgb rgb);
   static static class QColor fromRgba (QRgb rgba);
   static static class QColor fromRgb (int r, int g, int b, int a = 255);
   static static class QColor fromRgbF (qreal r, qreal g, qreal b, qreal a = 1.);
   static static class QColor fromHsv (int h, int s, int v, int a = 255);
   static static class QColor fromHsvF (qreal h, qreal s, qreal v, qreal a = 1.);
   static static class QColor fromCmyk (int c, int m, int y, int k, int a = 255);
   static static class QColor fromCmykF (qreal c, qreal m, qreal y, qreal k, qreal a = 1.);
   static static class QColor fromHsl (int h, int s, int l, int a = 255);
   static static class QColor fromHslF (qreal h, qreal s, qreal l, qreal a = 1.);
   class QColor light (int f = 150)const volatile restrict ;
   class QColor lighter (int f = 150)const volatile restrict ;
   class QColor dark (int f = 200)const volatile restrict ;
   class QColor darker (int f = 200)const volatile restrict ;
   class QColor &  operator= (const const class QColor &  );
   class QColor &  operator= (Qt::GlobalColor color);
   _Bool operator== (const const class QColor &  c)const volatile restrict ;
   _Bool operator!= (const const class QColor &  c)const volatile restrict ;
   converter class QVariant operator QVariant ()const volatile restrict ;
   static static _Bool allowX11ColorNames ();
   static static void setAllowX11ColorNames (_Bool enabled);
   static static _Bool isValidColor (const const class QString &  name);
private:
   constructor void QColor (int , int , int , enum QColor::Spec );
   void invalidate ();
   _Bool setColorFromString (const const class QString &  name);
   union {
      struct {
         inline constructor void  () throw ();
         inline struct QColor::(anonymous at /usr/include/QtGui/qcolor.h:241:9) &  operator= (const const struct QColor::(anonymous at /usr/include/QtGui/qcolor.h:241:9) &  ) throw ();
         inline destructor void ~ () throw ();
      }; // end of 
      struct {
         inline constructor void  () throw ();
         inline destructor void ~ () throw ();
      }; // end of 
      struct {
         inline constructor void  () throw ();
         inline destructor void ~ () throw ();
      }; // end of 
      struct {
         inline constructor void  () throw ();
         inline destructor void ~ () throw ();
      }; // end of 
      inline constructor void  () throw ();
      inline constructor copyconstructor converter void  (const const union QColor::(anonymous at /usr/include/QtGui/qcolor.h:240:5) &  ) throw ();
      inline destructor void ~ () throw ();
   }; // end of 
   friend operator<<;
   friend operator>>;
   inline destructor void ~QColor () throw ();
}; // end of QColor
inline constructor void QColor ();
inline constructor void QColor (int r, int g, int b, int a = 255);
inline constructor converter void QColor (const const char *  aname);
inline constructor converter void QColor (const const class QString &  aname);
inline constructor copyconstructor converter void QColor (const const class QColor &  acolor);
inline _Bool isValid ()const volatile restrict ;
inline class QColor lighter (int f = 150)const volatile restrict ;
inline class QColor darker (int f = 200)const volatile restrict ;
namespace std
{
   template < _Bool _TrivialValueTypes >
      struct __uninitialized_copy{
         struct __uninitialized_copy{
         }; // end of __uninitialized_copy
         template < typename _InputIterator, typename _ForwardIterator >
            static static _ForwardIterator __uninit_copy (_InputIterator __first, _InputIterator __last, _ForwardIterator __result);
      }; // end of __uninitialized_copy
   template < typename _InputIterator, typename _ForwardIterator >
      inline _ForwardIterator uninitialized_copy (_InputIterator __first, _InputIterator __last, _ForwardIterator __result);
   template < _Bool _TrivialValueType >
      struct __uninitialized_fill{
         struct __uninitialized_fill{
         }; // end of __uninitialized_fill
         template < typename _ForwardIterator, typename _Tp >
            static static void __uninit_fill (_ForwardIterator __first, _ForwardIterator __last, const const _Tp &  __x);
      }; // end of __uninitialized_fill
   template < typename _ForwardIterator, typename _Tp >
      inline void uninitialized_fill (_ForwardIterator __first, _ForwardIterator __last, const const _Tp &  __x);
   template < _Bool _TrivialValueType >
      struct __uninitialized_fill_n{
         struct __uninitialized_fill_n{
         }; // end of __uninitialized_fill_n
         template < typename _ForwardIterator, typename _Size, typename _Tp >
            static static _ForwardIterator __uninit_fill_n (_ForwardIterator __first, _Size __n, const const _Tp &  __x);
      }; // end of __uninitialized_fill_n
   template < typename _ForwardIterator, typename _Size, typename _Tp >
      inline _ForwardIterator uninitialized_fill_n (_ForwardIterator __first, _Size __n, const const _Tp &  __x);
   template < typename _InputIterator, typename _ForwardIterator, typename _Allocator >
      _ForwardIterator __uninitialized_copy_a (_InputIterator __first, _InputIterator __last, _ForwardIterator __result, _Allocator &  __alloc);
   template < typename _InputIterator, typename _ForwardIterator, typename _Tp >
      inline _ForwardIterator __uninitialized_copy_a (_InputIterator __first, _InputIterator __last, _ForwardIterator __result, allocator<_Tp> &  );
   template < typename _InputIterator, typename _ForwardIterator, typename _Allocator >
      inline _ForwardIterator __uninitialized_move_a (_InputIterator __first, _InputIterator __last, _ForwardIterator __result, _Allocator &  __alloc);
   template < typename _InputIterator, typename _ForwardIterator, typename _Allocator >
      inline _ForwardIterator __uninitialized_move_if_noexcept_a (_InputIterator __first, _InputIterator __last, _ForwardIterator __result, _Allocator &  __alloc);
   template < typename _ForwardIterator, typename _Tp, typename _Allocator >
      void __uninitialized_fill_a (_ForwardIterator __first, _ForwardIterator __last, const const _Tp &  __x, _Allocator &  __alloc);
   template < typename _ForwardIterator, typename _Tp, typename _Tp2 >
      inline void __uninitialized_fill_a (_ForwardIterator __first, _ForwardIterator __last, const const _Tp &  __x, allocator<_Tp2> &  );
   template < typename _ForwardIterator, typename _Size, typename _Tp, typename _Allocator >
      _ForwardIterator __uninitialized_fill_n_a (_ForwardIterator __first, _Size __n, const const _Tp &  __x, _Allocator &  __alloc);
   template < typename _ForwardIterator, typename _Size, typename _Tp, typename _Tp2 >
      inline _ForwardIterator __uninitialized_fill_n_a (_ForwardIterator __first, _Size __n, const const _Tp &  __x, allocator<_Tp2> &  );
   template < typename _InputIterator1, typename _InputIterator2, typename _ForwardIterator, typename _Allocator >
      inline _ForwardIterator __uninitialized_copy_move (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _ForwardIterator __result, _Allocator &  __alloc);
   template < typename _InputIterator1, typename _InputIterator2, typename _ForwardIterator, typename _Allocator >
      inline _ForwardIterator __uninitialized_move_copy (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _ForwardIterator __result, _Allocator &  __alloc);
   template < typename _ForwardIterator, typename _Tp, typename _InputIterator, typename _Allocator >
      inline _ForwardIterator __uninitialized_fill_move (_ForwardIterator __result, _ForwardIterator __mid, const const _Tp &  __x, _InputIterator __first, _InputIterator __last, _Allocator &  __alloc);
   template < typename _InputIterator, typename _ForwardIterator, typename _Tp, typename _Allocator >
      inline void __uninitialized_move_fill (_InputIterator __first1, _InputIterator __last1, _ForwardIterator __first2, _ForwardIterator __last2, const const _Tp &  __x, _Allocator &  __alloc);
} // end of std
namespace std
{
   template < typename _Tp, typename _Alloc >
      struct _Vector_base{
         struct _Vector_base{
         }; // end of _Vector_base
         typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Tp>::other std::_Vector_base::_Tp_alloc_type;
         typedef typename __gnu_cxx::__alloc_traits<_Tp_alloc_type>::pointer std::_Vector_base::pointer;
         struct _Vector_impl : public:
         _Tp_alloc_type{
            struct _Vector_impl{
            }; // end of _Vector_impl
            constructor void _Vector_impl ();
            constructor converter void _Vector_impl (const const _Tp_alloc_type &  __a);
            void _M_swap_data (struct std::_Vector_base::_Vector_impl &  __x);
         }; // end of _Vector_impl
      public:
         typedef _Alloc std::_Vector_base::allocator_type;
         _Tp_alloc_type &  _M_get_Tp_allocator ();
         const const _Tp_alloc_type &  _M_get_Tp_allocator ()const volatile restrict ;
         allocator_type get_allocator ()const volatile restrict ;
         constructor void _Vector_base<_Tp, _Alloc> ();
         constructor converter void _Vector_base<_Tp, _Alloc> (const const allocator_type &  __a);
         constructor converter void _Vector_base<_Tp, _Alloc> (size_t __n);
         constructor void _Vector_base<_Tp, _Alloc> (size_t __n, const const allocator_type &  __a);
         destructor void ~_Vector_base<_Tp, _Alloc> ();
      public:
         pointer _M_allocate (size_t __n);
         void _M_deallocate (pointer __p, size_t __n);
      private:
         void _M_create_storage (size_t __n);
      }; // end of _Vector_base
   template < typename _Tp, typename _Alloc = std::allocator<_Tp> >
      class vector : protected:
      _Vector_base<_Tp, _Alloc>{
         class vector{
         }; // end of vector
         typedef _Vector_base<_Tp, _Alloc> std::vector::_Base;
         typedef typename _Base::_Tp_alloc_type std::vector::_Tp_alloc_type;
         typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> std::vector::_Alloc_traits;
      public:
         typedef _Tp std::vector::value_type;
         typedef typename _Base::pointer std::vector::pointer;
         typedef typename _Alloc_traits::const_pointer std::vector::const_pointer;
         typedef typename _Alloc_traits::reference std::vector::reference;
         typedef typename _Alloc_traits::const_reference std::vector::const_reference;
         typedef __gnu_cxx::__normal_iterator > std::vector::iterator;
         typedef __gnu_cxx::__normal_iterator > std::vector::const_iterator;
         typedef std::reverse_iterator std::vector::const_reverse_iterator;
         typedef std::reverse_iterator std::vector::reverse_iterator;
         typedef size_t std::vector::size_type;
         typedef ptrdiff_t std::vector::difference_type;
         typedef _Alloc std::vector::allocator_type;
      protected:
         using _Base::;
         using _Base::;
         using _Base::;
         using _Base::;
      public:
         constructor void vector<_Tp, _Alloc> ();
         constructor explicit void vector<_Tp, _Alloc> (const const allocator_type &  __a);
         constructor explicit void vector<_Tp, _Alloc> (size_type __n, const const value_type &  __value = value_type(), const const allocator_type &  __a = allocator_type());
         constructor copyconstructor converter void vector<_Tp, _Alloc> (const const vector<_Tp, _Alloc> &  __x);
         template < typename _InputIterator >
            constructor void vector<_Tp, _Alloc> (_InputIterator __first, _InputIterator __last, const const allocator_type &  __a = allocator_type());
         destructor void ~vector<_Tp, _Alloc> ();
         vector<_Tp, _Alloc> &  operator= (const const vector<_Tp, _Alloc> &  __x);
         void assign (size_type __n, const const value_type &  __val);
         template < typename _InputIterator >
            void assign (_InputIterator __first, _InputIterator __last);
         using _Base::;
         iterator begin ();
         const_iterator begin ()const volatile restrict ;
         iterator end ();
         const_iterator end ()const volatile restrict ;
         reverse_iterator rbegin ();
         const_reverse_iterator rbegin ()const volatile restrict ;
         reverse_iterator rend ();
         const_reverse_iterator rend ()const volatile restrict ;
         size_type size ()const volatile restrict ;
         size_type max_size ()const volatile restrict ;
         void resize (size_type __new_size, value_type __x = value_type());
         size_type capacity ()const volatile restrict ;
         _Bool empty ()const volatile restrict ;
         void reserve (size_type __n);
         reference operator[] (size_type __n);
         const_reference operator[] (size_type __n)const volatile restrict ;
      protected:
         void _M_range_check (size_type __n)const volatile restrict ;
      public:
         reference at (size_type __n);
         const_reference at (size_type __n)const volatile restrict ;
         reference front ();
         const_reference front ()const volatile restrict ;
         reference back ();
         const_reference back ()const volatile restrict ;
         _Tp *  data ();
         const const _Tp *  data ()const volatile restrict ;
         void push_back (const const value_type &  __x);
         void pop_back ();
         iterator insert (iterator __position, const const value_type &  __x);
         void insert (iterator __position, size_type __n, const const value_type &  __x);
         template < typename _InputIterator >
            void insert (iterator __position, _InputIterator __first, _InputIterator __last);
         iterator erase (iterator __position);
         iterator erase (iterator __first, iterator __last);
         void swap (vector<_Tp, _Alloc> &  __x);
         void clear ();
      protected:
         template < typename _ForwardIterator >
            pointer _M_allocate_and_copy (size_type __n, _ForwardIterator __first, _ForwardIterator __last);
         template < typename _Integer >
            void _M_initialize_dispatch (_Integer __n, _Integer __value, struct std::__true_type );
         template < typename _InputIterator >
            void _M_initialize_dispatch (_InputIterator __first, _InputIterator __last, struct std::__false_type );
         template < typename _InputIterator >
            void _M_range_initialize (_InputIterator __first, _InputIterator __last, std::input_iterator_tag );
         template < typename _ForwardIterator >
            void _M_range_initialize (_ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag );
         void _M_fill_initialize (size_type __n, const const value_type &  __value);
         template < typename _Integer >
            void _M_assign_dispatch (_Integer __n, _Integer __val, struct std::__true_type );
         template < typename _InputIterator >
            void _M_assign_dispatch (_InputIterator __first, _InputIterator __last, struct std::__false_type );
         template < typename _InputIterator >
            void _M_assign_aux (_InputIterator __first, _InputIterator __last, std::input_iterator_tag );
         template < typename _ForwardIterator >
            void _M_assign_aux (_ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag );
         void _M_fill_assign (size_type __n, const const value_type &  __val);
         template < typename _Integer >
            void _M_insert_dispatch (iterator __pos, _Integer __n, _Integer __val, struct std::__true_type );
         template < typename _InputIterator >
            void _M_insert_dispatch (iterator __pos, _InputIterator __first, _InputIterator __last, struct std::__false_type );
         template < typename _InputIterator >
            void _M_range_insert (iterator __pos, _InputIterator __first, _InputIterator __last, std::input_iterator_tag );
         template < typename _ForwardIterator >
            void _M_range_insert (iterator __pos, _ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag );
         void _M_fill_insert (iterator __pos, size_type __n, const const value_type &  __x);
         void _M_insert_aux (iterator __position, const const value_type &  __x);
         void _M_realloc_insert (iterator __position, const const value_type &  __x);
         size_type _M_check_len (size_type __n, const const char *  __s)const volatile restrict ;
         void _M_erase_at_end (pointer __pos);
         iterator _M_erase (iterator __position);
         iterator _M_erase (iterator __first, iterator __last);
         template < typename _Up >
            _Up *  _M_data_ptr (_Up *  __ptr)const volatile restrict ;
         template < typename _Up >
            _Up *  _M_data_ptr (_Up *  __ptr);
         template < typename _Ptr >
            value_type *  _M_data_ptr (_Ptr __ptr);
         template < typename _Ptr >
            const const value_type *  _M_data_ptr (_Ptr __ptr)const volatile restrict ;
      }; // end of vector
   template < typename _Tp, typename _Alloc >
      inline _Bool operator== (const const vector<_Tp, _Alloc> &  __x, const const vector<_Tp, _Alloc> &  __y);
   template < typename _Tp, typename _Alloc >
      inline _Bool operator< (const const vector<_Tp, _Alloc> &  __x, const const vector<_Tp, _Alloc> &  __y);
   template < typename _Tp, typename _Alloc >
      inline _Bool operator!= (const const vector<_Tp, _Alloc> &  __x, const const vector<_Tp, _Alloc> &  __y);
   template < typename _Tp, typename _Alloc >
      inline _Bool operator> (const const vector<_Tp, _Alloc> &  __x, const const vector<_Tp, _Alloc> &  __y);
   template < typename _Tp, typename _Alloc >
      inline _Bool operator<= (const const vector<_Tp, _Alloc> &  __x, const const vector<_Tp, _Alloc> &  __y);
   template < typename _Tp, typename _Alloc >
      inline _Bool operator>= (const const vector<_Tp, _Alloc> &  __x, const const vector<_Tp, _Alloc> &  __y);
   template < typename _Tp, typename _Alloc >
      inline void swap (vector<_Tp, _Alloc> &  __x, vector<_Tp, _Alloc> &  __y);
} // end of std
namespace std
{
   typedef unsigned long std::_Bit_type;
   enum 
   {
      _S_word_bit = int(8 * sizeof(_Bit_type))
   }; // end of 
   struct _Bit_reference{
      struct _Bit_reference{
      }; // end of _Bit_reference
      constructor void _Bit_reference (_Bit_type *  __x, _Bit_type __y);
      constructor void _Bit_reference ();
      converter _Bool operator bool ()const volatile restrict ;
      struct std::_Bit_reference &  operator= (_Bool __x);
      struct std::_Bit_reference &  operator= (const const struct std::_Bit_reference &  __x);
      _Bool operator== (const const struct std::_Bit_reference &  __x)const volatile restrict ;
      _Bool operator< (const const struct std::_Bit_reference &  __x)const volatile restrict ;
      void flip ();
      inline constructor copyconstructor converter void _Bit_reference (const const struct std::_Bit_reference &  ) throw ();
      inline destructor void ~_Bit_reference () throw ();
   }; // end of _Bit_reference
   struct _Bit_iterator_base : public:
   std::iterator{
      struct _Bit_iterator_base{
      }; // end of _Bit_iterator_base
      constructor void _Bit_iterator_base (_Bit_type *  __x, unsigned int __y);
      void _M_bump_up ();
      void _M_bump_down ();
      void _M_incr (ptrdiff_t __i);
      _Bool operator== (const const struct std::_Bit_iterator_base &  __i)const volatile restrict ;
      _Bool operator< (const const struct std::_Bit_iterator_base &  __i)const volatile restrict ;
      _Bool operator!= (const const struct std::_Bit_iterator_base &  __i)const volatile restrict ;
      _Bool operator> (const const struct std::_Bit_iterator_base &  __i)const volatile restrict ;
      _Bool operator<= (const const struct std::_Bit_iterator_base &  __i)const volatile restrict ;
      _Bool operator>= (const const struct std::_Bit_iterator_base &  __i)const volatile restrict ;
      inline constructor copyconstructor converter void _Bit_iterator_base (const const struct std::_Bit_iterator_base &  ) throw ();
      inline destructor void ~_Bit_iterator_base () throw ();
   }; // end of _Bit_iterator_base
   inline ptrdiff_t operator- (const const struct std::_Bit_iterator_base &  __x, const const struct std::_Bit_iterator_base &  __y);
   struct _Bit_iterator : public:
   struct std::_Bit_iterator_base{
      struct _Bit_iterator{
      }; // end of _Bit_iterator
      typedef struct std::_Bit_reference std::_Bit_iterator::reference;
      typedef struct std::_Bit_reference *  std::_Bit_iterator::pointer;
      typedef struct std::_Bit_iterator std::_Bit_iterator::iterator;
      constructor void _Bit_iterator ();
      constructor void _Bit_iterator (_Bit_type *  __x, unsigned int __y);
      iterator _M_const_cast ()const volatile restrict ;
      reference operator* ()const volatile restrict ;
      iterator &  operator++ ();
      iterator operator++ (int );
      iterator &  operator-- ();
      iterator operator-- (int );
      iterator &  operator+= (difference_type __i);
      iterator &  operator-= (difference_type __i);
      iterator operator+ (difference_type __i)const volatile restrict ;
      iterator operator- (difference_type __i)const volatile restrict ;
      reference operator[] (difference_type __i)const volatile restrict ;
      inline constructor copyconstructor converter void _Bit_iterator (const const struct std::_Bit_iterator &  ) throw ();
      inline destructor void ~_Bit_iterator () throw ();
   }; // end of _Bit_iterator
   inline struct std::_Bit_iterator operator+ (ptrdiff_t __n, const const struct std::_Bit_iterator &  __x);
   struct _Bit_const_iterator : public:
   struct std::_Bit_iterator_base{
      struct _Bit_const_iterator{
      }; // end of _Bit_const_iterator
      typedef _Bool std::_Bit_const_iterator::reference;
      typedef _Bool std::_Bit_const_iterator::const_reference;
      typedef const const _Bool *  std::_Bit_const_iterator::pointer;
      typedef struct std::_Bit_const_iterator std::_Bit_const_iterator::const_iterator;
      constructor void _Bit_const_iterator ();
      constructor void _Bit_const_iterator (_Bit_type *  __x, unsigned int __y);
      constructor converter void _Bit_const_iterator (const const struct std::_Bit_iterator &  __x);
      struct std::_Bit_iterator _M_const_cast ()const volatile restrict ;
      const_reference operator* ()const volatile restrict ;
      const_iterator &  operator++ ();
      const_iterator operator++ (int );
      const_iterator &  operator-- ();
      const_iterator operator-- (int );
      const_iterator &  operator+= (difference_type __i);
      const_iterator &  operator-= (difference_type __i);
      const_iterator operator+ (difference_type __i)const volatile restrict ;
      const_iterator operator- (difference_type __i)const volatile restrict ;
      const_reference operator[] (difference_type __i)const volatile restrict ;
      inline constructor copyconstructor converter void _Bit_const_iterator (const const struct std::_Bit_const_iterator &  ) throw ();
      inline destructor void ~_Bit_const_iterator () throw ();
   }; // end of _Bit_const_iterator
   inline struct std::_Bit_const_iterator operator+ (ptrdiff_t __n, const const struct std::_Bit_const_iterator &  __x);
   inline void __fill_bvector (struct std::_Bit_iterator __first, struct std::_Bit_iterator __last, _Bool __x);
   inline void fill (struct std::_Bit_iterator __first, struct std::_Bit_iterator __last, const const _Bool &  __x);
   template < typename _Alloc >
      struct _Bvector_base{
         struct _Bvector_base{
         }; // end of _Bvector_base
         typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Bit_type>::other std::_Bvector_base::_Bit_alloc_type;
         typedef typename __gnu_cxx::__alloc_traits<_Bit_alloc_type> std::_Bvector_base::_Bit_alloc_traits;
         typedef typename _Bit_alloc_traits::pointer std::_Bvector_base::_Bit_pointer;
         struct _Bvector_impl : public:
         _Bit_alloc_type{
            struct _Bvector_impl{
            }; // end of _Bvector_impl
            constructor void _Bvector_impl ();
            constructor converter void _Bvector_impl (const const _Bit_alloc_type &  __a);
            _Bit_type *  _M_end_addr ()const volatile restrict ;
         }; // end of _Bvector_impl
      public:
         typedef _Alloc std::_Bvector_base::allocator_type;
         _Bit_alloc_type &  _M_get_Bit_allocator ();
         const const _Bit_alloc_type &  _M_get_Bit_allocator ()const volatile restrict ;
         allocator_type get_allocator ()const volatile restrict ;
         constructor void _Bvector_base<_Alloc> ();
         constructor converter void _Bvector_base<_Alloc> (const const allocator_type &  __a);
         destructor void ~_Bvector_base<_Alloc> ();
      protected:
         _Bit_pointer _M_allocate (size_t __n);
         void _M_deallocate ();
         static static size_t _S_nword (size_t __n);
      }; // end of _Bvector_base
} // end of std
namespace std
{
} // end of std
namespace std
{
   void reserve (size_type __n);
   typename vector<_Tp, _Alloc>::iterator insert (iterator __position, const const value_type &  __x);
   typename vector<_Tp, _Alloc>::iterator _M_erase (iterator __position);
   typename vector<_Tp, _Alloc>::iterator _M_erase (iterator __first, iterator __last);
   vector<_Tp, _Alloc> &  operator= (const const vector<_Tp, _Alloc> &  __x);
   void _M_fill_assign (size_t __n, const const value_type &  __val);
   template < typename _InputIterator >
      void _M_assign_aux (_InputIterator __first, _InputIterator __last, std::input_iterator_tag );
   template < typename _ForwardIterator >
      void _M_assign_aux (_ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag );
   void _M_insert_aux (iterator __position, const const _Tp &  __x);
   void _M_realloc_insert (iterator __position, const const _Tp &  __x);
   void _M_fill_insert (iterator __position, size_type __n, const const value_type &  __x);
   template < typename _InputIterator >
      void _M_range_insert (iterator __pos, _InputIterator __first, _InputIterator __last, std::input_iterator_tag );
   template < typename _ForwardIterator >
      void _M_range_insert (iterator __position, _ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag );
   void _M_reallocate (size_type __n);
   void _M_fill_insert (iterator __position, size_type __n, _Bool __x);
   template < typename _ForwardIterator >
      void _M_insert_range (iterator __position, _ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag );
   void _M_insert_aux (iterator __position, _Bool __x);
   typename vector<_Bool, _Alloc>::iterator _M_erase (iterator __position);
   typename vector<_Bool, _Alloc>::iterator _M_erase (iterator __first, iterator __last);
} // end of std
using std::;
using std::;
using std::;
using std::;
using std::;
using std::;
using std::;
using std::;
using std::;
using std::;
using std::;
using std::;
using std::;
using std::;
using std::;
using std::;
using std::;
using std::;
using std::;
using std::;
using std::;
using std::;
using std::;
using std::;
using std::;
using std::;
using std::;
using std::;
using std::;
using std::;
typedef enum QtValidLicenseForCoreModule QtCoreModule;
struct QVectorData{
   struct QVectorData{
   }; // end of QVectorData
   /* variable */ static struct QVectorData shared_null;
   static static struct QVectorData *  malloc (int sizeofTypedData, int size, int sizeofT, struct QVectorData *  init);
   static static struct QVectorData *  allocate (int size, int alignment);
   static static struct QVectorData *  reallocate (struct QVectorData *  old, int newsize, int oldsize, int alignment);
   static static void free (struct QVectorData *  data, int alignment);
   static static int grow (int sizeofTypedData, int size, int sizeofT, _Bool excessive);
}; // end of QVectorData
template < typename T >
   struct QVectorTypedData : private:
   struct QVectorData{
      struct QVectorTypedData{
      }; // end of QVectorTypedData
      static inline static void free (QVectorTypedData *  x, int alignment);
   }; // end of QVectorTypedData
class QRegion{
}; // end of QRegion
template < typename T >
   class QVector{
      class QVector{
      }; // end of QVector
      typedef QVectorTypedData QVector::Data;
      union {
      }; // end of 
   public:
      inline constructor void QVector ();
      constructor explicit void QVector (int size);
      constructor void QVector (int size, const const T &  t);
      inline constructor copyconstructor converter void QVector (const const QVector &  v);
      inline destructor void ~QVector ();
      QVector &  operator= (const const QVector &  v);
      inline void swap (QVector &  other);
      _Bool operator== (const const QVector &  v)const volatile restrict ;
      inline _Bool operator!= (const const QVector &  v)const volatile restrict ;
      inline int size ()const volatile restrict ;
      inline _Bool isEmpty ()const volatile restrict ;
      void resize (int size);
      inline int capacity ()const volatile restrict ;
      void reserve (int size);
      inline void squeeze ();
      inline void detach ();
      inline _Bool isDetached ()const volatile restrict ;
      inline void setSharable (_Bool sharable);
      inline _Bool isSharedWith (const const QVector &  other)const volatile restrict ;
      inline T *  data ();
      inline const const T *  data ()const volatile restrict ;
      inline const const T *  constData ()const volatile restrict ;
      void clear ();
      const const T &  at (int i)const volatile restrict ;
      T &  operator[] (int i);
      const const T &  operator[] (int i)const volatile restrict ;
      void append (const const T &  t);
      void prepend (const const T &  t);
      void insert (int i, const const T &  t);
      void insert (int i, int n, const const T &  t);
      void replace (int i, const const T &  t);
      void remove (int i);
      void remove (int i, int n);
      QVector &  fill (const const T &  t, int size = -1);
      int indexOf (const const T &  t, int from = 0)const volatile restrict ;
      int lastIndexOf (const const T &  t, int from = -1)const volatile restrict ;
      _Bool contains (const const T &  t)const volatile restrict ;
      int count (const const T &  t)const volatile restrict ;
      typedef T *  QVector::iterator;
      typedef const const T *  QVector::const_iterator;
      inline iterator begin ();
      inline const_iterator begin ()const volatile restrict ;
      inline const_iterator constBegin ()const volatile restrict ;
      inline iterator end ();
      inline const_iterator end ()const volatile restrict ;
      inline const_iterator constEnd ()const volatile restrict ;
      iterator insert (iterator before, int n, const const T &  x);
      inline iterator insert (iterator before, const const T &  x);
      iterator erase (iterator begin, iterator end);
      inline iterator erase (iterator pos);
      inline int count ()const volatile restrict ;
      inline T &  first ();
      inline const const T &  first ()const volatile restrict ;
      inline T &  last ();
      inline const const T &  last ()const volatile restrict ;
      inline _Bool startsWith (const const T &  t)const volatile restrict ;
      inline _Bool endsWith (const const T &  t)const volatile restrict ;
      QVector mid (int pos, int length = -1)const volatile restrict ;
      T value (int i)const volatile restrict ;
      T value (int i, const const T &  defaultValue)const volatile restrict ;
      typedef T QVector::value_type;
      typedef value_type *  QVector::pointer;
      typedef const const value_type *  QVector::const_pointer;
      typedef value_type &  QVector::reference;
      typedef const const value_type &  QVector::const_reference;
      typedef qptrdiff QVector::difference_type;
      typedef iterator QVector::Iterator;
      typedef const_iterator QVector::ConstIterator;
      typedef int QVector::size_type;
      inline void push_back (const const T &  t);
      inline void push_front (const const T &  t);
      void pop_back ();
      void pop_front ();
      inline _Bool empty ()const volatile restrict ;
      inline T &  front ();
      inline const_reference front ()const volatile restrict ;
      inline reference back ();
      inline const_reference back ()const volatile restrict ;
      QVector &  operator+= (const const QVector &  l);
      inline QVector operator+ (const const QVector &  l)const volatile restrict ;
      inline QVector &  operator+= (const const T &  t);
      inline QVector &  operator<< (const const T &  t);
      inline QVector &  operator<< (const const QVector &  l);
      QList toList ()const volatile restrict ;
      static static QVector fromList (const const QList &  list);
      static inline static QVector fromStdVector (const const std::vector &  vector);
      inline std::vector toStdVector ()const volatile restrict ;
   private:
      void detach_helper ();
      struct QVectorData *  malloc (int alloc);
      void realloc (int size, int alloc);
      void free (Data *  d);
      int sizeOfTypedData ();
      inline int alignOfTypedData ()const volatile restrict ;
   }; // end of QVector
void detach_helper ();
void reserve (int asize);
void resize (int asize);
inline void clear ();
inline const const T &  at (int i)const volatile restrict ;
inline const const T &  operator[] (int i)const volatile restrict ;
inline T &  operator[] (int i);
inline void insert (int i, const const T &  t);
inline void insert (int i, int n, const const T &  t);
inline void remove (int i, int n);
inline void remove (int i);
inline void prepend (const const T &  t);
inline void replace (int i, const const T &  t);
QVector &  operator= (const const QVector &  v);
inline struct QVectorData *  malloc (int aalloc);
constructor explicit void QVector (int asize);
constructor void QVector (int asize, const const T &  t);
void free (Data *  x);
void realloc (int asize, int aalloc);
T value (int i)const volatile restrict ;
T value (int i, const const T &  defaultValue)const volatile restrict ;
void append (const const T &  t);
typename QVector::iterator insert (iterator before, size_type n, const const T &  t);
typename QVector::iterator erase (iterator abegin, iterator aend);
_Bool operator== (const const QVector &  v)const volatile restrict ;
QVector &  fill (const const T &  from, int asize = -1);
QVector &  operator+= (const const QVector &  l);
int indexOf (const const T &  t, int from = 0)const volatile restrict ;
int lastIndexOf (const const T &  t, int from = -1)const volatile restrict ;
_Bool contains (const const T &  t)const volatile restrict ;
int count (const const T &  t)const volatile restrict ;
QVector mid (int pos, int length = -1)const volatile restrict ;
QList toList ()const volatile restrict ;
QVector toVector ()const volatile restrict ;
static QVector fromList (const const QList &  list);
static QList fromVector (const const QVector &  vector);
template < class T >
   class QVectorIterator{
      class QVectorIterator{
      }; // end of QVectorIterator
      typedef typename QVector::const_iterator QVectorIterator::const_iterator;
   public:
      inline constructor converter void QVectorIterator (const const QVector &  container);
      inline QVectorIterator &  operator= (const const QVector &  container);
      inline void toFront ();
      inline void toBack ();
      inline _Bool hasNext ()const volatile restrict ;
      inline const const T &  next ();
      inline const const T &  peekNext ()const volatile restrict ;
      inline _Bool hasPrevious ()const volatile restrict ;
      inline const const T &  previous ();
      inline const const T &  peekPrevious ()const volatile restrict ;
      inline _Bool findNext (const const T &  t);
      inline _Bool findPrevious (const const T &  t);
   }; // end of QVectorIterator
template < class T >
   class QMutableVectorIterator{
      class QMutableVectorIterator{
      }; // end of QMutableVectorIterator
      typedef typename QVector::iterator QMutableVectorIterator::iterator;
      typedef typename QVector::const_iterator QMutableVectorIterator::const_iterator;
      inline _Bool item_exists ()const volatile restrict ;
   public:
      inline constructor converter void QMutableVectorIterator (QVector &  container);
      inline destructor void ~QMutableVectorIterator ();
      inline QMutableVectorIterator &  operator= (QVector &  container);
      inline void toFront ();
      inline void toBack ();
      inline _Bool hasNext ()const volatile restrict ;
      inline T &  next ();
      inline T &  peekNext ()const volatile restrict ;
      inline _Bool hasPrevious ()const volatile restrict ;
      inline T &  previous ();
      inline T &  peekPrevious ()const volatile restrict ;
      inline void remove ();
      inline void setValue (const const T &  t)const volatile restrict ;
      inline T &  value ();
      inline const const T &  value ()const volatile restrict ;
      inline void insert (const const T &  t);
      inline _Bool findNext (const const T &  t);
      inline _Bool findPrevious (const const T &  t);
   }; // end of QMutableVectorIterator
typedef enum QtValidLicenseForGuiModule QtGuiModule;
class QMatrix{
}; // end of QMatrix
class QTransform{
}; // end of QTransform
class QRect{
}; // end of QRect
class QVariant{
}; // end of QVariant
class QPolygon : public:
QVector{
   class QPolygon{
   }; // end of QPolygon
public:
   inline constructor void QPolygon ();
   inline destructor void ~QPolygon ();
   inline constructor converter void QPolygon (int size);
   inline constructor copyconstructor converter void QPolygon (const const class QPolygon &  a);
   inline constructor converter void QPolygon (const const QVector &  v);
   constructor converter void QPolygon (const const class QRect &  r, _Bool closed = false);
   constructor void QPolygon (int nPoints, const const int *  points);
   inline void swap (class QPolygon &  other);
   converter class QVariant operator QVariant ()const volatile restrict ;
   void translate (int dx, int dy);
   void translate (const const class QPoint &  offset);
   class QPolygon translated (int dx, int dy)const volatile restrict ;
   inline class QPolygon translated (const const class QPoint &  offset)const volatile restrict ;
   class QRect boundingRect ()const volatile restrict ;
   void point (int i, int *  x, int *  y)const volatile restrict ;
   class QPoint point (int i)const volatile restrict ;
   void setPoint (int index, int x, int y);
   void setPoint (int index, const const class QPoint &  p);
   void setPoints (int nPoints, const const int *  points);
   void setPoints (int nPoints, int firstx, int firsty, ... );
   void putPoints (int index, int nPoints, const const int *  points);
   void putPoints (int index, int nPoints, int firstx, int firsty, ... );
   void putPoints (int index, int nPoints, const const class QPolygon &  from, int fromIndex = 0);
   _Bool containsPoint (const const class QPoint &  pt, Qt::FillRule fillRule)const volatile restrict ;
   class QPolygon united (const const class QPolygon &  r)const volatile restrict ;
   class QPolygon intersected (const const class QPolygon &  r)const volatile restrict ;
   class QPolygon subtracted (const const class QPolygon &  r)const volatile restrict ;
}; // end of QPolygon
inline constructor converter void QPolygon (int asize);
class QDebug operator<< (class QDebug , const const class QPolygon &  );
class QDataStream &  operator<< (class QDataStream &  stream, const const class QPolygon &  polygon);
class QDataStream &  operator>> (class QDataStream &  stream, class QPolygon &  polygon);
inline void setPoint (int index, const const class QPoint &  pt);
inline void setPoint (int index, int x, int y);
inline class QPoint point (int index)const volatile restrict ;
inline void translate (const const class QPoint &  offset);
inline class QPolygon translated (const const class QPoint &  offset)const volatile restrict ;
class QRectF{
}; // end of QRectF
class QPolygonF : public:
QVector{
   class QPolygonF{
   }; // end of QPolygonF
public:
   inline constructor void QPolygonF ();
   inline destructor void ~QPolygonF ();
   inline constructor converter void QPolygonF (int size);
   inline constructor copyconstructor converter void QPolygonF (const const class QPolygonF &  a);
   inline constructor converter void QPolygonF (const const QVector &  v);
   constructor converter void QPolygonF (const const class QRectF &  r);
   constructor converter void QPolygonF (const const class QPolygon &  a);
   inline void swap (class QPolygonF &  other);
   inline void translate (qreal dx, qreal dy);
   void translate (const const class QPointF &  offset);
   inline class QPolygonF translated (qreal dx, qreal dy)const volatile restrict ;
   class QPolygonF translated (const const class QPointF &  offset)const volatile restrict ;
   class QPolygon toPolygon ()const volatile restrict ;
   _Bool isClosed ()const volatile restrict ;
   class QRectF boundingRect ()const volatile restrict ;
   _Bool containsPoint (const const class QPointF &  pt, Qt::FillRule fillRule)const volatile restrict ;
   class QPolygonF united (const const class QPolygonF &  r)const volatile restrict ;
   class QPolygonF intersected (const const class QPolygonF &  r)const volatile restrict ;
   class QPolygonF subtracted (const const class QPolygonF &  r)const volatile restrict ;
}; // end of QPolygonF
inline constructor converter void QPolygonF (int asize);
class QDebug operator<< (class QDebug , const const class QPolygonF &  );
class QDataStream &  operator<< (class QDataStream &  stream, const const class QPolygonF &  array);
class QDataStream &  operator>> (class QDataStream &  stream, class QPolygonF &  array);
inline void translate (qreal dx, qreal dy);
inline class QPolygonF translated (qreal dx, qreal dy)const volatile restrict ;
typedef enum QtValidLicenseForGuiModule QtGuiModule;
template < class T >
   class QVector{
   }; // end of QVector
class QVariant{
}; // end of QVariant
struct QRegionPrivate{
}; // end of QRegionPrivate
class QBitmap{
}; // end of QBitmap
class QRegion{
   class QRegion{
   }; // end of QRegion
public:
   enum RegionType
   {
      Rectangle,
      Ellipse
   }; // end of RegionType
   constructor void QRegion ();
   constructor void QRegion (int x, int y, int w, int h, enum QRegion::RegionType t = Rectangle);
   constructor converter void QRegion (const const class QRect &  r, enum QRegion::RegionType t = Rectangle);
   constructor converter void QRegion (const const class QPolygon &  pa, Qt::FillRule fillRule = Qt::OddEvenFill);
   constructor copyconstructor converter void QRegion (const const class QRegion &  region);
   constructor converter void QRegion (const const class QBitmap &  bitmap);
   destructor void ~QRegion ();
   class QRegion &  operator= (const const class QRegion &  );
   inline void swap (class QRegion &  other);
   _Bool isEmpty ()const volatile restrict ;
   _Bool contains (const const class QPoint &  p)const volatile restrict ;
   _Bool contains (const const class QRect &  r)const volatile restrict ;
   void translate (int dx, int dy);
   inline void translate (const const class QPoint &  p);
   class QRegion translated (int dx, int dy)const volatile restrict ;
   inline class QRegion translated (const const class QPoint &  p)const volatile restrict ;
   class QRegion unite (const const class QRegion &  r)const volatile restrict ;
   class QRegion unite (const const class QRect &  r)const volatile restrict ;
   class QRegion intersect (const const class QRegion &  r)const volatile restrict ;
   class QRegion intersect (const const class QRect &  r)const volatile restrict ;
   class QRegion subtract (const const class QRegion &  r)const volatile restrict ;
   class QRegion eor (const const class QRegion &  r)const volatile restrict ;
   inline class QRegion united (const const class QRegion &  r)const volatile restrict ;
   inline class QRegion united (const const class QRect &  r)const volatile restrict ;
   inline class QRegion intersected (const const class QRegion &  r)const volatile restrict ;
   inline class QRegion intersected (const const class QRect &  r)const volatile restrict ;
   inline class QRegion subtracted (const const class QRegion &  r)const volatile restrict ;
   inline class QRegion xored (const const class QRegion &  r)const volatile restrict ;
   _Bool intersects (const const class QRegion &  r)const volatile restrict ;
   _Bool intersects (const const class QRect &  r)const volatile restrict ;
   class QRect boundingRect ()const volatile restrict ;
   QVector rects ()const volatile restrict ;
   void setRects (const const class QRect *  rect, int num);
   int numRects ()const volatile restrict ;
   int rectCount ()const volatile restrict ;
   const const class QRegion operator| (const const class QRegion &  r)const volatile restrict ;
   const const class QRegion operator+ (const const class QRegion &  r)const volatile restrict ;
   const const class QRegion operator+ (const const class QRect &  r)const volatile restrict ;
   const const class QRegion operator& (const const class QRegion &  r)const volatile restrict ;
   const const class QRegion operator& (const const class QRect &  r)const volatile restrict ;
   const const class QRegion operator- (const const class QRegion &  r)const volatile restrict ;
   const const class QRegion operator^ (const const class QRegion &  r)const volatile restrict ;
   class QRegion &  operator|= (const const class QRegion &  r);
   class QRegion &  operator+= (const const class QRegion &  r);
   class QRegion &  operator+= (const const class QRect &  r);
   class QRegion &  operator&= (const const class QRegion &  r);
   class QRegion &  operator&= (const const class QRect &  r);
   class QRegion &  operator-= (const const class QRegion &  r);
   class QRegion &  operator^= (const const class QRegion &  r);
   _Bool operator== (const const class QRegion &  r)const volatile restrict ;
   inline _Bool operator!= (const const class QRegion &  r)const volatile restrict ;
   converter class QVariant operator QVariant ()const volatile restrict ;
   inline Region handle ()const volatile restrict ;
   friend operator<<;
   friend operator>>;
private:
   class QRegion copy ()const volatile restrict ;
   void detach ();
   void updateX11Region ()const volatile restrict ;
   void *  clipRectangles (int &  num)const volatile restrict ;
   friend qt_getClipRects;
   friend qt_region_strictContains;
   void exec (const const class QByteArray &  ba, int ver = 0, class QDataStream::ByteOrder byteOrder = class QDataStream::BigEndian);
   struct QRegionData{
      struct QRegionData{
      }; // end of QRegionData
   }; // end of QRegionData
   /* variable */ static struct QRegionData shared_empty;
   static static void cleanUp (struct QRegion::QRegionData *  x);
}; // end of QRegion
class QDataStream &  operator<< (class QDataStream &  , const const class QRegion &  );
class QDataStream &  operator>> (class QDataStream &  , class QRegion &  );
class QDebug operator<< (class QDebug , const const class QRegion &  );
typedef enum QtValidLicenseForCoreModule QtCoreModule;
class QLine{
   class QLine{
   }; // end of QLine
public:
   inline constructor void QLine ();
   inline constructor void QLine (const const class QPoint &  pt1, const const class QPoint &  pt2);
   inline constructor void QLine (int x1, int y1, int x2, int y2);
   inline _Bool isNull ()const volatile restrict ;
   inline class QPoint p1 ()const volatile restrict ;
   inline class QPoint p2 ()const volatile restrict ;
   inline int x1 ()const volatile restrict ;
   inline int y1 ()const volatile restrict ;
   inline int x2 ()const volatile restrict ;
   inline int y2 ()const volatile restrict ;
   inline int dx ()const volatile restrict ;
   inline int dy ()const volatile restrict ;
   inline void translate (const const class QPoint &  p);
   inline void translate (int dx, int dy);
   inline class QLine translated (const const class QPoint &  p)const volatile restrict ;
   inline class QLine translated (int dx, int dy)const volatile restrict ;
   inline void setP1 (const const class QPoint &  p1);
   inline void setP2 (const const class QPoint &  p2);
   inline void setPoints (const const class QPoint &  p1, const const class QPoint &  p2);
   inline void setLine (int x1, int y1, int x2, int y2);
   inline _Bool operator== (const const class QLine &  d)const volatile restrict ;
   inline _Bool operator!= (const const class QLine &  d)const volatile restrict ;
private:
   inline constructor copyconstructor converter void QLine (const const class QLine &  ) throw ();
   inline destructor void ~QLine () throw ();
}; // end of QLine
inline constructor void QLine ();
inline constructor void QLine (const const class QPoint &  pt1_, const const class QPoint &  pt2_);
inline constructor void QLine (int x1pos, int y1pos, int x2pos, int y2pos);
inline _Bool isNull ()const volatile restrict ;
inline int x1 ()const volatile restrict ;
inline int y1 ()const volatile restrict ;
inline int x2 ()const volatile restrict ;
inline int y2 ()const volatile restrict ;
inline class QPoint p1 ()const volatile restrict ;
inline class QPoint p2 ()const volatile restrict ;
inline int dx ()const volatile restrict ;
inline int dy ()const volatile restrict ;
inline void translate (const const class QPoint &  point);
inline void translate (int adx, int ady);
inline class QLine translated (const const class QPoint &  p)const volatile restrict ;
inline class QLine translated (int adx, int ady)const volatile restrict ;
inline void setP1 (const const class QPoint &  aP1);
inline void setP2 (const const class QPoint &  aP2);
inline void setPoints (const const class QPoint &  aP1, const const class QPoint &  aP2);
inline void setLine (int aX1, int aY1, int aX2, int aY2);
inline _Bool operator== (const const class QLine &  d)const volatile restrict ;
class QDebug operator<< (class QDebug d, const const class QLine &  p);
class QDataStream &  operator<< (class QDataStream &  , const const class QLine &  );
class QDataStream &  operator>> (class QDataStream &  , class QLine &  );
class QLineF{
   class QLineF{
   }; // end of QLineF
public:
   enum IntersectType
   {
      NoIntersection,
      BoundedIntersection,
      UnboundedIntersection
   }; // end of IntersectType
   inline constructor void QLineF ();
   inline constructor void QLineF (const const class QPointF &  pt1, const const class QPointF &  pt2);
   inline constructor void QLineF (qreal x1, qreal y1, qreal x2, qreal y2);
   inline constructor converter void QLineF (const const class QLine &  line);
   static static class QLineF fromPolar (qreal length, qreal angle);
   _Bool isNull ()const volatile restrict ;
   inline class QPointF p1 ()const volatile restrict ;
   inline class QPointF p2 ()const volatile restrict ;
   inline qreal x1 ()const volatile restrict ;
   inline qreal y1 ()const volatile restrict ;
   inline qreal x2 ()const volatile restrict ;
   inline qreal y2 ()const volatile restrict ;
   inline qreal dx ()const volatile restrict ;
   inline qreal dy ()const volatile restrict ;
   qreal length ()const volatile restrict ;
   void setLength (qreal len);
   qreal angle ()const volatile restrict ;
   void setAngle (qreal angle);
   qreal angleTo (const const class QLineF &  l)const volatile restrict ;
   class QLineF unitVector ()const volatile restrict ;
   class QLineF normalVector ()const volatile restrict ;
   enum QLineF::IntersectType intersect (const const class QLineF &  l, class QPointF *  intersectionPoint)const volatile restrict ;
   qreal angle (const const class QLineF &  l)const volatile restrict ;
   class QPointF pointAt (qreal t)const volatile restrict ;
   inline void translate (const const class QPointF &  p);
   inline void translate (qreal dx, qreal dy);
   inline class QLineF translated (const const class QPointF &  p)const volatile restrict ;
   inline class QLineF translated (qreal dx, qreal dy)const volatile restrict ;
   inline void setP1 (const const class QPointF &  p1);
   inline void setP2 (const const class QPointF &  p2);
   inline void setPoints (const const class QPointF &  p1, const const class QPointF &  p2);
   inline void setLine (qreal x1, qreal y1, qreal x2, qreal y2);
   inline _Bool operator== (const const class QLineF &  d)const volatile restrict ;
   inline _Bool operator!= (const const class QLineF &  d)const volatile restrict ;
   class QLine toLine ()const volatile restrict ;
private:
   inline constructor copyconstructor converter void QLineF (const const class QLineF &  ) throw ();
   inline destructor void ~QLineF () throw ();
}; // end of QLineF
inline constructor void QLineF ();
inline constructor void QLineF (const const class QPointF &  apt1, const const class QPointF &  apt2);
inline constructor void QLineF (qreal x1pos, qreal y1pos, qreal x2pos, qreal y2pos);
inline qreal x1 ()const volatile restrict ;
inline qreal y1 ()const volatile restrict ;
inline qreal x2 ()const volatile restrict ;
inline qreal y2 ()const volatile restrict ;
inline class QPointF p1 ()const volatile restrict ;
inline class QPointF p2 ()const volatile restrict ;
inline qreal dx ()const volatile restrict ;
inline qreal dy ()const volatile restrict ;
inline class QLineF normalVector ()const volatile restrict ;
inline void translate (const const class QPointF &  point);
inline void translate (qreal adx, qreal ady);
inline class QLineF translated (const const class QPointF &  p)const volatile restrict ;
inline class QLineF translated (qreal adx, qreal ady)const volatile restrict ;
inline void setLength (qreal len);
inline class QPointF pointAt (qreal t)const volatile restrict ;
inline class QLine toLine ()const volatile restrict ;
inline void setP1 (const const class QPointF &  aP1);
inline void setP2 (const const class QPointF &  aP2);
inline void setPoints (const const class QPointF &  aP1, const const class QPointF &  aP2);
inline void setLine (qreal aX1, qreal aY1, qreal aX2, qreal aY2);
inline _Bool operator== (const const class QLineF &  d)const volatile restrict ;
class QDebug operator<< (class QDebug d, const const class QLineF &  p);
class QDataStream &  operator<< (class QDataStream &  , const const class QLineF &  );
class QDataStream &  operator>> (class QDataStream &  , class QLineF &  );
typedef enum QtValidLicenseForGuiModule QtGuiModule;
class QPainterPath{
}; // end of QPainterPath
class QVariant{
}; // end of QVariant
class QMatrix{
   class QMatrix{
   }; // end of QMatrix
public:
   inline constructor explicit void QMatrix (Qt::Initialization );
   constructor void QMatrix ();
   constructor void QMatrix (qreal m11, qreal m12, qreal m21, qreal m22, qreal dx, qreal dy);
   constructor copyconstructor converter void QMatrix (const const class QMatrix &  matrix);
   void setMatrix (qreal m11, qreal m12, qreal m21, qreal m22, qreal dx, qreal dy);
   qreal m11 ()const volatile restrict ;
   qreal m12 ()const volatile restrict ;
   qreal m21 ()const volatile restrict ;
   qreal m22 ()const volatile restrict ;
   qreal dx ()const volatile restrict ;
   qreal dy ()const volatile restrict ;
   void map (int x, int y, int *  tx, int *  ty)const volatile restrict ;
   void map (qreal x, qreal y, qreal *  tx, qreal *  ty)const volatile restrict ;
   class QRect mapRect (const const class QRect &  )const volatile restrict ;
   class QRectF mapRect (const const class QRectF &  )const volatile restrict ;
   class QPoint map (const const class QPoint &  p)const volatile restrict ;
   class QPointF map (const const class QPointF &  p)const volatile restrict ;
   class QLine map (const const class QLine &  l)const volatile restrict ;
   class QLineF map (const const class QLineF &  l)const volatile restrict ;
   class QPolygonF map (const const class QPolygonF &  a)const volatile restrict ;
   class QPolygon map (const const class QPolygon &  a)const volatile restrict ;
   class QRegion map (const const class QRegion &  r)const volatile restrict ;
   class QPainterPath map (const const class QPainterPath &  p)const volatile restrict ;
   class QPolygon mapToPolygon (const const class QRect &  r)const volatile restrict ;
   void reset ();
   inline _Bool isIdentity ()const volatile restrict ;
   class QMatrix &  translate (qreal dx, qreal dy);
   class QMatrix &  scale (qreal sx, qreal sy);
   class QMatrix &  shear (qreal sh, qreal sv);
   class QMatrix &  rotate (qreal a);
   _Bool isInvertible ()const volatile restrict ;
   qreal determinant ()const volatile restrict ;
   qreal det ()const volatile restrict ;
   class QMatrix inverted (_Bool *  invertible = 0)const volatile restrict ;
   _Bool operator== (const const class QMatrix &  )const volatile restrict ;
   _Bool operator!= (const const class QMatrix &  )const volatile restrict ;
   class QMatrix &  operator*= (const const class QMatrix &  );
   class QMatrix operator* (const const class QMatrix &  o)const volatile restrict ;
   class QMatrix &  operator= (const const class QMatrix &  );
   converter class QVariant operator QVariant ()const volatile restrict ;
private:
   inline constructor converter void QMatrix (_Bool );
   inline constructor void QMatrix (qreal am11, qreal am12, qreal am21, qreal am22, qreal adx, qreal ady, _Bool );
   inline destructor void ~QMatrix () throw ();
}; // end of QMatrix
inline class QPoint operator* (const const class QPoint &  p, const const class QMatrix &  m);
inline class QPointF operator* (const const class QPointF &  p, const const class QMatrix &  m);
inline class QLineF operator* (const const class QLineF &  l, const const class QMatrix &  m);
inline class QLine operator* (const const class QLine &  l, const const class QMatrix &  m);
inline class QPolygon operator* (const const class QPolygon &  a, const const class QMatrix &  m);
inline class QPolygonF operator* (const const class QPolygonF &  a, const const class QMatrix &  m);
inline class QRegion operator* (const const class QRegion &  r, const const class QMatrix &  m);
class QPainterPath operator* (const const class QPainterPath &  p, const const class QMatrix &  m);
inline _Bool isIdentity ()const volatile restrict ;
inline _Bool qFuzzyCompare (const const class QMatrix &  m1, const const class QMatrix &  m2);
class QDataStream &  operator<< (class QDataStream &  , const const class QMatrix &  );
class QDataStream &  operator>> (class QDataStream &  , class QMatrix &  );
class QDebug operator<< (class QDebug , const const class QMatrix &  );
typedef enum QtValidLicenseForGuiModule QtGuiModule;
class QFont{
}; // end of QFont
class QPainterPathPrivate{
}; // end of QPainterPathPrivate
struct QPainterPathPrivateDeleter{
}; // end of QPainterPathPrivateDeleter
class QPainterPathData{
}; // end of QPainterPathData
class QPainterPathStrokerPrivate{
}; // end of QPainterPathStrokerPrivate
class QPolygonF : public:
QVector{
}; // end of QPolygonF
class QRegion{
}; // end of QRegion
class QVectorPath{
}; // end of QVectorPath
class QPainterPath{
   class QPainterPath{
   }; // end of QPainterPath
public:
   enum ElementType
   {
      MoveToElement,
      LineToElement,
      CurveToElement,
      CurveToDataElement
   }; // end of ElementType
   class Element{
      class Element{
      }; // end of Element
   public:
      _Bool isMoveTo ()const volatile restrict ;
      _Bool isLineTo ()const volatile restrict ;
      _Bool isCurveTo ()const volatile restrict ;
      converter class QPointF operator QPointF ()const volatile restrict ;
      _Bool operator== (const const class QPainterPath::Element &  e)const volatile restrict ;
      inline _Bool operator!= (const const class QPainterPath::Element &  e)const volatile restrict ;
      inline destructor void ~Element () throw ();
      inline constructor void Element () throw ();
      inline constructor copyconstructor converter void Element (const const class QPainterPath::Element &  ) throw ();
   }; // end of Element
   constructor void QPainterPath ();
   constructor explicit void QPainterPath (const const class QPointF &  startPoint);
   constructor copyconstructor converter void QPainterPath (const const class QPainterPath &  other);
   class QPainterPath &  operator= (const const class QPainterPath &  other);
   destructor void ~QPainterPath ();
   inline void swap (class QPainterPath &  other);
   void closeSubpath ();
   void moveTo (const const class QPointF &  p);
   inline void moveTo (qreal x, qreal y);
   void lineTo (const const class QPointF &  p);
   inline void lineTo (qreal x, qreal y);
   void arcMoveTo (const const class QRectF &  rect, qreal angle);
   inline void arcMoveTo (qreal x, qreal y, qreal w, qreal h, qreal angle);
   void arcTo (const const class QRectF &  rect, qreal startAngle, qreal arcLength);
   inline void arcTo (qreal x, qreal y, qreal w, qreal h, qreal startAngle, qreal arcLength);
   void cubicTo (const const class QPointF &  ctrlPt1, const const class QPointF &  ctrlPt2, const const class QPointF &  endPt);
   inline void cubicTo (qreal ctrlPt1x, qreal ctrlPt1y, qreal ctrlPt2x, qreal ctrlPt2y, qreal endPtx, qreal endPty);
   void quadTo (const const class QPointF &  ctrlPt, const const class QPointF &  endPt);
   inline void quadTo (qreal ctrlPtx, qreal ctrlPty, qreal endPtx, qreal endPty);
   class QPointF currentPosition ()const volatile restrict ;
   void addRect (const const class QRectF &  rect);
   inline void addRect (qreal x, qreal y, qreal w, qreal h);
   void addEllipse (const const class QRectF &  rect);
   inline void addEllipse (qreal x, qreal y, qreal w, qreal h);
   inline void addEllipse (const const class QPointF &  center, qreal rx, qreal ry);
   void addPolygon (const const class QPolygonF &  polygon);
   void addText (const const class QPointF &  point, const const class QFont &  f, const const class QString &  text);
   inline void addText (qreal x, qreal y, const const class QFont &  f, const const class QString &  text);
   void addPath (const const class QPainterPath &  path);
   void addRegion (const const class QRegion &  region);
   void addRoundedRect (const const class QRectF &  rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize);
   inline void addRoundedRect (qreal x, qreal y, qreal w, qreal h, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize);
   void addRoundRect (const const class QRectF &  rect, int xRnd, int yRnd);
   inline void addRoundRect (qreal x, qreal y, qreal w, qreal h, int xRnd, int yRnd);
   inline void addRoundRect (const const class QRectF &  rect, int roundness);
   inline void addRoundRect (qreal x, qreal y, qreal w, qreal h, int roundness);
   void connectPath (const const class QPainterPath &  path);
   _Bool contains (const const class QPointF &  pt)const volatile restrict ;
   _Bool contains (const const class QRectF &  rect)const volatile restrict ;
   _Bool intersects (const const class QRectF &  rect)const volatile restrict ;
   void translate (qreal dx, qreal dy);
   inline void translate (const const class QPointF &  offset);
   class QPainterPath translated (qreal dx, qreal dy)const volatile restrict ;
   inline class QPainterPath translated (const const class QPointF &  offset)const volatile restrict ;
   class QRectF boundingRect ()const volatile restrict ;
   class QRectF controlPointRect ()const volatile restrict ;
   Qt::FillRule fillRule ()const volatile restrict ;
   void setFillRule (Qt::FillRule fillRule);
   inline _Bool isEmpty ()const volatile restrict ;
   class QPainterPath toReversed ()const volatile restrict ;
   QList toSubpathPolygons (const const class QMatrix &  matrix = class QMatrix())const volatile restrict ;
   QList toFillPolygons (const const class QMatrix &  matrix = class QMatrix())const volatile restrict ;
   class QPolygonF toFillPolygon (const const class QMatrix &  matrix = class QMatrix())const volatile restrict ;
   QList toSubpathPolygons (const const class QTransform &  matrix)const volatile restrict ;
   QList toFillPolygons (const const class QTransform &  matrix)const volatile restrict ;
   class QPolygonF toFillPolygon (const const class QTransform &  matrix)const volatile restrict ;
   inline int elementCount ()const volatile restrict ;
   inline const const class QPainterPath::Element &  elementAt (int i)const volatile restrict ;
   inline void setElementPositionAt (int i, qreal x, qreal y);
   qreal length ()const volatile restrict ;
   qreal percentAtLength (qreal t)const volatile restrict ;
   class QPointF pointAtPercent (qreal t)const volatile restrict ;
   qreal angleAtPercent (qreal t)const volatile restrict ;
   qreal slopeAtPercent (qreal t)const volatile restrict ;
   _Bool intersects (const const class QPainterPath &  p)const volatile restrict ;
   _Bool contains (const const class QPainterPath &  p)const volatile restrict ;
   class QPainterPath united (const const class QPainterPath &  r)const volatile restrict ;
   class QPainterPath intersected (const const class QPainterPath &  r)const volatile restrict ;
   class QPainterPath subtracted (const const class QPainterPath &  r)const volatile restrict ;
   class QPainterPath subtractedInverted (const const class QPainterPath &  r)const volatile restrict ;
   class QPainterPath simplified ()const volatile restrict ;
   _Bool operator== (const const class QPainterPath &  other)const volatile restrict ;
   _Bool operator!= (const const class QPainterPath &  other)const volatile restrict ;
   class QPainterPath operator& (const const class QPainterPath &  other)const volatile restrict ;
   class QPainterPath operator| (const const class QPainterPath &  other)const volatile restrict ;
   class QPainterPath operator+ (const const class QPainterPath &  other)const volatile restrict ;
   class QPainterPath operator- (const const class QPainterPath &  other)const volatile restrict ;
   class QPainterPath &  operator&= (const const class QPainterPath &  other);
   class QPainterPath &  operator|= (const const class QPainterPath &  other);
   class QPainterPath &  operator+= (const const class QPainterPath &  other);
   class QPainterPath &  operator-= (const const class QPainterPath &  other);
private:
   inline void ensureData ();
   void ensureData_helper ();
   inline void detach ();
   void detach_helper ();
   void setDirty (_Bool );
   void computeBoundingRect ()const volatile restrict ;
   void computeControlPointRect ()const volatile restrict ;
   class QPainterPathData *  d_func ()const volatile restrict ;
   friend qtVectorPathForPath;
   friend operator<<;
   friend operator>>;
}; // end of QPainterPath
class QPainterPathPrivate{
   class QPainterPathPrivate{
   }; // end of QPainterPathPrivate
public:
   friend operator<<;
   friend operator>>;
private:
   inline destructor void ~QPainterPathPrivate () throw ();
}; // end of QPainterPathPrivate
class QDataStream &  operator<< (class QDataStream &  , const const class QPainterPath &  );
class QDataStream &  operator>> (class QDataStream &  , class QPainterPath &  );
class QPainterPathStroker{
   class QPainterPathStroker{
   }; // end of QPainterPathStroker
   inline class QPainterPathStrokerPrivate *  d_func ();
   inline const const class QPainterPathStrokerPrivate *  d_func ()const volatile restrict ;
public:
   constructor void QPainterPathStroker ();
   destructor void ~QPainterPathStroker ();
   void setWidth (qreal width);
   qreal width ()const volatile restrict ;
   void setCapStyle (Qt::PenCapStyle style);
   Qt::PenCapStyle capStyle ()const volatile restrict ;
   void setJoinStyle (Qt::PenJoinStyle style);
   Qt::PenJoinStyle joinStyle ()const volatile restrict ;
   void setMiterLimit (qreal length);
   qreal miterLimit ()const volatile restrict ;
   void setCurveThreshold (qreal threshold);
   qreal curveThreshold ()const volatile restrict ;
   void setDashPattern (Qt::PenStyle );
   void setDashPattern (const const QVector &  dashPattern);
   QVector dashPattern ()const volatile restrict ;
   void setDashOffset (qreal offset);
   qreal dashOffset ()const volatile restrict ;
   class QPainterPath createStroke (const const class QPainterPath &  path)const volatile restrict ;
private:
   constructor copyconstructor converter void QPainterPathStroker (const const class QPainterPathStroker &  );
   class QPainterPathStroker &  operator= (const const class QPainterPathStroker &  );
}; // end of QPainterPathStroker
inline void moveTo (qreal x, qreal y);
inline void lineTo (qreal x, qreal y);
inline void arcTo (qreal x, qreal y, qreal w, qreal h, qreal startAngle, qreal arcLength);
inline void arcMoveTo (qreal x, qreal y, qreal w, qreal h, qreal angle);
inline void cubicTo (qreal ctrlPt1x, qreal ctrlPt1y, qreal ctrlPt2x, qreal ctrlPt2y, qreal endPtx, qreal endPty);
inline void quadTo (qreal ctrlPtx, qreal ctrlPty, qreal endPtx, qreal endPty);
inline void addEllipse (qreal x, qreal y, qreal w, qreal h);
inline void addEllipse (const const class QPointF &  center, qreal rx, qreal ry);
inline void addRect (qreal x, qreal y, qreal w, qreal h);
inline void addRoundedRect (qreal x, qreal y, qreal w, qreal h, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize);
inline void addRoundRect (qreal x, qreal y, qreal w, qreal h, int xRnd, int yRnd);
inline void addRoundRect (const const class QRectF &  rect, int roundness);
inline void addRoundRect (qreal x, qreal y, qreal w, qreal h, int roundness);
inline void addText (qreal x, qreal y, const const class QFont &  f, const const class QString &  text);
inline void translate (const const class QPointF &  offset);
inline class QPainterPath translated (const const class QPointF &  offset)const volatile restrict ;
inline _Bool isEmpty ()const volatile restrict ;
inline int elementCount ()const volatile restrict ;
inline const const class QPainterPath::Element &  elementAt (int i)const volatile restrict ;
inline void setElementPositionAt (int i, qreal x, qreal y);
inline void detach ();
class QDebug operator<< (class QDebug , const const class QPainterPath &  );
typedef enum QtValidLicenseForGuiModule QtGuiModule;
class QVariant{
}; // end of QVariant
class QTransform{
   class QTransform{
   }; // end of QTransform
public:
   enum TransformationType
   {
      TxNone = 0,
      TxTranslate = 1,
      TxScale = 2,
      TxRotate = 4,
      TxShear = 8,
      TxProject = 16
   }; // end of TransformationType
   inline constructor explicit void QTransform (Qt::Initialization );
   constructor void QTransform ();
   constructor void QTransform (qreal h11, qreal h12, qreal h13, qreal h21, qreal h22, qreal h23, qreal h31, qreal h32, qreal h33 = 1.);
   constructor void QTransform (qreal h11, qreal h12, qreal h21, qreal h22, qreal dx, qreal dy);
   constructor explicit void QTransform (const const class QMatrix &  mtx);
   _Bool isAffine ()const volatile restrict ;
   _Bool isIdentity ()const volatile restrict ;
   _Bool isInvertible ()const volatile restrict ;
   _Bool isScaling ()const volatile restrict ;
   _Bool isRotating ()const volatile restrict ;
   _Bool isTranslating ()const volatile restrict ;
   enum QTransform::TransformationType type ()const volatile restrict ;
   inline qreal determinant ()const volatile restrict ;
   qreal det ()const volatile restrict ;
   qreal m11 ()const volatile restrict ;
   qreal m12 ()const volatile restrict ;
   qreal m13 ()const volatile restrict ;
   qreal m21 ()const volatile restrict ;
   qreal m22 ()const volatile restrict ;
   qreal m23 ()const volatile restrict ;
   qreal m31 ()const volatile restrict ;
   qreal m32 ()const volatile restrict ;
   qreal m33 ()const volatile restrict ;
   qreal dx ()const volatile restrict ;
   qreal dy ()const volatile restrict ;
   void setMatrix (qreal m11, qreal m12, qreal m13, qreal m21, qreal m22, qreal m23, qreal m31, qreal m32, qreal m33);
   class QTransform inverted (_Bool *  invertible = 0)const volatile restrict ;
   class QTransform adjoint ()const volatile restrict ;
   class QTransform transposed ()const volatile restrict ;
   class QTransform &  translate (qreal dx, qreal dy);
   class QTransform &  scale (qreal sx, qreal sy);
   class QTransform &  shear (qreal sh, qreal sv);
   class QTransform &  rotate (qreal a, Qt::Axis axis = Qt::ZAxis);
   class QTransform &  rotateRadians (qreal a, Qt::Axis axis = Qt::ZAxis);
   static static _Bool squareToQuad (const const class QPolygonF &  square, class QTransform &  result);
   static static _Bool quadToSquare (const const class QPolygonF &  quad, class QTransform &  result);
   static static _Bool quadToQuad (const const class QPolygonF &  one, const const class QPolygonF &  two, class QTransform &  result);
   _Bool operator== (const const class QTransform &  )const volatile restrict ;
   _Bool operator!= (const const class QTransform &  )const volatile restrict ;
   class QTransform &  operator*= (const const class QTransform &  );
   class QTransform operator* (const const class QTransform &  o)const volatile restrict ;
   class QTransform &  operator= (const const class QTransform &  );
   converter class QVariant operator QVariant ()const volatile restrict ;
   void reset ();
   class QPoint map (const const class QPoint &  p)const volatile restrict ;
   class QPointF map (const const class QPointF &  p)const volatile restrict ;
   class QLine map (const const class QLine &  l)const volatile restrict ;
   class QLineF map (const const class QLineF &  l)const volatile restrict ;
   class QPolygonF map (const const class QPolygonF &  a)const volatile restrict ;
   class QPolygon map (const const class QPolygon &  a)const volatile restrict ;
   class QRegion map (const const class QRegion &  r)const volatile restrict ;
   class QPainterPath map (const const class QPainterPath &  p)const volatile restrict ;
   class QPolygon mapToPolygon (const const class QRect &  r)const volatile restrict ;
   class QRect mapRect (const const class QRect &  )const volatile restrict ;
   class QRectF mapRect (const const class QRectF &  )const volatile restrict ;
   void map (int x, int y, int *  tx, int *  ty)const volatile restrict ;
   void map (qreal x, qreal y, qreal *  tx, qreal *  ty)const volatile restrict ;
   const const class QMatrix &  toAffine ()const volatile restrict ;
   class QTransform &  operator*= (qreal div);
   class QTransform &  operator/= (qreal div);
   class QTransform &  operator+= (qreal div);
   class QTransform &  operator-= (qreal div);
   static static class QTransform fromTranslate (qreal dx, qreal dy);
   static static class QTransform fromScale (qreal dx, qreal dy);
private:
   inline constructor void QTransform (qreal h11, qreal h12, qreal h13, qreal h21, qreal h22, qreal h23, qreal h31, qreal h32, qreal h33, _Bool );
   inline constructor converter void QTransform (_Bool );
   inline enum QTransform::TransformationType inline_type ()const volatile restrict ;
   class Private{
   }; // end of Private
   inline constructor copyconstructor converter void QTransform (const const class QTransform &  ) throw ();
}; // end of QTransform
inline class QTransform::TransformationType inline_type ()const volatile restrict ;
inline _Bool isAffine ()const volatile restrict ;
inline _Bool isIdentity ()const volatile restrict ;
inline _Bool isInvertible ()const volatile restrict ;
inline _Bool isScaling ()const volatile restrict ;
inline _Bool isRotating ()const volatile restrict ;
inline _Bool isTranslating ()const volatile restrict ;
inline qreal determinant ()const volatile restrict ;
inline qreal det ()const volatile restrict ;
inline qreal m11 ()const volatile restrict ;
inline qreal m12 ()const volatile restrict ;
inline qreal m13 ()const volatile restrict ;
inline qreal m21 ()const volatile restrict ;
inline qreal m22 ()const volatile restrict ;
inline qreal m23 ()const volatile restrict ;
inline qreal m31 ()const volatile restrict ;
inline qreal m32 ()const volatile restrict ;
inline qreal m33 ()const volatile restrict ;
inline qreal dx ()const volatile restrict ;
inline qreal dy ()const volatile restrict ;
inline class QTransform &  operator*= (qreal num);
inline class QTransform &  operator/= (qreal div);
inline class QTransform &  operator+= (qreal num);
inline class QTransform &  operator-= (qreal num);
inline _Bool qFuzzyCompare (const const class QTransform &  t1, const const class QTransform &  t2);
class QDataStream &  operator<< (class QDataStream &  , const const class QTransform &  );
class QDataStream &  operator>> (class QDataStream &  , class QTransform &  );
class QDebug operator<< (class QDebug , const const class QTransform &  );
inline class QPoint operator* (const const class QPoint &  p, const const class QTransform &  m);
inline class QPointF operator* (const const class QPointF &  p, const const class QTransform &  m);
inline class QLineF operator* (const const class QLineF &  l, const const class QTransform &  m);
inline class QLine operator* (const const class QLine &  l, const const class QTransform &  m);
inline class QPolygon operator* (const const class QPolygon &  a, const const class QTransform &  m);
inline class QPolygonF operator* (const const class QPolygonF &  a, const const class QTransform &  m);
inline class QRegion operator* (const const class QRegion &  r, const const class QTransform &  m);
inline class QPainterPath operator* (const const class QPainterPath &  p, const const class QTransform &  m);
inline class QTransform operator* (const const class QTransform &  a, qreal n);
inline class QTransform operator/ (const const class QTransform &  a, qreal n);
inline class QTransform operator+ (const const class QTransform &  a, qreal n);
inline class QTransform operator- (const const class QTransform &  a, qreal n);
typedef enum QtValidLicenseForGuiModule QtGuiModule;
class QIODevice : public:
class QObject{
}; // end of QIODevice
class QStringList : public:
QList{
}; // end of QStringList
class QMatrix{
}; // end of QMatrix
class QTransform{
}; // end of QTransform
class QVariant{
}; // end of QVariant
template < class T >
   class QList{
   }; // end of QList
template < class T >
   class QVector{
   }; // end of QVector
struct QImageData{
}; // end of QImageData
class QImageDataMisc{
}; // end of QImageDataMisc
class QImageTextKeyLang{
   class QImageTextKeyLang{
   }; // end of QImageTextKeyLang
public:
   constructor void QImageTextKeyLang (const const char *  k, const const char *  l);
   constructor void QImageTextKeyLang ();
   _Bool operator< (const const class QImageTextKeyLang &  other)const volatile restrict ;
   _Bool operator== (const const class QImageTextKeyLang &  other)const volatile restrict ;
   inline _Bool operator!= (const const class QImageTextKeyLang &  other)const volatile restrict ;
   inline destructor void ~QImageTextKeyLang () throw ();
}; // end of QImageTextKeyLang
class QImage : public:
class QPaintDevice{
   class QImage{
   }; // end of QImage
public:
   enum InvertMode
   {
      InvertRgb,
      InvertRgba
   }; // end of InvertMode
   enum Format
   {
      Format_Invalid,
      Format_Mono,
      Format_MonoLSB,
      Format_Indexed8,
      Format_RGB32,
      Format_ARGB32,
      Format_ARGB32_Premultiplied,
      Format_RGB16,
      Format_ARGB8565_Premultiplied,
      Format_RGB666,
      Format_ARGB6666_Premultiplied,
      Format_RGB555,
      Format_ARGB8555_Premultiplied,
      Format_RGB888,
      Format_RGB444,
      Format_ARGB4444_Premultiplied,
      NImageFormats
   }; // end of Format
   constructor void QImage ();
   constructor void QImage (const const class QSize &  size, enum QImage::Format format);
   constructor void QImage (int width, int height, enum QImage::Format format);
   constructor void QImage (uchar *  data, int width, int height, enum QImage::Format format);
   constructor void QImage (const const uchar *  data, int width, int height, enum QImage::Format format);
   constructor void QImage (uchar *  data, int width, int height, int bytesPerLine, enum QImage::Format format);
   constructor void QImage (const const uchar *  data, int width, int height, int bytesPerLine, enum QImage::Format format);
   constructor explicit void QImage (const char *const * xpm);
   constructor explicit void QImage (const const class QString &  fileName, const const char *  format = 0);
   constructor explicit void QImage (const const char *  fileName, const const char *  format = 0);
   constructor copyconstructor converter void QImage (const const class QImage &  );
   virtual destructor void ~QImage ();
   class QImage &  operator= (const const class QImage &  );
   inline void swap (class QImage &  other);
   _Bool isNull ()const volatile restrict ;
   virtual int devType ()const volatile restrict ;
   _Bool operator== (const const class QImage &  )const volatile restrict ;
   _Bool operator!= (const const class QImage &  )const volatile restrict ;
   converter class QVariant operator QVariant ()const volatile restrict ;
   void detach ();
   _Bool isDetached ()const volatile restrict ;
   class QImage copy (const const class QRect &  rect = class QRect())const volatile restrict ;
   inline class QImage copy (int x, int y, int w, int h)const volatile restrict ;
   enum QImage::Format format ()const volatile restrict ;
   class QImage convertToFormat (enum QImage::Format f, Qt::ImageConversionFlags flags = Qt::AutoColor)const volatile restrict ;
   class QImage convertToFormat (enum QImage::Format f, const const QVector &  colorTable, Qt::ImageConversionFlags flags = Qt::AutoColor)const volatile restrict ;
   int width ()const volatile restrict ;
   int height ()const volatile restrict ;
   class QSize size ()const volatile restrict ;
   class QRect rect ()const volatile restrict ;
   int depth ()const volatile restrict ;
   int numColors ()const volatile restrict ;
   int colorCount ()const volatile restrict ;
   int bitPlaneCount ()const volatile restrict ;
   QRgb color (int i)const volatile restrict ;
   void setColor (int i, QRgb c);
   void setNumColors (int );
   void setColorCount (int );
   _Bool allGray ()const volatile restrict ;
   _Bool isGrayscale ()const volatile restrict ;
   uchar *  bits ();
   const const uchar *  bits ()const volatile restrict ;
   const const uchar *  constBits ()const volatile restrict ;
   int numBytes ()const volatile restrict ;
   int byteCount ()const volatile restrict ;
   uchar *  scanLine (int );
   const const uchar *  scanLine (int )const volatile restrict ;
   const const uchar *  constScanLine (int )const volatile restrict ;
   int bytesPerLine ()const volatile restrict ;
   _Bool valid (int x, int y)const volatile restrict ;
   _Bool valid (const const class QPoint &  pt)const volatile restrict ;
   int pixelIndex (int x, int y)const volatile restrict ;
   int pixelIndex (const const class QPoint &  pt)const volatile restrict ;
   QRgb pixel (int x, int y)const volatile restrict ;
   QRgb pixel (const const class QPoint &  pt)const volatile restrict ;
   void setPixel (int x, int y, uint index_or_rgb);
   void setPixel (const const class QPoint &  pt, uint index_or_rgb);
   QVector colorTable ()const volatile restrict ;
   void setColorTable (const const QVector colors);
   void fill (uint pixel);
   void fill (const const class QColor &  color);
   void fill (Qt::GlobalColor color);
   _Bool hasAlphaChannel ()const volatile restrict ;
   void setAlphaChannel (const const class QImage &  alphaChannel);
   class QImage alphaChannel ()const volatile restrict ;
   class QImage createAlphaMask (Qt::ImageConversionFlags flags = Qt::AutoColor)const volatile restrict ;
   class QImage createHeuristicMask (_Bool clipTight = true)const volatile restrict ;
   class QImage createMaskFromColor (QRgb color, Qt::MaskMode mode = Qt::MaskInColor)const volatile restrict ;
   inline class QImage scaled (int w, int h, Qt::AspectRatioMode aspectMode = Qt::IgnoreAspectRatio, Qt::TransformationMode mode = Qt::FastTransformation)const volatile restrict ;
   class QImage scaled (const const class QSize &  s, Qt::AspectRatioMode aspectMode = Qt::IgnoreAspectRatio, Qt::TransformationMode mode = Qt::FastTransformation)const volatile restrict ;
   class QImage scaledToWidth (int w, Qt::TransformationMode mode = Qt::FastTransformation)const volatile restrict ;
   class QImage scaledToHeight (int h, Qt::TransformationMode mode = Qt::FastTransformation)const volatile restrict ;
   class QImage transformed (const const class QMatrix &  matrix, Qt::TransformationMode mode = Qt::FastTransformation)const volatile restrict ;
   static static class QMatrix trueMatrix (const const class QMatrix &  , int w, int h);
   class QImage transformed (const const class QTransform &  matrix, Qt::TransformationMode mode = Qt::FastTransformation)const volatile restrict ;
   static static class QTransform trueMatrix (const const class QTransform &  , int w, int h);
   class QImage mirrored (_Bool horizontally = false, _Bool vertically = true)const volatile restrict ;
   class QImage rgbSwapped ()const volatile restrict ;
   void invertPixels (enum QImage::InvertMode  = InvertRgb);
   _Bool load (class QIODevice *  device, const const char *  format);
   _Bool load (const const class QString &  fileName, const const char *  format = 0);
   _Bool loadFromData (const const uchar *  buf, int len, const const char *  format = 0);
   inline _Bool loadFromData (const const class QByteArray &  data, const const char *  aformat = 0);
   _Bool save (const const class QString &  fileName, const const char *  format = 0, int quality = -1)const volatile restrict ;
   _Bool save (class QIODevice *  device, const const char *  format = 0, int quality = -1)const volatile restrict ;
   static static class QImage fromData (const const uchar *  data, int size, const const char *  format = 0);
   static inline static class QImage fromData (const const class QByteArray &  data, const const char *  format = 0);
   int serialNumber ()const volatile restrict ;
   qint64 cacheKey ()const volatile restrict ;
   virtual class QPaintEngine *  paintEngine ()const volatile restrict ;
   int dotsPerMeterX ()const volatile restrict ;
   int dotsPerMeterY ()const volatile restrict ;
   void setDotsPerMeterX (int );
   void setDotsPerMeterY (int );
   class QPoint offset ()const volatile restrict ;
   void setOffset (const const class QPoint &  );
   class QStringList textKeys ()const volatile restrict ;
   class QString text (const const class QString &  key = class QString())const volatile restrict ;
   void setText (const const class QString &  key, const const class QString &  value);
   class QString text (const const char *  key, const const char *  lang = 0)const volatile restrict ;
   QList textList ()const volatile restrict ;
   class QStringList textLanguages ()const volatile restrict ;
   class QString text (const const class QImageTextKeyLang &  )const volatile restrict ;
   void setText (const const char *  key, const const char *  lang, const const class QString &  );
protected:
   virtual int metric (enum QPaintDevice::PaintDeviceMetric metric)const volatile restrict ;
private:
   friend qt_image_id;
   friend qt_image_colortable;
public:
   typedef struct QImageData *  QImage::DataPtr;
   inline DataPtr &  data_ptr ();
}; // end of QImage
inline _Bool qIsDetached (class QImage &  t);
inline void qSwap (class QImage &  value1, class QImage &  value2);
namespace std
{
   inline void swap (::QImage &  value1, ::QImage &  value2);
} // end of std
inline _Bool valid (const const class QPoint &  pt)const volatile restrict ;
inline int pixelIndex (const const class QPoint &  pt)const volatile restrict ;
inline QRgb pixel (const const class QPoint &  pt)const volatile restrict ;
inline void setPixel (const const class QPoint &  pt, uint index_or_rgb);
class QDataStream &  operator<< (class QDataStream &  , const const class QImage &  );
class QDataStream &  operator>> (class QDataStream &  , class QImage &  );
typedef enum QtValidLicenseForCoreModule QtCoreModule;
template < class T >
   class QSharedDataPointer{
   }; // end of QSharedDataPointer
class QSharedData{
   class QSharedData{
   }; // end of QSharedData
public:
   inline constructor void QSharedData ();
   inline constructor copyconstructor converter void QSharedData (const const class QSharedData &  );
private:
   class QSharedData &  operator= (const const class QSharedData &  );
}; // end of QSharedData
template < class T >
   class QSharedDataPointer{
      class QSharedDataPointer{
      }; // end of QSharedDataPointer
   public:
      typedef T QSharedDataPointer::Type;
      typedef T *  QSharedDataPointer::pointer;
      inline void detach ();
      inline T &  operator* ();
      inline const const T &  operator* ()const volatile restrict ;
      inline T *  operator-> ();
      inline const const T *  operator-> ()const volatile restrict ;
      inline converter T *  operator type-parameter-0-0 * ();
      inline converter const const T *  operator const type-parameter-0-0 * ()const volatile restrict ;
      inline T *  data ();
      inline const const T *  data ()const volatile restrict ;
      inline const const T *  constData ()const volatile restrict ;
      inline _Bool operator== (const const QSharedDataPointer &  other)const volatile restrict ;
      inline _Bool operator!= (const const QSharedDataPointer &  other)const volatile restrict ;
      inline constructor void QSharedDataPointer ();
      inline destructor void ~QSharedDataPointer ();
      constructor explicit void QSharedDataPointer (T *  data);
      inline constructor copyconstructor converter void QSharedDataPointer (const const QSharedDataPointer &  o);
      inline QSharedDataPointer &  operator= (const const QSharedDataPointer &  o);
      inline QSharedDataPointer &  operator= (T *  o);
      inline _Bool operator! ()const volatile restrict ;
      inline void swap (QSharedDataPointer &  other);
   protected:
      T *  clone ();
   private:
      void detach_helper ();
   }; // end of QSharedDataPointer
template < class T >
   class QExplicitlySharedDataPointer{
      class QExplicitlySharedDataPointer{
      }; // end of QExplicitlySharedDataPointer
   public:
      typedef T QExplicitlySharedDataPointer::Type;
      typedef T *  QExplicitlySharedDataPointer::pointer;
      inline T &  operator* ()const volatile restrict ;
      inline T *  operator-> ();
      inline T *  operator-> ()const volatile restrict ;
      inline T *  data ()const volatile restrict ;
      inline const const T *  constData ()const volatile restrict ;
      inline void detach ();
      inline void reset ();
      inline converter _Bool operator bool ()const volatile restrict ;
      inline _Bool operator== (const const QExplicitlySharedDataPointer &  other)const volatile restrict ;
      inline _Bool operator!= (const const QExplicitlySharedDataPointer &  other)const volatile restrict ;
      inline _Bool operator== (const const T *  ptr)const volatile restrict ;
      inline _Bool operator!= (const const T *  ptr)const volatile restrict ;
      inline constructor void QExplicitlySharedDataPointer ();
      inline destructor void ~QExplicitlySharedDataPointer ();
      constructor explicit void QExplicitlySharedDataPointer (T *  data);
      inline constructor copyconstructor converter void QExplicitlySharedDataPointer (const const QExplicitlySharedDataPointer &  o);
      template < class X >
         inline constructor converter void QExplicitlySharedDataPointer (const const QExplicitlySharedDataPointer &  o);
      inline QExplicitlySharedDataPointer &  operator= (const const QExplicitlySharedDataPointer &  o);
      inline QExplicitlySharedDataPointer &  operator= (T *  o);
      inline _Bool operator! ()const volatile restrict ;
      inline void swap (QExplicitlySharedDataPointer &  other);
   protected:
      T *  clone ();
   private:
      void detach_helper ();
   }; // end of QExplicitlySharedDataPointer
inline constructor explicit void QSharedDataPointer (T *  adata);
inline T *  clone ();
void detach_helper ();
inline T *  clone ();
void detach_helper ();
inline constructor explicit void QExplicitlySharedDataPointer (T *  adata);
template < class T >
   inline void qSwap (QSharedDataPointer &  p1, QSharedDataPointer &  p2);
template < class T >
   inline void qSwap (QExplicitlySharedDataPointer &  p1, QExplicitlySharedDataPointer &  p2);
namespace std
{
   template < class T >
      inline void swap (::QSharedDataPointer &  p1, ::QSharedDataPointer &  p2);
   template < class T >
      inline void swap (::QExplicitlySharedDataPointer &  p1, ::QExplicitlySharedDataPointer &  p2);
} // end of std
typedef enum QtValidLicenseForCoreModule QtCoreModule;
template < typename T >
   inline void qt_sharedpointer_cast_check (T *  );
template < class T >
   class QWeakPointer{
   }; // end of QWeakPointer
template < class T >
   class QSharedPointer : public:
   QtSharedPointer::ExternalRefCount{
   }; // end of QSharedPointer
template < class X, class T >
   QSharedPointer qSharedPointerCast (const const QSharedPointer &  ptr);
template < class X, class T >
   QSharedPointer qSharedPointerDynamicCast (const const QSharedPointer &  ptr);
template < class X, class T >
   QSharedPointer qSharedPointerConstCast (const const QSharedPointer &  ptr);
template < class X, class T >
   QSharedPointer qSharedPointerObjectCast (const const QSharedPointer &  ptr);
namespace QtSharedPointer
{
   template < class T >
      class InternalRefCount{
      }; // end of InternalRefCount
   template < class T >
      class ExternalRefCount : public:
      Basic{
      }; // end of ExternalRefCount
   template < class X, class Y >
      QSharedPointer copyAndSetPointer (X *  ptr, const const QSharedPointer &  src);
   void internalSafetyCheckAdd2 (const const void *  , const volatile const volatile void *  );
   void internalSafetyCheckRemove2 (const const void *  );
   template < class T, typename Klass, typename RetVal >
      inline void executeDeleter (T *  t, ::*RetVal (void) memberDeleter);
   template < class T, typename Deleter >
      inline void executeDeleter (T *  t, Deleter d);
   template < class T >
      inline void normalDeleter (T *  t);
   template < class T >
      struct RemovePointer{
      }; // end of RemovePointer
   template < class T >
      class Basic{
         class Basic{
         }; // end of Basic
         typedef ::*T *  QtSharedPointer::Basic::RestrictedBool;
      public:
         typedef T QtSharedPointer::Basic::Type;
         typedef T QtSharedPointer::Basic::element_type;
         typedef T QtSharedPointer::Basic::value_type;
         typedef value_type *  QtSharedPointer::Basic::pointer;
         typedef const const value_type *  QtSharedPointer::Basic::const_pointer;
         typedef value_type &  QtSharedPointer::Basic::reference;
         typedef const const value_type &  QtSharedPointer::Basic::const_reference;
         typedef qptrdiff QtSharedPointer::Basic::difference_type;
         inline T *  data ()const volatile restrict ;
         inline _Bool isNull ()const volatile restrict ;
         inline converter RestrictedBool operator type-parameter-0-0 *Basic::* ()const volatile restrict ;
         inline _Bool operator! ()const volatile restrict ;
         inline T &  operator* ()const volatile restrict ;
         inline T *  operator-> ()const volatile restrict ;
      protected:
         inline constructor converter void Basic (T *  ptr = 0);
         inline constructor converter void Basic (Qt::Initialization );
         inline void internalConstruct (T *  ptr);
         friend QWeakPointer;
      }; // end of Basic
   struct ExternalRefCountData{
      struct ExternalRefCountData{
      }; // end of ExternalRefCountData
      inline constructor void ExternalRefCountData ();
      inline constructor converter void ExternalRefCountData (Qt::Initialization );
      inline virtual destructor void ~ExternalRefCountData ();
      inline virtual _Bool destroy ();
      static static struct QtSharedPointer::ExternalRefCountData *  getAndRef (const const class QObject *  );
      void setQObjectShared (const const class QObject *  , _Bool enable);
      inline void setQObjectShared (... );
      inline struct QtSharedPointer::ExternalRefCountData &  operator= (const const struct QtSharedPointer::ExternalRefCountData &  ) throw ();
      inline constructor copyconstructor converter void ExternalRefCountData (const const struct QtSharedPointer::ExternalRefCountData &  ) throw ();
   }; // end of ExternalRefCountData
   struct ExternalRefCountWithDestroyFn : public:
   struct QtSharedPointer::ExternalRefCountData{
      struct ExternalRefCountWithDestroyFn{
      }; // end of ExternalRefCountWithDestroyFn
      typedef void (struct QtSharedPointer::ExternalRefCountData *) *  QtSharedPointer::ExternalRefCountWithDestroyFn::DestroyerFn;
      inline constructor converter void ExternalRefCountWithDestroyFn (DestroyerFn d);
      inline virtual _Bool destroy ();
      inline static void operator delete (void *  ptr);
      inline static void operator delete (void *  , void *  );
      inline struct QtSharedPointer::ExternalRefCountWithDestroyFn &  operator= (const const struct QtSharedPointer::ExternalRefCountWithDestroyFn &  ) throw ();
      inline virtual destructor void ~ExternalRefCountWithDestroyFn () throw ();
      inline constructor copyconstructor converter void ExternalRefCountWithDestroyFn (const const struct QtSharedPointer::ExternalRefCountWithDestroyFn &  ) throw ();
   }; // end of ExternalRefCountWithDestroyFn
   template < class T, typename Deleter >
      struct ExternalRefCountWithCustomDeleter : public:
      struct QtSharedPointer::ExternalRefCountWithDestroyFn{
         struct ExternalRefCountWithCustomDeleter{
         }; // end of ExternalRefCountWithCustomDeleter
         typedef ExternalRefCountWithCustomDeleter QtSharedPointer::ExternalRefCountWithCustomDeleter::Self;
         typedef struct QtSharedPointer::ExternalRefCountWithDestroyFn QtSharedPointer::ExternalRefCountWithCustomDeleter::BaseClass;
         struct CustomDeleter{
            struct CustomDeleter{
            }; // end of CustomDeleter
            inline constructor void CustomDeleter (T *  p, Deleter d);
         }; // end of CustomDeleter
         static inline static void deleter (struct QtSharedPointer::ExternalRefCountData *  self);
         static static void safetyCheckDeleter (struct QtSharedPointer::ExternalRefCountData *  self);
         static inline static Self *  create (T *  ptr, Deleter userDeleter);
      private:
         constructor void ExternalRefCountWithCustomDeleter ();
         virtual destructor void ~ExternalRefCountWithCustomDeleter ();
      }; // end of ExternalRefCountWithCustomDeleter
   template < class T >
      struct ExternalRefCountWithContiguousData : public:
      struct QtSharedPointer::ExternalRefCountWithDestroyFn{
         struct ExternalRefCountWithContiguousData{
         }; // end of ExternalRefCountWithContiguousData
         typedef struct QtSharedPointer::ExternalRefCountWithDestroyFn QtSharedPointer::ExternalRefCountWithContiguousData::Parent;
         static static void deleter (struct QtSharedPointer::ExternalRefCountData *  self);
         static static void safetyCheckDeleter (struct QtSharedPointer::ExternalRefCountData *  self);
         static inline static struct QtSharedPointer::ExternalRefCountData *  create (T *  *  ptr);
      private:
         constructor void ExternalRefCountWithContiguousData ();
         virtual destructor void ~ExternalRefCountWithContiguousData ();
      }; // end of ExternalRefCountWithContiguousData
   template < class T >
      class ExternalRefCount : public:
      Basic{
         class ExternalRefCount{
         }; // end of ExternalRefCount
      protected:
         typedef struct QtSharedPointer::ExternalRefCountData QtSharedPointer::ExternalRefCount::Data;
         inline void deref ();
         static inline static void deref (Data *  d, T *  value);
         inline void internalConstruct (T *  ptr);
         template < typename Deleter >
            inline void internalConstruct (T *  ptr, Deleter deleter);
         inline void internalCreate ();
         inline void internalFinishConstruction (T *  ptr);
         inline constructor void ExternalRefCount ();
         inline constructor converter void ExternalRefCount (Qt::Initialization i);
         inline constructor converter void ExternalRefCount (T *  ptr);
         template < typename Deleter >
            inline constructor void ExternalRefCount (T *  ptr, Deleter deleter);
         inline constructor copyconstructor converter void ExternalRefCount (const const ExternalRefCount &  other);
         template < class X >
            inline constructor converter void ExternalRefCount (const const ExternalRefCount &  other);
         inline destructor void ~ExternalRefCount ();
         template < class X >
            inline void internalCopy (const const ExternalRefCount &  other);
         inline void internalSwap (ExternalRefCount &  other);
         friend ExternalRefCount;
         friend QWeakPointer;
         friend copyAndSetPointer;
         inline void ref ()const volatile restrict ;
         inline void internalSet (Data *  o, T *  actual);
      private:
         template < class X >
            constructor converter void ExternalRefCount (const const InternalRefCount &  );
      }; // end of ExternalRefCount
} // end of QtSharedPointer
template < class T >
   class QSharedPointer : public:
   QtSharedPointer::ExternalRefCount{
      class QSharedPointer{
      }; // end of QSharedPointer
      typedef typename QtSharedPointer::ExternalRefCount QSharedPointer::BaseClass;
   public:
      inline constructor void QSharedPointer ();
      inline constructor explicit void QSharedPointer (T *  ptr);
      template < typename Deleter >
         inline constructor void QSharedPointer (T *  ptr, Deleter d);
      inline constructor copyconstructor converter void QSharedPointer (const const QSharedPointer &  other);
      inline QSharedPointer &  operator= (const const QSharedPointer &  other);
      template < class X >
         inline constructor converter void QSharedPointer (const const QSharedPointer &  other);
      template < class X >
         inline QSharedPointer &  operator= (const const QSharedPointer &  other);
      template < class X >
         inline constructor converter void QSharedPointer (const const QWeakPointer &  other);
      template < class X >
         inline QSharedPointer &  operator= (const const QWeakPointer &  other);
      inline void swap (QSharedPointer &  other);
      template < class X >
         QSharedPointer staticCast ()const volatile restrict ;
      template < class X >
         QSharedPointer dynamicCast ()const volatile restrict ;
      template < class X >
         QSharedPointer constCast ()const volatile restrict ;
      template < class X >
         QSharedPointer objectCast ()const volatile restrict ;
      inline void clear ();
      QWeakPointer toWeakRef ()const volatile restrict ;
   protected:
      inline constructor explicit void QSharedPointer (Qt::Initialization i);
   public:
      static inline static QSharedPointer create ();
   }; // end of QSharedPointer
template < class T >
   class QWeakPointer{
      class QWeakPointer{
      }; // end of QWeakPointer
      typedef ::*T *  QWeakPointer::RestrictedBool;
      typedef QtSharedPointer::ExternalRefCountData QWeakPointer::Data;
   public:
      typedef T QWeakPointer::element_type;
      typedef T QWeakPointer::value_type;
      typedef value_type *  QWeakPointer::pointer;
      typedef const const value_type *  QWeakPointer::const_pointer;
      typedef value_type &  QWeakPointer::reference;
      typedef const const value_type &  QWeakPointer::const_reference;
      typedef qptrdiff QWeakPointer::difference_type;
      inline _Bool isNull ()const volatile restrict ;
      inline converter RestrictedBool operator type-parameter-0-0 *QWeakPointer::* ()const volatile restrict ;
      inline _Bool operator! ()const volatile restrict ;
      inline T *  data ()const volatile restrict ;
      inline constructor void QWeakPointer ();
      inline destructor void ~QWeakPointer ();
      template < class X >
         inline constructor converter void QWeakPointer (X *  ptr);
      template < class X >
         inline QWeakPointer &  operator= (X *  ptr);
      inline constructor copyconstructor converter void QWeakPointer (const const QWeakPointer &  o);
      inline QWeakPointer &  operator= (const const QWeakPointer &  o);
      inline constructor converter void QWeakPointer (const const QSharedPointer &  o);
      inline QWeakPointer &  operator= (const const QSharedPointer &  o);
      template < class X >
         inline constructor converter void QWeakPointer (const const QWeakPointer &  o);
      template < class X >
         inline QWeakPointer &  operator= (const const QWeakPointer &  o);
      template < class X >
         inline _Bool operator== (const const QWeakPointer &  o)const volatile restrict ;
      template < class X >
         inline _Bool operator!= (const const QWeakPointer &  o)const volatile restrict ;
      template < class X >
         inline constructor converter void QWeakPointer (const const QSharedPointer &  o);
      template < class X >
         inline QWeakPointer &  operator= (const const QSharedPointer &  o);
      template < class X >
         inline _Bool operator== (const const QSharedPointer &  o)const volatile restrict ;
      template < class X >
         inline _Bool operator!= (const const QSharedPointer &  o)const volatile restrict ;
      inline void clear ();
      inline QSharedPointer toStrongRef ()const volatile restrict ;
   private:
      friend QSharedPointer;
      inline void internalSet (Data *  o, T *  actual);
   }; // end of QWeakPointer
template < class T, class X >
   _Bool operator== (const const QSharedPointer &  ptr1, const const QSharedPointer &  ptr2);
template < class T, class X >
   _Bool operator!= (const const QSharedPointer &  ptr1, const const QSharedPointer &  ptr2);
template < class T, class X >
   _Bool operator== (const const QSharedPointer &  ptr1, const const X *  ptr2);
template < class T, class X >
   _Bool operator== (const const T *  ptr1, const const QSharedPointer &  ptr2);
template < class T, class X >
   _Bool operator!= (const const QSharedPointer &  ptr1, const const X *  ptr2);
template < class T, class X >
   _Bool operator!= (const const T *  ptr1, const const QSharedPointer &  ptr2);
template < class T, class X >
   _Bool operator== (const const QSharedPointer &  ptr1, const const QWeakPointer &  ptr2);
template < class T, class X >
   _Bool operator!= (const const QSharedPointer &  ptr1, const const QWeakPointer &  ptr2);
template < class T, class X >
   inline typename QSharedPointer::difference_type operator- (const const QSharedPointer &  ptr1, const const QSharedPointer &  ptr2);
template < class T, class X >
   inline typename QSharedPointer::difference_type operator- (const const QSharedPointer &  ptr1, X *  ptr2);
template < class T, class X >
   inline typename QSharedPointer::difference_type operator- (T *  ptr1, const const QSharedPointer &  ptr2);
template < class T, class X >
   inline _Bool operator< (const const QSharedPointer &  ptr1, const const QSharedPointer &  ptr2);
template < class T, class X >
   inline _Bool operator< (const const QSharedPointer &  ptr1, X *  ptr2);
template < class T, class X >
   inline _Bool operator< (T *  ptr1, const const QSharedPointer &  ptr2);
template < class T >
   inline uint qHash (const const T *  key);
template < class T >
   inline uint qHash (const const QSharedPointer &  ptr);
inline QWeakPointer toWeakRef ()const volatile restrict ;
template < class T >
   inline void qSwap (QSharedPointer &  p1, QSharedPointer &  p2);
namespace std
{
   template < class T >
      inline void swap (::QSharedPointer &  p1, ::QSharedPointer &  p2);
} // end of std
namespace QtSharedPointer
{
   template < class X, class T >
      inline QSharedPointer copyAndSetPointer (X *  ptr, const const QSharedPointer &  src);
} // end of QtSharedPointer
template < class X, class T >
   inline QSharedPointer qSharedPointerCast (const const QSharedPointer &  src);
template < class X, class T >
   inline QSharedPointer qSharedPointerCast (const const QWeakPointer &  src);
template < class X, class T >
   inline QSharedPointer qSharedPointerDynamicCast (const const QSharedPointer &  src);
template < class X, class T >
   inline QSharedPointer qSharedPointerDynamicCast (const const QWeakPointer &  src);
template < class X, class T >
   inline QSharedPointer qSharedPointerConstCast (const const QSharedPointer &  src);
template < class X, class T >
   inline QSharedPointer qSharedPointerConstCast (const const QWeakPointer &  src);
template < class X, class T >
   inline QWeakPointer qWeakPointerCast (const const QSharedPointer &  src);
template < class X, class T >
   inline QSharedPointer qSharedPointerObjectCast (const const QSharedPointer &  src);
template < class X, class T >
   inline QSharedPointer qSharedPointerObjectCast (const const QWeakPointer &  src);
template < class X, class T >
   inline QSharedPointer::Type> qobject_cast (const const QSharedPointer &  src);
template < class X, class T >
   inline QSharedPointer::Type> qobject_cast (const const QWeakPointer &  src);
typedef enum QtValidLicenseForGuiModule QtGuiModule;
class QImageWriter{
}; // end of QImageWriter
class QImageReader{
}; // end of QImageReader
class QColor{
}; // end of QColor
class QVariant{
}; // end of QVariant
class QX11Info{
}; // end of QX11Info
class QPixmapData{
}; // end of QPixmapData
class QPixmap : public:
class QPaintDevice{
   class QPixmap{
   }; // end of QPixmap
public:
   constructor void QPixmap ();
   constructor explicit void QPixmap (class QPixmapData *  data);
   constructor void QPixmap (int w, int h);
   constructor converter void QPixmap (const const class QSize &  );
   constructor converter void QPixmap (const const class QString &  fileName, const const char *  format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor);
   constructor converter void QPixmap (const char *const * xpm);
   constructor copyconstructor converter void QPixmap (const const class QPixmap &  );
   virtual destructor void ~QPixmap ();
   class QPixmap &  operator= (const const class QPixmap &  );
   inline void swap (class QPixmap &  other);
   converter class QVariant operator QVariant ()const volatile restrict ;
   _Bool isNull ()const volatile restrict ;
   virtual int devType ()const volatile restrict ;
   int width ()const volatile restrict ;
   int height ()const volatile restrict ;
   class QSize size ()const volatile restrict ;
   class QRect rect ()const volatile restrict ;
   int depth ()const volatile restrict ;
   static static int defaultDepth ();
   void fill (const const class QColor &  fillColor = Qt::white);
   void fill (const const class QWidget *  widget, const const class QPoint &  ofs);
   inline void fill (const const class QWidget *  widget, int xofs, int yofs);
   class QBitmap mask ()const volatile restrict ;
   void setMask (const const class QBitmap &  );
   class QPixmap alphaChannel ()const volatile restrict ;
   void setAlphaChannel (const const class QPixmap &  );
   _Bool hasAlpha ()const volatile restrict ;
   _Bool hasAlphaChannel ()const volatile restrict ;
   class QBitmap createHeuristicMask (_Bool clipTight = true)const volatile restrict ;
   class QBitmap createMaskFromColor (const const class QColor &  maskColor)const volatile restrict ;
   class QBitmap createMaskFromColor (const const class QColor &  maskColor, Qt::MaskMode mode)const volatile restrict ;
   static static class QPixmap grabWindow (WId , int x = 0, int y = 0, int w = -1, int h = -1);
   static static class QPixmap grabWidget (class QWidget *  widget, const const class QRect &  rect);
   static inline static class QPixmap grabWidget (class QWidget *  widget, int x = 0, int y = 0, int w = -1, int h = -1);
   inline class QPixmap scaled (int w, int h, Qt::AspectRatioMode aspectMode = Qt::IgnoreAspectRatio, Qt::TransformationMode mode = Qt::FastTransformation)const volatile restrict ;
   class QPixmap scaled (const const class QSize &  s, Qt::AspectRatioMode aspectMode = Qt::IgnoreAspectRatio, Qt::TransformationMode mode = Qt::FastTransformation)const volatile restrict ;
   class QPixmap scaledToWidth (int w, Qt::TransformationMode mode = Qt::FastTransformation)const volatile restrict ;
   class QPixmap scaledToHeight (int h, Qt::TransformationMode mode = Qt::FastTransformation)const volatile restrict ;
   class QPixmap transformed (const const class QMatrix &  , Qt::TransformationMode mode = Qt::FastTransformation)const volatile restrict ;
   static static class QMatrix trueMatrix (const const class QMatrix &  m, int w, int h);
   class QPixmap transformed (const const class QTransform &  , Qt::TransformationMode mode = Qt::FastTransformation)const volatile restrict ;
   static static class QTransform trueMatrix (const const class QTransform &  m, int w, int h);
   class QImage toImage ()const volatile restrict ;
   static static class QPixmap fromImage (const const class QImage &  image, Qt::ImageConversionFlags flags = Qt::AutoColor);
   static static class QPixmap fromImageReader (class QImageReader *  imageReader, Qt::ImageConversionFlags flags = Qt::AutoColor);
   _Bool load (const const class QString &  fileName, const const char *  format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor);
   _Bool loadFromData (const const uchar *  buf, uint len, const const char *  format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor);
   inline _Bool loadFromData (const const class QByteArray &  data, const const char *  format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor);
   _Bool save (const const class QString &  fileName, const const char *  format = 0, int quality = -1)const volatile restrict ;
   _Bool save (class QIODevice *  device, const const char *  format = 0, int quality = -1)const volatile restrict ;
   _Bool convertFromImage (const const class QImage &  img, Qt::ImageConversionFlags flags = Qt::AutoColor);
   inline class QPixmap copy (int x, int y, int width, int height)const volatile restrict ;
   class QPixmap copy (const const class QRect &  rect = class QRect())const volatile restrict ;
   inline void scroll (int dx, int dy, int x, int y, int width, int height, class QRegion *  exposed = 0);
   void scroll (int dx, int dy, const const class QRect &  rect, class QRegion *  exposed = 0);
   int serialNumber ()const volatile restrict ;
   qint64 cacheKey ()const volatile restrict ;
   _Bool isDetached ()const volatile restrict ;
   void detach ();
   _Bool isQBitmap ()const volatile restrict ;
   enum ShareMode
   {
      ImplicitlyShared,
      ExplicitlyShared
   }; // end of ShareMode
   static static class QPixmap fromX11Pixmap (Qt::HANDLE pixmap, enum QPixmap::ShareMode mode = ImplicitlyShared);
   static static int x11SetDefaultScreen (int screen);
   void x11SetScreen (int screen);
   const const class QX11Info &  x11Info ()const volatile restrict ;
   Qt::HANDLE x11PictureHandle ()const volatile restrict ;
   Qt::HANDLE handle ()const volatile restrict ;
   virtual class QPaintEngine *  paintEngine ()const volatile restrict ;
   inline _Bool operator! ()const volatile restrict ;
protected:
   virtual int metric (enum QPaintDevice::PaintDeviceMetric )const volatile restrict ;
private:
   _Bool doImageIO (class QImageWriter *  io, int quality)const volatile restrict ;
   enum Type
   {
      PixmapType,
      BitmapType
   }; // end of Type
   constructor void QPixmap (const const class QSize &  s, enum QPixmap::Type );
   void init (int , int , enum QPixmap::Type  = PixmapType);
   constructor void QPixmap (const const class QSize &  s, int type);
   void init (int , int , int );
   void deref ();
   friend operator>>;
   friend qt_pixmap_id;
public:
   class QPixmapData *  pixmapData ()const volatile restrict ;
public:
   typedef QExplicitlySharedDataPointer QPixmap::DataPtr;
   inline DataPtr &  data_ptr ();
}; // end of QPixmap
inline _Bool qIsDetached (class QPixmap &  t);
inline void qSwap (class QPixmap &  value1, class QPixmap &  value2);
namespace std
{
   inline void swap (::QPixmap &  value1, ::QPixmap &  value2);
} // end of std
inline class QPixmap copy (int ax, int ay, int awidth, int aheight)const volatile restrict ;
inline void scroll (int dx, int dy, int ax, int ay, int awidth, int aheight, class QRegion *  exposed = 0);
inline _Bool loadFromData (const const class QByteArray &  buf, const const char *  format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor);
class QDataStream &  operator<< (class QDataStream &  , const const class QPixmap &  );
class QDataStream &  operator>> (class QDataStream &  , class QPixmap &  );
typedef enum QtValidLicenseForGuiModule QtGuiModule;
struct QBrushData{
}; // end of QBrushData
class QPixmap : public:
class QPaintDevice{
}; // end of QPixmap
class QGradient{
}; // end of QGradient
class QVariant{
}; // end of QVariant
struct QBrushDataPointerDeleter{
}; // end of QBrushDataPointerDeleter
class QBrush{
   class QBrush{
   }; // end of QBrush
public:
   constructor void QBrush ();
   constructor converter void QBrush (Qt::BrushStyle bs);
   constructor converter void QBrush (const const class QColor &  color, Qt::BrushStyle bs = Qt::SolidPattern);
   constructor converter void QBrush (Qt::GlobalColor color, Qt::BrushStyle bs = Qt::SolidPattern);
   constructor void QBrush (const const class QColor &  color, const const class QPixmap &  pixmap);
   constructor void QBrush (Qt::GlobalColor color, const const class QPixmap &  pixmap);
   constructor converter void QBrush (const const class QPixmap &  pixmap);
   constructor converter void QBrush (const const class QImage &  image);
   constructor copyconstructor converter void QBrush (const const class QBrush &  brush);
   constructor converter void QBrush (const const class QGradient &  gradient);
   destructor void ~QBrush ();
   class QBrush &  operator= (const const class QBrush &  brush);
   inline void swap (class QBrush &  other);
   converter class QVariant operator QVariant ()const volatile restrict ;
   inline Qt::BrushStyle style ()const volatile restrict ;
   void setStyle (Qt::BrushStyle );
   inline const const class QMatrix &  matrix ()const volatile restrict ;
   void setMatrix (const const class QMatrix &  mat);
   inline class QTransform transform ()const volatile restrict ;
   void setTransform (const const class QTransform &  );
   class QPixmap texture ()const volatile restrict ;
   void setTexture (const const class QPixmap &  pixmap);
   class QImage textureImage ()const volatile restrict ;
   void setTextureImage (const const class QImage &  image);
   inline const const class QColor &  color ()const volatile restrict ;
   void setColor (const const class QColor &  color);
   inline void setColor (Qt::GlobalColor color);
   const const class QGradient *  gradient ()const volatile restrict ;
   _Bool isOpaque ()const volatile restrict ;
   _Bool operator== (const const class QBrush &  b)const volatile restrict ;
   inline _Bool operator!= (const const class QBrush &  b)const volatile restrict ;
private:
   friend qHasPixmapTexture;
   void detach (Qt::BrushStyle newStyle);
   void init (const const class QColor &  color, Qt::BrushStyle bs);
   void cleanUp (struct QBrushData *  x);
public:
   inline _Bool isDetached ()const volatile restrict ;
   typedef QScopedPointer QBrush::DataPtr;
   inline DataPtr &  data_ptr ();
}; // end of QBrush
inline void setColor (Qt::GlobalColor acolor);
inline _Bool qIsDetached (class QBrush &  t);
inline void qSwap (class QBrush &  value1, class QBrush &  value2);
namespace std
{
   inline void swap (::QBrush &  value1, ::QBrush &  value2);
} // end of std
class QDataStream &  operator<< (class QDataStream &  , const const class QBrush &  );
class QDataStream &  operator>> (class QDataStream &  , class QBrush &  );
class QDebug operator<< (class QDebug , const const class QBrush &  );
struct QBrushData{
   struct QBrushData{
   }; // end of QBrushData
   inline constructor copyconstructor converter void QBrushData (const const struct QBrushData &  ) throw ();
   inline struct QBrushData &  operator= (const const struct QBrushData &  ) throw ();
}; // end of QBrushData
inline Qt::BrushStyle style ()const volatile restrict ;
inline const const class QColor &  color ()const volatile restrict ;
inline const const class QMatrix &  matrix ()const volatile restrict ;
inline class QTransform transform ()const volatile restrict ;
inline _Bool isDetached ()const volatile restrict ;
class QGradientPrivate{
}; // end of QGradientPrivate
typedef QPair QGradientStop;
typedef QVector QGradientStops;
class QGradient{
   class QGradient{
   }; // end of QGradient
public:
   /* variable */ static const const struct QMetaObject staticMetaObject;
private:
public:
   enum Type
   {
      LinearGradient,
      RadialGradient,
      ConicalGradient,
      NoGradient
   }; // end of Type
   enum Spread
   {
      PadSpread,
      ReflectSpread,
      RepeatSpread
   }; // end of Spread
   enum CoordinateMode
   {
      LogicalMode,
      StretchToDeviceMode,
      ObjectBoundingMode
   }; // end of CoordinateMode
   enum InterpolationMode
   {
      ColorInterpolation,
      ComponentInterpolation
   }; // end of InterpolationMode
   constructor void QGradient ();
   enum QGradient::Type type ()const volatile restrict ;
   inline void setSpread (enum QGradient::Spread spread);
   enum QGradient::Spread spread ()const volatile restrict ;
   void setColorAt (qreal pos, const const class QColor &  color);
   void setStops (const const QGradientStops &  stops);
   QGradientStops stops ()const volatile restrict ;
   enum QGradient::CoordinateMode coordinateMode ()const volatile restrict ;
   void setCoordinateMode (enum QGradient::CoordinateMode mode);
   enum QGradient::InterpolationMode interpolationMode ()const volatile restrict ;
   void setInterpolationMode (enum QGradient::InterpolationMode mode);
   _Bool operator== (const const class QGradient &  gradient)const volatile restrict ;
   inline _Bool operator!= (const const class QGradient &  other)const volatile restrict ;
   _Bool operator== (const const class QGradient &  gradient);
private:
   union {
      struct {
      }; // end of 
      struct {
      }; // end of 
      struct {
      }; // end of 
   }; // end of 
   inline destructor void ~QGradient () throw ();
   inline constructor copyconstructor converter void QGradient (const const class QGradient &  ) throw ();
}; // end of QGradient
inline void setSpread (enum QGradient::Spread aspread);
class QLinearGradient : public:
class QGradient{
   class QLinearGradient{
   }; // end of QLinearGradient
public:
   constructor void QLinearGradient ();
   constructor void QLinearGradient (const const class QPointF &  start, const const class QPointF &  finalStop);
   constructor void QLinearGradient (qreal xStart, qreal yStart, qreal xFinalStop, qreal yFinalStop);
   class QPointF start ()const volatile restrict ;
   void setStart (const const class QPointF &  start);
   inline void setStart (qreal x, qreal y);
   class QPointF finalStop ()const volatile restrict ;
   void setFinalStop (const const class QPointF &  stop);
   inline void setFinalStop (qreal x, qreal y);
}; // end of QLinearGradient
class QRadialGradient : public:
class QGradient{
   class QRadialGradient{
   }; // end of QRadialGradient
public:
   constructor void QRadialGradient ();
   constructor void QRadialGradient (const const class QPointF &  center, qreal radius, const const class QPointF &  focalPoint);
   constructor void QRadialGradient (qreal cx, qreal cy, qreal radius, qreal fx, qreal fy);
   constructor void QRadialGradient (const const class QPointF &  center, qreal radius);
   constructor void QRadialGradient (qreal cx, qreal cy, qreal radius);
   constructor void QRadialGradient (const const class QPointF &  center, qreal centerRadius, const const class QPointF &  focalPoint, qreal focalRadius);
   constructor void QRadialGradient (qreal cx, qreal cy, qreal centerRadius, qreal fx, qreal fy, qreal focalRadius);
   class QPointF center ()const volatile restrict ;
   void setCenter (const const class QPointF &  center);
   inline void setCenter (qreal x, qreal y);
   class QPointF focalPoint ()const volatile restrict ;
   void setFocalPoint (const const class QPointF &  focalPoint);
   inline void setFocalPoint (qreal x, qreal y);
   qreal radius ()const volatile restrict ;
   void setRadius (qreal radius);
   qreal centerRadius ()const volatile restrict ;
   void setCenterRadius (qreal radius);
   qreal focalRadius ()const volatile restrict ;
   void setFocalRadius (qreal radius);
}; // end of QRadialGradient
class QConicalGradient : public:
class QGradient{
   class QConicalGradient{
   }; // end of QConicalGradient
public:
   constructor void QConicalGradient ();
   constructor void QConicalGradient (const const class QPointF &  center, qreal startAngle);
   constructor void QConicalGradient (qreal cx, qreal cy, qreal startAngle);
   class QPointF center ()const volatile restrict ;
   void setCenter (const const class QPointF &  center);
   inline void setCenter (qreal x, qreal y);
   qreal angle ()const volatile restrict ;
   void setAngle (qreal angle);
}; // end of QConicalGradient
typedef enum QtValidLicenseForGuiModule QtGuiModule;
class QPalettePrivate{
}; // end of QPalettePrivate
class QVariant{
}; // end of QVariant
class QPalette{
   class QPalette{
   }; // end of QPalette
public:
   /* variable */ static const const struct QMetaObject staticMetaObject;
private:
public:
   constructor void QPalette ();
   constructor converter void QPalette (const const class QColor &  button);
   constructor converter void QPalette (Qt::GlobalColor button);
   constructor void QPalette (const const class QColor &  button, const const class QColor &  window);
   constructor void QPalette (const const class QBrush &  windowText, const const class QBrush &  button, const const class QBrush &  light, const const class QBrush &  dark, const const class QBrush &  mid, const const class QBrush &  text, const const class QBrush &  bright_text, const const class QBrush &  base, const const class QBrush &  window);
   constructor void QPalette (const const class QColor &  windowText, const const class QColor &  window, const const class QColor &  light, const const class QColor &  dark, const const class QColor &  mid, const const class QColor &  text, const const class QColor &  base);
   constructor copyconstructor converter void QPalette (const const class QPalette &  palette);
   destructor void ~QPalette ();
   class QPalette &  operator= (const const class QPalette &  palette);
   converter class QVariant operator QVariant ()const volatile restrict ;
   enum ColorGroup
   {
      Active,
      Disabled,
      Inactive,
      NColorGroups,
      Current,
      All,
      Normal = Active
   }; // end of ColorGroup
   enum ColorRole
   {
      WindowText,
      Button,
      Light,
      Midlight,
      Dark,
      Mid,
      Text,
      BrightText,
      ButtonText,
      Base,
      Window,
      Shadow,
      Highlight,
      HighlightedText,
      Link,
      LinkVisited,
      AlternateBase,
      NoRole,
      ToolTipBase,
      ToolTipText,
      NColorRoles = ToolTipText + 1,
      Foreground = WindowText,
      Background = Window
   }; // end of ColorRole
   inline enum QPalette::ColorGroup currentColorGroup ()const volatile restrict ;
   inline void setCurrentColorGroup (enum QPalette::ColorGroup cg);
   inline const const class QColor &  color (enum QPalette::ColorGroup cg, enum QPalette::ColorRole cr)const volatile restrict ;
   const const class QBrush &  brush (enum QPalette::ColorGroup cg, enum QPalette::ColorRole cr)const volatile restrict ;
   inline void setColor (enum QPalette::ColorGroup cg, enum QPalette::ColorRole cr, const const class QColor &  color);
   inline void setColor (enum QPalette::ColorRole cr, const const class QColor &  color);
   inline void setBrush (enum QPalette::ColorRole cr, const const class QBrush &  brush);
   _Bool isBrushSet (enum QPalette::ColorGroup cg, enum QPalette::ColorRole cr)const volatile restrict ;
   void setBrush (enum QPalette::ColorGroup cg, enum QPalette::ColorRole cr, const const class QBrush &  brush);
   void setColorGroup (enum QPalette::ColorGroup cr, const const class QBrush &  windowText, const const class QBrush &  button, const const class QBrush &  light, const const class QBrush &  dark, const const class QBrush &  mid, const const class QBrush &  text, const const class QBrush &  bright_text, const const class QBrush &  base, const const class QBrush &  window);
   _Bool isEqual (enum QPalette::ColorGroup cr1, enum QPalette::ColorGroup cr2)const volatile restrict ;
   inline const const class QColor &  color (enum QPalette::ColorRole cr)const volatile restrict ;
   inline const const class QBrush &  brush (enum QPalette::ColorRole cr)const volatile restrict ;
   inline const const class QBrush &  foreground ()const volatile restrict ;
   inline const const class QBrush &  windowText ()const volatile restrict ;
   inline const const class QBrush &  button ()const volatile restrict ;
   inline const const class QBrush &  light ()const volatile restrict ;
   inline const const class QBrush &  dark ()const volatile restrict ;
   inline const const class QBrush &  mid ()const volatile restrict ;
   inline const const class QBrush &  text ()const volatile restrict ;
   inline const const class QBrush &  base ()const volatile restrict ;
   inline const const class QBrush &  alternateBase ()const volatile restrict ;
   inline const const class QBrush &  toolTipBase ()const volatile restrict ;
   inline const const class QBrush &  toolTipText ()const volatile restrict ;
   inline const const class QBrush &  background ()const volatile restrict ;
   inline const const class QBrush &  window ()const volatile restrict ;
   inline const const class QBrush &  midlight ()const volatile restrict ;
   inline const const class QBrush &  brightText ()const volatile restrict ;
   inline const const class QBrush &  buttonText ()const volatile restrict ;
   inline const const class QBrush &  shadow ()const volatile restrict ;
   inline const const class QBrush &  highlight ()const volatile restrict ;
   inline const const class QBrush &  highlightedText ()const volatile restrict ;
   inline const const class QBrush &  link ()const volatile restrict ;
   inline const const class QBrush &  linkVisited ()const volatile restrict ;
   _Bool operator== (const const class QPalette &  p)const volatile restrict ;
   inline _Bool operator!= (const const class QPalette &  p)const volatile restrict ;
   _Bool isCopyOf (const const class QPalette &  p)const volatile restrict ;
   int serialNumber ()const volatile restrict ;
   qint64 cacheKey ()const volatile restrict ;
   class QPalette resolve (const const class QPalette &  )const volatile restrict ;
   inline uint resolve ()const volatile restrict ;
   inline void resolve (uint mask);
private:
   void setColorGroup (enum QPalette::ColorGroup cr, const const class QBrush &  windowText, const const class QBrush &  button, const const class QBrush &  light, const const class QBrush &  dark, const const class QBrush &  mid, const const class QBrush &  text, const const class QBrush &  bright_text, const const class QBrush &  base, const const class QBrush &  alternate_base, const const class QBrush &  window, const const class QBrush &  midlight, const const class QBrush &  button_text, const const class QBrush &  shadow, const const class QBrush &  highlight, const const class QBrush &  highlighted_text, const const class QBrush &  link, const const class QBrush &  link_visited);
   void setColorGroup (enum QPalette::ColorGroup cr, const const class QBrush &  windowText, const const class QBrush &  button, const const class QBrush &  light, const const class QBrush &  dark, const const class QBrush &  mid, const const class QBrush &  text, const const class QBrush &  bright_text, const const class QBrush &  base, const const class QBrush &  alternate_base, const const class QBrush &  window, const const class QBrush &  midlight, const const class QBrush &  button_text, const const class QBrush &  shadow, const const class QBrush &  highlight, const const class QBrush &  highlighted_text, const const class QBrush &  link, const const class QBrush &  link_visited, const const class QBrush &  toolTipBase, const const class QBrush &  toolTipText);
   void init ();
   void detach ();
   friend operator<<;
}; // end of QPalette
inline void setColor (enum QPalette::ColorGroup acg, enum QPalette::ColorRole acr, const const class QColor &  acolor);
inline void setColor (enum QPalette::ColorRole acr, const const class QColor &  acolor);
inline void setBrush (enum QPalette::ColorRole acr, const const class QBrush &  abrush);
class QDataStream &  operator<< (class QDataStream &  ds, const const class QPalette &  p);
class QDataStream &  operator>> (class QDataStream &  ds, class QPalette &  p);
struct FT_FaceRec_{
}; // end of FT_FaceRec_
typedef struct FT_FaceRec_ *  FT_Face;
typedef enum QtValidLicenseForGuiModule QtGuiModule;
class QFontPrivate{
}; // end of QFontPrivate
class QStringList : public:
QList{
}; // end of QStringList
class QVariant{
}; // end of QVariant
class Q3TextFormatCollection{
}; // end of Q3TextFormatCollection
class QFont{
   class QFont{
   }; // end of QFont
public:
   /* variable */ static const const struct QMetaObject staticMetaObject;
private:
public:
   enum StyleHint
   {
      Helvetica,
      SansSerif = Helvetica,
      Times,
      Serif = Times,
      Courier,
      TypeWriter = Courier,
      OldEnglish,
      Decorative = OldEnglish,
      System,
      AnyStyle,
      Cursive,
      Monospace,
      Fantasy
   }; // end of StyleHint
   enum StyleStrategy
   {
      PreferDefault = 1,
      PreferBitmap = 2,
      PreferDevice = 4,
      PreferOutline = 8,
      ForceOutline = 16,
      PreferMatch = 32,
      PreferQuality = 64,
      PreferAntialias = 128,
      NoAntialias = 256,
      OpenGLCompatible = 512,
      ForceIntegerMetrics = 1024,
      NoFontMerging = 32768
   }; // end of StyleStrategy
   enum HintingPreference
   {
      PreferDefaultHinting = 0,
      PreferNoHinting = 1,
      PreferVerticalHinting = 2,
      PreferFullHinting = 3
   }; // end of HintingPreference
   enum Weight
   {
      Light = 25,
      Normal = 50,
      DemiBold = 63,
      Bold = 75,
      Black = 87
   }; // end of Weight
   enum Style
   {
      StyleNormal,
      StyleItalic,
      StyleOblique
   }; // end of Style
   enum Stretch
   {
      UltraCondensed = 50,
      ExtraCondensed = 62,
      Condensed = 75,
      SemiCondensed = 87,
      Unstretched = 100,
      SemiExpanded = 112,
      Expanded = 125,
      ExtraExpanded = 150,
      UltraExpanded = 200
   }; // end of Stretch
   enum Capitalization
   {
      MixedCase,
      AllUppercase,
      AllLowercase,
      SmallCaps,
      Capitalize
   }; // end of Capitalization
   enum SpacingType
   {
      PercentageSpacing,
      AbsoluteSpacing
   }; // end of SpacingType
   enum ResolveProperties
   {
      FamilyResolved = 1,
      SizeResolved = 2,
      StyleHintResolved = 4,
      StyleStrategyResolved = 8,
      WeightResolved = 16,
      StyleResolved = 32,
      UnderlineResolved = 64,
      OverlineResolved = 128,
      StrikeOutResolved = 256,
      FixedPitchResolved = 512,
      StretchResolved = 1024,
      KerningResolved = 2048,
      CapitalizationResolved = 4096,
      LetterSpacingResolved = 8192,
      WordSpacingResolved = 16384,
      HintingPreferenceResolved = 32768,
      StyleNameResolved = 65536,
      AllPropertiesResolved = 131071
   }; // end of ResolveProperties
   constructor void QFont ();
   constructor converter void QFont (const const class QString &  family, int pointSize = -1, int weight = -1, _Bool italic = false);
   constructor void QFont (const const class QFont &  , class QPaintDevice *  pd);
   constructor copyconstructor converter void QFont (const const class QFont &  );
   destructor void ~QFont ();
   class QString family ()const volatile restrict ;
   void setFamily (const const class QString &  );
   class QString styleName ()const volatile restrict ;
   void setStyleName (const const class QString &  );
   int pointSize ()const volatile restrict ;
   void setPointSize (int );
   qreal pointSizeF ()const volatile restrict ;
   void setPointSizeF (qreal );
   int pixelSize ()const volatile restrict ;
   void setPixelSize (int );
   int weight ()const volatile restrict ;
   void setWeight (int );
   inline _Bool bold ()const volatile restrict ;
   inline void setBold (_Bool );
   void setStyle (enum QFont::Style style);
   enum QFont::Style style ()const volatile restrict ;
   inline _Bool italic ()const volatile restrict ;
   inline void setItalic (_Bool b);
   _Bool underline ()const volatile restrict ;
   void setUnderline (_Bool );
   _Bool overline ()const volatile restrict ;
   void setOverline (_Bool );
   _Bool strikeOut ()const volatile restrict ;
   void setStrikeOut (_Bool );
   _Bool fixedPitch ()const volatile restrict ;
   void setFixedPitch (_Bool );
   _Bool kerning ()const volatile restrict ;
   void setKerning (_Bool );
   enum QFont::StyleHint styleHint ()const volatile restrict ;
   enum QFont::StyleStrategy styleStrategy ()const volatile restrict ;
   void setStyleHint (enum QFont::StyleHint , enum QFont::StyleStrategy  = PreferDefault);
   void setStyleStrategy (enum QFont::StyleStrategy s);
   int stretch ()const volatile restrict ;
   void setStretch (int );
   qreal letterSpacing ()const volatile restrict ;
   enum QFont::SpacingType letterSpacingType ()const volatile restrict ;
   void setLetterSpacing (enum QFont::SpacingType type, qreal spacing);
   qreal wordSpacing ()const volatile restrict ;
   void setWordSpacing (qreal spacing);
   void setCapitalization (enum QFont::Capitalization );
   enum QFont::Capitalization capitalization ()const volatile restrict ;
   void setHintingPreference (enum QFont::HintingPreference hintingPreference);
   enum QFont::HintingPreference hintingPreference ()const volatile restrict ;
   _Bool rawMode ()const volatile restrict ;
   void setRawMode (_Bool );
   _Bool exactMatch ()const volatile restrict ;
   class QFont &  operator= (const const class QFont &  );
   _Bool operator== (const const class QFont &  )const volatile restrict ;
   _Bool operator!= (const const class QFont &  )const volatile restrict ;
   _Bool operator< (const const class QFont &  )const volatile restrict ;
   converter class QVariant operator QVariant ()const volatile restrict ;
   _Bool isCopyOf (const const class QFont &  )const volatile restrict ;
   Qt::HANDLE handle ()const volatile restrict ;
   FT_Face freetypeFace ()const volatile restrict ;
   void setRawName (const const class QString &  );
   class QString rawName ()const volatile restrict ;
   class QString key ()const volatile restrict ;
   class QString toString ()const volatile restrict ;
   _Bool fromString (const const class QString &  );
   static static class QString substitute (const const class QString &  );
   static static class QStringList substitutes (const const class QString &  );
   static static class QStringList substitutions ();
   static static void insertSubstitution (const const class QString &  , const const class QString &  );
   static static void insertSubstitutions (const const class QString &  , const const class QStringList &  );
   static static void removeSubstitution (const const class QString &  );
   static static void initialize ();
   static static void cleanup ();
   static static void cacheStatistics ();
   class QString defaultFamily ()const volatile restrict ;
   class QString lastResortFamily ()const volatile restrict ;
   class QString lastResortFont ()const volatile restrict ;
   class QFont resolve (const const class QFont &  )const volatile restrict ;
   inline uint resolve ()const volatile restrict ;
   inline void resolve (uint mask);
private:
   constructor converter void QFont (class QFontPrivate *  );
   void detach ();
   void x11SetScreen (int screen = -1);
   int x11Screen ()const volatile restrict ;
   friend operator<<;
   friend operator>>;
}; // end of QFont
inline _Bool bold ()const volatile restrict ;
inline void setBold (_Bool enable);
inline _Bool italic ()const volatile restrict ;
inline void setItalic (_Bool b);
class QDataStream &  operator<< (class QDataStream &  , const const class QFont &  );
class QDataStream &  operator>> (class QDataStream &  , class QFont &  );
class QDebug operator<< (class QDebug , const const class QFont &  );
typedef enum QtValidLicenseForGuiModule QtGuiModule;
class QTextCodec{
}; // end of QTextCodec
class QRect{
}; // end of QRect
class QFontMetrics{
   class QFontMetrics{
   }; // end of QFontMetrics
public:
   constructor converter void QFontMetrics (const const class QFont &  );
   constructor void QFontMetrics (const const class QFont &  , class QPaintDevice *  pd);
   constructor copyconstructor converter void QFontMetrics (const const class QFontMetrics &  );
   destructor void ~QFontMetrics ();
   class QFontMetrics &  operator= (const const class QFontMetrics &  );
   int ascent ()const volatile restrict ;
   int descent ()const volatile restrict ;
   int height ()const volatile restrict ;
   int leading ()const volatile restrict ;
   int lineSpacing ()const volatile restrict ;
   int minLeftBearing ()const volatile restrict ;
   int minRightBearing ()const volatile restrict ;
   int maxWidth ()const volatile restrict ;
   int xHeight ()const volatile restrict ;
   int averageCharWidth ()const volatile restrict ;
   _Bool inFont (class QChar )const volatile restrict ;
   _Bool inFontUcs4 (uint ucs4)const volatile restrict ;
   int leftBearing (class QChar )const volatile restrict ;
   int rightBearing (class QChar )const volatile restrict ;
   int width (const const class QString &  , int len = -1)const volatile restrict ;
   int width (const const class QString &  , int len, int flags)const volatile restrict ;
   int width (class QChar )const volatile restrict ;
   int charWidth (const const class QString &  str, int pos)const volatile restrict ;
   class QRect boundingRect (class QChar )const volatile restrict ;
   class QRect boundingRect (const const class QString &  text)const volatile restrict ;
   class QRect boundingRect (const const class QRect &  r, int flags, const const class QString &  text, int tabstops = 0, int *  tabarray = 0)const volatile restrict ;
   inline class QRect boundingRect (int x, int y, int w, int h, int flags, const const class QString &  text, int tabstops = 0, int *  tabarray = 0)const volatile restrict ;
   class QSize size (int flags, const const class QString &  str, int tabstops = 0, int *  tabarray = 0)const volatile restrict ;
   class QRect tightBoundingRect (const const class QString &  text)const volatile restrict ;
   class QString elidedText (const const class QString &  text, Qt::TextElideMode mode, int width, int flags = 0)const volatile restrict ;
   int underlinePos ()const volatile restrict ;
   int overlinePos ()const volatile restrict ;
   int strikeOutPos ()const volatile restrict ;
   int lineWidth ()const volatile restrict ;
   _Bool operator== (const const class QFontMetrics &  other);
   _Bool operator== (const const class QFontMetrics &  other)const volatile restrict ;
   inline _Bool operator!= (const const class QFontMetrics &  other);
   inline _Bool operator!= (const const class QFontMetrics &  other)const volatile restrict ;
private:
}; // end of QFontMetrics
class QFontMetricsF{
   class QFontMetricsF{
   }; // end of QFontMetricsF
public:
   constructor converter void QFontMetricsF (const const class QFont &  );
   constructor void QFontMetricsF (const const class QFont &  , class QPaintDevice *  pd);
   constructor converter void QFontMetricsF (const const class QFontMetrics &  );
   constructor copyconstructor converter void QFontMetricsF (const const class QFontMetricsF &  );
   destructor void ~QFontMetricsF ();
   class QFontMetricsF &  operator= (const const class QFontMetricsF &  );
   class QFontMetricsF &  operator= (const const class QFontMetrics &  );
   qreal ascent ()const volatile restrict ;
   qreal descent ()const volatile restrict ;
   qreal height ()const volatile restrict ;
   qreal leading ()const volatile restrict ;
   qreal lineSpacing ()const volatile restrict ;
   qreal minLeftBearing ()const volatile restrict ;
   qreal minRightBearing ()const volatile restrict ;
   qreal maxWidth ()const volatile restrict ;
   qreal xHeight ()const volatile restrict ;
   qreal averageCharWidth ()const volatile restrict ;
   _Bool inFont (class QChar )const volatile restrict ;
   _Bool inFontUcs4 (uint ucs4)const volatile restrict ;
   qreal leftBearing (class QChar )const volatile restrict ;
   qreal rightBearing (class QChar )const volatile restrict ;
   qreal width (const const class QString &  string)const volatile restrict ;
   qreal width (class QChar )const volatile restrict ;
   class QRectF boundingRect (const const class QString &  string)const volatile restrict ;
   class QRectF boundingRect (class QChar )const volatile restrict ;
   class QRectF boundingRect (const const class QRectF &  r, int flags, const const class QString &  string, int tabstops = 0, int *  tabarray = 0)const volatile restrict ;
   class QSizeF size (int flags, const const class QString &  str, int tabstops = 0, int *  tabarray = 0)const volatile restrict ;
   class QRectF tightBoundingRect (const const class QString &  text)const volatile restrict ;
   class QString elidedText (const const class QString &  text, Qt::TextElideMode mode, qreal width, int flags = 0)const volatile restrict ;
   qreal underlinePos ()const volatile restrict ;
   qreal overlinePos ()const volatile restrict ;
   qreal strikeOutPos ()const volatile restrict ;
   qreal lineWidth ()const volatile restrict ;
   _Bool operator== (const const class QFontMetricsF &  other);
   _Bool operator== (const const class QFontMetricsF &  other)const volatile restrict ;
   inline _Bool operator!= (const const class QFontMetricsF &  other);
   inline _Bool operator!= (const const class QFontMetricsF &  other)const volatile restrict ;
private:
}; // end of QFontMetricsF
typedef enum QtValidLicenseForGuiModule QtGuiModule;
class QFontInfo{
   class QFontInfo{
   }; // end of QFontInfo
public:
   constructor converter void QFontInfo (const const class QFont &  );
   constructor copyconstructor converter void QFontInfo (const const class QFontInfo &  );
   destructor void ~QFontInfo ();
   class QFontInfo &  operator= (const const class QFontInfo &  );
   class QString family ()const volatile restrict ;
   class QString styleName ()const volatile restrict ;
   int pixelSize ()const volatile restrict ;
   int pointSize ()const volatile restrict ;
   qreal pointSizeF ()const volatile restrict ;
   _Bool italic ()const volatile restrict ;
   class QFont::Style style ()const volatile restrict ;
   int weight ()const volatile restrict ;
   inline _Bool bold ()const volatile restrict ;
   _Bool underline ()const volatile restrict ;
   _Bool overline ()const volatile restrict ;
   _Bool strikeOut ()const volatile restrict ;
   _Bool fixedPitch ()const volatile restrict ;
   class QFont::StyleHint styleHint ()const volatile restrict ;
   _Bool rawMode ()const volatile restrict ;
   _Bool exactMatch ()const volatile restrict ;
private:
}; // end of QFontInfo
class QVariant{
}; // end of QVariant
class QSizePolicy{
}; // end of QSizePolicy
class QSizePolicy{
   class QSizePolicy{
   }; // end of QSizePolicy
public:
   /* variable */ static const const struct QMetaObject staticMetaObject;
private:
public:
   enum PolicyFlag
   {
      GrowFlag = 1,
      ExpandFlag = 2,
      ShrinkFlag = 4,
      IgnoreFlag = 8
   }; // end of PolicyFlag
   enum Policy
   {
      Fixed = 0,
      Minimum = GrowFlag,
      Maximum = ShrinkFlag,
      Preferred = GrowFlag | ShrinkFlag,
      MinimumExpanding = GrowFlag | ExpandFlag,
      Expanding = GrowFlag | ShrinkFlag | ExpandFlag,
      Ignored = ShrinkFlag | GrowFlag | IgnoreFlag
   }; // end of Policy
   typedef int QSizePolicy::ControlTypes;
   Qt::Orientations expandingDirections ()const volatile restrict ;
   int horizontalStretch ()const volatile restrict ;
   friend operator>>;
   constructor converter void QSizePolicy (int i);
   constructor explicit void QSizePolicy (int b);
   union {
   }; // end of 
   inline constructor copyconstructor converter void QSizePolicy (const const class QSizePolicy &  ) throw ();
}; // end of QSizePolicy
inline int operator| (int f1, int f2);
inline int operator| (int f1, int f2);
inline class QIncompatibleFlag operator| (int f1, int f2);
class QDataStream &  operator<< (class QDataStream &  , const const class QSizePolicy &  );
class QDataStream &  operator>> (class QDataStream &  , class QSizePolicy &  );
class QDebug operator<< (class QDebug dbg, const const class QSizePolicy &  );
typedef enum QtValidLicenseForGuiModule QtGuiModule;
class QKeySequence{
}; // end of QKeySequence
class QDataStream &  operator<< (class QDataStream &  in, const const class QKeySequence &  ks);
class QDataStream &  operator>> (class QDataStream &  out, class QKeySequence &  ks);
class QVariant{
}; // end of QVariant
class QKeySequencePrivate{
}; // end of QKeySequencePrivate
class QKeySequence{
   class QKeySequence{
   }; // end of QKeySequence
public:
   enum StandardKey
   {
      UnknownKey,
      HelpContents,
      WhatsThis,
      Open,
      Close,
      Save,
      New,
      Delete,
      Cut,
      Copy,
      Paste,
      Undo,
      Redo,
      Back,
      Forward,
      Refresh,
      ZoomIn,
      ZoomOut,
      Print,
      AddTab,
      NextChild,
      PreviousChild,
      Find,
      FindNext,
      FindPrevious,
      Replace,
      SelectAll,
      Bold,
      Italic,
      Underline,
      MoveToNextChar,
      MoveToPreviousChar,
      MoveToNextWord,
      MoveToPreviousWord,
      MoveToNextLine,
      MoveToPreviousLine,
      MoveToNextPage,
      MoveToPreviousPage,
      MoveToStartOfLine,
      MoveToEndOfLine,
      MoveToStartOfBlock,
      MoveToEndOfBlock,
      MoveToStartOfDocument,
      MoveToEndOfDocument,
      SelectNextChar,
      SelectPreviousChar,
      SelectNextWord,
      SelectPreviousWord,
      SelectNextLine,
      SelectPreviousLine,
      SelectNextPage,
      SelectPreviousPage,
      SelectStartOfLine,
      SelectEndOfLine,
      SelectStartOfBlock,
      SelectEndOfBlock,
      SelectStartOfDocument,
      SelectEndOfDocument,
      DeleteStartOfWord,
      DeleteEndOfWord,
      DeleteEndOfLine,
      InsertParagraphSeparator,
      InsertLineSeparator,
      SaveAs,
      Preferences,
      Quit
   }; // end of StandardKey
   enum SequenceFormat
   {
      NativeText,
      PortableText
   }; // end of SequenceFormat
   constructor void QKeySequence ();
   constructor converter void QKeySequence (const const class QString &  key);
   constructor void QKeySequence (const const class QString &  key, enum QKeySequence::SequenceFormat format);
   constructor converter void QKeySequence (int k1, int k2 = 0, int k3 = 0, int k4 = 0);
   constructor copyconstructor converter void QKeySequence (const const class QKeySequence &  ks);
   constructor converter void QKeySequence (enum QKeySequence::StandardKey key);
   destructor void ~QKeySequence ();
   uint count ()const volatile restrict ;
   _Bool isEmpty ()const volatile restrict ;
   enum SequenceMatch
   {
      NoMatch,
      PartialMatch,
      ExactMatch
   }; // end of SequenceMatch
   class QString toString (enum QKeySequence::SequenceFormat format = PortableText)const volatile restrict ;
   static static class QKeySequence fromString (const const class QString &  str, enum QKeySequence::SequenceFormat format = PortableText);
   enum QKeySequence::SequenceMatch matches (const const class QKeySequence &  seq)const volatile restrict ;
   static static class QKeySequence mnemonic (const const class QString &  text);
   static static QList keyBindings (enum QKeySequence::StandardKey key);
   converter class QString operator QString ()const volatile restrict ;
   converter class QVariant operator QVariant ()const volatile restrict ;
   converter int operator int ()const volatile restrict ;
   int operator[] (uint i)const volatile restrict ;
   class QKeySequence &  operator= (const const class QKeySequence &  other);
   inline void swap (class QKeySequence &  other);
   _Bool operator== (const const class QKeySequence &  other)const volatile restrict ;
   inline _Bool operator!= (const const class QKeySequence &  other)const volatile restrict ;
   _Bool operator< (const const class QKeySequence &  ks)const volatile restrict ;
   inline _Bool operator> (const const class QKeySequence &  other)const volatile restrict ;
   inline _Bool operator<= (const const class QKeySequence &  other)const volatile restrict ;
   inline _Bool operator>= (const const class QKeySequence &  other)const volatile restrict ;
   _Bool isDetached ()const volatile restrict ;
private:
   static static int decodeString (const const class QString &  ks);
   static static class QString encodeString (int key);
   int assign (const const class QString &  str);
   int assign (const const class QString &  str, enum QKeySequence::SequenceFormat format);
   void setKey (int key, int index);
   friend operator<<;
   friend operator>>;
public:
   typedef class QKeySequencePrivate *  QKeySequence::DataPtr;
   inline DataPtr &  data_ptr ();
}; // end of QKeySequence
inline _Bool qIsDetached (class QKeySequence &  t);
inline void qSwap (class QKeySequence &  value1, class QKeySequence &  value2);
namespace std
{
   inline void swap (::QKeySequence &  value1, ::QKeySequence &  value2);
} // end of std
class QDebug operator<< (class QDebug , const const class QKeySequence &  );
class QLayout{
}; // end of QLayout
class QWSRegionManager{
}; // end of QWSRegionManager
class QStyle{
}; // end of QStyle
class QAction{
}; // end of QAction
class QVariant{
}; // end of QVariant
class QWindow{
}; // end of QWindow
class QActionEvent{
}; // end of QActionEvent
class QMouseEvent{
}; // end of QMouseEvent
class QWheelEvent{
}; // end of QWheelEvent
class QHoverEvent{
}; // end of QHoverEvent
class QKeyEvent{
}; // end of QKeyEvent
class QFocusEvent{
}; // end of QFocusEvent
class QPaintEvent{
}; // end of QPaintEvent
class QMoveEvent{
}; // end of QMoveEvent
class QResizeEvent{
}; // end of QResizeEvent
class QCloseEvent{
}; // end of QCloseEvent
class QContextMenuEvent{
}; // end of QContextMenuEvent
class QInputMethodEvent{
}; // end of QInputMethodEvent
class QTabletEvent{
}; // end of QTabletEvent
class QDragEnterEvent{
}; // end of QDragEnterEvent
class QDragMoveEvent{
}; // end of QDragMoveEvent
class QDragLeaveEvent{
}; // end of QDragLeaveEvent
class QDropEvent{
}; // end of QDropEvent
class QShowEvent{
}; // end of QShowEvent
class QHideEvent{
}; // end of QHideEvent
class QIcon{
}; // end of QIcon
class QBackingStore{
}; // end of QBackingStore
class QPlatformWindow{
}; // end of QPlatformWindow
class QLocale{
}; // end of QLocale
class QGraphicsProxyWidget{
}; // end of QGraphicsProxyWidget
class QGraphicsEffect{
}; // end of QGraphicsEffect
class QRasterWindowSurface{
}; // end of QRasterWindowSurface
class QUnifiedToolbarSurface{
}; // end of QUnifiedToolbarSurface
class QPixmap : public:
class QPaintDevice{
}; // end of QPixmap
class QDebug{
}; // end of QDebug
class QWidgetData{
   class QWidgetData{
   }; // end of QWidgetData
public:
   inline constructor copyconstructor converter void QWidgetData (const const class QWidgetData &  ) throw ();
   inline class QWidgetData &  operator= (const const class QWidgetData &  ) throw ();
   inline destructor void ~QWidgetData () throw ();
}; // end of QWidgetData
class QWidgetPrivate{
}; // end of QWidgetPrivate
class QWidget : public:
class QObject, public:
class QPaintDevice{
   class QWidget{
   }; // end of QWidget
public:
   template < typename T >
      inline void qt_check_for_QOBJECT_macro (const const T &  _q_argument)const volatile restrict ;
   /* variable */ static const const struct QMetaObject staticMetaObject;
   virtual const const struct QMetaObject *  metaObject ()const volatile restrict ;
   virtual void *  qt_metacast (const const char *  );
   static inline static class QString tr (const const char *  s, const const char *  c = 0);
   static inline static class QString trUtf8 (const const char *  s, const const char *  c = 0);
   static inline static class QString tr (const const char *  s, const const char *  c, int n);
   static inline static class QString trUtf8 (const const char *  s, const const char *  c, int n);
   virtual int qt_metacall (struct QMetaObject::Call , int , void *  *  );
private:
   /* variable */ static const const struct QMetaObjectExtraData staticMetaObjectExtraData;
   static static void qt_static_metacall (class QObject *  , struct QMetaObject::Call , int , void *  *  );
   inline class QWidgetPrivate *  d_func ();
   inline const const class QWidgetPrivate *  d_func ()const volatile restrict ;
public:
   enum RenderFlag
   {
      DrawWindowBackground = 1,
      DrawChildren = 2,
      IgnoreMask = 4
   }; // end of RenderFlag
   typedef QFlags QWidget::RenderFlags;
   constructor explicit void QWidget (class QWidget *  parent = , Qt::WindowFlags f = Qt::WindowFlags());
   virtual destructor void ~QWidget ();
   virtual int devType ()const volatile restrict ;
   WId winId ()const volatile restrict ;
   void createWinId ();
   inline WId internalWinId ()const volatile restrict ;
   WId effectiveWinId ()const volatile restrict ;
   class QStyle *  style ()const volatile restrict ;
   void setStyle (class QStyle *  );
   _Bool isTopLevel ()const volatile restrict ;
   _Bool isWindow ()const volatile restrict ;
   _Bool isModal ()const volatile restrict ;
   Qt::WindowModality windowModality ()const volatile restrict ;
   void setWindowModality (Qt::WindowModality windowModality);
   _Bool isEnabled ()const volatile restrict ;
   _Bool isEnabledTo (const const class QWidget *  )const volatile restrict ;
   _Bool isEnabledToTLW ()const volatile restrict ;
public:
   void setEnabled (_Bool );
   void setDisabled (_Bool );
   void setWindowModified (_Bool );
public:
   class QRect frameGeometry ()const volatile restrict ;
   const const class QRect &  geometry ()const volatile restrict ;
   class QRect normalGeometry ()const volatile restrict ;
   int x ()const volatile restrict ;
   int y ()const volatile restrict ;
   class QPoint pos ()const volatile restrict ;
   class QSize frameSize ()const volatile restrict ;
   class QSize size ()const volatile restrict ;
   inline int width ()const volatile restrict ;
   inline int height ()const volatile restrict ;
   inline class QRect rect ()const volatile restrict ;
   class QRect childrenRect ()const volatile restrict ;
   class QRegion childrenRegion ()const volatile restrict ;
   class QSize minimumSize ()const volatile restrict ;
   class QSize maximumSize ()const volatile restrict ;
   int minimumWidth ()const volatile restrict ;
   int minimumHeight ()const volatile restrict ;
   int maximumWidth ()const volatile restrict ;
   int maximumHeight ()const volatile restrict ;
   void setMinimumSize (const const class QSize &  );
   void setMinimumSize (int minw, int minh);
   void setMaximumSize (const const class QSize &  );
   void setMaximumSize (int maxw, int maxh);
   void setMinimumWidth (int minw);
   void setMinimumHeight (int minh);
   void setMaximumWidth (int maxw);
   void setMaximumHeight (int maxh);
   class QSize sizeIncrement ()const volatile restrict ;
   void setSizeIncrement (const const class QSize &  );
   void setSizeIncrement (int w, int h);
   class QSize baseSize ()const volatile restrict ;
   void setBaseSize (const const class QSize &  );
   void setBaseSize (int basew, int baseh);
   void setFixedSize (const const class QSize &  );
   void setFixedSize (int w, int h);
   void setFixedWidth (int w);
   void setFixedHeight (int h);
   class QPoint mapToGlobal (const const class QPoint &  )const volatile restrict ;
   class QPoint mapFromGlobal (const const class QPoint &  )const volatile restrict ;
   class QPoint mapToParent (const const class QPoint &  )const volatile restrict ;
   class QPoint mapFromParent (const const class QPoint &  )const volatile restrict ;
   class QPoint mapTo (const const class QWidget *  , const const class QPoint &  )const volatile restrict ;
   class QPoint mapFrom (const const class QWidget *  , const const class QPoint &  )const volatile restrict ;
   class QWidget *  window ()const volatile restrict ;
   class QWidget *  nativeParentWidget ()const volatile restrict ;
   inline class QWidget *  topLevelWidget ()const volatile restrict ;
   const const class QPalette &  palette ()const volatile restrict ;
   void setPalette (const const class QPalette &  );
   void setBackgroundRole (class QPalette::ColorRole );
   class QPalette::ColorRole backgroundRole ()const volatile restrict ;
   void setForegroundRole (class QPalette::ColorRole );
   class QPalette::ColorRole foregroundRole ()const volatile restrict ;
   const const class QFont &  font ()const volatile restrict ;
   void setFont (const const class QFont &  );
   class QFontMetrics fontMetrics ()const volatile restrict ;
   class QFontInfo fontInfo ()const volatile restrict ;
   class QCursor cursor ()const volatile restrict ;
   void setCursor (const const class QCursor &  );
   void unsetCursor ();
   void setMouseTracking (_Bool enable);
   _Bool hasMouseTracking ()const volatile restrict ;
   _Bool underMouse ()const volatile restrict ;
   void setTabletTracking (_Bool enable);
   _Bool hasTabletTracking ()const volatile restrict ;
   void setMask (const const class QBitmap &  );
   void setMask (const const class QRegion &  );
   class QRegion mask ()const volatile restrict ;
   void clearMask ();
   void render (class QPaintDevice *  target, const const class QPoint &  targetOffset = class QPoint(), const const class QRegion &  sourceRegion = class QRegion(), RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren));
   void render (class QPainter *  painter, const const class QPoint &  targetOffset = class QPoint(), const const class QRegion &  sourceRegion = class QRegion(), RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren));
   class QPixmap grab (const const class QRect &  rectangle = class QRect(class QPoint(0, 0), class QSize(-1, -1)));
   class QGraphicsEffect *  graphicsEffect ()const volatile restrict ;
   void setGraphicsEffect (class QGraphicsEffect *  effect);
   void grabGesture (Qt::GestureType type, Qt::GestureFlags flags = Qt::GestureFlags());
   void ungrabGesture (Qt::GestureType type);
public:
   void setWindowTitle (const const class QString &  );
   void setStyleSheet (const const class QString &  styleSheet);
public:
   class QString styleSheet ()const volatile restrict ;
   class QString windowTitle ()const volatile restrict ;
   void setWindowIcon (const const class QIcon &  icon);
   class QIcon windowIcon ()const volatile restrict ;
   void setWindowIconText (const const class QString &  );
   class QString windowIconText ()const volatile restrict ;
   void setWindowRole (const const class QString &  );
   class QString windowRole ()const volatile restrict ;
   void setWindowFilePath (const const class QString &  filePath);
   class QString windowFilePath ()const volatile restrict ;
   void setWindowOpacity (qreal level);
   qreal windowOpacity ()const volatile restrict ;
   _Bool isWindowModified ()const volatile restrict ;
   void setToolTip (const const class QString &  );
   class QString toolTip ()const volatile restrict ;
   void setToolTipDuration (int msec);
   int toolTipDuration ()const volatile restrict ;
   void setStatusTip (const const class QString &  );
   class QString statusTip ()const volatile restrict ;
   void setWhatsThis (const const class QString &  );
   class QString whatsThis ()const volatile restrict ;
   class QString accessibleName ()const volatile restrict ;
   void setAccessibleName (const const class QString &  name);
   class QString accessibleDescription ()const volatile restrict ;
   void setAccessibleDescription (const const class QString &  description);
   void setLayoutDirection (Qt::LayoutDirection direction);
   Qt::LayoutDirection layoutDirection ()const volatile restrict ;
   void unsetLayoutDirection ();
   void setLocale (const const class QLocale &  locale);
   class QLocale locale ()const volatile restrict ;
   void unsetLocale ();
   inline _Bool isRightToLeft ()const volatile restrict ;
   inline _Bool isLeftToRight ()const volatile restrict ;
public:
   inline void setFocus ();
public:
   _Bool isActiveWindow ()const volatile restrict ;
   void activateWindow ();
   void clearFocus ();
   void setFocus (Qt::FocusReason reason);
   Qt::FocusPolicy focusPolicy ()const volatile restrict ;
   void setFocusPolicy (Qt::FocusPolicy policy);
   _Bool hasFocus ()const volatile restrict ;
   static static void setTabOrder (class QWidget *  , class QWidget *  );
   void setFocusProxy (class QWidget *  );
   class QWidget *  focusProxy ()const volatile restrict ;
   Qt::ContextMenuPolicy contextMenuPolicy ()const volatile restrict ;
   void setContextMenuPolicy (Qt::ContextMenuPolicy policy);
   void grabMouse ();
   void grabMouse (const const class QCursor &  );
   void releaseMouse ();
   void grabKeyboard ();
   void releaseKeyboard ();
   int grabShortcut (const const class QKeySequence &  key, Qt::ShortcutContext context = Qt::WindowShortcut);
   void releaseShortcut (int id);
   void setShortcutEnabled (int id, _Bool enable = true);
   void setShortcutAutoRepeat (int id, _Bool enable = true);
   static static class QWidget *  mouseGrabber ();
   static static class QWidget *  keyboardGrabber ();
   inline _Bool updatesEnabled ()const volatile restrict ;
   void setUpdatesEnabled (_Bool enable);
   class QGraphicsProxyWidget *  graphicsProxyWidget ()const volatile restrict ;
public:
   void update ();
   void repaint ();
public:
   inline void update (int x, int y, int w, int h);
   void update (const const class QRect &  );
   void update (const const class QRegion &  );
   void repaint (int x, int y, int w, int h);
   void repaint (const const class QRect &  );
   void repaint (const const class QRegion &  );
public:
   virtual void setVisible (_Bool visible);
   void setHidden (_Bool hidden);
   void show ();
   void hide ();
   void showMinimized ();
   void showMaximized ();
   void showFullScreen ();
   void showNormal ();
   _Bool close ();
   void raise ();
   void lower ();
public:
   void stackUnder (class QWidget *  );
   void move (int x, int y);
   void move (const const class QPoint &  );
   void resize (int w, int h);
   void resize (const const class QSize &  );
   inline void setGeometry (int x, int y, int w, int h);
   void setGeometry (const const class QRect &  );
   class QByteArray saveGeometry ()const volatile restrict ;
   _Bool restoreGeometry (const const class QByteArray &  geometry);
   void adjustSize ();
   _Bool isVisible ()const volatile restrict ;
   _Bool isVisibleTo (const const class QWidget *  )const volatile restrict ;
   inline _Bool isHidden ()const volatile restrict ;
   _Bool isMinimized ()const volatile restrict ;
   _Bool isMaximized ()const volatile restrict ;
   _Bool isFullScreen ()const volatile restrict ;
   Qt::WindowStates windowState ()const volatile restrict ;
   void setWindowState (Qt::WindowStates state);
   void overrideWindowState (Qt::WindowStates state);
   virtual class QSize sizeHint ()const volatile restrict ;
   virtual class QSize minimumSizeHint ()const volatile restrict ;
   class QSizePolicy sizePolicy ()const volatile restrict ;
   void setSizePolicy (class QSizePolicy );
   inline void setSizePolicy (class QSizePolicy::Policy horizontal, class QSizePolicy::Policy vertical);
   virtual int heightForWidth (int )const volatile restrict ;
   virtual _Bool hasHeightForWidth ()const volatile restrict ;
   class QRegion visibleRegion ()const volatile restrict ;
   void setContentsMargins (int left, int top, int right, int bottom);
   void setContentsMargins (const const class QMargins &  margins);
   void getContentsMargins (int *  left, int *  top, int *  right, int *  bottom)const volatile restrict ;
   class QMargins contentsMargins ()const volatile restrict ;
   class QRect contentsRect ()const volatile restrict ;
public:
   class QLayout *  layout ()const volatile restrict ;
   void setLayout (class QLayout *  );
   void updateGeometry ();
   void setParent (class QWidget *  parent);
   void setParent (class QWidget *  parent, Qt::WindowFlags f);
   void scroll (int dx, int dy);
   void scroll (int dx, int dy, const const class QRect &  );
   class QWidget *  focusWidget ()const volatile restrict ;
   class QWidget *  nextInFocusChain ()const volatile restrict ;
   class QWidget *  previousInFocusChain ()const volatile restrict ;
   _Bool acceptDrops ()const volatile restrict ;
   void setAcceptDrops (_Bool on);
   void addAction (class QAction *  action);
   void addActions (QList actions);
   void insertActions (class QAction *  before, QList actions);
   void insertAction (class QAction *  before, class QAction *  action);
   void removeAction (class QAction *  action);
   QList actions ()const volatile restrict ;
   class QWidget *  parentWidget ()const volatile restrict ;
   void setWindowFlags (Qt::WindowFlags type);
   inline Qt::WindowFlags windowFlags ()const volatile restrict ;
   void setWindowFlag (Qt::WindowType , _Bool on = true);
   void overrideWindowFlags (Qt::WindowFlags type);
   inline Qt::WindowType windowType ()const volatile restrict ;
   static static class QWidget *  find (WId );
   inline class QWidget *  childAt (int x, int y)const volatile restrict ;
   class QWidget *  childAt (const const class QPoint &  p)const volatile restrict ;
   void setAttribute (Qt::WidgetAttribute , _Bool on = true);
   inline _Bool testAttribute (Qt::WidgetAttribute )const volatile restrict ;
   virtual class QPaintEngine *  paintEngine ()const volatile restrict ;
   void ensurePolished ()const volatile restrict ;
   _Bool isAncestorOf (const const class QWidget *  child)const volatile restrict ;
   _Bool autoFillBackground ()const volatile restrict ;
   void setAutoFillBackground (_Bool enabled);
   class QBackingStore *  backingStore ()const volatile restrict ;
   class QWindow *  windowHandle ()const volatile restrict ;
   static static class QWidget *  createWindowContainer (class QWindow *  window, class QWidget *  parent = , Qt::WindowFlags flags = Qt::WindowFlags());
protected:
   void windowTitleChanged (const const class QString &  title);
   void windowIconChanged (const const class QIcon &  icon);
   void windowIconTextChanged (const const class QString &  iconText);
   void customContextMenuRequested (const const class QPoint &  pos);
protected:
   virtual _Bool event (class QEvent *  event);
   virtual void mousePressEvent (class QMouseEvent *  event);
   virtual void mouseReleaseEvent (class QMouseEvent *  event);
   virtual void mouseDoubleClickEvent (class QMouseEvent *  event);
   virtual void mouseMoveEvent (class QMouseEvent *  event);
   virtual void wheelEvent (class QWheelEvent *  event);
   virtual void keyPressEvent (class QKeyEvent *  event);
   virtual void keyReleaseEvent (class QKeyEvent *  event);
   virtual void focusInEvent (class QFocusEvent *  event);
   virtual void focusOutEvent (class QFocusEvent *  event);
   virtual void enterEvent (class QEvent *  event);
   virtual void leaveEvent (class QEvent *  event);
   virtual void paintEvent (class QPaintEvent *  event);
   virtual void moveEvent (class QMoveEvent *  event);
   virtual void resizeEvent (class QResizeEvent *  event);
   virtual void closeEvent (class QCloseEvent *  event);
   virtual void contextMenuEvent (class QContextMenuEvent *  event);
   virtual void tabletEvent (class QTabletEvent *  event);
   virtual void actionEvent (class QActionEvent *  event);
   virtual void dragEnterEvent (class QDragEnterEvent *  event);
   virtual void dragMoveEvent (class QDragMoveEvent *  event);
   virtual void dragLeaveEvent (class QDragLeaveEvent *  event);
   virtual void dropEvent (class QDropEvent *  event);
   virtual void showEvent (class QShowEvent *  event);
   virtual void hideEvent (class QHideEvent *  event);
   virtual _Bool nativeEvent (const const class QByteArray &  eventType, void *  message, long *  result);
   virtual void changeEvent (class QEvent *  );
   virtual int metric (enum QPaintDevice::PaintDeviceMetric )const volatile restrict ;
   void initPainter (class QPainter *  painter)const volatile restrict ;
   class QPaintDevice *  redirected (class QPoint *  offset)const volatile restrict ;
   class QPainter *  sharedPainter ()const volatile restrict ;
   virtual void inputMethodEvent (class QInputMethodEvent *  );
public:
   virtual class QVariant inputMethodQuery (Qt::InputMethodQuery )const volatile restrict ;
   Qt::InputMethodHints inputMethodHints ()const volatile restrict ;
   void setInputMethodHints (Qt::InputMethodHints hints);
protected:
   void updateMicroFocus ();
protected:
   void create (WId  = 0, _Bool initializeWindow = true, _Bool destroyOldWindow = true);
   void destroy (_Bool destroyWindow = true, _Bool destroySubWindows = true);
   virtual _Bool focusNextPrevChild (_Bool next);
   inline _Bool focusNextChild ();
   inline _Bool focusPreviousChild ();
protected:
   constructor void QWidget (class QWidgetPrivate &  d, class QWidget *  parent, Qt::WindowFlags f);
private:
   void setBackingStore (class QBackingStore *  store);
   _Bool testAttribute_helper (Qt::WidgetAttribute )const volatile restrict ;
   class QLayout *  takeLayout ();
   friend qt_qwidget_data;
   friend qt_widget_private;
private:
   constructor copyconstructor converter void QWidget (const const class QWidget &  );
   class QWidget &  operator= (const const class QWidget &  );
}; // end of QWidget
inline QFlags operator| (class QWidget::RenderFlags::enum_type f1, class QWidget::RenderFlags::enum_type f2);
inline QFlags operator| (class QWidget::RenderFlags::enum_type f1, QFlags f2);
inline class QIncompatibleFlag operator| (class QWidget::RenderFlags::enum_type f1, int f2);
inline class QWidget *  qobject_cast (class QObject *  o);
inline const const class QWidget *  qobject_cast (const const class QObject *  o);
inline class QWidget *  childAt (int ax, int ay)const volatile restrict ;
inline Qt::WindowType windowType ()const volatile restrict ;
inline Qt::WindowFlags windowFlags ()const volatile restrict ;
inline _Bool isTopLevel ()const volatile restrict ;
inline _Bool isWindow ()const volatile restrict ;
inline _Bool isEnabled ()const volatile restrict ;
inline _Bool isModal ()const volatile restrict ;
inline _Bool isEnabledToTLW ()const volatile restrict ;
inline int minimumWidth ()const volatile restrict ;
inline int minimumHeight ()const volatile restrict ;
inline int maximumWidth ()const volatile restrict ;
inline int maximumHeight ()const volatile restrict ;
inline void setMinimumSize (const const class QSize &  s);
inline void setMaximumSize (const const class QSize &  s);
inline void setSizeIncrement (const const class QSize &  s);
inline void setBaseSize (const const class QSize &  s);
inline const const class QFont &  font ()const volatile restrict ;
inline class QFontMetrics fontMetrics ()const volatile restrict ;
inline class QFontInfo fontInfo ()const volatile restrict ;
inline void setMouseTracking (_Bool enable);
inline _Bool hasMouseTracking ()const volatile restrict ;
inline _Bool underMouse ()const volatile restrict ;
inline void setTabletTracking (_Bool enable);
inline _Bool hasTabletTracking ()const volatile restrict ;
inline _Bool updatesEnabled ()const volatile restrict ;
inline void update (int ax, int ay, int aw, int ah);
inline _Bool isVisible ()const volatile restrict ;
inline _Bool isHidden ()const volatile restrict ;
inline void move (int ax, int ay);
inline void resize (int w, int h);
inline void setGeometry (int ax, int ay, int aw, int ah);
inline class QRect rect ()const volatile restrict ;
inline const const class QRect &  geometry ()const volatile restrict ;
inline class QSize size ()const volatile restrict ;
inline int width ()const volatile restrict ;
inline int height ()const volatile restrict ;
inline class QWidget *  parentWidget ()const volatile restrict ;
inline void setSizePolicy (class QSizePolicy::Policy hor, class QSizePolicy::Policy ver);
inline _Bool testAttribute (Qt::WidgetAttribute attribute)const volatile restrict ;
class QDebug operator<< (class QDebug , const const class QWidget *  );
typedef enum QtValidLicenseForGuiModule QtGuiModule;
class QIconPrivate{
}; // end of QIconPrivate
class QIconEngine{
}; // end of QIconEngine
class QIconEngineV2{
}; // end of QIconEngineV2
class QIcon{
   class QIcon{
   }; // end of QIcon
public:
   enum Mode
   {
      Normal,
      Disabled,
      Active,
      Selected
   }; // end of Mode
   enum State
   {
      On,
      Off
   }; // end of State
   constructor void QIcon ();
   constructor converter void QIcon (const const class QPixmap &  pixmap);
   constructor copyconstructor converter void QIcon (const const class QIcon &  other);
   constructor explicit void QIcon (const const class QString &  fileName);
   constructor explicit void QIcon (class QIconEngine *  engine);
   constructor explicit void QIcon (class QIconEngineV2 *  engine);
   destructor void ~QIcon ();
   class QIcon &  operator= (const const class QIcon &  other);
   inline void swap (class QIcon &  other);
   converter class QVariant operator QVariant ()const volatile restrict ;
   class QPixmap pixmap (const const class QSize &  size, enum QIcon::Mode mode = Normal, enum QIcon::State state = Off)const volatile restrict ;
   inline class QPixmap pixmap (int w, int h, enum QIcon::Mode mode = Normal, enum QIcon::State state = Off)const volatile restrict ;
   inline class QPixmap pixmap (int extent, enum QIcon::Mode mode = Normal, enum QIcon::State state = Off)const volatile restrict ;
   class QSize actualSize (const const class QSize &  size, enum QIcon::Mode mode = Normal, enum QIcon::State state = Off)const volatile restrict ;
   class QString name ()const volatile restrict ;
   void paint (class QPainter *  painter, const const class QRect &  rect, Qt::Alignment alignment = Qt::AlignCenter, enum QIcon::Mode mode = Normal, enum QIcon::State state = Off)const volatile restrict ;
   inline void paint (class QPainter *  painter, int x, int y, int w, int h, Qt::Alignment alignment = Qt::AlignCenter, enum QIcon::Mode mode = Normal, enum QIcon::State state = Off)const volatile restrict ;
   _Bool isNull ()const volatile restrict ;
   _Bool isDetached ()const volatile restrict ;
   void detach ();
   int serialNumber ()const volatile restrict ;
   qint64 cacheKey ()const volatile restrict ;
   void addPixmap (const const class QPixmap &  pixmap, enum QIcon::Mode mode = Normal, enum QIcon::State state = Off);
   void addFile (const const class QString &  fileName, const const class QSize &  size = class QSize(), enum QIcon::Mode mode = Normal, enum QIcon::State state = Off);
   QList availableSizes (enum QIcon::Mode mode = Normal, enum QIcon::State state = Off)const volatile restrict ;
   static static class QIcon fromTheme (const const class QString &  name, const const class QIcon &  fallback = class QIcon());
   static static _Bool hasThemeIcon (const const class QString &  name);
   static static class QStringList themeSearchPaths ();
   static static void setThemeSearchPaths (const const class QStringList &  searchpath);
   static static class QString themeName ();
   static static void setThemeName (const const class QString &  path);
private:
   friend operator<<;
   friend operator>>;
public:
   typedef class QIconPrivate *  QIcon::DataPtr;
   inline DataPtr &  data_ptr ();
}; // end of QIcon
inline _Bool qIsDetached (class QIcon &  t);
inline void qSwap (class QIcon &  value1, class QIcon &  value2);
namespace std
{
   inline void swap (::QIcon &  value1, ::QIcon &  value2);
} // end of std
class QDataStream &  operator<< (class QDataStream &  , const const class QIcon &  );
class QDataStream &  operator>> (class QDataStream &  , class QIcon &  );
/* variable */ int abstractbutton;
class QButtonGroup{
}; // end of QButtonGroup
class QAbstractButtonPrivate{
}; // end of QAbstractButtonPrivate
class QAbstractButton : public:
class QWidget{
   class QAbstractButton{
   }; // end of QAbstractButton
public:
   template < typename T >
      inline void qt_check_for_QOBJECT_macro (const const T &  _q_argument)const volatile restrict ;
   /* variable */ static const const struct QMetaObject staticMetaObject;
   virtual const const struct QMetaObject *  metaObject ()const volatile restrict ;
   virtual void *  qt_metacast (const const char *  );
   static inline static class QString tr (const const char *  s, const const char *  c = 0);
   static inline static class QString trUtf8 (const const char *  s, const const char *  c = 0);
   static inline static class QString tr (const const char *  s, const const char *  c, int n);
   static inline static class QString trUtf8 (const const char *  s, const const char *  c, int n);
   virtual int qt_metacall (struct QMetaObject::Call , int , void *  *  );
private:
   /* variable */ static const const struct QMetaObjectExtraData staticMetaObjectExtraData;
   static static void qt_static_metacall (class QObject *  , struct QMetaObject::Call , int , void *  *  );
public:
   constructor explicit void QAbstractButton (class QWidget *  parent = );
   virtual destructor void ~QAbstractButton ();
   void setText (const const class QString &  text);
   class QString text ()const volatile restrict ;
   void setIcon (const const class QIcon &  icon);
   class QIcon icon ()const volatile restrict ;
   class QSize iconSize ()const volatile restrict ;
   void setShortcut (const const class QKeySequence &  key);
   class QKeySequence shortcut ()const volatile restrict ;
   void setCheckable (_Bool );
   _Bool isCheckable ()const volatile restrict ;
   _Bool isChecked ()const volatile restrict ;
   void setDown (_Bool );
   _Bool isDown ()const volatile restrict ;
   void setAutoRepeat (_Bool );
   _Bool autoRepeat ()const volatile restrict ;
   void setAutoRepeatDelay (int );
   int autoRepeatDelay ()const volatile restrict ;
   void setAutoRepeatInterval (int );
   int autoRepeatInterval ()const volatile restrict ;
   void setAutoExclusive (_Bool );
   _Bool autoExclusive ()const volatile restrict ;
   class QButtonGroup *  group ()const volatile restrict ;
public:
   void setIconSize (const const class QSize &  size);
   void animateClick (int msec = 100);
   void click ();
   void toggle ();
   void setChecked (_Bool );
protected:
   void pressed ();
   void released ();
   void clicked (_Bool checked = false);
   void toggled (_Bool checked);
protected:
   virtual void paintEvent (class QPaintEvent *  e);
   virtual _Bool hitButton (const const class QPoint &  pos)const volatile restrict ;
   virtual void checkStateSet ();
   virtual void nextCheckState ();
   virtual _Bool event (class QEvent *  e);
   virtual void keyPressEvent (class QKeyEvent *  e);
   virtual void keyReleaseEvent (class QKeyEvent *  e);
   virtual void mousePressEvent (class QMouseEvent *  e);
   virtual void mouseReleaseEvent (class QMouseEvent *  e);
   virtual void mouseMoveEvent (class QMouseEvent *  e);
   virtual void focusInEvent (class QFocusEvent *  e);
   virtual void focusOutEvent (class QFocusEvent *  e);
   virtual void changeEvent (class QEvent *  e);
   virtual void timerEvent (class QTimerEvent *  e);
protected:
   constructor converter void QAbstractButton (class QAbstractButtonPrivate &  dd, class QWidget *  parent = );
private:
   inline class QAbstractButtonPrivate *  d_func ();
   inline const const class QAbstractButtonPrivate *  d_func ()const volatile restrict ;
   constructor copyconstructor converter void QAbstractButton (const const class QAbstractButton &  );
   class QAbstractButton &  operator= (const const class QAbstractButton &  );
}; // end of QAbstractButton
/* variable */ int pushbutton;
class QPushButtonPrivate{
}; // end of QPushButtonPrivate
class QMenu{
}; // end of QMenu
class QStyleOptionButton{
}; // end of QStyleOptionButton
class QPushButton : public:
class QAbstractButton{
   class QPushButton{
   }; // end of QPushButton
public:
   template < typename T >
      inline void qt_check_for_QOBJECT_macro (const const T &  _q_argument)const volatile restrict ;
   /* variable */ static const const struct QMetaObject staticMetaObject;
   virtual const const struct QMetaObject *  metaObject ()const volatile restrict ;
   virtual void *  qt_metacast (const const char *  );
   static inline static class QString tr (const const char *  s, const const char *  c = 0);
   static inline static class QString trUtf8 (const const char *  s, const const char *  c = 0);
   static inline static class QString tr (const const char *  s, const const char *  c, int n);
   static inline static class QString trUtf8 (const const char *  s, const const char *  c, int n);
   virtual int qt_metacall (struct QMetaObject::Call , int , void *  *  );
private:
   /* variable */ static const const struct QMetaObjectExtraData staticMetaObjectExtraData;
   static static void qt_static_metacall (class QObject *  , struct QMetaObject::Call , int , void *  *  );
public:
   constructor explicit void QPushButton (class QWidget *  parent = );
   constructor explicit void QPushButton (const const class QString &  text, class QWidget *  parent = );
   constructor void QPushButton (const const class QIcon &  icon, const const class QString &  text, class QWidget *  parent = );
   virtual destructor void ~QPushButton ();
   virtual class QSize sizeHint ()const volatile restrict ;
   virtual class QSize minimumSizeHint ()const volatile restrict ;
   _Bool autoDefault ()const volatile restrict ;
   void setAutoDefault (_Bool );
   _Bool isDefault ()const volatile restrict ;
   void setDefault (_Bool );
   void setMenu (class QMenu *  menu);
   class QMenu *  menu ()const volatile restrict ;
   void setFlat (_Bool );
   _Bool isFlat ()const volatile restrict ;
public:
   void showMenu ();
protected:
   virtual _Bool event (class QEvent *  e);
   virtual void paintEvent (class QPaintEvent *  );
   virtual void keyPressEvent (class QKeyEvent *  );
   virtual void focusInEvent (class QFocusEvent *  );
   virtual void focusOutEvent (class QFocusEvent *  );
   void initStyleOption (class QStyleOptionButton *  option)const volatile restrict ;
   constructor converter void QPushButton (class QPushButtonPrivate &  dd, class QWidget *  parent = );
public:
private:
   constructor copyconstructor converter void QPushButton (const const class QPushButton &  );
   class QPushButton &  operator= (const const class QPushButton &  );
   inline class QPushButtonPrivate *  d_func ();
   inline const const class QPushButtonPrivate *  d_func ()const volatile restrict ;
}; // end of QPushButton
int main (int argc, char *  *  argv);