update boost

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@5047 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Lars Gullik Bjønnes 2002-08-20 21:50:08 +00:00
parent 26efdc41b3
commit 5d443af86a
43 changed files with 1661 additions and 922 deletions

View File

@ -1,3 +1,11 @@
2002-08-20 Lars Gullik Bjønnes <larsbj@gullik.net>
* update boost, we have almost no local changes to the boost files
now.
[But still: Remember that all changes to boost code _must_ go
through me, then I can sync up with my boost tree, and also
request changes on the boost developers list.]
2002-08-09 Lars Gullik Bjønnes <larsbj@gullik.net>
* update boost

View File

@ -1,163 +0,0 @@
// -*-C++-*- array_traits.hpp
// <!!---------------------------------------------------------------------->
// <!! Copyright (C) 1998 Dietmar Kuehl, Claas Solutions GmbH >
// <!!>
// <!! Permission to use, copy, modify, distribute and sell this >
// <!! software for any purpose is hereby granted without fee, provided >
// <!! that the above copyright notice appears in all copies and that >
// <!! both that copyright notice and this permission notice appear in >
// <!! supporting documentation. Dietmar Kuehl and Claas Solutions make no >
// <!! representations about the suitability of this software for any >
// <!! purpose. It is provided "as is" without express or implied warranty. >
// <!!---------------------------------------------------------------------->
// Author: Dietmar Kuehl dietmar.kuehl@claas-solutions.de
// Title: STL container support, including support for built-in arrays
// Version: $Id: array_traits.hpp,v 1.5 2002/08/09 08:51:50 larsbj Exp $
// Dec 4, 2000 Added some more typedefs to array_traits including
// an iterator type to supersede iter_type. -J.Siek
// --------------------------------------------------------------------------
#if !defined(BOOST_ARRAY_TRAITS_HPP)
#define BOOST_ARRAY_TRAITS_HPP 1
// --------------------------------------------------------------------------
#include <cstddef>
#include <boost/config.hpp>
// --------------------------------------------------------------------------
namespace boost
{
// --- a general version of container traits ------------------------------
template <typename Cont>
struct array_traits
{
typedef typename Cont::iterator iterator;
typedef iterator iter_type; // just for backward compatibility
typedef typename Cont::size_type size_type;
typedef typename Cont::value_type value_type;
typedef typename Cont::reference reference;
typedef typename Cont::pointer pointer;
static iterator begin(Cont &cont) { return cont.begin(); }
static iterator end(Cont &cont) { return cont.end(); }
static size_type size(Cont &cont) { return cont.size(); }
};
// --- a version of container traits for constant constainer --------------
template <typename Cont>
struct array_traits<Cont const>
{
typedef typename Cont::const_iterator iterator;
typedef iterator iter_type; // just for backward compatibility
typedef typename Cont::size_type size_type;
typedef typename Cont::value_type value_type;
typedef typename Cont::const_reference reference;
typedef typename Cont::const_pointer pointer;
static iterator begin(Cont const &cont) { return cont.begin(); }
static iterator end(Cont const &cont) { return cont.end(); }
static size_type size(Cont const &cont) { return cont.size(); }
};
// --- a special version for non-const built-in arrays --------------------
template <typename T, std::size_t sz>
struct array_traits<T[sz]>
{
typedef T* iterator;
typedef iterator iter_type; // just for backward compatibility
typedef T value_type;
typedef value_type& reference;
typedef std::size_t size_type;
static iterator begin(T (&array)[sz]) { return array; }
static iterator end(T (&array)[sz]) { return array + sz; }
static size_type size(T (&)[sz]) { return sz; }
};
// --- a special version for const built-in arrays ------------------------
template <typename T, std::size_t sz>
struct array_traits<T const[sz]>
{
typedef T const* iterator;
typedef iterator iter_type; // just for backward compatibility
typedef std::size_t size_type;
typedef T const value_type;
typedef value_type& reference;
typedef value_type* pointer;
static iterator begin(T const (&array)[sz]) { return array; }
static iterator end(T const (&array)[sz]) { return array + sz; }
static size_type size(T const (&)[sz]) { return sz; }
};
template <typename T, int sz>
inline char (&sizer(T (&)[sz]))[sz];
// --- general version of the global accessor functions ---------------------
template <typename Cont>
inline typename array_traits<Cont>::iterator
begin(Cont &cont) { return array_traits<Cont>::begin(cont); }
template <typename Cont>
inline typename array_traits<Cont>::iterator
end(Cont &cont) { return array_traits<Cont>::end(cont); }
template <typename Cont>
inline typename array_traits<Cont>::size_type
size(Cont &cont) { return array_traits<Cont>::size(cont); }
// --- Actually the above should be sufficient but compilers seem -----------
// --- to welcome some help. So here we go:
template <typename T, std::size_t sz>
inline typename array_traits<T[sz]>::iterator
begin(T (&a)[sz]) { return array_traits<T[sz]>::begin(a); }
template <typename T, std::size_t sz>
inline typename array_traits<T[sz]>::iterator
end(T (&a)[sz]) { return array_traits<T[sz]>::end(a); }
template <typename T, std::size_t sz>
inline typename array_traits<T[sz]>::size_type
size(T (&a)[sz]) { return array_traits<T[sz]>::size(a); }
// --- Apparently the compilers also need some specific help, ---------------
// --- EDG-2.39 wants to pass around pointers in some contexts --------------
#ifdef __EDG__
template <typename T>
struct array_traits<T*>
{
typedef T* iterator;
typedef iterator iter_type; // just for backward compatibility
typedef std::size_t size_type;
};
#endif
// --- egcs-1998-11-22 apparently likes an extra const version: -------------
#ifdef __GNUG__
template <typename T, std::size_t sz>
inline typename array_traits<T const[sz]>::iterator
begin(T const(&a)[sz]) { return array_traits<T const[sz]>::begin(a); }
template <typename T, std::size_t sz>
inline typename array_traits<T const[sz]>::iterator
end(T const(&a)[sz]) { return array_traits<T const[sz]>::end(a); }
template <typename T, std::size_t sz>
inline typename array_traits<T const[sz]>::size_type
size(T const (&a)[sz]) { return array_traits<T const[sz]>::size(a); }
#endif
}
// -----------------------------------------------------------------------------
#endif /* BOOST_ARRAY_TRAITS_HPP */

View File

@ -30,6 +30,8 @@
# define BOOST_HAS_TWO_ARG_USE_FACET
// C lib functions aren't in namespace std either:
# define BOOST_NO_STDC_NAMESPACE
// and nor is <exception>
# define BOOST_NO_EXCEPTION_STD_NAMESPACE
# endif
// 3.06 appears to have (non-sgi versions of) <hash_set> & <hash_map>,
// and no <slist> at all

View File

@ -0,0 +1,33 @@
// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
// distribute this software is granted provided this copyright notice appears
// in all copies. This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
// See http://www.boost.org for most recent version.
// Commeau STL:
#if !defined(__LIBCOMO__)
# include <utility>
# if !defined(__LIBCOMO__)
# error "This is not the Comeau STL!"
# endif
#endif
//
// std::streambuf<wchar_t> is non-standard:
//
#if __LIBCOMO_VERSION__ <= 22
# define BOOST_NO_STD_WSTREAMBUF
#endif
//
// Intrinsic type_traits support.
// The SGI STL has it's own __type_traits class, which
// has intrinsic compiler support with SGI's compilers.
// Whatever map SGI style type traits to boost equivalents:
//
#define BOOST_HAS_SGI_TYPE_TRAITS
#define BOOST_STDLIB "Commeau standard library" BOOST_STRINGIZE(__LIBCOMO_VERSION__)

View File

@ -64,6 +64,10 @@
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
# define BOOST_NO_STD_ALLOCATOR
#endif
//
// however we always have at least a partial allocator:
//
#define BOOST_HAS_PARTIAL_STD_ALLOCATOR
#if !defined(_STLP_MEMBER_TEMPLATE_CLASSES)
# define BOOST_NO_STD_ALLOCATOR
@ -99,6 +103,7 @@
|| defined(_STLP_USE_OWN_NAMESPACE)) \
&& (defined(__STL_VENDOR_GLOBAL_CSTD) || defined (_STLP_VENDOR_GLOBAL_CSTD))
# define BOOST_NO_STDC_NAMESPACE
# define BOOST_NO_EXCEPTION_STD_NAMESPACE
# endif
#elif __BORLANDC__ < 0x560
// STLport doesn't import std::abs correctly:

View File

@ -132,6 +132,13 @@
# define BOOST_NO_STD_ALLOCATOR
# endif
//
// If we have a standard allocator, then we have a partial one as well:
//
#if !defined(BOOST_NO_STD_ALLOCATOR)
# define BOOST_HAS_PARTIAL_STD_ALLOCATOR
#endif
//
// We can't have a working std::use_facet if there is no std::locale:
//

View File

@ -70,25 +70,3 @@
#define BOOST_NO_WREGEX 1
#define BOOST_NO_WSTRING 1
#ifdef BOOST_NO_EXCEPTIONS
//
// If there are no exceptions then we must report critical-errors
// the only way we know how; by terminating.
//
//#ifdef __BORLANDC__
// <cstdio> seems not to make stderr usable with Borland:
#include <cstdio>
//#endif
# define BOOST_NOEH_ASSERT(x)\
if(0 == (x))\
{\
std::fprintf(stderr, "Error: critical boost failure in \"%s\"", #x);\
std::abort();\
}
#else
//
// With exceptions then error handling is taken care of and
// there is no need for these checks:
//
# define BOOST_NOEH_ASSERT(x)
#endif

View File

@ -37,7 +37,14 @@ public:
lightweight_mutex()
{
// HPUX 10.20 / DCE has a nonstandard pthread_mutex_init
#if defined(__hpux) && defined(_DECTHREADS_)
pthread_mutex_init(&m_, pthread_mutexattr_default);
#else
pthread_mutex_init(&m_, 0);
#endif
}
~lightweight_mutex()

View File

@ -17,11 +17,13 @@
#include <boost/assert.hpp>
#include <boost/checked_delete.hpp>
#include <boost/throw_exception.hpp>
#include <boost/detail/atomic_count.hpp>
#include <cstddef> // for std::ptrdiff_t
#include <algorithm> // for std::swap
#include <functional> // for std::less
#include <cstddef> // for std::ptrdiff_t
#include <algorithm> // for std::swap
#include <functional> // for std::less
#include <new> // for std::bad_alloc
namespace boost
{
@ -38,22 +40,36 @@ public:
explicit shared_array(T * p = 0): px(p)
{
#ifndef BOOST_NO_EXCEPTIONS
try // prevent leak if new throws
{
pn = new count_type(1);
}
catch(...)
{
checked_array_delete(p);
boost::checked_array_delete(p);
throw;
}
#else
pn = new count_type(1);
if(pn == 0)
{
boost::checked_array_delete(p);
boost::throw_exception(std::bad_alloc());
}
#endif
}
~shared_array()
{
if(--*pn == 0)
{
checked_array_delete(px);
boost::checked_array_delete(px);
delete pn;
}
}

View File

@ -23,10 +23,12 @@
#endif
#include <boost/checked_delete.hpp>
#include <boost/throw_exception.hpp>
#include <boost/detail/lightweight_mutex.hpp>
#include <functional> // for std::less
#include <exception> // for std::exception
#include <new> // for std::bad_alloc
#ifdef __BORLANDC__
# pragma warn -8026 // Functions with excep. spec. are not expanded inline
@ -36,16 +38,31 @@
namespace boost
{
// The standard library that comes with Borland C++ 5.5.1
// defines std::exception and its members as having C calling
// convention (-pc). When the definition of use_count_is_zero
// is compiled with -ps, the compiler issues an error.
// Hence, the temporary #pragma option -pc below. The version
// check is deliberately conservative.
#if defined(__BORLANDC__) && __BORLANDC__ == 0x551
# pragma option push -pc
#endif
class use_count_is_zero: public std::exception
{
public:
virtual char const * what() const throw()
{
return "use_count_is_zero";
return "boost::use_count_is_zero";
}
};
#if defined(__BORLANDC__) && __BORLANDC__ == 0x551
# pragma option pop
#endif
class counted_base
{
private:
@ -55,14 +72,14 @@ private:
public:
counted_base():
use_count_(0), weak_count_(0)
use_count_(0), weak_count_(0)
{
}
// pre: initial_use_count <= initial_weak_count
explicit counted_base(long initial_use_count, long initial_weak_count):
use_count_(initial_use_count), weak_count_(initial_weak_count)
use_count_(initial_use_count), weak_count_(initial_weak_count)
{
}
@ -87,77 +104,74 @@ public:
virtual void destruct() // nothrow
{
delete this;
delete this;
}
void add_ref()
{
#ifdef BOOST_HAS_THREADS
mutex_type::scoped_lock lock(mtx_);
mutex_type::scoped_lock lock(mtx_);
#endif
#ifndef BOOST_NO_EXCEPTIONS
if(use_count_ == 0 && weak_count_ != 0) throw use_count_is_zero();
#endif
BOOST_NOEH_ASSERT(!(use_count_ == 0 && weak_count_ != 0));
++use_count_;
++weak_count_;
if(use_count_ == 0 && weak_count_ != 0) boost::throw_exception(boost::use_count_is_zero());
++use_count_;
++weak_count_;
}
void release() // nothrow
{
long new_use_count;
long new_weak_count;
long new_use_count;
long new_weak_count;
{
{
#ifdef BOOST_HAS_THREADS
mutex_type::scoped_lock lock(mtx_);
mutex_type::scoped_lock lock(mtx_);
#endif
new_use_count = --use_count_;
new_weak_count = --weak_count_;
}
new_use_count = --use_count_;
new_weak_count = --weak_count_;
}
if(new_use_count == 0)
{
dispose();
}
if(new_use_count == 0)
{
dispose();
}
if(new_weak_count == 0)
{
destruct();
}
if(new_weak_count == 0)
{
destruct();
}
}
void weak_add_ref() // nothrow
{
#ifdef BOOST_HAS_THREADS
mutex_type::scoped_lock lock(mtx_);
mutex_type::scoped_lock lock(mtx_);
#endif
++weak_count_;
++weak_count_;
}
void weak_release() // nothrow
{
long new_weak_count;
long new_weak_count;
{
{
#ifdef BOOST_HAS_THREADS
mutex_type::scoped_lock lock(mtx_);
mutex_type::scoped_lock lock(mtx_);
#endif
new_weak_count = --weak_count_;
}
new_weak_count = --weak_count_;
}
if(new_weak_count == 0)
{
destruct();
}
if(new_weak_count == 0)
{
destruct();
}
}
long use_count() const // nothrow
{
#ifdef BOOST_HAS_THREADS
mutex_type::scoped_lock lock(mtx_);
mutex_type::scoped_lock lock(mtx_);
#endif
return use_count_;
return use_count_;
}
private:
@ -188,6 +202,13 @@ inline void intrusive_ptr_release(counted_base * p)
namespace detail
{
//
// Borland's Codeguard trips up over the -Vx- option here:
//
#ifdef __CODEGUARD__
#pragma option push -Vx-
#endif
template<class P, class D> class counted_base_impl: public counted_base
{
private:
@ -203,13 +224,13 @@ public:
// pre: initial_use_count <= initial_weak_count, d(p) must not throw
counted_base_impl(P p, D d, long initial_use_count, long initial_weak_count):
counted_base(initial_use_count, initial_weak_count), ptr(p), del(d)
counted_base(initial_use_count, initial_weak_count), ptr(p), del(d)
{
}
virtual void dispose() // nothrow
{
del(ptr);
del(ptr);
}
};
@ -233,30 +254,39 @@ public:
explicit shared_count(counted_base * pi): pi_(pi) // never throws
{
pi_->add_ref();
pi_->add_ref();
}
template<class P, class D> shared_count(P p, D d, void const * = 0): pi_(0)
{
#ifndef BOOST_NO_EXCEPTIONS
try
{
pi_ = new counted_base_impl<P, D>(p, d, 1, 1);
}
catch(...)
{
d(p); // delete p
throw;
}
try
{
pi_ = new counted_base_impl<P, D>(p, d, 1, 1);
}
catch(...)
{
d(p); // delete p
throw;
}
#else
pi_ = new counted_base_impl<P, D>(p, d, 1, 1);
BOOST_NOEH_ASSERT(pi_);
pi_ = new counted_base_impl<P, D>(p, d, 1, 1);
if(pi_ == 0)
{
d(p); // delete p
boost::throw_exception(std::bad_alloc());
}
#endif
}
template<class P, class D> shared_count(P, D, counted_base * pi): pi_(pi)
{
pi_->add_ref();
pi_->add_ref();
}
#ifndef BOOST_NO_AUTO_PTR
@ -266,61 +296,66 @@ public:
template<typename Y>
explicit shared_count(std::auto_ptr<Y> & r): pi_(new counted_base_impl< Y *, checked_deleter<Y> >(r.get(), checked_deleter<Y>(), 1, 1))
{
r.release();
r.release();
}
#endif
~shared_count() // nothrow
{
pi_->release();
pi_->release();
}
shared_count(shared_count const & r): pi_(r.pi_) // nothrow
{
pi_->add_ref();
pi_->add_ref();
}
explicit shared_count(weak_count const & r); // throws use_count_is_zero when r.use_count() == 0
shared_count & operator= (shared_count const & r) // nothrow
{
counted_base * tmp = r.pi_;
tmp->add_ref();
pi_->release();
pi_ = tmp;
counted_base * tmp = r.pi_;
tmp->add_ref();
pi_->release();
pi_ = tmp;
return *this;
return *this;
}
void swap(shared_count & r) // nothrow
{
counted_base * tmp = r.pi_;
r.pi_ = pi_;
pi_ = tmp;
counted_base * tmp = r.pi_;
r.pi_ = pi_;
pi_ = tmp;
}
long use_count() const // nothrow
{
return pi_->use_count();
return pi_->use_count();
}
bool unique() const // nothrow
{
return pi_->use_count() == 1;
return pi_->use_count() == 1;
}
friend inline bool operator==(shared_count const & a, shared_count const & b)
{
return a.pi_ == b.pi_;
return a.pi_ == b.pi_;
}
friend inline bool operator<(shared_count const & a, shared_count const & b)
{
return std::less<counted_base *>()(a.pi_, b.pi_);
return std::less<counted_base *>()(a.pi_, b.pi_);
}
};
#ifdef __CODEGUARD__
#pragma option pop
#endif
class weak_count
{
private:
@ -337,59 +372,59 @@ public:
weak_count(shared_count const & r): pi_(r.pi_) // nothrow
{
pi_->weak_add_ref();
pi_->weak_add_ref();
}
weak_count(weak_count const & r): pi_(r.pi_) // nothrow
{
pi_->weak_add_ref();
pi_->weak_add_ref();
}
~weak_count() // nothrow
{
pi_->weak_release();
pi_->weak_release();
}
weak_count & operator= (shared_count const & r) // nothrow
{
counted_base * tmp = r.pi_;
tmp->weak_add_ref();
pi_->weak_release();
pi_ = tmp;
counted_base * tmp = r.pi_;
tmp->weak_add_ref();
pi_->weak_release();
pi_ = tmp;
return *this;
return *this;
}
weak_count & operator= (weak_count const & r) // nothrow
{
counted_base * tmp = r.pi_;
tmp->weak_add_ref();
pi_->weak_release();
pi_ = tmp;
counted_base * tmp = r.pi_;
tmp->weak_add_ref();
pi_->weak_release();
pi_ = tmp;
return *this;
return *this;
}
void swap(weak_count & r) // nothrow
{
counted_base * tmp = r.pi_;
r.pi_ = pi_;
pi_ = tmp;
counted_base * tmp = r.pi_;
r.pi_ = pi_;
pi_ = tmp;
}
long use_count() const // nothrow
{
return pi_->use_count();
return pi_->use_count();
}
friend inline bool operator==(weak_count const & a, weak_count const & b)
{
return a.pi_ == b.pi_;
return a.pi_ == b.pi_;
}
friend inline bool operator<(weak_count const & a, weak_count const & b)
{
return std::less<counted_base *>()(a.pi_, b.pi_);
return std::less<counted_base *>()(a.pi_, b.pi_);
}
};

View File

@ -17,14 +17,16 @@
#include <boost/assert.hpp>
#include <boost/checked_delete.hpp>
#include <boost/throw_exception.hpp>
#include <boost/detail/atomic_count.hpp>
#ifndef BOOST_NO_AUTO_PTR
#include <memory> // for std::auto_ptr
# include <memory> // for std::auto_ptr
#endif
#include <algorithm> // for std::swap
#include <functional> // for std::less
#include <algorithm> // for std::swap
#include <functional> // for std::less
#include <new> // for std::bad_alloc
namespace boost
{
@ -38,25 +40,40 @@ private:
public:
typedef T element_type;
typedef T value_type;
explicit shared_ptr(T * p = 0): px(p)
{
#ifndef BOOST_NO_EXCEPTIONS
try // prevent leak if new throws
{
pn = new count_type(1);
}
catch(...)
{
checked_delete(p);
boost::checked_delete(p);
throw;
}
#else
pn = new count_type(1);
if(pn == 0)
{
boost::checked_delete(p);
boost::throw_exception(std::bad_alloc());
}
#endif
}
~shared_ptr()
{
if(--*pn == 0)
{
checked_delete(px);
boost::checked_delete(px);
delete pn;
}
}

View File

@ -485,7 +485,7 @@ namespace boost {
struct get_arg8_type<true, Traits>
{
typedef typename Traits::arg8_type type;
};
};
template<bool GetIt, typename Traits>
struct get_arg9_type
@ -667,20 +667,20 @@ namespace boost {
#endif // ndef BOOST_FUNCTION_NO_DEPRECATED
typedef typename decoder::Allocator Allocator;
#else
typedef InR R;
typedef InT1 T1;
typedef InT2 T2;
typedef InT3 T3;
typedef InT4 T4;
typedef InT5 T5;
typedef InT6 T6;
typedef InT7 T7;
typedef InT8 T8;
typedef InT9 T9;
typedef InT10 T10;
typedef InPolicy Policy;
typedef InMixin Mixin;
typedef InAllocator Allocator;
typedef InR R;
typedef InT1 T1;
typedef InT2 T2;
typedef InT3 T3;
typedef InT4 T4;
typedef InT5 T5;
typedef InT6 T6;
typedef InT7 T7;
typedef InT8 T8;
typedef InT9 T9;
typedef InT10 T10;
typedef InPolicy Policy;
typedef InMixin Mixin;
typedef InAllocator Allocator;
#endif // def BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
typedef typename real_get_function_impl<
@ -855,7 +855,7 @@ namespace boost {
#ifndef BOOST_FUNCTION_NO_DEPRECATED
template<typename Functor>
BOOST_FUNCTION_DEPRECATED_PRE
void set(Functor BOOST_FUNCTION_TARGET_FIX(const &) f)
void set(Functor BOOST_FUNCTION_TARGET_FIX(const &) f)
{
BOOST_FUNCTION_DEPRECATED_INNER
self_type(f).swap(*this);

View File

@ -1,6 +1,6 @@
// Boost.Function library
// Copyright (C) 2001 Doug Gregor (gregod@cs.rpi.edu)
// Copyright (C) 2001, 2002 Doug Gregor (gregod@cs.rpi.edu)
//
// Permission to copy, use, sell and distribute this software is granted
// provided this copyright notice appears in all copies.
@ -32,12 +32,17 @@
# define BOOST_FUNCTION_TARGET_FIX(x)
#endif // not MSVC
#if defined (BOOST_MSVC) && (BOOST_MSVC >= 1300)
# define BOOST_FUNCTION_DEPRECATED_PRE __declspec(deprecated)
#ifdef BOOST_FUNCTION_SILENT_DEPRECATED
# define BOOST_FUNCTION_DEPRECATED_PRE
# define BOOST_FUNCTION_DEPRECATED_INNER
#else
# define BOOST_FUNCTION_DEPRECATED_PRE
# define BOOST_FUNCTION_DEPRECATED_INNER int deprecated;
# if defined (BOOST_MSVC) && (BOOST_MSVC >= 1300)
# define BOOST_FUNCTION_DEPRECATED_PRE __declspec(deprecated)
# define BOOST_FUNCTION_DEPRECATED_INNER
# else
# define BOOST_FUNCTION_DEPRECATED_PRE
# define BOOST_FUNCTION_DEPRECATED_INNER int deprecated;
# endif
#endif
namespace boost {
@ -52,13 +57,13 @@ namespace boost {
* so function requires a union of the two. */
union any_pointer
{
void* obj_ptr;
const void* const_obj_ptr;
void (*func_ptr)();
void* obj_ptr;
const void* const_obj_ptr;
void (*func_ptr)();
explicit any_pointer(void* p) : obj_ptr(p) {}
explicit any_pointer(const void* p) : const_obj_ptr(p) {}
explicit any_pointer(void (*p)()) : func_ptr(p) {}
explicit any_pointer(void* p) : obj_ptr(p) {}
explicit any_pointer(const void* p) : const_obj_ptr(p) {}
explicit any_pointer(void (*p)()) : func_ptr(p) {}
};
/**
@ -69,8 +74,8 @@ namespace boost {
*/
struct unusable
{
unusable() {}
template<typename T> unusable(const T&) {}
unusable() {}
template<typename T> unusable(const T&) {}
};
/* Determine the return type. This supports compilers that do not support
@ -82,13 +87,13 @@ namespace boost {
template<>
struct function_return_type<void>
{
typedef unusable type;
typedef unusable type;
};
// The operation type to perform on the given functor/function pointer
enum functor_manager_operation_type {
clone_functor_tag,
destroy_functor_tag
clone_functor_tag,
destroy_functor_tag
};
// Tags used to decide between different types of functions
@ -101,33 +106,33 @@ namespace boost {
template<typename F>
class get_function_tag
{
typedef typename ct_if<(is_pointer<F>::value),
function_ptr_tag,
function_obj_tag>::type ptr_or_obj_tag;
typedef typename ct_if<(is_pointer<F>::value),
function_ptr_tag,
function_obj_tag>::type ptr_or_obj_tag;
typedef typename ct_if<(is_member_pointer<F>::value),
member_ptr_tag,
ptr_or_obj_tag>::type ptr_or_obj_or_mem_tag;
typedef typename ct_if<(is_member_pointer<F>::value),
member_ptr_tag,
ptr_or_obj_tag>::type ptr_or_obj_or_mem_tag;
typedef typename ct_if<(is_reference_wrapper<F>::value),
function_obj_ref_tag,
ptr_or_obj_or_mem_tag>::type or_ref_tag;
typedef typename ct_if<(is_reference_wrapper<F>::value),
function_obj_ref_tag,
ptr_or_obj_or_mem_tag>::type or_ref_tag;
public:
typedef typename ct_if<(is_stateless<F>::value),
stateless_function_obj_tag,
or_ref_tag>::type type;
typedef typename ct_if<(is_stateless<F>::value),
stateless_function_obj_tag,
or_ref_tag>::type type;
};
// The trivial manager does nothing but return the same pointer (if we
// are cloning) or return the null pointer (if we are deleting).
inline any_pointer trivial_manager(any_pointer f,
functor_manager_operation_type op)
functor_manager_operation_type op)
{
if (op == clone_functor_tag)
return f;
else
return any_pointer(reinterpret_cast<void*>(0));
if (op == clone_functor_tag)
return f;
else
return any_pointer(reinterpret_cast<void*>(0));
}
/**
@ -138,118 +143,118 @@ namespace boost {
struct functor_manager
{
private:
typedef Functor functor_type;
typedef Functor functor_type;
// For function pointers, the manager is trivial
static inline any_pointer
manager(any_pointer function_ptr,
functor_manager_operation_type op,
function_ptr_tag)
{
if (op == clone_functor_tag)
return function_ptr;
else
return any_pointer(static_cast<void (*)()>(0));
}
// For function pointers, the manager is trivial
static inline any_pointer
manager(any_pointer function_ptr,
functor_manager_operation_type op,
function_ptr_tag)
{
if (op == clone_functor_tag)
return function_ptr;
else
return any_pointer(static_cast<void (*)()>(0));
}
// For function object pointers, we clone the pointer to each
// function has its own version.
static inline any_pointer
manager(any_pointer function_obj_ptr,
functor_manager_operation_type op,
function_obj_tag)
{
// For function object pointers, we clone the pointer to each
// function has its own version.
static inline any_pointer
manager(any_pointer function_obj_ptr,
functor_manager_operation_type op,
function_obj_tag)
{
#ifndef BOOST_NO_STD_ALLOCATOR
typedef typename Allocator::template rebind<functor_type>::other
allocator_type;
typedef typename allocator_type::pointer pointer_type;
typedef typename Allocator::template rebind<functor_type>::other
allocator_type;
typedef typename allocator_type::pointer pointer_type;
#else
typedef functor_type* pointer_type;
typedef functor_type* pointer_type;
#endif // BOOST_NO_STD_ALLOCATOR
# ifndef BOOST_NO_STD_ALLOCATOR
allocator_type allocator;
allocator_type allocator;
# endif // BOOST_NO_STD_ALLOCATOR
if (op == clone_functor_tag) {
functor_type* f =
static_cast<functor_type*>(function_obj_ptr.obj_ptr);
if (op == clone_functor_tag) {
functor_type* f =
static_cast<functor_type*>(function_obj_ptr.obj_ptr);
// Clone the functor
// Clone the functor
# ifndef BOOST_NO_STD_ALLOCATOR
pointer_type copy = allocator.allocate(1);
allocator.construct(copy, *f);
pointer_type copy = allocator.allocate(1);
allocator.construct(copy, *f);
// Get back to the original pointer type
functor_type* new_f = static_cast<functor_type*>(copy);
// Get back to the original pointer type
functor_type* new_f = static_cast<functor_type*>(copy);
# else
functor_type* new_f = new functor_type(*f);
functor_type* new_f = new functor_type(*f);
# endif // BOOST_NO_STD_ALLOCATOR
return any_pointer(static_cast<void*>(new_f));
}
else {
/* Cast from the void pointer to the functor pointer type */
functor_type* f =
reinterpret_cast<functor_type*>(function_obj_ptr.obj_ptr);
return any_pointer(static_cast<void*>(new_f));
}
else {
/* Cast from the void pointer to the functor pointer type */
functor_type* f =
reinterpret_cast<functor_type*>(function_obj_ptr.obj_ptr);
# ifndef BOOST_NO_STD_ALLOCATOR
/* Cast from the functor pointer type to the allocator's pointer
type */
pointer_type victim = static_cast<pointer_type>(f);
/* Cast from the functor pointer type to the allocator's pointer
type */
pointer_type victim = static_cast<pointer_type>(f);
// Destroy and deallocate the functor
allocator.destroy(victim);
allocator.deallocate(victim, 1);
// Destroy and deallocate the functor
allocator.destroy(victim);
allocator.deallocate(victim, 1);
# else
delete f;
delete f;
# endif // BOOST_NO_STD_ALLOCATOR
return any_pointer(static_cast<void*>(0));
}
}
return any_pointer(static_cast<void*>(0));
}
}
public:
/* Dispatch to an appropriate manager based on whether we have a
function pointer or a function object pointer. */
static any_pointer
manage(any_pointer functor_ptr, functor_manager_operation_type op)
{
typedef typename get_function_tag<functor_type>::type tag_type;
return manager(functor_ptr, op, tag_type());
}
/* Dispatch to an appropriate manager based on whether we have a
function pointer or a function object pointer. */
static any_pointer
manage(any_pointer functor_ptr, functor_manager_operation_type op)
{
typedef typename get_function_tag<functor_type>::type tag_type;
return manager(functor_ptr, op, tag_type());
}
};
// value=1 if the given type is not "unusable"
template<typename T>
struct count_if_used
{
BOOST_STATIC_CONSTANT(int, value = 1);
BOOST_STATIC_CONSTANT(int, value = 1);
};
// value=0 for unusable types
template<>
struct count_if_used<unusable>
{
BOOST_STATIC_CONSTANT(int, value = 0);
BOOST_STATIC_CONSTANT(int, value = 0);
};
// Count the number of arguments (from the given set) which are not
// "unusable" (therefore, count those arguments that are used).
template<typename T1, typename T2, typename T3, typename T4,
typename T5, typename T6, typename T7, typename T8,
typename T9, typename T10>
typename T5, typename T6, typename T7, typename T8,
typename T9, typename T10>
struct count_used_args
{
BOOST_STATIC_CONSTANT(int, value =
(count_if_used<T1>::value +
count_if_used<T2>::value +
count_if_used<T3>::value +
count_if_used<T4>::value +
count_if_used<T5>::value +
count_if_used<T6>::value +
count_if_used<T7>::value +
count_if_used<T8>::value +
count_if_used<T9>::value +
count_if_used<T10>::value));
BOOST_STATIC_CONSTANT(int, value =
(count_if_used<T1>::value +
count_if_used<T2>::value +
count_if_used<T3>::value +
count_if_used<T4>::value +
count_if_used<T5>::value +
count_if_used<T6>::value +
count_if_used<T7>::value +
count_if_used<T8>::value +
count_if_used<T9>::value +
count_if_used<T10>::value));
};
} // end namespace function
} // end namespace detail
@ -270,8 +275,8 @@ namespace boost {
public: // should be protected, but GCC 2.95.3 will fail to allow access
detail::function::any_pointer (*manager)(
detail::function::any_pointer,
detail::function::functor_manager_operation_type);
detail::function::any_pointer,
detail::function::functor_manager_operation_type);
detail::function::any_pointer functor;
#if (defined __SUNPRO_CC) && (__SUNPRO_CC <= 0x530) && !(defined BOOST_NO_COMPILER_CONFIG)
@ -307,12 +312,12 @@ namespace boost {
namespace function {
inline bool has_empty_target(const function_base* f)
{
return f->empty();
return f->empty();
}
inline bool has_empty_target(...)
{
return false;
return false;
}
} // end namespace function
} // end namespace detail

View File

@ -64,163 +64,163 @@ namespace boost {
namespace detail {
namespace function {
template<
typename FunctionPtr,
typename R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_PARMS
>
typename FunctionPtr,
typename R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_PARMS
>
struct BOOST_FUNCTION_FUNCTION_INVOKER
{
static R invoke(any_pointer function_ptr BOOST_FUNCTION_COMMA
BOOST_FUNCTION_PARMS)
{
FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
return f(BOOST_FUNCTION_ARGS);
}
static R invoke(any_pointer function_ptr BOOST_FUNCTION_COMMA
BOOST_FUNCTION_PARMS)
{
FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
return f(BOOST_FUNCTION_ARGS);
}
};
template<
typename FunctionPtr,
typename R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_PARMS
>
typename FunctionPtr,
typename R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_PARMS
>
struct BOOST_FUNCTION_VOID_FUNCTION_INVOKER
{
static unusable invoke(any_pointer function_ptr BOOST_FUNCTION_COMMA
BOOST_FUNCTION_PARMS)
static unusable invoke(any_pointer function_ptr BOOST_FUNCTION_COMMA
BOOST_FUNCTION_PARMS)
{
FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
f(BOOST_FUNCTION_ARGS);
return unusable();
}
{
FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
f(BOOST_FUNCTION_ARGS);
return unusable();
}
};
template<
typename FunctionObj,
typename R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_PARMS
typename FunctionObj,
typename R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_PARMS
>
struct BOOST_FUNCTION_FUNCTION_OBJ_INVOKER
{
static R invoke(any_pointer function_obj_ptr BOOST_FUNCTION_COMMA
BOOST_FUNCTION_PARMS)
static R invoke(any_pointer function_obj_ptr BOOST_FUNCTION_COMMA
BOOST_FUNCTION_PARMS)
{
FunctionObj* f = (FunctionObj*)(function_obj_ptr.obj_ptr);
return (*f)(BOOST_FUNCTION_ARGS);
}
{
FunctionObj* f = (FunctionObj*)(function_obj_ptr.obj_ptr);
return (*f)(BOOST_FUNCTION_ARGS);
}
};
template<
typename FunctionObj,
typename R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_PARMS
typename FunctionObj,
typename R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_PARMS
>
struct BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER
{
static unusable invoke(any_pointer function_obj_ptr
BOOST_FUNCTION_COMMA
BOOST_FUNCTION_PARMS)
static unusable invoke(any_pointer function_obj_ptr
BOOST_FUNCTION_COMMA
BOOST_FUNCTION_PARMS)
{
FunctionObj* f = (FunctionObj*)(function_obj_ptr.obj_ptr);
(*f)(BOOST_FUNCTION_ARGS);
return unusable();
}
{
FunctionObj* f = (FunctionObj*)(function_obj_ptr.obj_ptr);
(*f)(BOOST_FUNCTION_ARGS);
return unusable();
}
};
template<
typename FunctionObj,
typename R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_PARMS
typename FunctionObj,
typename R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_PARMS
>
struct BOOST_FUNCTION_STATELESS_FUNCTION_OBJ_INVOKER
{
static R invoke(any_pointer BOOST_FUNCTION_COMMA BOOST_FUNCTION_PARMS)
{
FunctionObj f = FunctionObj();
return f(BOOST_FUNCTION_ARGS);
}
static R invoke(any_pointer BOOST_FUNCTION_COMMA BOOST_FUNCTION_PARMS)
{
FunctionObj f = FunctionObj();
return f(BOOST_FUNCTION_ARGS);
}
};
template<
typename FunctionObj,
typename R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_PARMS
typename FunctionObj,
typename R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_PARMS
>
struct BOOST_FUNCTION_STATELESS_VOID_FUNCTION_OBJ_INVOKER
{
static unusable invoke(any_pointer BOOST_FUNCTION_COMMA
BOOST_FUNCTION_PARMS)
static unusable invoke(any_pointer BOOST_FUNCTION_COMMA
BOOST_FUNCTION_PARMS)
{
FunctionObj f = FunctionObj();
f(BOOST_FUNCTION_ARGS);
return unusable();
}
{
FunctionObj f = FunctionObj();
f(BOOST_FUNCTION_ARGS);
return unusable();
}
};
template<
typename FunctionPtr,
typename R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_PARMS
typename FunctionPtr,
typename R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_PARMS
>
struct BOOST_FUNCTION_GET_FUNCTION_INVOKER
{
typedef typename ct_if<(is_void<R>::value),
BOOST_FUNCTION_VOID_FUNCTION_INVOKER<
FunctionPtr,
R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS
>,
BOOST_FUNCTION_FUNCTION_INVOKER<
FunctionPtr,
R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS
>
>::type type;
typedef typename ct_if<(is_void<R>::value),
BOOST_FUNCTION_VOID_FUNCTION_INVOKER<
FunctionPtr,
R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS
>,
BOOST_FUNCTION_FUNCTION_INVOKER<
FunctionPtr,
R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS
>
>::type type;
};
template<
typename FunctionObj,
typename R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_PARMS
typename FunctionObj,
typename R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_PARMS
>
struct BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER
{
typedef typename ct_if<(is_void<R>::value),
BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER<
FunctionObj,
R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS
>,
BOOST_FUNCTION_FUNCTION_OBJ_INVOKER<
FunctionObj,
R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS
>
>::type type;
typedef typename ct_if<(is_void<R>::value),
BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER<
FunctionObj,
R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS
>,
BOOST_FUNCTION_FUNCTION_OBJ_INVOKER<
FunctionObj,
R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS
>
>::type type;
};
template<
typename FunctionObj,
typename R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_PARMS
typename FunctionObj,
typename R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_PARMS
>
struct BOOST_FUNCTION_GET_STATELESS_FUNCTION_OBJ_INVOKER
{
typedef typename ct_if<(is_void<R>::value),
BOOST_FUNCTION_STATELESS_VOID_FUNCTION_OBJ_INVOKER<
FunctionObj,
R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS
>,
BOOST_FUNCTION_STATELESS_FUNCTION_OBJ_INVOKER<
FunctionObj,
R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS
>
>::type type;
typedef typename ct_if<(is_void<R>::value),
BOOST_FUNCTION_STATELESS_VOID_FUNCTION_OBJ_INVOKER<
FunctionObj,
R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS
>,
BOOST_FUNCTION_STATELESS_FUNCTION_OBJ_INVOKER<
FunctionObj,
R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS
>
>::type type;
};
} // end namespace function
@ -326,8 +326,8 @@ namespace boost {
#endif // ndef BOOST_FUNCTION_NO_DEPRECATED
internal_result_type result = invoker(function_base::functor
BOOST_FUNCTION_COMMA
BOOST_FUNCTION_ARGS);
BOOST_FUNCTION_COMMA
BOOST_FUNCTION_ARGS);
#ifndef BOOST_FUNCTION_NO_DEPRECATED
policy.postcall(this);
@ -371,7 +371,7 @@ namespace boost {
BOOST_FUNCTION_FUNCTION& operator=(const BOOST_FUNCTION_FUNCTION& f)
{
if (&f == this)
return *this;
return *this;
self_type(f).swap(*this);
return *this;
@ -384,7 +384,7 @@ namespace boost {
{
BOOST_FUNCTION_DEPRECATED_INNER
if (&f == this)
return;
return;
self_type(f).swap(*this);
}
@ -393,7 +393,7 @@ namespace boost {
void swap(BOOST_FUNCTION_FUNCTION& other)
{
if (&other == this)
return;
return;
std::swap(function_base::manager, other.manager);
std::swap(function_base::functor, other.functor);
@ -407,9 +407,9 @@ namespace boost {
void clear()
{
if (function_base::manager) {
function_base::functor =
function_base::manager(function_base::functor,
detail::function::destroy_functor_tag);
function_base::functor =
function_base::manager(function_base::functor,
detail::function::destroy_functor_tag);
}
function_base::manager = 0;
@ -420,10 +420,10 @@ namespace boost {
void assign_to_own(const BOOST_FUNCTION_FUNCTION& f)
{
if (!f.empty()) {
invoker = f.invoker;
function_base::manager = f.manager;
function_base::functor =
f.manager(f.functor, detail::function::clone_functor_tag);
invoker = f.invoker;
function_base::manager = f.manager;
function_base::functor =
f.manager(f.functor, detail::function::clone_functor_tag);
}
}
@ -440,23 +440,23 @@ namespace boost {
clear();
if (f) {
typedef typename detail::function::BOOST_FUNCTION_GET_FUNCTION_INVOKER<
FunctionPtr,
R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS
>::type
invoker_type;
typedef typename detail::function::BOOST_FUNCTION_GET_FUNCTION_INVOKER<
FunctionPtr,
R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS
>::type
invoker_type;
invoker = &invoker_type::invoke;
function_base::manager =
&detail::function::functor_manager<FunctionPtr, Allocator>::manage;
function_base::functor =
function_base::manager(detail::function::any_pointer(
// should be a reinterpret cast, but some compilers
// insist on giving cv-qualifiers to free functions
(void (*)())(f)
),
detail::function::clone_functor_tag);
invoker = &invoker_type::invoke;
function_base::manager =
&detail::function::functor_manager<FunctionPtr, Allocator>::manage;
function_base::functor =
function_base::manager(detail::function::any_pointer(
// should be a reinterpret cast, but some compilers
// insist on giving cv-qualifiers to free functions
(void (*)())(f)
),
detail::function::clone_functor_tag);
}
}
@ -472,55 +472,55 @@ namespace boost {
void assign_to(FunctionObj f, detail::function::function_obj_tag)
{
if (!detail::function::has_empty_target(addressof(f))) {
typedef
typename detail::function::BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER<
FunctionObj,
R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS
>::type
invoker_type;
typedef
typename detail::function::BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER<
FunctionObj,
R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS
>::type
invoker_type;
invoker = &invoker_type::invoke;
function_base::manager = &detail::function::functor_manager<
FunctionObj, Allocator>::manage;
invoker = &invoker_type::invoke;
function_base::manager = &detail::function::functor_manager<
FunctionObj, Allocator>::manage;
#ifndef BOOST_NO_STD_ALLOCATOR
typedef typename Allocator::template rebind<FunctionObj>::other
allocator_type;
typedef typename allocator_type::pointer pointer_type;
allocator_type allocator;
pointer_type copy = allocator.allocate(1);
allocator.construct(copy, f);
typedef typename Allocator::template rebind<FunctionObj>::other
allocator_type;
typedef typename allocator_type::pointer pointer_type;
allocator_type allocator;
pointer_type copy = allocator.allocate(1);
allocator.construct(copy, f);
// Get back to the original pointer type
FunctionObj* new_f = static_cast<FunctionObj*>(copy);
// Get back to the original pointer type
FunctionObj* new_f = static_cast<FunctionObj*>(copy);
#else
FunctionObj* new_f = new FunctionObj(f);
FunctionObj* new_f = new FunctionObj(f);
#endif // BOOST_NO_STD_ALLOCATOR
function_base::functor =
detail::function::any_pointer(static_cast<void*>(new_f));
function_base::functor =
detail::function::any_pointer(static_cast<void*>(new_f));
}
}
template<typename FunctionObj>
void assign_to(const reference_wrapper<FunctionObj>& f,
detail::function::function_obj_ref_tag)
detail::function::function_obj_ref_tag)
{
if (!detail::function::has_empty_target(f.get_pointer())) {
typedef
typename detail::function::BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER<
FunctionObj,
R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS
>::type
invoker_type;
typedef
typename detail::function::BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER<
FunctionObj,
R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS
>::type
invoker_type;
invoker = &invoker_type::invoke;
function_base::manager = &detail::function::trivial_manager;
function_base::functor =
function_base::manager(
detail::function::any_pointer(
const_cast<FunctionObj*>(f.get_pointer())),
detail::function::clone_functor_tag);
invoker = &invoker_type::invoke;
function_base::manager = &detail::function::trivial_manager;
function_base::functor =
function_base::manager(
detail::function::any_pointer(
const_cast<FunctionObj*>(f.get_pointer())),
detail::function::clone_functor_tag);
}
}
@ -528,21 +528,21 @@ namespace boost {
void assign_to(FunctionObj, detail::function::stateless_function_obj_tag)
{
typedef
typename detail::function::
BOOST_FUNCTION_GET_STATELESS_FUNCTION_OBJ_INVOKER<
FunctionObj,
R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS
>::type
invoker_type;
typename detail::function::
BOOST_FUNCTION_GET_STATELESS_FUNCTION_OBJ_INVOKER<
FunctionObj,
R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS
>::type
invoker_type;
invoker = &invoker_type::invoke;
function_base::manager = &detail::function::trivial_manager;
function_base::functor = detail::function::any_pointer(this);
}
typedef internal_result_type (*invoker_type)(detail::function::any_pointer
BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS);
BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS);
invoker_type invoker;
};
@ -553,23 +553,23 @@ namespace boost {
#endif // ndef BOOST_FUNCTION_NO_DEPRECATED
typename Allocator>
inline void swap(BOOST_FUNCTION_FUNCTION<
R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS ,
R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS ,
#ifndef BOOST_FUNCTION_NO_DEPRECATED
Policy,
Mixin,
Policy,
Mixin,
#endif // ndef BOOST_FUNCTION_NO_DEPRECATED
Allocator
>& f1,
BOOST_FUNCTION_FUNCTION<
R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS,
Allocator
>& f1,
BOOST_FUNCTION_FUNCTION<
R BOOST_FUNCTION_COMMA
BOOST_FUNCTION_TEMPLATE_ARGS,
#ifndef BOOST_FUNCTION_NO_DEPRECATED
Policy,
Mixin,
Policy,
Mixin,
#endif // ndef BOOST_FUNCTION_NO_DEPRECATED
Allocator
>& f2)
Allocator
>& f2)
{
f1.swap(f2);
}

View File

@ -305,8 +305,8 @@ namespace detail {
>::type type;
};
# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || defined(BOOST_NO_STD_ITERATOR_TRAITS)
# ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
// Select default pointer and reference types for adapted non-pointer
// iterators based on the iterator and the value_type. Poor man's partial
@ -781,7 +781,7 @@ struct iterator_adaptor :
#if defined(BOOST_MSVC) && BOOST_MSVC <= 1300 || defined(__BORLANDC__)
// This is required to prevent a bug in how VC++ generates
// the assignment operator for compressed_pairv
// the assignment operator for compressed_pair
iterator_adaptor& operator= (const iterator_adaptor& x) {
m_iter_p = x.m_iter_p;
return *this;

View File

@ -0,0 +1,43 @@
# ifndef BOOST_PREPROCESSOR_ARRAY_HPP
# define BOOST_PREPROCESSOR_ARRAY_HPP
#
# /* **************************************************************************
# * *
# * (C) Copyright Paul Mensonides 2002. Permission to copy, use, *
# * modify, sell, and distribute this software is granted provided *
# * this copyright notice appears in all copies. This software is *
# * provided "as is" without express or implied warranty, and with *
# * no claim at to its suitability for any purpose. *
# * *
# ************************************************************************** */
#
# include <boost/preprocessor/tuple/elem.hpp>
#
# define BOOST_PP_ARRAY(size, data) (size, data)
#
# if !defined(__MWERKS__) || defined(BOOST_NO_COMPILER_CONFIG) || __MWERKS__ > 0x3002
# define BOOST_PP_ARRAY_SIZE(arr) BOOST_PP_ARRAY_SIZE_I arr
# else
# define BOOST_PP_ARRAY_SIZE(arr) BOOST_PP_ARRAY_SIZE_D(arr)
# define BOOST_PP_ARRAY_SIZE_D(arr) BOOST_PP_ARRAY_SIZE_I ## arr
# endif
#
# define BOOST_PP_ARRAY_SIZE_I(size, data) size
#
# if !defined(__MWERKS__) || defined(BOOST_NO_COMPILER_CONFIG) || __MWERKS__ > 0x3002
# define BOOST_PP_ARRAY_DATA(arr) BOOST_PP_ARRAY_DATA_I arr
# else
# define BOOST_PP_ARRAY_DATA(arr) BOOST_PP_ARRAY_DATA_D(arr)
# define BOOST_PP_ARRAY_DATA_D(arr) BOOST_PP_ARRAY_DATA_I ## arr
# endif
#
# define BOOST_PP_ARRAY_DATA_I(size, data) data
#
# if !defined(__MWERKS__) || defined(BOOST_NO_COMPILER_CONFIG) || __MWERKS__ > 0x3002
# define BOOST_PP_ARRAY_ELEM(i, arr) BOOST_PP_TUPLE_ELEM(BOOST_PP_ARRAY_SIZE_I arr, i, BOOST_PP_ARRAY_DATA_I arr)
# else
# define BOOST_PP_ARRAY_ELEM(i, arr) BOOST_PP_ARRAY_ELEM_D(i, arr)
# define BOOST_PP_ARRAY_ELEM_D(i, arr) BOOST_PP_TUPLE_ELEM(BOOST_PP_ARRAY_SIZE(arr), i, BOOST_PP_ARRAY_DATA(arr))
# endif
#
# endif

View File

@ -0,0 +1,53 @@
#ifndef BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP
#define BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP
/* Copyright (C) 2002 Vesa Karvonen
*
* Permission to copy, use, modify, sell and distribute this software is
* granted provided this copyright notice appears in all copies. This
* software is provided "as is" without express or implied warranty, and
* with no claim as to its suitability for any purpose.
*
* Based on an original idea by Paul Mensonides this header defines macros
* for the definition of automatically recursive macros.
*
* See http://www.boost.org for most recent version.
*/
/* Identity macro for auto rec support. */
#define BOOST_PP_AUTO_REC_ID(X) X
/* Catenation macros for auto rec support. */
#define BOOST_PP_AUTO_REC_CAT0(X,Y) BOOST_PP_AUTO_REC_DELAY_CAT0(X,Y)
#define BOOST_PP_AUTO_REC_CAT1(X,Y) BOOST_PP_AUTO_REC_DELAY_CAT1(X,Y)
#define BOOST_PP_AUTO_REC_CAT2(X,Y) BOOST_PP_AUTO_REC_DELAY_CAT2(X,Y)
#define BOOST_PP_AUTO_REC_CAT3(X,Y) BOOST_PP_AUTO_REC_DELAY_CAT3(X,Y)
#define BOOST_PP_AUTO_REC_CAT4(X,Y) BOOST_PP_AUTO_REC_DELAY_CAT4(X,Y)
#define BOOST_PP_AUTO_REC_CAT5(X,Y) BOOST_PP_AUTO_REC_DELAY_CAT5(X,Y)
#define BOOST_PP_AUTO_REC_CAT6(X,Y) BOOST_PP_AUTO_REC_DELAY_CAT6(X,Y)
#define BOOST_PP_AUTO_REC_CAT7(X,Y) BOOST_PP_AUTO_REC_DELAY_CAT7(X,Y)
#define BOOST_PP_AUTO_REC_CAT8(X,Y) BOOST_PP_AUTO_REC_DELAY_CAT8(X,Y)
#define BOOST_PP_AUTO_REC_CAT9(X,Y) BOOST_PP_AUTO_REC_DELAY_CAT9(X,Y)
#define BOOST_PP_AUTO_REC_DELAY_CAT0(X,Y) BOOST_PP_AUTO_REC_DO_CAT0(X,Y)
#define BOOST_PP_AUTO_REC_DELAY_CAT1(X,Y) BOOST_PP_AUTO_REC_DO_CAT1(X,Y)
#define BOOST_PP_AUTO_REC_DELAY_CAT2(X,Y) BOOST_PP_AUTO_REC_DO_CAT2(X,Y)
#define BOOST_PP_AUTO_REC_DELAY_CAT3(X,Y) BOOST_PP_AUTO_REC_DO_CAT3(X,Y)
#define BOOST_PP_AUTO_REC_DELAY_CAT4(X,Y) BOOST_PP_AUTO_REC_DO_CAT4(X,Y)
#define BOOST_PP_AUTO_REC_DELAY_CAT5(X,Y) BOOST_PP_AUTO_REC_DO_CAT5(X,Y)
#define BOOST_PP_AUTO_REC_DELAY_CAT6(X,Y) BOOST_PP_AUTO_REC_DO_CAT6(X,Y)
#define BOOST_PP_AUTO_REC_DELAY_CAT7(X,Y) BOOST_PP_AUTO_REC_DO_CAT7(X,Y)
#define BOOST_PP_AUTO_REC_DELAY_CAT8(X,Y) BOOST_PP_AUTO_REC_DO_CAT8(X,Y)
#define BOOST_PP_AUTO_REC_DELAY_CAT9(X,Y) BOOST_PP_AUTO_REC_DO_CAT9(X,Y)
#define BOOST_PP_AUTO_REC_DO_CAT0(X,Y) X##Y
#define BOOST_PP_AUTO_REC_DO_CAT1(X,Y) X##Y
#define BOOST_PP_AUTO_REC_DO_CAT2(X,Y) X##Y
#define BOOST_PP_AUTO_REC_DO_CAT3(X,Y) X##Y
#define BOOST_PP_AUTO_REC_DO_CAT4(X,Y) X##Y
#define BOOST_PP_AUTO_REC_DO_CAT5(X,Y) X##Y
#define BOOST_PP_AUTO_REC_DO_CAT6(X,Y) X##Y
#define BOOST_PP_AUTO_REC_DO_CAT7(X,Y) X##Y
#define BOOST_PP_AUTO_REC_DO_CAT8(X,Y) X##Y
#define BOOST_PP_AUTO_REC_DO_CAT9(X,Y) X##Y
#endif

View File

@ -12,7 +12,7 @@
*/
# define BOOST_PP_DETAIL_EXPAND(X) X
# if !defined(__MWERKS__) || __MWERKS__ > 0x3001
# if !defined(__MWERKS__) || defined(BOOST_NO_COMPILER_CONFIG) || __MWERKS__ > 0x3002
# define BOOST_PP_DETAIL_EXPAND2(X,Y) BOOST_PP_DETAIL_EXPAND(X Y)
# else
# define BOOST_PP_DETAIL_EXPAND2(X, Y) BOOST_PP_DETAIL_EXPAND2_DELAY(X, Y)

View File

@ -0,0 +1,22 @@
# ifndef BOOST_PREPROCESSOR_DETAIL_LINE_HPP
# define BOOST_PREPROCESSOR_DETAIL_LINE_HPP
#
# /* **************************************************************************
# * *
# * (C) Copyright Paul Mensonides 2002. Permission to copy, use, *
# * modify, sell, and distribute this software is granted provided *
# * this copyright notice appears in all copies. This software is *
# * provided "as is" without express or implied warranty, and with *
# * no claim at to its suitability for any purpose. *
# * *
# ************************************************************************** */
#
# include <boost/preprocessor/stringize.hpp>
#
# if !defined(__MWERKS__) || defined(BOOST_NO_COMPILER_CONFIG) || __MWERKS__ > 0x3002
# define BOOST_PP_DETAIL_LINE(text) 1 BOOST_PP_STRINGIZE(text)
# else
# define BOOST_PP_DETAIL_LINE(text) 1
# endif
#
# endif

View File

@ -0,0 +1,404 @@
#ifndef BOOST_PREPROCESSOR_REPEAT_EDG_HPP
#define BOOST_PREPROCESSOR_REPEAT_EDG_HPP
/* Copyright (C) 2002 Vesa Karvonen
*
* Permission to copy, use, modify, sell and distribute this software is
* granted provided this copyright notice appears in all copies. This
* software is provided "as is" without express or implied warranty, and
* with no claim as to its suitability for any purpose.
*
* See http://www.boost.org for most recent version.
*/
#define BOOST_PP_R1_0(M,D)
#define BOOST_PP_R1_1(M,D) M(0,D)
#define BOOST_PP_R1_2(M,D) M(0,D) M(1,D)
#define BOOST_PP_R1_3(M,D) M(0,D) M(1,D) M(2,D)
#define BOOST_PP_R1_4(M,D) M(0,D) M(1,D) M(2,D) M(3,D)
#define BOOST_PP_R1_5(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D)
#define BOOST_PP_R1_6(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D)
#define BOOST_PP_R1_7(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D)
#define BOOST_PP_R1_8(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D)
#define BOOST_PP_R1_9(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D)
#define BOOST_PP_R1_10(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D)
#define BOOST_PP_R1_11(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D)
#define BOOST_PP_R1_12(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D)
#define BOOST_PP_R1_13(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D)
#define BOOST_PP_R1_14(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D)
#define BOOST_PP_R1_15(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D)
#define BOOST_PP_R1_16(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D)
#define BOOST_PP_R1_17(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D)
#define BOOST_PP_R1_18(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D)
#define BOOST_PP_R1_19(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D)
#define BOOST_PP_R1_20(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D)
#define BOOST_PP_R1_21(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D)
#define BOOST_PP_R1_22(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D)
#define BOOST_PP_R1_23(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D)
#define BOOST_PP_R1_24(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D)
#define BOOST_PP_R1_25(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D)
#define BOOST_PP_R1_26(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D)
#define BOOST_PP_R1_27(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D)
#define BOOST_PP_R1_28(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D)
#define BOOST_PP_R1_29(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D)
#define BOOST_PP_R1_30(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D)
#define BOOST_PP_R1_31(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D)
#define BOOST_PP_R1_32(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D)
#define BOOST_PP_R1_33(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D)
#define BOOST_PP_R1_34(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D)
#define BOOST_PP_R1_35(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D)
#define BOOST_PP_R1_36(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D)
#define BOOST_PP_R1_37(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D)
#define BOOST_PP_R1_38(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D)
#define BOOST_PP_R1_39(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D)
#define BOOST_PP_R1_40(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D)
#define BOOST_PP_R1_41(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D)
#define BOOST_PP_R1_42(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D)
#define BOOST_PP_R1_43(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D)
#define BOOST_PP_R1_44(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D)
#define BOOST_PP_R1_45(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D)
#define BOOST_PP_R1_46(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D)
#define BOOST_PP_R1_47(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D)
#define BOOST_PP_R1_48(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D)
#define BOOST_PP_R1_49(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D)
#define BOOST_PP_R1_50(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D)
#define BOOST_PP_R1_51(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D)
#define BOOST_PP_R1_52(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D)
#define BOOST_PP_R1_53(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D)
#define BOOST_PP_R1_54(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D)
#define BOOST_PP_R1_55(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D)
#define BOOST_PP_R1_56(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D)
#define BOOST_PP_R1_57(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D)
#define BOOST_PP_R1_58(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D)
#define BOOST_PP_R1_59(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D)
#define BOOST_PP_R1_60(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D)
#define BOOST_PP_R1_61(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D)
#define BOOST_PP_R1_62(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D)
#define BOOST_PP_R1_63(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D)
#define BOOST_PP_R1_64(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D)
#define BOOST_PP_R1_65(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D)
#define BOOST_PP_R1_66(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D)
#define BOOST_PP_R1_67(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D)
#define BOOST_PP_R1_68(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D)
#define BOOST_PP_R1_69(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D)
#define BOOST_PP_R1_70(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D)
#define BOOST_PP_R1_71(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D)
#define BOOST_PP_R1_72(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D)
#define BOOST_PP_R1_73(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D)
#define BOOST_PP_R1_74(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D)
#define BOOST_PP_R1_75(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D)
#define BOOST_PP_R1_76(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D)
#define BOOST_PP_R1_77(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D)
#define BOOST_PP_R1_78(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D)
#define BOOST_PP_R1_79(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D)
#define BOOST_PP_R1_80(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D)
#define BOOST_PP_R1_81(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D)
#define BOOST_PP_R1_82(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D)
#define BOOST_PP_R1_83(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D)
#define BOOST_PP_R1_84(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D)
#define BOOST_PP_R1_85(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D)
#define BOOST_PP_R1_86(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D)
#define BOOST_PP_R1_87(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D)
#define BOOST_PP_R1_88(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D)
#define BOOST_PP_R1_89(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D)
#define BOOST_PP_R1_90(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D)
#define BOOST_PP_R1_91(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D)
#define BOOST_PP_R1_92(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D)
#define BOOST_PP_R1_93(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D)
#define BOOST_PP_R1_94(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D)
#define BOOST_PP_R1_95(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D)
#define BOOST_PP_R1_96(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D)
#define BOOST_PP_R1_97(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D)
#define BOOST_PP_R1_98(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D)
#define BOOST_PP_R1_99(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D)
#define BOOST_PP_R1_100(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D)
#define BOOST_PP_R1_101(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D)
#define BOOST_PP_R1_102(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D)
#define BOOST_PP_R1_103(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D)
#define BOOST_PP_R1_104(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D)
#define BOOST_PP_R1_105(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D)
#define BOOST_PP_R1_106(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D)
#define BOOST_PP_R1_107(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D)
#define BOOST_PP_R1_108(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D)
#define BOOST_PP_R1_109(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D)
#define BOOST_PP_R1_110(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D)
#define BOOST_PP_R1_111(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D)
#define BOOST_PP_R1_112(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D)
#define BOOST_PP_R1_113(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D)
#define BOOST_PP_R1_114(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D)
#define BOOST_PP_R1_115(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D)
#define BOOST_PP_R1_116(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D)
#define BOOST_PP_R1_117(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D)
#define BOOST_PP_R1_118(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D)
#define BOOST_PP_R1_119(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D)
#define BOOST_PP_R1_120(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D)
#define BOOST_PP_R1_121(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D) M(120,D)
#define BOOST_PP_R1_122(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D) M(120,D) M(121,D)
#define BOOST_PP_R1_123(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D) M(120,D) M(121,D) M(122,D)
#define BOOST_PP_R1_124(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D) M(120,D) M(121,D) M(122,D) M(123,D)
#define BOOST_PP_R1_125(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D) M(120,D) M(121,D) M(122,D) M(123,D) M(124,D)
#define BOOST_PP_R1_126(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D) M(120,D) M(121,D) M(122,D) M(123,D) M(124,D) M(125,D)
#define BOOST_PP_R1_127(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D) M(120,D) M(121,D) M(122,D) M(123,D) M(124,D) M(125,D) M(126,D)
#define BOOST_PP_R1_128(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D) M(120,D) M(121,D) M(122,D) M(123,D) M(124,D) M(125,D) M(126,D) M(127,D)
#define BOOST_PP_R2_0(M,D)
#define BOOST_PP_R2_1(M,D) M(0,D)
#define BOOST_PP_R2_2(M,D) M(0,D) M(1,D)
#define BOOST_PP_R2_3(M,D) M(0,D) M(1,D) M(2,D)
#define BOOST_PP_R2_4(M,D) M(0,D) M(1,D) M(2,D) M(3,D)
#define BOOST_PP_R2_5(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D)
#define BOOST_PP_R2_6(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D)
#define BOOST_PP_R2_7(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D)
#define BOOST_PP_R2_8(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D)
#define BOOST_PP_R2_9(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D)
#define BOOST_PP_R2_10(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D)
#define BOOST_PP_R2_11(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D)
#define BOOST_PP_R2_12(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D)
#define BOOST_PP_R2_13(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D)
#define BOOST_PP_R2_14(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D)
#define BOOST_PP_R2_15(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D)
#define BOOST_PP_R2_16(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D)
#define BOOST_PP_R2_17(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D)
#define BOOST_PP_R2_18(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D)
#define BOOST_PP_R2_19(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D)
#define BOOST_PP_R2_20(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D)
#define BOOST_PP_R2_21(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D)
#define BOOST_PP_R2_22(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D)
#define BOOST_PP_R2_23(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D)
#define BOOST_PP_R2_24(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D)
#define BOOST_PP_R2_25(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D)
#define BOOST_PP_R2_26(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D)
#define BOOST_PP_R2_27(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D)
#define BOOST_PP_R2_28(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D)
#define BOOST_PP_R2_29(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D)
#define BOOST_PP_R2_30(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D)
#define BOOST_PP_R2_31(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D)
#define BOOST_PP_R2_32(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D)
#define BOOST_PP_R2_33(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D)
#define BOOST_PP_R2_34(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D)
#define BOOST_PP_R2_35(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D)
#define BOOST_PP_R2_36(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D)
#define BOOST_PP_R2_37(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D)
#define BOOST_PP_R2_38(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D)
#define BOOST_PP_R2_39(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D)
#define BOOST_PP_R2_40(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D)
#define BOOST_PP_R2_41(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D)
#define BOOST_PP_R2_42(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D)
#define BOOST_PP_R2_43(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D)
#define BOOST_PP_R2_44(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D)
#define BOOST_PP_R2_45(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D)
#define BOOST_PP_R2_46(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D)
#define BOOST_PP_R2_47(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D)
#define BOOST_PP_R2_48(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D)
#define BOOST_PP_R2_49(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D)
#define BOOST_PP_R2_50(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D)
#define BOOST_PP_R2_51(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D)
#define BOOST_PP_R2_52(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D)
#define BOOST_PP_R2_53(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D)
#define BOOST_PP_R2_54(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D)
#define BOOST_PP_R2_55(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D)
#define BOOST_PP_R2_56(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D)
#define BOOST_PP_R2_57(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D)
#define BOOST_PP_R2_58(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D)
#define BOOST_PP_R2_59(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D)
#define BOOST_PP_R2_60(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D)
#define BOOST_PP_R2_61(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D)
#define BOOST_PP_R2_62(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D)
#define BOOST_PP_R2_63(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D)
#define BOOST_PP_R2_64(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D)
#define BOOST_PP_R2_65(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D)
#define BOOST_PP_R2_66(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D)
#define BOOST_PP_R2_67(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D)
#define BOOST_PP_R2_68(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D)
#define BOOST_PP_R2_69(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D)
#define BOOST_PP_R2_70(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D)
#define BOOST_PP_R2_71(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D)
#define BOOST_PP_R2_72(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D)
#define BOOST_PP_R2_73(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D)
#define BOOST_PP_R2_74(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D)
#define BOOST_PP_R2_75(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D)
#define BOOST_PP_R2_76(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D)
#define BOOST_PP_R2_77(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D)
#define BOOST_PP_R2_78(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D)
#define BOOST_PP_R2_79(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D)
#define BOOST_PP_R2_80(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D)
#define BOOST_PP_R2_81(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D)
#define BOOST_PP_R2_82(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D)
#define BOOST_PP_R2_83(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D)
#define BOOST_PP_R2_84(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D)
#define BOOST_PP_R2_85(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D)
#define BOOST_PP_R2_86(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D)
#define BOOST_PP_R2_87(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D)
#define BOOST_PP_R2_88(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D)
#define BOOST_PP_R2_89(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D)
#define BOOST_PP_R2_90(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D)
#define BOOST_PP_R2_91(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D)
#define BOOST_PP_R2_92(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D)
#define BOOST_PP_R2_93(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D)
#define BOOST_PP_R2_94(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D)
#define BOOST_PP_R2_95(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D)
#define BOOST_PP_R2_96(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D)
#define BOOST_PP_R2_97(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D)
#define BOOST_PP_R2_98(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D)
#define BOOST_PP_R2_99(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D)
#define BOOST_PP_R2_100(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D)
#define BOOST_PP_R2_101(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D)
#define BOOST_PP_R2_102(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D)
#define BOOST_PP_R2_103(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D)
#define BOOST_PP_R2_104(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D)
#define BOOST_PP_R2_105(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D)
#define BOOST_PP_R2_106(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D)
#define BOOST_PP_R2_107(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D)
#define BOOST_PP_R2_108(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D)
#define BOOST_PP_R2_109(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D)
#define BOOST_PP_R2_110(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D)
#define BOOST_PP_R2_111(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D)
#define BOOST_PP_R2_112(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D)
#define BOOST_PP_R2_113(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D)
#define BOOST_PP_R2_114(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D)
#define BOOST_PP_R2_115(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D)
#define BOOST_PP_R2_116(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D)
#define BOOST_PP_R2_117(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D)
#define BOOST_PP_R2_118(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D)
#define BOOST_PP_R2_119(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D)
#define BOOST_PP_R2_120(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D)
#define BOOST_PP_R2_121(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D) M(120,D)
#define BOOST_PP_R2_122(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D) M(120,D) M(121,D)
#define BOOST_PP_R2_123(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D) M(120,D) M(121,D) M(122,D)
#define BOOST_PP_R2_124(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D) M(120,D) M(121,D) M(122,D) M(123,D)
#define BOOST_PP_R2_125(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D) M(120,D) M(121,D) M(122,D) M(123,D) M(124,D)
#define BOOST_PP_R2_126(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D) M(120,D) M(121,D) M(122,D) M(123,D) M(124,D) M(125,D)
#define BOOST_PP_R2_127(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D) M(120,D) M(121,D) M(122,D) M(123,D) M(124,D) M(125,D) M(126,D)
#define BOOST_PP_R2_128(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D) M(120,D) M(121,D) M(122,D) M(123,D) M(124,D) M(125,D) M(126,D) M(127,D)
#define BOOST_PP_R3_0(M,D)
#define BOOST_PP_R3_1(M,D) M(0,D)
#define BOOST_PP_R3_2(M,D) M(0,D) M(1,D)
#define BOOST_PP_R3_3(M,D) M(0,D) M(1,D) M(2,D)
#define BOOST_PP_R3_4(M,D) M(0,D) M(1,D) M(2,D) M(3,D)
#define BOOST_PP_R3_5(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D)
#define BOOST_PP_R3_6(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D)
#define BOOST_PP_R3_7(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D)
#define BOOST_PP_R3_8(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D)
#define BOOST_PP_R3_9(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D)
#define BOOST_PP_R3_10(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D)
#define BOOST_PP_R3_11(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D)
#define BOOST_PP_R3_12(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D)
#define BOOST_PP_R3_13(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D)
#define BOOST_PP_R3_14(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D)
#define BOOST_PP_R3_15(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D)
#define BOOST_PP_R3_16(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D)
#define BOOST_PP_R3_17(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D)
#define BOOST_PP_R3_18(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D)
#define BOOST_PP_R3_19(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D)
#define BOOST_PP_R3_20(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D)
#define BOOST_PP_R3_21(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D)
#define BOOST_PP_R3_22(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D)
#define BOOST_PP_R3_23(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D)
#define BOOST_PP_R3_24(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D)
#define BOOST_PP_R3_25(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D)
#define BOOST_PP_R3_26(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D)
#define BOOST_PP_R3_27(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D)
#define BOOST_PP_R3_28(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D)
#define BOOST_PP_R3_29(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D)
#define BOOST_PP_R3_30(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D)
#define BOOST_PP_R3_31(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D)
#define BOOST_PP_R3_32(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D)
#define BOOST_PP_R3_33(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D)
#define BOOST_PP_R3_34(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D)
#define BOOST_PP_R3_35(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D)
#define BOOST_PP_R3_36(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D)
#define BOOST_PP_R3_37(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D)
#define BOOST_PP_R3_38(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D)
#define BOOST_PP_R3_39(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D)
#define BOOST_PP_R3_40(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D)
#define BOOST_PP_R3_41(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D)
#define BOOST_PP_R3_42(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D)
#define BOOST_PP_R3_43(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D)
#define BOOST_PP_R3_44(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D)
#define BOOST_PP_R3_45(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D)
#define BOOST_PP_R3_46(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D)
#define BOOST_PP_R3_47(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D)
#define BOOST_PP_R3_48(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D)
#define BOOST_PP_R3_49(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D)
#define BOOST_PP_R3_50(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D)
#define BOOST_PP_R3_51(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D)
#define BOOST_PP_R3_52(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D)
#define BOOST_PP_R3_53(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D)
#define BOOST_PP_R3_54(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D)
#define BOOST_PP_R3_55(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D)
#define BOOST_PP_R3_56(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D)
#define BOOST_PP_R3_57(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D)
#define BOOST_PP_R3_58(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D)
#define BOOST_PP_R3_59(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D)
#define BOOST_PP_R3_60(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D)
#define BOOST_PP_R3_61(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D)
#define BOOST_PP_R3_62(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D)
#define BOOST_PP_R3_63(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D)
#define BOOST_PP_R3_64(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D)
#define BOOST_PP_R3_65(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D)
#define BOOST_PP_R3_66(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D)
#define BOOST_PP_R3_67(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D)
#define BOOST_PP_R3_68(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D)
#define BOOST_PP_R3_69(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D)
#define BOOST_PP_R3_70(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D)
#define BOOST_PP_R3_71(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D)
#define BOOST_PP_R3_72(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D)
#define BOOST_PP_R3_73(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D)
#define BOOST_PP_R3_74(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D)
#define BOOST_PP_R3_75(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D)
#define BOOST_PP_R3_76(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D)
#define BOOST_PP_R3_77(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D)
#define BOOST_PP_R3_78(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D)
#define BOOST_PP_R3_79(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D)
#define BOOST_PP_R3_80(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D)
#define BOOST_PP_R3_81(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D)
#define BOOST_PP_R3_82(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D)
#define BOOST_PP_R3_83(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D)
#define BOOST_PP_R3_84(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D)
#define BOOST_PP_R3_85(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D)
#define BOOST_PP_R3_86(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D)
#define BOOST_PP_R3_87(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D)
#define BOOST_PP_R3_88(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D)
#define BOOST_PP_R3_89(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D)
#define BOOST_PP_R3_90(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D)
#define BOOST_PP_R3_91(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D)
#define BOOST_PP_R3_92(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D)
#define BOOST_PP_R3_93(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D)
#define BOOST_PP_R3_94(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D)
#define BOOST_PP_R3_95(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D)
#define BOOST_PP_R3_96(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D)
#define BOOST_PP_R3_97(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D)
#define BOOST_PP_R3_98(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D)
#define BOOST_PP_R3_99(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D)
#define BOOST_PP_R3_100(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D)
#define BOOST_PP_R3_101(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D)
#define BOOST_PP_R3_102(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D)
#define BOOST_PP_R3_103(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D)
#define BOOST_PP_R3_104(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D)
#define BOOST_PP_R3_105(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D)
#define BOOST_PP_R3_106(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D)
#define BOOST_PP_R3_107(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D)
#define BOOST_PP_R3_108(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D)
#define BOOST_PP_R3_109(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D)
#define BOOST_PP_R3_110(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D)
#define BOOST_PP_R3_111(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D)
#define BOOST_PP_R3_112(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D)
#define BOOST_PP_R3_113(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D)
#define BOOST_PP_R3_114(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D)
#define BOOST_PP_R3_115(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D)
#define BOOST_PP_R3_116(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D)
#define BOOST_PP_R3_117(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D)
#define BOOST_PP_R3_118(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D)
#define BOOST_PP_R3_119(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D)
#define BOOST_PP_R3_120(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D)
#define BOOST_PP_R3_121(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D) M(120,D)
#define BOOST_PP_R3_122(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D) M(120,D) M(121,D)
#define BOOST_PP_R3_123(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D) M(120,D) M(121,D) M(122,D)
#define BOOST_PP_R3_124(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D) M(120,D) M(121,D) M(122,D) M(123,D)
#define BOOST_PP_R3_125(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D) M(120,D) M(121,D) M(122,D) M(123,D) M(124,D)
#define BOOST_PP_R3_126(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D) M(120,D) M(121,D) M(122,D) M(123,D) M(124,D) M(125,D)
#define BOOST_PP_R3_127(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D) M(120,D) M(121,D) M(122,D) M(123,D) M(124,D) M(125,D) M(126,D)
#define BOOST_PP_R3_128(M,D) M(0,D) M(1,D) M(2,D) M(3,D) M(4,D) M(5,D) M(6,D) M(7,D) M(8,D) M(9,D) M(10,D) M(11,D) M(12,D) M(13,D) M(14,D) M(15,D) M(16,D) M(17,D) M(18,D) M(19,D) M(20,D) M(21,D) M(22,D) M(23,D) M(24,D) M(25,D) M(26,D) M(27,D) M(28,D) M(29,D) M(30,D) M(31,D) M(32,D) M(33,D) M(34,D) M(35,D) M(36,D) M(37,D) M(38,D) M(39,D) M(40,D) M(41,D) M(42,D) M(43,D) M(44,D) M(45,D) M(46,D) M(47,D) M(48,D) M(49,D) M(50,D) M(51,D) M(52,D) M(53,D) M(54,D) M(55,D) M(56,D) M(57,D) M(58,D) M(59,D) M(60,D) M(61,D) M(62,D) M(63,D) M(64,D) M(65,D) M(66,D) M(67,D) M(68,D) M(69,D) M(70,D) M(71,D) M(72,D) M(73,D) M(74,D) M(75,D) M(76,D) M(77,D) M(78,D) M(79,D) M(80,D) M(81,D) M(82,D) M(83,D) M(84,D) M(85,D) M(86,D) M(87,D) M(88,D) M(89,D) M(90,D) M(91,D) M(92,D) M(93,D) M(94,D) M(95,D) M(96,D) M(97,D) M(98,D) M(99,D) M(100,D) M(101,D) M(102,D) M(103,D) M(104,D) M(105,D) M(106,D) M(107,D) M(108,D) M(109,D) M(110,D) M(111,D) M(112,D) M(113,D) M(114,D) M(115,D) M(116,D) M(117,D) M(118,D) M(119,D) M(120,D) M(121,D) M(122,D) M(123,D) M(124,D) M(125,D) M(126,D) M(127,D)
#endif

View File

@ -0,0 +1,77 @@
# ifndef BOOST_PREPROCESSOR_ITERATE_HPP
# define BOOST_PREPROCESSOR_ITERATE_HPP
#
# /* **************************************************************************
# * *
# * (C) Copyright Paul Mensonides 2002. Permission to copy, use, *
# * modify, sell, and distribute this software is granted provided *
# * this copyright notice appears in all copies. This software is *
# * provided "as is" without express or implied warranty, and with *
# * no claim at to its suitability for any purpose. *
# * *
# ************************************************************************** */
#
# include <boost/preprocessor/array.hpp>
# include <boost/preprocessor/dec.hpp>
# include <boost/preprocessor/inc.hpp>
# include <boost/preprocessor/stringize.hpp>
#
# include <boost/preprocessor/tuple/elem.hpp>
#
# include <boost/preprocessor/detail/cat.hpp>
# include <boost/preprocessor/detail/line.hpp>
#
# define BOOST_PP_ITERATION_DEPTH_LIMIT 5
# define BOOST_PP_ITERATION_LIMIT 256
#
# define BOOST_PP_ITERATION_DEPTH() 0
#
# define BOOST_PP_ITERATION() BOOST_PP_DETAIL_CAT2(BOOST_PP_ITERATION_, BOOST_PP_ITERATION_DEPTH())
#
# define BOOST_PP_ITERATION_START() BOOST_PP_DETAIL_CAT2(BOOST_PP_ITERATION_START_, BOOST_PP_ITERATION_DEPTH())
# define BOOST_PP_ITERATION_FINISH() BOOST_PP_DETAIL_CAT2(BOOST_PP_ITERATION_FINISH_, BOOST_PP_ITERATION_DEPTH())
#
# define BOOST_PP_FRAME_ITERATION(i) BOOST_PP_DETAIL_CAT2(BOOST_PP_ITERATION_, i)
# define BOOST_PP_RELATIVE_ITERATION(i) BOOST_PP_DETAIL_CAT2(BOOST_PP_RELATIVE_, i)(BOOST_PP_ITERATION_)
#
# define BOOST_PP_FRAME_START(i) BOOST_PP_DETAIL_CAT2(BOOST_PP_ITERATION_START_, i)
# define BOOST_PP_RELATIVE_START(i) BOOST_PP_DETAIL_CAT2(BOOST_PP_RELATIVE_, i)(BOOST_PP_ITERATION_START_)
#
# define BOOST_PP_FRAME_FINISH(i) BOOST_PP_DETAIL_CAT2(BOOST_PP_ITERATION_FINISH_, i)
# define BOOST_PP_RELATIVE_FINISH(i) BOOST_PP_DETAIL_CAT2(BOOST_PP_RELATIVE_, i)(BOOST_PP_ITERATION_FINISH_)
#
# define BOOST_PP_ITERATION_FLAGS() BOOST_PP_DETAIL_CAT2(BOOST_PP_ITERATION_FLAGS_, BOOST_PP_ITERATION_DEPTH())
# define BOOST_PP_FRAME_FLAGS(i) BOOST_PP_DETAIL_CAT2(BOOST_PP_ITERATION_FLAGS_, i)
# define BOOST_PP_RELATIVE_FLAGS(i) BOOST_PP_DETAIL_CAT2(BOOST_PP_RELATIVE_, i)(BOOST_PP_ITERATION_FLAGS_)
#
# define BOOST_PP_RELATIVE_0(m) BOOST_PP_DETAIL_CAT2(m, BOOST_PP_ITERATION_DEPTH())
# define BOOST_PP_RELATIVE_1(m) BOOST_PP_DETAIL_CAT2(m, BOOST_PP_DEC(BOOST_PP_ITERATION_DEPTH()))
# define BOOST_PP_RELATIVE_2(m) BOOST_PP_DETAIL_CAT2(m, BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_ITERATION_DEPTH())))
# define BOOST_PP_RELATIVE_3(m) BOOST_PP_DETAIL_CAT2(m, BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_ITERATION_DEPTH()))))
# define BOOST_PP_RELATIVE_4(m) BOOST_PP_DETAIL_CAT2(m, BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_ITERATION_DEPTH())))))
#
# if defined BOOST_PP_EXTENDED_LINE_INFO && (!defined(__MWERKS__) || defined(BOOST_NO_COMPILER_CONFIG) || __MWERKS__ > 0x3002)
# define BOOST_PP_LINE(line, file) line BOOST_PP_STRINGIZE(file BOOST_PP_DETAIL_CAT2(BOOST_PP_LINE_, BOOST_PP_ITERATION_DEPTH()))
# else
# define BOOST_PP_LINE(line, file) __LINE__
# endif
#
# define BOOST_PP_LINE_0() (!BOOST_PP_ERROR_NO_ACTIVE_ITERATION)
# define BOOST_PP_LINE_1() BOOST_PP_DETAIL_CAT3([, BOOST_PP_ITERATION(), ])
# define BOOST_PP_LINE_2() BOOST_PP_DETAIL_CAT2(BOOST_PP_DETAIL_CAT3([, BOOST_PP_FRAME_ITERATION(1), ]), BOOST_PP_LINE_1())
# define BOOST_PP_LINE_3() BOOST_PP_DETAIL_CAT2(BOOST_PP_DETAIL_CAT3([, BOOST_PP_FRAME_ITERATION(2), ]), BOOST_PP_LINE_2())
# define BOOST_PP_LINE_4() BOOST_PP_DETAIL_CAT2(BOOST_PP_DETAIL_CAT3([, BOOST_PP_FRAME_ITERATION(3), ]), BOOST_PP_LINE_3())
# define BOOST_PP_LINE_5() BOOST_PP_DETAIL_CAT2(BOOST_PP_DETAIL_CAT3([, BOOST_PP_FRAME_ITERATION(4), ]), BOOST_PP_LINE_4())
#
# define BOOST_PP_ITERATE() BOOST_PP_DETAIL_CAT2(BOOST_PP_ITERATE_, BOOST_PP_INC(BOOST_PP_ITERATION_DEPTH()))
# define BOOST_PP_ITERATE_1 <boost/preprocessor/detail/iterate/exp1.hpp>
# define BOOST_PP_ITERATE_2 <boost/preprocessor/detail/iterate/exp2.hpp>
# define BOOST_PP_ITERATE_3 <boost/preprocessor/detail/iterate/exp3.hpp>
# define BOOST_PP_ITERATE_4 <boost/preprocessor/detail/iterate/exp4.hpp>
# define BOOST_PP_ITERATE_5 <boost/preprocessor/detail/iterate/exp5.hpp>
#
# define BOOST_PP_LOCAL_ITERATE() <boost/preprocessor/detail/iterate/local_iterate.hpp>
#
# define BOOST_PP_INCLUDE_SELF() <boost/preprocessor/detail/iterate/self.hpp>
#
# endif

View File

@ -0,0 +1,97 @@
# /* **************************************************************************
# * *
# * (C) Copyright Paul Mensonides 2002. Permission to copy, use, *
# * modify, sell, and distribute this software is granted provided *
# * this copyright notice appears in all copies. This software is *
# * provided "as is" without express or implied warranty, and with *
# * no claim at to its suitability for any purpose. *
# * *
# ************************************************************************** */
#
# ifndef BOOST_PREPROCESSOR_SLOT_HPP
# define BOOST_PREPROCESSOR_SLOT_HPP
#
# include <boost/preprocessor/detail/cat.hpp>
# include <boost/preprocessor/detail/line.hpp>
#
# define BOOST_PP_SLOT_LIMIT 5
# define BOOST_PP_SLOT_MAX 4294967295 /* 2^32 - 1 */
#
# define BOOST_PP_ASSIGN_SLOT(i) BOOST_PP_DETAIL_CAT2(BOOST_PP_ASSIGN_SLOT_, i)
# define BOOST_PP_ASSIGN_SLOT_1 <boost/preprocessor/detail/slot/slot1.hpp>
# define BOOST_PP_ASSIGN_SLOT_2 <boost/preprocessor/detail/slot/slot2.hpp>
# define BOOST_PP_ASSIGN_SLOT_3 <boost/preprocessor/detail/slot/slot3.hpp>
# define BOOST_PP_ASSIGN_SLOT_4 <boost/preprocessor/detail/slot/slot4.hpp>
# define BOOST_PP_ASSIGN_SLOT_5 <boost/preprocessor/detail/slot/slot5.hpp>
#
# define BOOST_PP_SLOT(i) BOOST_PP_DETAIL_CAT2(BOOST_PP_SLOT_, i)()
#
# ifndef BOOST_PP_SLOT_SIG
# define BOOST_PP_SLOT_SIG 10
# endif
#
# if BOOST_PP_SLOT_SIG >= 10
# define BOOST_PP_SLOT_10TH(x) (x) % 1000000000UL
# else
# define BOOST_PP_SLOT_10TH(x) (x)
# endif
#
# if BOOST_PP_SLOT_SIG >= 9
# define BOOST_PP_SLOT_9TH(x) BOOST_PP_SLOT_10TH(x) % 100000000UL
# else
# define BOOST_PP_SLOT_9TH(x) (x)
# endif
#
# if BOOST_PP_SLOT_SIG >= 8
# define BOOST_PP_SLOT_8TH(x) BOOST_PP_SLOT_9TH(x) % 10000000UL
# else
# define BOOST_PP_SLOT_8TH(x) (x)
# endif
#
# if BOOST_PP_SLOT_SIG >= 7
# define BOOST_PP_SLOT_7TH(x) BOOST_PP_SLOT_8TH(x) % 1000000UL
# else
# define BOOST_PP_SLOT_7TH(x) (x)
# endif
#
# if BOOST_PP_SLOT_SIG >= 6
# define BOOST_PP_SLOT_6TH(x) BOOST_PP_SLOT_7TH(x) % 100000UL
# else
# define BOOST_PP_SLOT_6TH(x) (x)
# endif
#
# if BOOST_PP_SLOT_SIG >= 5
# define BOOST_PP_SLOT_5TH(x) BOOST_PP_SLOT_6TH(x) % 10000UL
# else
# define BOOST_PP_SLOT_5TH(x) (x)
# endif
#
# if BOOST_PP_SLOT_SIG >= 4
# define BOOST_PP_SLOT_4TH(x) BOOST_PP_SLOT_5TH(x) % 1000UL
# else
# define BOOST_PP_SLOT_4TH(x) (x)
# endif
#
# if BOOST_PP_SLOT_SIG >= 3
# define BOOST_PP_SLOT_3RD(x) BOOST_PP_SLOT_4TH(x) % 100UL
# else
# define BOOST_PP_SLOT_3RD(x) (x)
# endif
#
# if BOOST_PP_SLOT_SIG >= 2
# define BOOST_PP_SLOT_2ND(x) BOOST_PP_SLOT_3RD(x) % 10UL
# else
# define BOOST_PP_SLOT_2ND(x) (x)
# endif
#
# define BOOST_PP_SLOT_CC_2(a, b) BOOST_PP_DETAIL_CAT2(a, b)
# define BOOST_PP_SLOT_CC_3(a, b, c) BOOST_PP_DETAIL_CAT2(BOOST_PP_SLOT_CC_2(a, b), c)
# define BOOST_PP_SLOT_CC_4(a, b, c, d) BOOST_PP_DETAIL_CAT2(BOOST_PP_SLOT_CC_3(a, b, c), d)
# define BOOST_PP_SLOT_CC_5(a, b, c, d, e) BOOST_PP_DETAIL_CAT2(BOOST_PP_SLOT_CC_4(a, b, c, d), e)
# define BOOST_PP_SLOT_CC_6(a, b, c, d, e, f) BOOST_PP_DETAIL_CAT2(BOOST_PP_SLOT_CC_5(a, b, c, d, e), f)
# define BOOST_PP_SLOT_CC_7(a, b, c, d, e, f, g) BOOST_PP_DETAIL_CAT2(BOOST_PP_SLOT_CC_6(a, b, c, d, e, f), g)
# define BOOST_PP_SLOT_CC_8(a, b, c, d, e, f, g, h) BOOST_PP_DETAIL_CAT2(BOOST_PP_SLOT_CC_7(a, b, c, d, e, f, g), h)
# define BOOST_PP_SLOT_CC_9(a, b, c, d, e, f, g, h, i) BOOST_PP_DETAIL_CAT2(BOOST_PP_SLOT_CC_8(a, b, c, d, e, f, g, h), i)
# define BOOST_PP_SLOT_CC_10(a, b, c, d, e, f, g, h, i, j) BOOST_PP_DETAIL_CAT2(BOOST_PP_SLOT_CC_9(a, b, c, d, e, f, g, h, i), j)
#
# endif

View File

@ -32,7 +32,7 @@ BOOST_PP_TUPLE_ELEM(2,1,(A,B))
</ul>
*/
#if !defined(__MWERKS__) || __MWERKS__ > 0x3001
#if !defined(__MWERKS__) || defined(BOOST_NO_COMPILER_CONFIG) || __MWERKS__ > 0x3002
# define BOOST_PP_TUPLE_ELEM(SIZE_OF_TUPLE,INDEX,TUPLE)\
BOOST_PP_DETAIL_EXPAND2(\
BOOST_PP_DETAIL_CAT2(BOOST_PP_TUPLE16_ELEM,INDEX)\

View File

@ -25,13 +25,13 @@ BOOST_PP_TUPLE_REVERSE(3,(A,B,C))
*/
#define BOOST_PP_TUPLE_REVERSE(SIZE_OF_TUPLE,TUPLE) BOOST_PP_TUPLE_REVERSE_DELAY(SIZE_OF_TUPLE,TUPLE)
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
#if defined(BOOST_NO_COMPILER_CONFIG) || !defined(__MWERKS__) || __MWERKS__ > 0x3002
# define BOOST_PP_TUPLE_REVERSE_DELAY(N,T) BOOST_PP_TUPLE##N##_REVERSE T
#else
/* This is a workaround for a CodeWarrior PP bug. Strictly speaking
* this workaround invokes undefined behavior, but it works as desired.
*/
# define BOOST_PP_TUPLE_REVERSE_DELAY(N,T) BOOST_PP_TUPLE##N##_REVERSE##T
#else
# define BOOST_PP_TUPLE_REVERSE_DELAY(N,T) BOOST_PP_TUPLE##N##_REVERSE T
#endif
#define BOOST_PP_TUPLE0_REVERSE() ()
#define BOOST_PP_TUPLE1_REVERSE(A) (A)

View File

@ -39,13 +39,13 @@ BOOST_PP_LIST_NIL)))
*/
#define BOOST_PP_TUPLE_TO_LIST(SIZE_OF_TUPLE,TUPLE) BOOST_PP_TUPLE_TO_LIST_DELAY(SIZE_OF_TUPLE,TUPLE)
#if !defined(BOOST_NO_COMPILER_CONFIG) && defined(__MWERKS__)
#if defined(BOOST_NO_COMPILER_CONFIG) || !defined(__MWERKS__) || __MWERKS__ > 0x3002
# define BOOST_PP_TUPLE_TO_LIST_DELAY(N,T) BOOST_PP_TUPLE##N##_TO_LIST T
#else
/* This is a workaround for a CodeWarrior PP bug. Strictly speaking
* this workaround invokes undefined behavior, but it works as desired.
*/
# define BOOST_PP_TUPLE_TO_LIST_DELAY(N,T) BOOST_PP_TUPLE##N##_TO_LIST##T
#else
# define BOOST_PP_TUPLE_TO_LIST_DELAY(N,T) BOOST_PP_TUPLE##N##_TO_LIST T
#endif
#define BOOST_PP_TUPLE0_TO_LIST() (_,_,0)
#define BOOST_PP_TUPLE1_TO_LIST(A) (A,(_,_,0),1)

View File

@ -474,7 +474,7 @@ namespace boost {
const_associative_property_map() : m_c(0) { }
const_associative_property_map(const C& c) : m_c(&c) { }
reference operator[](const key_type& k) const {
return (*m_c)[k];
return m_c->find(k)->second;
}
private:
C const* m_c;

View File

@ -268,6 +268,7 @@ struct re_repeat : public re_jump
int id;
bool leading;
bool greedy;
bool singleton;
};

View File

@ -416,6 +416,17 @@ void BOOST_REGEX_CALL reg_expression<charT, traits, Allocator>::compile_maps()
record->can_be_null = 0;
compile_map(record->next.p, static_cast<re_detail::re_jump*>(record)->_map, &(record->can_be_null), re_detail::mask_take, static_cast<re_detail::re_jump*>(record)->alt.p);
compile_map(static_cast<re_detail::re_jump*>(record)->alt.p, static_cast<re_detail::re_jump*>(record)->_map, &(record->can_be_null), re_detail::mask_skip);
if(record->type == re_detail::syntax_element_rep)
{
re_detail::re_repeat* rep = static_cast<re_detail::re_repeat*>(record);
// set whether this is a singleton repeat or not:
if(rep->next.p->next.p->next.p == rep->alt.p)
{
rep->singleton = true;
}
else
rep->singleton = false;
}
}
else
{

View File

@ -23,7 +23,7 @@
#include <boost/assert.hpp>
#include <boost/checked_delete.hpp>
#include <boost/throw_exception.hpp>
#include <boost/detail/shared_count.hpp>
#include <memory> // for std::auto_ptr
@ -90,6 +90,7 @@ private:
public:
typedef T element_type;
typedef T value_type;
shared_ptr(): px(0), pn()
{
@ -135,19 +136,19 @@ public:
template<typename Y>
shared_ptr(shared_ptr<Y> const & r, detail::dynamic_cast_tag): px(dynamic_cast<element_type *>(r.px)), pn(r.pn)
{
if (px == 0) // need to allocate new counter -- the cast failed
{
pn = detail::shared_count();
}
if (px == 0) // need to allocate new counter -- the cast failed
{
pn = detail::shared_count();
}
}
template<typename Y>
shared_ptr(shared_ptr<Y> const & r, detail::polymorphic_cast_tag): px(dynamic_cast<element_type *>(r.px)), pn(r.pn)
{
if (px == 0)
{
throw std::bad_cast();
}
if (px == 0)
{
boost::throw_exception(std::bad_cast());
}
}
#ifndef BOOST_NO_AUTO_PTR
@ -164,9 +165,9 @@ public:
template<typename Y>
shared_ptr & operator=(shared_ptr<Y> const & r) // never throws
{
px = r.px;
pn = r.pn; // shared_count::op= doesn't throw
return *this;
px = r.px;
pn = r.pn; // shared_count::op= doesn't throw
return *this;
}
#endif
@ -176,43 +177,43 @@ public:
template<typename Y>
shared_ptr & operator=(std::auto_ptr<Y> & r)
{
this_type(r).swap(*this);
return *this;
this_type(r).swap(*this);
return *this;
}
#endif
void reset()
{
this_type().swap(*this);
this_type().swap(*this);
}
template<typename Y> void reset(Y * p) // Y must be complete
{
BOOST_ASSERT(p == 0 || p != px); // catch self-reset errors
this_type(p).swap(*this);
BOOST_ASSERT(p == 0 || p != px); // catch self-reset errors
this_type(p).swap(*this);
}
template<typename Y, typename D> void reset(Y * p, D d)
{
this_type(p, d).swap(*this);
this_type(p, d).swap(*this);
}
typename detail::shared_ptr_traits<T>::reference operator* () const // never throws
{
BOOST_ASSERT(px != 0);
return *px;
BOOST_ASSERT(px != 0);
return *px;
}
T * operator-> () const // never throws
{
BOOST_ASSERT(px != 0);
return px;
BOOST_ASSERT(px != 0);
return px;
}
T * get() const // never throws
{
return px;
return px;
}
// implicit conversion to "bool"
@ -221,28 +222,28 @@ public:
operator unspecified_bool_type() const // never throws
{
return px == 0? 0: &this_type::get;
return px == 0? 0: &this_type::get;
}
bool operator! () const // never throws
{
return px == 0;
return px == 0;
}
bool unique() const // never throws
{
return pn.unique();
return pn.unique();
}
long use_count() const // never throws
{
return pn.use_count();
return pn.use_count();
}
void swap(shared_ptr<T> & other) // never throws
{
std::swap(px, other.px);
pn.swap(other.pn);
std::swap(px, other.px);
pn.swap(other.pn);
}
// Tasteless as this may seem, making all members public allows member templates

View File

@ -89,7 +89,7 @@ namespace boost {
typename SlotFunction>
class real_get_signal_impl<2, Signature, Combiner, Group, GroupCompare,
SlotFunction>
{
{
typedef function_traits<Signature> traits;
public:
@ -109,7 +109,7 @@ namespace boost {
typename SlotFunction>
class real_get_signal_impl<3, Signature, Combiner, Group, GroupCompare,
SlotFunction>
{
{
typedef function_traits<Signature> traits;
public:
@ -130,7 +130,7 @@ namespace boost {
typename SlotFunction>
class real_get_signal_impl<4, Signature, Combiner, Group, GroupCompare,
SlotFunction>
{
{
typedef function_traits<Signature> traits;
public:
@ -152,7 +152,7 @@ namespace boost {
typename SlotFunction>
class real_get_signal_impl<5, Signature, Combiner, Group, GroupCompare,
SlotFunction>
{
{
typedef function_traits<Signature> traits;
public:
@ -175,7 +175,7 @@ namespace boost {
typename SlotFunction>
class real_get_signal_impl<6, Signature, Combiner, Group, GroupCompare,
SlotFunction>
{
{
typedef function_traits<Signature> traits;
public:
@ -199,7 +199,7 @@ namespace boost {
typename SlotFunction>
class real_get_signal_impl<7, Signature, Combiner, Group, GroupCompare,
SlotFunction>
{
{
typedef function_traits<Signature> traits;
public:
@ -224,7 +224,7 @@ namespace boost {
typename SlotFunction>
class real_get_signal_impl<8, Signature, Combiner, Group, GroupCompare,
SlotFunction>
{
{
typedef function_traits<Signature> traits;
public:
@ -250,7 +250,7 @@ namespace boost {
typename SlotFunction>
class real_get_signal_impl<9, Signature, Combiner, Group, GroupCompare,
SlotFunction>
{
{
typedef function_traits<Signature> traits;
public:
@ -277,7 +277,7 @@ namespace boost {
typename SlotFunction>
class real_get_signal_impl<10, Signature, Combiner, Group, GroupCompare,
SlotFunction>
{
{
typedef function_traits<Signature> traits;
public:
@ -310,7 +310,7 @@ namespace boost {
Group,
GroupCompare,
SlotFunction>
{
{
};
} // end namespace detail
@ -340,7 +340,7 @@ namespace boost {
GroupCompare,
SlotFunction>::type base_type;
public:
public:
explicit signal(const Combiner& combiner = Combiner(),
const GroupCompare& group_compare = GroupCompare()) :
base_type(combiner, group_compare)

View File

@ -32,25 +32,25 @@ namespace boost {
// Represents an object that has been bound as part of a slot, and how
// to notify that object of a disconnect
struct bound_object {
void* obj;
void* data;
void (*disconnect)(void*, void*);
void* obj;
void* data;
void (*disconnect)(void*, void*);
bool operator==(const bound_object& other) const
{ return obj == other.obj && data == other.data; }
bool operator<(const bound_object& other) const
{ return obj < other.obj; }
bool operator==(const bound_object& other) const
{ return obj == other.obj && data == other.data; }
bool operator<(const bound_object& other) const
{ return obj < other.obj; }
};
// Describes the connection between a signal and the objects that are
// bound for a specific slot. Enables notification of the signal and the
// slots when a disconnect is requested.
struct basic_connection {
void* signal;
void* signal_data;
void (*signal_disconnect)(void*, void*);
void* signal;
void* signal_data;
void (*signal_disconnect)(void*, void*);
std::list<bound_object> bound_objects;
std::list<bound_object> bound_objects;
};
} // end namespace detail
@ -116,7 +116,7 @@ namespace boost {
connection release();
void swap(scoped_connection&);
inline void swap(scoped_connection&);
scoped_connection& operator=(const connection&);
scoped_connection& operator=(const scoped_connection&);
@ -138,7 +138,7 @@ namespace boost {
inline connection::~connection()
{
if (controlling_connection) {
disconnect();
disconnect();
}
}
@ -198,7 +198,7 @@ namespace boost {
inline scoped_connection::~scoped_connection()
{
if (!released) {
this->disconnect();
this->disconnect();
}
}
@ -237,52 +237,52 @@ namespace boost {
namespace detail {
struct connection_slot_pair {
connection first;
any second;
connection first;
any second;
connection_slot_pair() {}
connection_slot_pair() {}
connection_slot_pair(const connection& c, const any& a)
: first(c), second(a)
{
}
connection_slot_pair(const connection& c, const any& a)
: first(c), second(a)
{
}
// Dummys to allow explicit instantiation to work
bool operator==(const connection_slot_pair&) const { return false; }
bool operator<(const connection_slot_pair&) const { return false;}
// Dummys to allow explicit instantiation to work
bool operator==(const connection_slot_pair&) const { return false; }
bool operator<(const connection_slot_pair&) const { return false;}
};
// Determines if the underlying connection is disconnected
struct is_disconnected {
typedef std::pair<const any, connection_slot_pair> argument_type;
typedef bool result_type;
typedef std::pair<const any, connection_slot_pair> argument_type;
typedef bool result_type;
inline bool operator()(const argument_type& c) const
{
return !c.second.first.connected();
}
inline bool operator()(const argument_type& c) const
{
return !c.second.first.connected();
}
};
// Autodisconnects the bound object when it is destroyed unless the
// release method is invoked.
class auto_disconnect_bound_object {
public:
auto_disconnect_bound_object(const bound_object& b) :
binding(b), auto_disconnect(true)
{
}
auto_disconnect_bound_object(const bound_object& b) :
binding(b), auto_disconnect(true)
{
}
~auto_disconnect_bound_object()
{
if (auto_disconnect)
binding.disconnect(binding.obj, binding.data);
}
~auto_disconnect_bound_object()
{
if (auto_disconnect)
binding.disconnect(binding.obj, binding.data);
}
void release() { auto_disconnect = false; }
void release() { auto_disconnect = false; }
private:
bound_object binding;
bool auto_disconnect;
bound_object binding;
bool auto_disconnect;
};
} // end namespace detail
} // end namespace BOOST_SIGNALS_NAMESPACE

View File

@ -1,6 +1,6 @@
// Boost.Signals library
//
// Copyright (C) 2001-2 Doug Gregor (gregod@cs.rpi.edu)
// Copyright (C) 2001, 2002 Doug Gregor (gregod@cs.rpi.edu)
//
// Permission to copy, use, sell and distribute this software is granted
// provided this copyright notice appears in all copies.
@ -16,6 +16,10 @@
#ifndef BOOST_SIGNALS_SIGNAL_BASE_HEADER
#define BOOST_SIGNALS_SIGNAL_BASE_HEADER
#ifdef BOOST_SIGNALS_IN_LIBRARY_SOURCE
# define BOOST_FUNCTION_SILENT_DEPRECATED
#endif
#include <boost/signals/detail/signals_common.hpp>
#include <boost/signals/connection.hpp>
#include <boost/signals/trackable.hpp>

View File

@ -0,0 +1,43 @@
#ifndef BOOST_THROW_EXCEPTION_HPP_INCLUDED
#define BOOST_THROW_EXCEPTION_HPP_INCLUDED
#if _MSC_VER >= 1020
#pragma once
#endif
//
// boost/throw_exception.hpp
//
// Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
//
// Permission to copy, use, modify, sell and distribute this software
// is granted provided this copyright notice appears in all copies.
// This software is provided "as is" without express or implied
// warranty, and with no claim as to its suitability for any purpose.
//
#include <boost/config.hpp>
#ifdef BOOST_NO_EXCEPTIONS
# include <exception>
#endif
namespace boost
{
#ifdef BOOST_NO_EXCEPTIONS
void throw_exception(std::exception const & e); // user defined
#else
template<class E> void throw_exception(E const & e)
{
throw e;
}
#endif
} // namespace boost
#endif // #ifndef BOOST_THROW_EXCEPTION_HPP_INCLUDED

View File

@ -145,6 +145,7 @@ parser_buf<charT, traits>::seekoff(off_type off, ::std::ios_base::seekdir way, :
else
this->setg(g, g + newpos, g + size);
}
default: ; // just to avoid warnings from gcc
}
return static_cast<pos_type>(this->gptr() - this->eback());
}

View File

@ -1,6 +1,6 @@
// Boost.Signals library
//
// Copyright (C) 2001 Doug Gregor (gregod@cs.rpi.edu)
// Copyright (C) 2001, 2002 Doug Gregor (gregod@cs.rpi.edu)
//
// Permission to copy, use, sell and distribute this software is granted
// provided this copyright notice appears in all copies.
@ -13,6 +13,8 @@
// For more information, see http://www.boost.org
#define BOOST_SIGNALS_IN_LIBRARY_SOURCE
#include <boost/signals/connection.hpp>
#include <cassert>

View File

@ -1,6 +1,6 @@
// Boost.Signals library
//
// Copyright (C) 2001 Doug Gregor (gregod@cs.rpi.edu)
// Copyright (C) 2001, 2002 Doug Gregor (gregod@cs.rpi.edu)
//
// Permission to copy, use, sell and distribute this software is granted
// provided this copyright notice appears in all copies.
@ -13,6 +13,8 @@
// For more information, see http://www.boost.org
#define BOOST_SIGNALS_IN_LIBRARY_SOURCE
#include <boost/signals/detail/signal_base.hpp>
#include <cassert>
@ -20,204 +22,204 @@ namespace boost {
namespace BOOST_SIGNALS_NAMESPACE {
namespace detail {
signal_base_impl::signal_base_impl(const compare_type& comp) :
call_depth(0),
slots_(comp)
call_depth(0),
slots_(comp)
{
flags.delayed_disconnect = false;
flags.clearing = false;
flags.delayed_disconnect = false;
flags.clearing = false;
}
signal_base_impl::~signal_base_impl()
{
// Set the "clearing" flag to ignore extraneous disconnect requests,
// because all slots will be disconnected on destruction anyway.
flags.clearing = true;
// Set the "clearing" flag to ignore extraneous disconnect requests,
// because all slots will be disconnected on destruction anyway.
flags.clearing = true;
}
void signal_base_impl::disconnect_all_slots()
{
// Do nothing if we're already clearing the slot list
if (flags.clearing)
return;
// Do nothing if we're already clearing the slot list
if (flags.clearing)
return;
if (call_depth == 0) {
// Clearing the slot list will disconnect all slots automatically
temporarily_set_clearing set_clearing(this);
slots_.clear();
}
else {
// We can't actually remove elements from the slot list because there
// are still iterators into the slot list that must not be
// invalidated by this operation. So just disconnect each slot
// without removing it from the slot list. When the call depth does
// reach zero, the call list will be cleared.
flags.delayed_disconnect = true;
temporarily_set_clearing set_clearing(this);
for (slot_iterator i = slots_.begin(); i != slots_.end(); ++i) {
i->second.first.disconnect();
}
}
if (call_depth == 0) {
// Clearing the slot list will disconnect all slots automatically
temporarily_set_clearing set_clearing(this);
slots_.clear();
}
else {
// We can't actually remove elements from the slot list because there
// are still iterators into the slot list that must not be
// invalidated by this operation. So just disconnect each slot
// without removing it from the slot list. When the call depth does
// reach zero, the call list will be cleared.
flags.delayed_disconnect = true;
temporarily_set_clearing set_clearing(this);
for (slot_iterator i = slots_.begin(); i != slots_.end(); ++i) {
i->second.first.disconnect();
}
}
}
connection
signal_base_impl::
connect_slot(const any& slot,
const any& name,
const std::vector<const trackable*>& bound_objects)
connect_slot(const any& slot,
const any& name,
const std::vector<const trackable*>& bound_objects)
{
// Allocate storage for a new basic_connection object to represent the
// connection
basic_connection* con = new basic_connection();
// Allocate storage for a new basic_connection object to represent the
// connection
basic_connection* con = new basic_connection();
// Create a new connection handle object and place the basic_connection
// object we just created under its control. Note that the "reset"
// routine will delete con if allocation throws.
connection slot_connection;
slot_connection.reset(con);
// Create a new connection handle object and place the basic_connection
// object we just created under its control. Note that the "reset"
// routine will delete con if allocation throws.
connection slot_connection;
slot_connection.reset(con);
// Allocate storage for an iterator that will hold the point of
// insertion of the slot into the list. This is used to later remove
// the slot when it is disconnected.
std::auto_ptr<slot_iterator> saved_iter(new slot_iterator());
// Allocate storage for an iterator that will hold the point of
// insertion of the slot into the list. This is used to later remove
// the slot when it is disconnected.
std::auto_ptr<slot_iterator> saved_iter(new slot_iterator());
// Add the slot to the list.
// Add the slot to the list.
slot_iterator pos =
slots_.insert(stored_slot_type(name,
connection_slot_pair(slot_connection,
slot)));
slot_iterator pos =
slots_.insert(stored_slot_type(name,
connection_slot_pair(slot_connection,
slot)));
// Make the copy of the connection in the list disconnect when it is
// destroyed
pos->second.first.set_controlling();
// Make the copy of the connection in the list disconnect when it is
// destroyed
pos->second.first.set_controlling();
// The assignment operation here absolutely must not throw, which
// intuitively makes sense (because any container's insert method
// becomes impossible to use in an exception-safe manner without this
// assumption), but doesn't appear to be mentioned in the standard.
*saved_iter = pos;
// The assignment operation here absolutely must not throw, which
// intuitively makes sense (because any container's insert method
// becomes impossible to use in an exception-safe manner without this
// assumption), but doesn't appear to be mentioned in the standard.
*saved_iter = pos;
// Fill out the connection object appropriately. None of these
// operations can throw
con->signal = this;
con->signal_data = saved_iter.release();
con->signal_disconnect = &signal_base_impl::slot_disconnected;
// Fill out the connection object appropriately. None of these
// operations can throw
con->signal = this;
con->signal_data = saved_iter.release();
con->signal_disconnect = &signal_base_impl::slot_disconnected;
// If an exception is thrown the connection will automatically be
// disconnected.
scoped_connection safe_connection = slot_connection;
// If an exception is thrown the connection will automatically be
// disconnected.
scoped_connection safe_connection = slot_connection;
// Connect each of the bound objects
for(std::vector<const trackable*>::const_iterator i =
bound_objects.begin();
i != bound_objects.end();
++i) {
// Notify the object that the signal is connecting to it by passing
// it a copy of the connection. If the connection
// should throw, the scoped connection safe_connection will
// disconnect the connection completely.
bound_object binding;
(*i)->signal_connected(slot_connection, binding);
// Connect each of the bound objects
for(std::vector<const trackable*>::const_iterator i =
bound_objects.begin();
i != bound_objects.end();
++i) {
// Notify the object that the signal is connecting to it by passing
// it a copy of the connection. If the connection
// should throw, the scoped connection safe_connection will
// disconnect the connection completely.
bound_object binding;
(*i)->signal_connected(slot_connection, binding);
// This will notify the bound object that the connection just made
// should be disconnected if an exception is thrown before the
// end of this iteration
auto_disconnect_bound_object disconnector(binding);
// This will notify the bound object that the connection just made
// should be disconnected if an exception is thrown before the
// end of this iteration
auto_disconnect_bound_object disconnector(binding);
// Add the binding to the list of bindings for the connection.
con->bound_objects.push_back(binding);
// Add the binding to the list of bindings for the connection.
con->bound_objects.push_back(binding);
// The connection object now knows about the bound object, so if an
// exception is thrown later the connection object will notify the
// bound object of the disconnection automatically
disconnector.release();
}
// The connection object now knows about the bound object, so if an
// exception is thrown later the connection object will notify the
// bound object of the disconnection automatically
disconnector.release();
}
// No exceptions will be thrown past this point, and we must not
// disconnect the connection now
safe_connection.release();
// No exceptions will be thrown past this point, and we must not
// disconnect the connection now
safe_connection.release();
return slot_connection;
return slot_connection;
}
bool signal_base_impl::empty() const
{
// Disconnected slots may still be in the list of slots if
// a) this is called while slots are being invoked (call_depth > 0)
// b) an exception was thrown in remove_disconnected_slots
for (slot_iterator i = slots_.begin(); i != slots_.end(); ++i) {
if (i->second.first.connected())
return false;
}
// Disconnected slots may still be in the list of slots if
// a) this is called while slots are being invoked (call_depth > 0)
// b) an exception was thrown in remove_disconnected_slots
for (slot_iterator i = slots_.begin(); i != slots_.end(); ++i) {
if (i->second.first.connected())
return false;
}
return true;
return true;
}
void signal_base_impl::disconnect(const any& group)
{
std::pair<slot_iterator, slot_iterator> group_slots =
slots_.equal_range(group);
while (group_slots.first != group_slots.second) {
slot_iterator next = group_slots.first;
++next;
std::pair<slot_iterator, slot_iterator> group_slots =
slots_.equal_range(group);
while (group_slots.first != group_slots.second) {
slot_iterator next = group_slots.first;
++next;
group_slots.first->second.first.disconnect();
group_slots.first = next;
}
group_slots.first->second.first.disconnect();
group_slots.first = next;
}
}
void signal_base_impl::slot_disconnected(void* obj, void* data)
{
signal_base_impl* self = reinterpret_cast<signal_base_impl*>(obj);
signal_base_impl* self = reinterpret_cast<signal_base_impl*>(obj);
// We won't need the slot iterator after this
std::auto_ptr<slot_iterator> slot(
reinterpret_cast<slot_iterator*>(data));
// We won't need the slot iterator after this
std::auto_ptr<slot_iterator> slot(
reinterpret_cast<slot_iterator*>(data));
// If we're flags.clearing, we don't bother updating the list of slots
if (!self->flags.clearing) {
// If we're in a call, note the fact that a slot has been deleted so
// we can come back later to remove the iterator
if (self->call_depth > 0) {
self->flags.delayed_disconnect = true;
}
else {
// Just remove the slot now, it's safe
self->slots_.erase(*slot);
}
}
// If we're flags.clearing, we don't bother updating the list of slots
if (!self->flags.clearing) {
// If we're in a call, note the fact that a slot has been deleted so
// we can come back later to remove the iterator
if (self->call_depth > 0) {
self->flags.delayed_disconnect = true;
}
else {
// Just remove the slot now, it's safe
self->slots_.erase(*slot);
}
}
}
void signal_base_impl::remove_disconnected_slots() const
{
// Remove any disconnected slots
for (slot_iterator i = slots_.begin(); i != slots_.end(); /* none */) {
if (!i->second.first.connected())
slots_.erase(i++);
else
++i;
}
// Remove any disconnected slots
for (slot_iterator i = slots_.begin(); i != slots_.end(); /* none */) {
if (!i->second.first.connected())
slots_.erase(i++);
else
++i;
}
}
call_notification::
call_notification(const shared_ptr<signal_base_impl>& b) :
impl(b)
call_notification(const shared_ptr<signal_base_impl>& b) :
impl(b)
{
// A call will be made, so increment the call depth as a notification
impl->call_depth++;
// A call will be made, so increment the call depth as a notification
impl->call_depth++;
}
call_notification::~call_notification()
{
impl->call_depth--;
impl->call_depth--;
// If the call depth is zero and we have some slots that have been
// disconnected during the calls, remove those slots from the list
if (impl->call_depth == 0 &&
impl->flags.delayed_disconnect) {
impl->remove_disconnected_slots();
impl->flags.delayed_disconnect = false;
}
// If the call depth is zero and we have some slots that have been
// disconnected during the calls, remove those slots from the list
if (impl->call_depth == 0 &&
impl->flags.delayed_disconnect) {
impl->remove_disconnected_slots();
impl->flags.delayed_disconnect = false;
}
}
signal_base::~signal_base()
@ -231,6 +233,6 @@ namespace boost {
// Explicit instantiations to keep in the library
template class boost::function2<bool, boost::any, boost::any>;
template class std::multimap<boost::any,
boost::BOOST_SIGNALS_NAMESPACE::detail::connection_slot_pair,
boost::function2<bool, boost::any, boost::any> >;
boost::BOOST_SIGNALS_NAMESPACE::detail::connection_slot_pair,
boost::function2<bool, boost::any, boost::any> >;
#endif

View File

@ -13,6 +13,8 @@
// For more information, see http://www.boost.org
#define BOOST_SIGNALS_IN_LIBRARY_SOURCE
#include <boost/signals/slot.hpp>
namespace boost {

View File

@ -1,6 +1,6 @@
// Boost.Signals library
//
// Copyright (C) 2001 Doug Gregor (gregod@cs.rpi.edu)
// Copyright (C) 2001, 2002 Doug Gregor (gregod@cs.rpi.edu)
//
// Permission to copy, use, sell and distribute this software is granted
// provided this copyright notice appears in all copies.
@ -13,6 +13,8 @@
// For more information, see http://www.boost.org
#define BOOST_SIGNALS_IN_LIBRARY_SOURCE
#include <boost/signals/trackable.hpp>
#include <algorithm>

View File

@ -1,5 +1,8 @@
2002-08-20 Lars Gullik Bjønnes <larsbj@gullik.net>
* boost.C (throw_exception): new file, with helper function for
boost compiled without exceptions.
* paragraph.h:
* lyxlength.C:
* buffer.C:

View File

@ -89,6 +89,7 @@ lyx_SOURCES = \
ToolbarDefaults.C \
ToolbarDefaults.h \
WordLangTuple.h \
boost.C \
box.h \
box.C \
broken_headers.h \

20
src/boost.C Normal file
View File

@ -0,0 +1,20 @@
#include <config.h>
#include "debug.h"
#include "support/LAssert.h"
#include <exception>
using std::endl;
namespace boost {
void throw_exception(std::exception const & e)
{
lyxerr << "Exception caught:\n"
<< e.what() << endl;
lyx::Assert(false);
}
}