Include bind in ndnboost.
diff --git a/ndnboost/mpl/aux_/front_impl.hpp b/ndnboost/mpl/aux_/front_impl.hpp
deleted file mode 100644
index a912eb3..0000000
--- a/ndnboost/mpl/aux_/front_impl.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_FRONT_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_FRONT_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: front_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/front_fwd.hpp>
-#include <ndnboost/mpl/begin_end.hpp>
-#include <ndnboost/mpl/deref.hpp>
-#include <ndnboost/mpl/aux_/traits_lambda_spec.hpp>
-
-namespace ndnboost { namespace mpl {
-
-// default implementation; conrete sequences might override it by 
-// specializing either the 'front_impl' or the primary 'front' template
-
-template< typename Tag >
-struct front_impl
-{
-    template< typename Sequence > struct apply
-    {
-        typedef typename begin<Sequence>::type iter_;
-        typedef typename deref<iter_>::type type;
-    };
-};
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1,front_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_FRONT_IMPL_HPP_INCLUDED
diff --git a/ndnboost/mpl/aux_/joint_iter.hpp b/ndnboost/mpl/aux_/joint_iter.hpp
deleted file mode 100644
index 8adcdf6..0000000
--- a/ndnboost/mpl/aux_/joint_iter.hpp
+++ /dev/null
@@ -1,120 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_JOINT_ITER_HPP_INCLUDED
-#define BOOST_MPL_AUX_JOINT_ITER_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: joint_iter.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/next_prior.hpp>
-#include <ndnboost/mpl/deref.hpp>
-#include <ndnboost/mpl/iterator_tags.hpp>
-#include <ndnboost/mpl/aux_/lambda_spec.hpp>
-#include <ndnboost/mpl/aux_/config/ctps.hpp>
-
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-#   include <ndnboost/type_traits/is_same.hpp>
-#endif
-
-namespace ndnboost { namespace mpl {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template<
-      typename Iterator1
-    , typename LastIterator1
-    , typename Iterator2
-    >
-struct joint_iter
-{
-    typedef Iterator1 base;
-    typedef forward_iterator_tag category;
-};
-
-template<
-      typename LastIterator1
-    , typename Iterator2
-    >
-struct joint_iter<LastIterator1,LastIterator1,Iterator2>
-{
-    typedef Iterator2 base;
-    typedef forward_iterator_tag category;
-};
-
-
-template< typename I1, typename L1, typename I2 >
-struct deref< joint_iter<I1,L1,I2> >
-{
-    typedef typename joint_iter<I1,L1,I2>::base base_;
-    typedef typename deref<base_>::type type;
-};
-
-template< typename I1, typename L1, typename I2 >
-struct next< joint_iter<I1,L1,I2> >
-{
-    typedef joint_iter< typename mpl::next<I1>::type,L1,I2 > type;
-};
-
-template< typename L1, typename I2 >
-struct next< joint_iter<L1,L1,I2> >
-{
-    typedef joint_iter< L1,L1,typename mpl::next<I2>::type > type;
-};
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template<
-      typename Iterator1
-    , typename LastIterator1
-    , typename Iterator2
-    >
-struct joint_iter;
-
-template< bool > struct joint_iter_impl
-{
-    template< typename I1, typename L1, typename I2 > struct result_
-    {
-        typedef I1 base;
-        typedef forward_iterator_tag category;
-        typedef joint_iter< typename mpl::next<I1>::type,L1,I2 > next;
-        typedef typename deref<I1>::type type;
-    };
-};
-
-template<> struct joint_iter_impl<true>
-{
-    template< typename I1, typename L1, typename I2 > struct result_
-    {
-        typedef I2 base;
-        typedef forward_iterator_tag category;
-        typedef joint_iter< L1,L1,typename mpl::next<I2>::type > next;
-        typedef typename deref<I2>::type type;
-    };
-};
-
-template<
-      typename Iterator1
-    , typename LastIterator1
-    , typename Iterator2
-    >
-struct joint_iter
-    : joint_iter_impl< is_same<Iterator1,LastIterator1>::value >
-        ::template result_<Iterator1,LastIterator1,Iterator2>
-{
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(3, joint_iter)
-
-}}
-
-#endif // BOOST_MPL_AUX_JOINT_ITER_HPP_INCLUDED
diff --git a/ndnboost/mpl/aux_/pop_front_impl.hpp b/ndnboost/mpl/aux_/pop_front_impl.hpp
deleted file mode 100644
index a4ad7ce..0000000
--- a/ndnboost/mpl/aux_/pop_front_impl.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_POP_FRONT_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_POP_FRONT_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: pop_front_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/pop_front_fwd.hpp>
-#include <ndnboost/mpl/aux_/traits_lambda_spec.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-#include <ndnboost/mpl/aux_/config/msvc.hpp>
-
-namespace ndnboost { namespace mpl {
-
-// no default implementation; the definition is needed to make MSVC happy
-
-template< typename Tag >
-struct pop_front_impl
-{
-    template< typename Sequence > struct apply
-    // conservatively placed, but maybe should go outside surrounding
-    // braces.
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) 
-    {
-        typedef int type;
-    }
-#endif
-    ;
-};
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, pop_front_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_POP_FRONT_IMPL_HPP_INCLUDED
diff --git a/ndnboost/mpl/aux_/unwrap.hpp b/ndnboost/mpl/aux_/unwrap.hpp
new file mode 100644
index 0000000..2b755b9
--- /dev/null
+++ b/ndnboost/mpl/aux_/unwrap.hpp
@@ -0,0 +1,47 @@
+
+#ifndef BOOST_MPL_AUX_UNWRAP_HPP_INCLUDED
+#define BOOST_MPL_AUX_UNWRAP_HPP_INCLUDED
+
+// Copyright Peter Dimov and Multi Media Ltd 2001, 2002
+// Copyright David Abrahams 2001
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: unwrap.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#include <ndnboost/ref.hpp>
+
+namespace ndnboost { namespace mpl { namespace aux {
+
+template< typename F >
+inline
+F& unwrap(F& f, long)
+{
+    return f;
+}
+
+template< typename F >
+inline
+F&
+unwrap(reference_wrapper<F>& f, int)
+{
+    return f;
+}
+
+template< typename F >
+inline
+F&
+unwrap(reference_wrapper<F> const& f, int)
+{
+    return f;
+}
+
+}}}
+
+#endif // BOOST_MPL_AUX_UNWRAP_HPP_INCLUDED
diff --git a/ndnboost/mpl/begin.hpp b/ndnboost/mpl/begin.hpp
deleted file mode 100644
index 81a2cd0..0000000
--- a/ndnboost/mpl/begin.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-
-#ifndef BOOST_MPL_BEGIN_HPP_INCLUDED
-#define BOOST_MPL_BEGIN_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: begin.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/begin_end.hpp>
-
-#endif // BOOST_MPL_BEGIN_HPP_INCLUDED
diff --git a/ndnboost/mpl/bitand.hpp b/ndnboost/mpl/bitand.hpp
deleted file mode 100644
index 1358edb..0000000
--- a/ndnboost/mpl/bitand.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-
-#ifndef BOOST_MPL_BITAND_HPP_INCLUDED
-#define BOOST_MPL_BITAND_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2009
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: bitand.hpp 63520 2010-07-02 08:59:55Z agurtovoy $
-// $Date: 2010-07-02 01:59:55 -0700 (Fri, 02 Jul 2010) $
-// $Revision: 63520 $
-
-// agurt, 23/jan/10: workaround a conflict with <iso646.h> header's 
-// macros, see http://tinyurl.com/ycwdxco; 'defined(bitand)'
-// has to be checked in a separate condition, otherwise GCC complains 
-// about 'bitand' being an alternative token
-#if defined(_MSC_VER) 
-#ifndef __GCCXML__
-#if defined(bitand)
-#   pragma push_macro("bitand")
-#   undef bitand
-#   define bitand(x)
-#endif
-#endif
-#endif
-
-#define AUX778076_OP_NAME   bitand_
-#define AUX778076_OP_PREFIX bitand
-#define AUX778076_OP_TOKEN  &
-#include <ndnboost/mpl/aux_/arithmetic_op.hpp>
-
-#if defined(_MSC_VER)
-#ifndef __GCCXML__
-#if defined(bitand)
-#   pragma pop_macro("bitand")
-#endif
-#endif
-#endif
-
-#endif // BOOST_MPL_BITAND_HPP_INCLUDED
diff --git a/ndnboost/mpl/bitxor.hpp b/ndnboost/mpl/bitxor.hpp
deleted file mode 100644
index cae9992..0000000
--- a/ndnboost/mpl/bitxor.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-
-#ifndef BOOST_MPL_BITXOR_HPP_INCLUDED
-#define BOOST_MPL_BITXOR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: bitxor.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#define AUX778076_OP_NAME   bitxor_
-#define AUX778076_OP_PREFIX bitxor
-#define AUX778076_OP_TOKEN  ^
-#include <ndnboost/mpl/aux_/arithmetic_op.hpp>
-
-#endif // BOOST_MPL_BITXOR_HPP_INCLUDED
diff --git a/ndnboost/mpl/comparison.hpp b/ndnboost/mpl/comparison.hpp
new file mode 100644
index 0000000..617ea5f
--- /dev/null
+++ b/ndnboost/mpl/comparison.hpp
@@ -0,0 +1,24 @@
+
+#ifndef BOOST_MPL_COMPARISON_HPP_INCLUDED
+#define BOOST_MPL_COMPARISON_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: comparison.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#include <ndnboost/mpl/equal_to.hpp>
+#include <ndnboost/mpl/not_equal_to.hpp>
+#include <ndnboost/mpl/less.hpp>
+#include <ndnboost/mpl/greater.hpp>
+#include <ndnboost/mpl/less_equal.hpp>
+#include <ndnboost/mpl/greater_equal.hpp>
+
+#endif // BOOST_MPL_COMPARISON_HPP_INCLUDED
diff --git a/ndnboost/mpl/for_each.hpp b/ndnboost/mpl/for_each.hpp
new file mode 100644
index 0000000..a98dc5b
--- /dev/null
+++ b/ndnboost/mpl/for_each.hpp
@@ -0,0 +1,116 @@
+
+#ifndef BOOST_MPL_FOR_EACH_HPP_INCLUDED
+#define BOOST_MPL_FOR_EACH_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2008
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: for_each.hpp 55648 2009-08-18 05:16:53Z agurtovoy $
+// $Date: 2009-08-17 22:16:53 -0700 (Mon, 17 Aug 2009) $
+// $Revision: 55648 $
+
+#include <ndnboost/mpl/is_sequence.hpp>
+#include <ndnboost/mpl/begin_end.hpp>
+#include <ndnboost/mpl/apply.hpp>
+#include <ndnboost/mpl/bool.hpp>
+#include <ndnboost/mpl/next_prior.hpp>
+#include <ndnboost/mpl/deref.hpp>
+#include <ndnboost/mpl/identity.hpp>
+#include <ndnboost/mpl/assert.hpp>
+#include <ndnboost/mpl/aux_/unwrap.hpp>
+
+#include <ndnboost/type_traits/is_same.hpp>
+#include <ndnboost/utility/value_init.hpp>
+
+namespace ndnboost { namespace mpl {
+
+namespace aux {
+
+template< bool done = true >
+struct for_each_impl
+{
+    template<
+          typename Iterator
+        , typename LastIterator
+        , typename TransformFunc
+        , typename F
+        >
+    static void execute(
+          Iterator*
+        , LastIterator*
+        , TransformFunc*
+        , F
+        )
+    {
+    }
+};
+
+template<>
+struct for_each_impl<false>
+{
+    template<
+          typename Iterator
+        , typename LastIterator
+        , typename TransformFunc
+        , typename F
+        >
+    static void execute(
+          Iterator*
+        , LastIterator*
+        , TransformFunc* 
+        , F f
+        )
+    {
+        typedef typename deref<Iterator>::type item;
+        typedef typename apply1<TransformFunc,item>::type arg;
+    
+        // dwa 2002/9/10 -- make sure not to invoke undefined behavior
+        // when we pass arg.
+        value_initialized<arg> x;
+        aux::unwrap(f, 0)(ndnboost::get(x));
+        
+        typedef typename mpl::next<Iterator>::type iter;
+        for_each_impl<ndnboost::is_same<iter,LastIterator>::value>
+            ::execute( static_cast<iter*>(0), static_cast<LastIterator*>(0), static_cast<TransformFunc*>(0), f);
+    }
+};
+
+} // namespace aux
+
+// agurt, 17/mar/02: pointer default parameters are necessary to workaround 
+// MSVC 6.5 function template signature's mangling bug
+template<
+      typename Sequence
+    , typename TransformOp
+    , typename F
+    >
+inline
+void for_each(F f, Sequence* = 0, TransformOp* = 0)
+{
+    BOOST_MPL_ASSERT(( is_sequence<Sequence> ));
+
+    typedef typename begin<Sequence>::type first;
+    typedef typename end<Sequence>::type last;
+
+    aux::for_each_impl< ndnboost::is_same<first,last>::value >
+        ::execute(static_cast<first*>(0), static_cast<last*>(0), static_cast<TransformOp*>(0), f);
+}
+
+template<
+      typename Sequence
+    , typename F
+    >
+inline
+void for_each(F f, Sequence* = 0)
+{
+    for_each<Sequence, identity<> >(f);
+}
+
+}}
+
+#endif // BOOST_MPL_FOR_EACH_HPP_INCLUDED
diff --git a/ndnboost/mpl/front.hpp b/ndnboost/mpl/front.hpp
deleted file mode 100644
index 118b112..0000000
--- a/ndnboost/mpl/front.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-
-#ifndef BOOST_MPL_FRONT_HPP_INCLUDED
-#define BOOST_MPL_FRONT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/front_fwd.hpp>
-#include <ndnboost/mpl/aux_/front_impl.hpp>
-#include <ndnboost/mpl/sequence_tag.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    >
-struct front
-    : front_impl< typename sequence_tag<Sequence>::type >
-        ::template apply< Sequence >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,front,(Sequence))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, front)
-
-}}
-
-#endif // BOOST_MPL_FRONT_HPP_INCLUDED
diff --git a/ndnboost/mpl/greater.hpp b/ndnboost/mpl/greater.hpp
new file mode 100644
index 0000000..53f5db0
--- /dev/null
+++ b/ndnboost/mpl/greater.hpp
@@ -0,0 +1,21 @@
+
+#ifndef BOOST_MPL_GREATER_HPP_INCLUDED
+#define BOOST_MPL_GREATER_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: greater.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#define AUX778076_OP_NAME greater
+#define AUX778076_OP_TOKEN >
+#include <ndnboost/mpl/aux_/comparison_op.hpp>
+
+#endif // BOOST_MPL_GREATER_HPP_INCLUDED
diff --git a/ndnboost/mpl/greater_equal.hpp b/ndnboost/mpl/greater_equal.hpp
new file mode 100644
index 0000000..0576e01
--- /dev/null
+++ b/ndnboost/mpl/greater_equal.hpp
@@ -0,0 +1,21 @@
+
+#ifndef BOOST_MPL_GREATER_EQUAL_HPP_INCLUDED
+#define BOOST_MPL_GREATER_EQUAL_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: greater_equal.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#define AUX778076_OP_NAME greater_equal
+#define AUX778076_OP_TOKEN >=
+#include <ndnboost/mpl/aux_/comparison_op.hpp>
+
+#endif // BOOST_MPL_GREATER_EQUAL_HPP_INCLUDED
diff --git a/ndnboost/mpl/joint_view.hpp b/ndnboost/mpl/joint_view.hpp
deleted file mode 100644
index 709c822..0000000
--- a/ndnboost/mpl/joint_view.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-
-#ifndef BOOST_MPL_JOINT_VIEW_HPP_INCLUDED
-#define BOOST_MPL_JOINT_VIEW_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: joint_view.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/joint_iter.hpp>
-#include <ndnboost/mpl/plus.hpp>
-#include <ndnboost/mpl/size_fwd.hpp>
-#include <ndnboost/mpl/begin_end.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-struct joint_view_tag;
-}
-
-template<>
-struct size_impl< aux::joint_view_tag >
-{
-    template < typename JointView > struct apply
-      : plus<
-            size<typename JointView::sequence1_>
-          , size<typename JointView::sequence2_>
-          >
-    {};
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence1_)
-    , typename BOOST_MPL_AUX_NA_PARAM(Sequence2_)
-    >
-struct joint_view
-{
-    typedef typename mpl::begin<Sequence1_>::type   first1_;
-    typedef typename mpl::end<Sequence1_>::type     last1_;
-    typedef typename mpl::begin<Sequence2_>::type   first2_;
-    typedef typename mpl::end<Sequence2_>::type     last2_;
-
-    // agurt, 25/may/03: for the 'size_traits' implementation above
-    typedef Sequence1_ sequence1_;
-    typedef Sequence2_ sequence2_;
-
-    typedef joint_view type;
-    typedef aux::joint_view_tag tag;
-    typedef joint_iter<first1_,last1_,first2_>  begin;
-    typedef joint_iter<last1_,last1_,last2_>    end;
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, joint_view)
-
-}}
-
-#endif // BOOST_MPL_JOINT_VIEW_HPP_INCLUDED
diff --git a/ndnboost/mpl/less_equal.hpp b/ndnboost/mpl/less_equal.hpp
new file mode 100644
index 0000000..9fd7a46
--- /dev/null
+++ b/ndnboost/mpl/less_equal.hpp
@@ -0,0 +1,21 @@
+
+#ifndef BOOST_MPL_LESS_EQUAL_HPP_INCLUDED
+#define BOOST_MPL_LESS_EQUAL_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: less_equal.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#define AUX778076_OP_NAME less_equal
+#define AUX778076_OP_TOKEN <=
+#include <ndnboost/mpl/aux_/comparison_op.hpp>
+
+#endif // BOOST_MPL_LESS_EQUAL_HPP_INCLUDED
diff --git a/ndnboost/mpl/limits/list.hpp b/ndnboost/mpl/limits/list.hpp
new file mode 100644
index 0000000..6ae7387
--- /dev/null
+++ b/ndnboost/mpl/limits/list.hpp
@@ -0,0 +1,21 @@
+
+#ifndef BOOST_MPL_LIMITS_LIST_HPP_INCLUDED
+#define BOOST_MPL_LIMITS_LIST_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: list.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#if !defined(BOOST_MPL_LIMIT_LIST_SIZE)
+#   define BOOST_MPL_LIMIT_LIST_SIZE 20
+#endif
+
+#endif // BOOST_MPL_LIMITS_LIST_HPP_INCLUDED
diff --git a/ndnboost/mpl/list.hpp b/ndnboost/mpl/list.hpp
new file mode 100644
index 0000000..8ce6ad5
--- /dev/null
+++ b/ndnboost/mpl/list.hpp
@@ -0,0 +1,57 @@
+
+#ifndef BOOST_MPL_LIST_HPP_INCLUDED
+#define BOOST_MPL_LIST_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: list.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#   include <ndnboost/mpl/limits/list.hpp>
+#   include <ndnboost/mpl/aux_/na.hpp>
+#   include <ndnboost/mpl/aux_/config/preprocessor.hpp>
+
+#   include <ndnboost/preprocessor/inc.hpp>
+#   include <ndnboost/preprocessor/cat.hpp>
+#   include <ndnboost/preprocessor/stringize.hpp>
+
+#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
+#   define AUX778076_LIST_HEADER \
+    BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE).hpp \
+    /**/
+#else
+#   define AUX778076_LIST_HEADER \
+    BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE)##.hpp \
+    /**/
+#endif
+
+#   include BOOST_PP_STRINGIZE(boost/mpl/list/AUX778076_LIST_HEADER)
+#   undef AUX778076_LIST_HEADER
+#endif
+
+#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
+
+#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+
+#   define BOOST_MPL_PREPROCESSED_HEADER list.hpp
+#   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
+
+#else
+
+#   include <ndnboost/mpl/limits/list.hpp>
+
+#   define AUX778076_SEQUENCE_NAME list
+#   define AUX778076_SEQUENCE_LIMIT BOOST_MPL_LIMIT_LIST_SIZE
+#   include <ndnboost/mpl/aux_/sequence_wrapper.hpp>
+
+#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+#endif // BOOST_MPL_LIST_HPP_INCLUDED
diff --git a/ndnboost/mpl/list/aux_/O1_size.hpp b/ndnboost/mpl/list/aux_/O1_size.hpp
new file mode 100644
index 0000000..f5fda21
--- /dev/null
+++ b/ndnboost/mpl/list/aux_/O1_size.hpp
@@ -0,0 +1,33 @@
+
+#ifndef BOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED
+#define BOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: O1_size.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#include <ndnboost/mpl/O1_size_fwd.hpp>
+#include <ndnboost/mpl/list/aux_/tag.hpp>
+
+namespace ndnboost { namespace mpl {
+
+template<>
+struct O1_size_impl< aux::list_tag >
+{
+    template< typename List > struct apply
+        : List::size
+    {
+    };
+};
+
+}}
+
+#endif // BOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED
diff --git a/ndnboost/mpl/list/aux_/begin_end.hpp b/ndnboost/mpl/list/aux_/begin_end.hpp
new file mode 100644
index 0000000..6c3e7ff
--- /dev/null
+++ b/ndnboost/mpl/list/aux_/begin_end.hpp
@@ -0,0 +1,44 @@
+
+#ifndef BOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED
+#define BOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: begin_end.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#include <ndnboost/mpl/begin_end_fwd.hpp>
+#include <ndnboost/mpl/list/aux_/iterator.hpp>
+#include <ndnboost/mpl/list/aux_/tag.hpp>
+#include <ndnboost/mpl/list/aux_/item.hpp>
+
+namespace ndnboost { namespace mpl {
+
+template<>
+struct begin_impl< aux::list_tag >
+{
+    template< typename List > struct apply
+    {
+        typedef l_iter<typename List::type> type;
+    };
+};
+
+template<>
+struct end_impl< aux::list_tag >
+{
+    template< typename > struct apply
+    {
+        typedef l_iter<l_end> type;
+    };
+};
+
+}}
+
+#endif // BOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED
diff --git a/ndnboost/mpl/list/aux_/clear.hpp b/ndnboost/mpl/list/aux_/clear.hpp
new file mode 100644
index 0000000..05cf597
--- /dev/null
+++ b/ndnboost/mpl/list/aux_/clear.hpp
@@ -0,0 +1,34 @@
+
+#ifndef BOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED
+#define BOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: clear.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#include <ndnboost/mpl/clear_fwd.hpp>
+#include <ndnboost/mpl/list/aux_/item.hpp>
+#include <ndnboost/mpl/list/aux_/tag.hpp>
+
+namespace ndnboost { namespace mpl {
+
+template<>
+struct clear_impl< aux::list_tag >
+{
+    template< typename List > struct apply
+    {
+        typedef l_end type;
+    };
+};
+
+}}
+
+#endif // BOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED
diff --git a/ndnboost/mpl/list/aux_/empty.hpp b/ndnboost/mpl/list/aux_/empty.hpp
new file mode 100644
index 0000000..e40effc
--- /dev/null
+++ b/ndnboost/mpl/list/aux_/empty.hpp
@@ -0,0 +1,34 @@
+
+#ifndef BOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED
+#define BOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: empty.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#include <ndnboost/mpl/empty_fwd.hpp>
+#include <ndnboost/mpl/not.hpp>
+#include <ndnboost/mpl/list/aux_/tag.hpp>
+
+namespace ndnboost { namespace mpl {
+
+template<>
+struct empty_impl< aux::list_tag >
+{
+    template< typename List > struct apply
+        : not_<typename List::size>
+    {
+    };
+};
+
+}}
+
+#endif // BOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED
diff --git a/ndnboost/mpl/list/aux_/front.hpp b/ndnboost/mpl/list/aux_/front.hpp
new file mode 100644
index 0000000..dcb43ab
--- /dev/null
+++ b/ndnboost/mpl/list/aux_/front.hpp
@@ -0,0 +1,33 @@
+
+#ifndef BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED
+#define BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#include <ndnboost/mpl/front_fwd.hpp>
+#include <ndnboost/mpl/list/aux_/tag.hpp>
+
+namespace ndnboost { namespace mpl {
+
+template<>
+struct front_impl< aux::list_tag >
+{
+    template< typename List > struct apply
+    {
+        typedef typename List::item type;
+    };
+};
+
+}}
+
+#endif // BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED
diff --git a/ndnboost/mpl/list/aux_/include_preprocessed.hpp b/ndnboost/mpl/list/aux_/include_preprocessed.hpp
new file mode 100644
index 0000000..8ce5d6e
--- /dev/null
+++ b/ndnboost/mpl/list/aux_/include_preprocessed.hpp
@@ -0,0 +1,35 @@
+
+// Copyright Aleksey Gurtovoy 2001-2006
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: include_preprocessed.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
+
+#include <ndnboost/mpl/aux_/config/workaround.hpp>
+
+#include <ndnboost/preprocessor/cat.hpp>
+#include <ndnboost/preprocessor/stringize.hpp>
+
+#   define AUX778076_HEADER \
+    aux_/preprocessed/plain/BOOST_MPL_PREPROCESSED_HEADER \
+/**/
+
+#if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(700))
+#   define AUX778076_INCLUDE_STRING BOOST_PP_STRINGIZE(boost/mpl/list/AUX778076_HEADER)
+#   include AUX778076_INCLUDE_STRING
+#   undef AUX778076_INCLUDE_STRING
+#else
+#   include BOOST_PP_STRINGIZE(boost/mpl/list/AUX778076_HEADER)
+#endif
+
+#   undef AUX778076_HEADER
+
+#undef BOOST_MPL_PREPROCESSED_HEADER
diff --git a/ndnboost/mpl/list/aux_/item.hpp b/ndnboost/mpl/list/aux_/item.hpp
new file mode 100644
index 0000000..3048007
--- /dev/null
+++ b/ndnboost/mpl/list/aux_/item.hpp
@@ -0,0 +1,55 @@
+
+#ifndef BOOST_MPL_LIST_AUX_NODE_HPP_INCLUDED
+#define BOOST_MPL_LIST_AUX_NODE_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: item.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#include <ndnboost/mpl/long.hpp>
+#include <ndnboost/mpl/list/aux_/tag.hpp>
+#include <ndnboost/mpl/aux_/config/msvc.hpp>
+#include <ndnboost/mpl/aux_/config/workaround.hpp>
+
+namespace ndnboost { namespace mpl {
+
+template<
+      typename Size
+    , typename T
+    , typename Next
+    >
+struct l_item
+{
+// agurt, 17/jul/03: to facilitate the deficient 'is_sequence' implementation 
+#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
+    typedef int begin;
+#endif
+    typedef aux::list_tag tag;
+    typedef l_item type;
+
+    typedef Size size;
+    typedef T item;
+    typedef Next next;
+};
+
+struct l_end
+{
+#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
+    typedef int begin;
+#endif
+    typedef aux::list_tag tag;
+    typedef l_end type;
+    typedef long_<0> size;
+};
+
+}}
+
+#endif // BOOST_MPL_LIST_AUX_NODE_HPP_INCLUDED
diff --git a/ndnboost/mpl/list/aux_/iterator.hpp b/ndnboost/mpl/list/aux_/iterator.hpp
new file mode 100644
index 0000000..492f779
--- /dev/null
+++ b/ndnboost/mpl/list/aux_/iterator.hpp
@@ -0,0 +1,76 @@
+
+#ifndef BOOST_MPL_LIST_AUX_ITERATOR_HPP_INCLUDED
+#define BOOST_MPL_LIST_AUX_ITERATOR_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: iterator.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#include <ndnboost/mpl/iterator_tags.hpp>
+#include <ndnboost/mpl/next_prior.hpp>
+#include <ndnboost/mpl/deref.hpp>
+#include <ndnboost/mpl/list/aux_/item.hpp>
+#include <ndnboost/mpl/aux_/na.hpp>
+#include <ndnboost/mpl/aux_/lambda_spec.hpp>
+#include <ndnboost/mpl/aux_/config/ctps.hpp>
+
+namespace ndnboost { namespace mpl {
+
+#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+
+template< typename Node >
+struct l_iter
+{
+    typedef aux::l_iter_tag tag;
+    typedef forward_iterator_tag category;
+};
+
+template< typename Node >
+struct deref< l_iter<Node> >
+{
+    typedef typename Node::item type;
+};
+
+template< typename Node >
+struct next< l_iter<Node> >
+{
+    typedef l_iter< typename Node::next > type;
+};
+
+#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
+
+template< typename Node >
+struct l_iter
+{
+    typedef aux::l_iter_tag tag;
+    typedef forward_iterator_tag category;
+    typedef typename Node::item type;
+    typedef l_iter< typename mpl::next<Node>::type > next;
+};
+
+#endif
+
+
+template<> struct l_iter<l_end>
+{
+    typedef aux::l_iter_tag tag;
+    typedef forward_iterator_tag category;
+#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+    typedef na type;
+    typedef l_iter next;
+#endif
+};
+
+BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, l_iter)
+
+}}
+
+#endif // BOOST_MPL_LIST_AUX_ITERATOR_HPP_INCLUDED
diff --git a/ndnboost/mpl/list/aux_/numbered.hpp b/ndnboost/mpl/list/aux_/numbered.hpp
new file mode 100644
index 0000000..052c368
--- /dev/null
+++ b/ndnboost/mpl/list/aux_/numbered.hpp
@@ -0,0 +1,68 @@
+
+// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
+
+// Copyright Peter Dimov 2000-2002
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: numbered.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#if defined(BOOST_PP_IS_ITERATING)
+
+#include <ndnboost/preprocessor/enum_params.hpp>
+#include <ndnboost/preprocessor/enum_shifted_params.hpp>
+#include <ndnboost/preprocessor/dec.hpp>
+#include <ndnboost/preprocessor/cat.hpp>
+
+#define i BOOST_PP_FRAME_ITERATION(1)
+
+#if i == 1
+
+template<
+      BOOST_PP_ENUM_PARAMS(i, typename T)
+    >
+struct list1
+    : l_item<
+          long_<1>
+        , T0
+        , l_end
+        >
+{
+    typedef list1 type;
+};
+
+#else
+
+#   define MPL_AUX_LIST_TAIL(list, i, T) \
+    BOOST_PP_CAT(list,BOOST_PP_DEC(i))< \
+      BOOST_PP_ENUM_SHIFTED_PARAMS(i, T) \
+    > \
+    /**/
+    
+template<
+      BOOST_PP_ENUM_PARAMS(i, typename T)
+    >
+struct BOOST_PP_CAT(list,i)
+    : l_item<
+          long_<i>
+        , T0
+        , MPL_AUX_LIST_TAIL(list,i,T)
+        >
+{
+    typedef BOOST_PP_CAT(list,i) type;
+};
+
+#   undef MPL_AUX_LIST_TAIL
+
+#endif // i == 1
+
+#undef i
+
+#endif // BOOST_PP_IS_ITERATING
diff --git a/ndnboost/mpl/list/aux_/numbered_c.hpp b/ndnboost/mpl/list/aux_/numbered_c.hpp
new file mode 100644
index 0000000..7126440
--- /dev/null
+++ b/ndnboost/mpl/list/aux_/numbered_c.hpp
@@ -0,0 +1,71 @@
+
+// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: numbered_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#if defined(BOOST_PP_IS_ITERATING)
+
+#include <ndnboost/preprocessor/enum_params.hpp>
+#include <ndnboost/preprocessor/enum_shifted_params.hpp>
+#include <ndnboost/preprocessor/dec.hpp>
+#include <ndnboost/preprocessor/cat.hpp>
+
+#define i BOOST_PP_FRAME_ITERATION(1)
+
+#if i == 1
+
+template<
+      typename T
+    , BOOST_PP_ENUM_PARAMS(i, T C)
+    >
+struct list1_c
+    : l_item<
+          long_<1>
+        , integral_c<T,C0>
+        , l_end
+        >
+{
+    typedef list1_c type;
+    typedef T value_type;
+};
+
+#else
+
+#   define MPL_AUX_LIST_C_TAIL(list, i, C) \
+    BOOST_PP_CAT(BOOST_PP_CAT(list,BOOST_PP_DEC(i)),_c)<T, \
+      BOOST_PP_ENUM_SHIFTED_PARAMS(i, C) \
+    > \
+    /**/
+    
+template<
+      typename T
+    , BOOST_PP_ENUM_PARAMS(i, T C)
+    >
+struct BOOST_PP_CAT(BOOST_PP_CAT(list,i),_c)
+    : l_item<
+          long_<i>
+        , integral_c<T,C0>
+        , MPL_AUX_LIST_C_TAIL(list,i,C)
+        >
+{
+    typedef BOOST_PP_CAT(BOOST_PP_CAT(list,i),_c) type;
+    typedef T value_type;
+};
+
+#   undef MPL_AUX_LIST_C_TAIL
+
+#endif // i == 1
+
+#undef i
+
+#endif // BOOST_PP_IS_ITERATING
diff --git a/ndnboost/mpl/list/aux_/pop_front.hpp b/ndnboost/mpl/list/aux_/pop_front.hpp
new file mode 100644
index 0000000..27c2dae
--- /dev/null
+++ b/ndnboost/mpl/list/aux_/pop_front.hpp
@@ -0,0 +1,34 @@
+
+#ifndef BOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED
+#define BOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: pop_front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#include <ndnboost/mpl/pop_front_fwd.hpp>
+#include <ndnboost/mpl/next_prior.hpp>
+#include <ndnboost/mpl/list/aux_/tag.hpp>
+
+namespace ndnboost { namespace mpl {
+
+template<>
+struct pop_front_impl< aux::list_tag >
+{
+    template< typename List > struct apply
+    {
+        typedef typename mpl::next<List>::type type;
+    };
+};
+
+}}
+
+#endif // BOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED
diff --git a/ndnboost/mpl/list/aux_/preprocessed/plain/list10.hpp b/ndnboost/mpl/list/aux_/preprocessed/plain/list10.hpp
new file mode 100644
index 0000000..2e8edb2
--- /dev/null
+++ b/ndnboost/mpl/list/aux_/preprocessed/plain/list10.hpp
@@ -0,0 +1,149 @@
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+// Preprocessed version of "ndnboost/mpl/list/list10.hpp" header
+// -- DO NOT modify by hand!
+
+namespace ndnboost { namespace mpl {
+
+template<
+      typename T0
+    >
+struct list1
+    : l_item<
+          long_<1>
+        , T0
+        , l_end
+        >
+{
+    typedef list1 type;
+};
+
+template<
+      typename T0, typename T1
+    >
+struct list2
+    : l_item<
+          long_<2>
+        , T0
+        , list1<T1>
+        >
+{
+    typedef list2 type;
+};
+
+template<
+      typename T0, typename T1, typename T2
+    >
+struct list3
+    : l_item<
+          long_<3>
+        , T0
+        , list2< T1,T2 >
+        >
+{
+    typedef list3 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3
+    >
+struct list4
+    : l_item<
+          long_<4>
+        , T0
+        , list3< T1,T2,T3 >
+        >
+{
+    typedef list4 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    >
+struct list5
+    : l_item<
+          long_<5>
+        , T0
+        , list4< T1,T2,T3,T4 >
+        >
+{
+    typedef list5 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5
+    >
+struct list6
+    : l_item<
+          long_<6>
+        , T0
+        , list5< T1,T2,T3,T4,T5 >
+        >
+{
+    typedef list6 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6
+    >
+struct list7
+    : l_item<
+          long_<7>
+        , T0
+        , list6< T1,T2,T3,T4,T5,T6 >
+        >
+{
+    typedef list7 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7
+    >
+struct list8
+    : l_item<
+          long_<8>
+        , T0
+        , list7< T1,T2,T3,T4,T5,T6,T7 >
+        >
+{
+    typedef list8 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8
+    >
+struct list9
+    : l_item<
+          long_<9>
+        , T0
+        , list8< T1,T2,T3,T4,T5,T6,T7,T8 >
+        >
+{
+    typedef list9 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    >
+struct list10
+    : l_item<
+          long_<10>
+        , T0
+        , list9< T1,T2,T3,T4,T5,T6,T7,T8,T9 >
+        >
+{
+    typedef list10 type;
+};
+
+}}
diff --git a/ndnboost/mpl/list/aux_/preprocessed/plain/list10_c.hpp b/ndnboost/mpl/list/aux_/preprocessed/plain/list10_c.hpp
new file mode 100644
index 0000000..bfc0582
--- /dev/null
+++ b/ndnboost/mpl/list/aux_/preprocessed/plain/list10_c.hpp
@@ -0,0 +1,164 @@
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+// Preprocessed version of "ndnboost/mpl/list/list10_c.hpp" header
+// -- DO NOT modify by hand!
+
+namespace ndnboost { namespace mpl {
+
+template<
+      typename T
+    , T C0
+    >
+struct list1_c
+    : l_item<
+          long_<1>
+        , integral_c< T,C0 >
+        , l_end
+        >
+{
+    typedef list1_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1
+    >
+struct list2_c
+    : l_item<
+          long_<2>
+        , integral_c< T,C0 >
+        , list1_c< T,C1 >
+        >
+{
+    typedef list2_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2
+    >
+struct list3_c
+    : l_item<
+          long_<3>
+        , integral_c< T,C0 >
+        , list2_c< T,C1,C2 >
+        >
+{
+    typedef list3_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3
+    >
+struct list4_c
+    : l_item<
+          long_<4>
+        , integral_c< T,C0 >
+        , list3_c< T,C1,C2,C3 >
+        >
+{
+    typedef list4_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4
+    >
+struct list5_c
+    : l_item<
+          long_<5>
+        , integral_c< T,C0 >
+        , list4_c< T,C1,C2,C3,C4 >
+        >
+{
+    typedef list5_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5
+    >
+struct list6_c
+    : l_item<
+          long_<6>
+        , integral_c< T,C0 >
+        , list5_c< T,C1,C2,C3,C4,C5 >
+        >
+{
+    typedef list6_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6
+    >
+struct list7_c
+    : l_item<
+          long_<7>
+        , integral_c< T,C0 >
+        , list6_c< T,C1,C2,C3,C4,C5,C6 >
+        >
+{
+    typedef list7_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7
+    >
+struct list8_c
+    : l_item<
+          long_<8>
+        , integral_c< T,C0 >
+        , list7_c< T,C1,C2,C3,C4,C5,C6,C7 >
+        >
+{
+    typedef list8_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8
+    >
+struct list9_c
+    : l_item<
+          long_<9>
+        , integral_c< T,C0 >
+        , list8_c< T,C1,C2,C3,C4,C5,C6,C7,C8 >
+        >
+{
+    typedef list9_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9
+    >
+struct list10_c
+    : l_item<
+          long_<10>
+        , integral_c< T,C0 >
+        , list9_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
+        >
+{
+    typedef list10_c type;
+    typedef T value_type;
+};
+
+}}
diff --git a/ndnboost/mpl/list/aux_/preprocessed/plain/list20.hpp b/ndnboost/mpl/list/aux_/preprocessed/plain/list20.hpp
new file mode 100644
index 0000000..8b64295
--- /dev/null
+++ b/ndnboost/mpl/list/aux_/preprocessed/plain/list20.hpp
@@ -0,0 +1,169 @@
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+// Preprocessed version of "ndnboost/mpl/list/list20.hpp" header
+// -- DO NOT modify by hand!
+
+namespace ndnboost { namespace mpl {
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10
+    >
+struct list11
+    : l_item<
+          long_<11>
+        , T0
+        , list10< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
+        >
+{
+    typedef list11 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11
+    >
+struct list12
+    : l_item<
+          long_<12>
+        , T0
+        , list11< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
+        >
+{
+    typedef list12 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12
+    >
+struct list13
+    : l_item<
+          long_<13>
+        , T0
+        , list12< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
+        >
+{
+    typedef list13 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13
+    >
+struct list14
+    : l_item<
+          long_<14>
+        , T0
+        , list13< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
+        >
+{
+    typedef list14 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    >
+struct list15
+    : l_item<
+          long_<15>
+        , T0
+        , list14< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >
+        >
+{
+    typedef list15 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15
+    >
+struct list16
+    : l_item<
+          long_<16>
+        , T0
+        , list15< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >
+        >
+{
+    typedef list16 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16
+    >
+struct list17
+    : l_item<
+          long_<17>
+        , T0
+        , list16< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >
+        >
+{
+    typedef list17 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17
+    >
+struct list18
+    : l_item<
+          long_<18>
+        , T0
+        , list17< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >
+        >
+{
+    typedef list18 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18
+    >
+struct list19
+    : l_item<
+          long_<19>
+        , T0
+        , list18< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >
+        >
+{
+    typedef list19 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    >
+struct list20
+    : l_item<
+          long_<20>
+        , T0
+        , list19< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >
+        >
+{
+    typedef list20 type;
+};
+
+}}
diff --git a/ndnboost/mpl/list/aux_/preprocessed/plain/list20_c.hpp b/ndnboost/mpl/list/aux_/preprocessed/plain/list20_c.hpp
new file mode 100644
index 0000000..ec34def
--- /dev/null
+++ b/ndnboost/mpl/list/aux_/preprocessed/plain/list20_c.hpp
@@ -0,0 +1,173 @@
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+// Preprocessed version of "ndnboost/mpl/list/list20_c.hpp" header
+// -- DO NOT modify by hand!
+
+namespace ndnboost { namespace mpl {
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    >
+struct list11_c
+    : l_item<
+          long_<11>
+        , integral_c< T,C0 >
+        , list10_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
+        >
+{
+    typedef list11_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11
+    >
+struct list12_c
+    : l_item<
+          long_<12>
+        , integral_c< T,C0 >
+        , list11_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
+        >
+{
+    typedef list12_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12
+    >
+struct list13_c
+    : l_item<
+          long_<13>
+        , integral_c< T,C0 >
+        , list12_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
+        >
+{
+    typedef list13_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13
+    >
+struct list14_c
+    : l_item<
+          long_<14>
+        , integral_c< T,C0 >
+        , list13_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >
+        >
+{
+    typedef list14_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14
+    >
+struct list15_c
+    : l_item<
+          long_<15>
+        , integral_c< T,C0 >
+        , list14_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >
+        >
+{
+    typedef list15_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15
+    >
+struct list16_c
+    : l_item<
+          long_<16>
+        , integral_c< T,C0 >
+        , list15_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >
+        >
+{
+    typedef list16_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16
+    >
+struct list17_c
+    : l_item<
+          long_<17>
+        , integral_c< T,C0 >
+        , list16_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >
+        >
+{
+    typedef list17_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17
+    >
+struct list18_c
+    : l_item<
+          long_<18>
+        , integral_c< T,C0 >
+        , list17_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >
+        >
+{
+    typedef list18_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18
+    >
+struct list19_c
+    : l_item<
+          long_<19>
+        , integral_c< T,C0 >
+        , list18_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >
+        >
+{
+    typedef list19_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19
+    >
+struct list20_c
+    : l_item<
+          long_<20>
+        , integral_c< T,C0 >
+        , list19_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >
+        >
+{
+    typedef list20_c type;
+    typedef T value_type;
+};
+
+}}
diff --git a/ndnboost/mpl/list/aux_/preprocessed/plain/list30.hpp b/ndnboost/mpl/list/aux_/preprocessed/plain/list30.hpp
new file mode 100644
index 0000000..5cdcac7
--- /dev/null
+++ b/ndnboost/mpl/list/aux_/preprocessed/plain/list30.hpp
@@ -0,0 +1,189 @@
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+// Preprocessed version of "ndnboost/mpl/list/list30.hpp" header
+// -- DO NOT modify by hand!
+
+namespace ndnboost { namespace mpl {
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20
+    >
+struct list21
+    : l_item<
+          long_<21>
+        , T0
+        , list20< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20 >
+        >
+{
+    typedef list21 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21
+    >
+struct list22
+    : l_item<
+          long_<22>
+        , T0
+        , list21< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21 >
+        >
+{
+    typedef list22 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22
+    >
+struct list23
+    : l_item<
+          long_<23>
+        , T0
+        , list22< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22 >
+        >
+{
+    typedef list23 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23
+    >
+struct list24
+    : l_item<
+          long_<24>
+        , T0
+        , list23< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23 >
+        >
+{
+    typedef list24 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    >
+struct list25
+    : l_item<
+          long_<25>
+        , T0
+        , list24< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24 >
+        >
+{
+    typedef list25 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    , typename T25
+    >
+struct list26
+    : l_item<
+          long_<26>
+        , T0
+        , list25< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25 >
+        >
+{
+    typedef list26 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    , typename T25, typename T26
+    >
+struct list27
+    : l_item<
+          long_<27>
+        , T0
+        , list26< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26 >
+        >
+{
+    typedef list27 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    , typename T25, typename T26, typename T27
+    >
+struct list28
+    : l_item<
+          long_<28>
+        , T0
+        , list27< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27 >
+        >
+{
+    typedef list28 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    , typename T25, typename T26, typename T27, typename T28
+    >
+struct list29
+    : l_item<
+          long_<29>
+        , T0
+        , list28< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28 >
+        >
+{
+    typedef list29 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    , typename T25, typename T26, typename T27, typename T28, typename T29
+    >
+struct list30
+    : l_item<
+          long_<30>
+        , T0
+        , list29< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29 >
+        >
+{
+    typedef list30 type;
+};
+
+}}
diff --git a/ndnboost/mpl/list/aux_/preprocessed/plain/list30_c.hpp b/ndnboost/mpl/list/aux_/preprocessed/plain/list30_c.hpp
new file mode 100644
index 0000000..3398150
--- /dev/null
+++ b/ndnboost/mpl/list/aux_/preprocessed/plain/list30_c.hpp
@@ -0,0 +1,183 @@
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+// Preprocessed version of "ndnboost/mpl/list/list30_c.hpp" header
+// -- DO NOT modify by hand!
+
+namespace ndnboost { namespace mpl {
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    >
+struct list21_c
+    : l_item<
+          long_<21>
+        , integral_c< T,C0 >
+        , list20_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 >
+        >
+{
+    typedef list21_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21
+    >
+struct list22_c
+    : l_item<
+          long_<22>
+        , integral_c< T,C0 >
+        , list21_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 >
+        >
+{
+    typedef list22_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22
+    >
+struct list23_c
+    : l_item<
+          long_<23>
+        , integral_c< T,C0 >
+        , list22_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 >
+        >
+{
+    typedef list23_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23
+    >
+struct list24_c
+    : l_item<
+          long_<24>
+        , integral_c< T,C0 >
+        , list23_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 >
+        >
+{
+    typedef list24_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24
+    >
+struct list25_c
+    : l_item<
+          long_<25>
+        , integral_c< T,C0 >
+        , list24_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 >
+        >
+{
+    typedef list25_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24, T C25
+    >
+struct list26_c
+    : l_item<
+          long_<26>
+        , integral_c< T,C0 >
+        , list25_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 >
+        >
+{
+    typedef list26_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24, T C25, T C26
+    >
+struct list27_c
+    : l_item<
+          long_<27>
+        , integral_c< T,C0 >
+        , list26_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 >
+        >
+{
+    typedef list27_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24, T C25, T C26, T C27
+    >
+struct list28_c
+    : l_item<
+          long_<28>
+        , integral_c< T,C0 >
+        , list27_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 >
+        >
+{
+    typedef list28_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28
+    >
+struct list29_c
+    : l_item<
+          long_<29>
+        , integral_c< T,C0 >
+        , list28_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 >
+        >
+{
+    typedef list29_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29
+    >
+struct list30_c
+    : l_item<
+          long_<30>
+        , integral_c< T,C0 >
+        , list29_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 >
+        >
+{
+    typedef list30_c type;
+    typedef T value_type;
+};
+
+}}
diff --git a/ndnboost/mpl/list/aux_/preprocessed/plain/list40.hpp b/ndnboost/mpl/list/aux_/preprocessed/plain/list40.hpp
new file mode 100644
index 0000000..810ae99
--- /dev/null
+++ b/ndnboost/mpl/list/aux_/preprocessed/plain/list40.hpp
@@ -0,0 +1,209 @@
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+// Preprocessed version of "ndnboost/mpl/list/list40.hpp" header
+// -- DO NOT modify by hand!
+
+namespace ndnboost { namespace mpl {
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    , typename T25, typename T26, typename T27, typename T28, typename T29
+    , typename T30
+    >
+struct list31
+    : l_item<
+          long_<31>
+        , T0
+        , list30< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30 >
+        >
+{
+    typedef list31 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    , typename T25, typename T26, typename T27, typename T28, typename T29
+    , typename T30, typename T31
+    >
+struct list32
+    : l_item<
+          long_<32>
+        , T0
+        , list31< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31 >
+        >
+{
+    typedef list32 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    , typename T25, typename T26, typename T27, typename T28, typename T29
+    , typename T30, typename T31, typename T32
+    >
+struct list33
+    : l_item<
+          long_<33>
+        , T0
+        , list32< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32 >
+        >
+{
+    typedef list33 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    , typename T25, typename T26, typename T27, typename T28, typename T29
+    , typename T30, typename T31, typename T32, typename T33
+    >
+struct list34
+    : l_item<
+          long_<34>
+        , T0
+        , list33< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33 >
+        >
+{
+    typedef list34 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    , typename T25, typename T26, typename T27, typename T28, typename T29
+    , typename T30, typename T31, typename T32, typename T33, typename T34
+    >
+struct list35
+    : l_item<
+          long_<35>
+        , T0
+        , list34< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34 >
+        >
+{
+    typedef list35 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    , typename T25, typename T26, typename T27, typename T28, typename T29
+    , typename T30, typename T31, typename T32, typename T33, typename T34
+    , typename T35
+    >
+struct list36
+    : l_item<
+          long_<36>
+        , T0
+        , list35< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35 >
+        >
+{
+    typedef list36 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    , typename T25, typename T26, typename T27, typename T28, typename T29
+    , typename T30, typename T31, typename T32, typename T33, typename T34
+    , typename T35, typename T36
+    >
+struct list37
+    : l_item<
+          long_<37>
+        , T0
+        , list36< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36 >
+        >
+{
+    typedef list37 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    , typename T25, typename T26, typename T27, typename T28, typename T29
+    , typename T30, typename T31, typename T32, typename T33, typename T34
+    , typename T35, typename T36, typename T37
+    >
+struct list38
+    : l_item<
+          long_<38>
+        , T0
+        , list37< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37 >
+        >
+{
+    typedef list38 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    , typename T25, typename T26, typename T27, typename T28, typename T29
+    , typename T30, typename T31, typename T32, typename T33, typename T34
+    , typename T35, typename T36, typename T37, typename T38
+    >
+struct list39
+    : l_item<
+          long_<39>
+        , T0
+        , list38< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38 >
+        >
+{
+    typedef list39 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    , typename T25, typename T26, typename T27, typename T28, typename T29
+    , typename T30, typename T31, typename T32, typename T33, typename T34
+    , typename T35, typename T36, typename T37, typename T38, typename T39
+    >
+struct list40
+    : l_item<
+          long_<40>
+        , T0
+        , list39< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39 >
+        >
+{
+    typedef list40 type;
+};
+
+}}
diff --git a/ndnboost/mpl/list/aux_/preprocessed/plain/list40_c.hpp b/ndnboost/mpl/list/aux_/preprocessed/plain/list40_c.hpp
new file mode 100644
index 0000000..18ed649
--- /dev/null
+++ b/ndnboost/mpl/list/aux_/preprocessed/plain/list40_c.hpp
@@ -0,0 +1,193 @@
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+// Preprocessed version of "ndnboost/mpl/list/list40_c.hpp" header
+// -- DO NOT modify by hand!
+
+namespace ndnboost { namespace mpl {
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
+    >
+struct list31_c
+    : l_item<
+          long_<31>
+        , integral_c< T,C0 >
+        , list30_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 >
+        >
+{
+    typedef list31_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
+    , T C31
+    >
+struct list32_c
+    : l_item<
+          long_<32>
+        , integral_c< T,C0 >
+        , list31_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 >
+        >
+{
+    typedef list32_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
+    , T C31, T C32
+    >
+struct list33_c
+    : l_item<
+          long_<33>
+        , integral_c< T,C0 >
+        , list32_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 >
+        >
+{
+    typedef list33_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
+    , T C31, T C32, T C33
+    >
+struct list34_c
+    : l_item<
+          long_<34>
+        , integral_c< T,C0 >
+        , list33_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 >
+        >
+{
+    typedef list34_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
+    , T C31, T C32, T C33, T C34
+    >
+struct list35_c
+    : l_item<
+          long_<35>
+        , integral_c< T,C0 >
+        , list34_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 >
+        >
+{
+    typedef list35_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
+    , T C31, T C32, T C33, T C34, T C35
+    >
+struct list36_c
+    : l_item<
+          long_<36>
+        , integral_c< T,C0 >
+        , list35_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 >
+        >
+{
+    typedef list36_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
+    , T C31, T C32, T C33, T C34, T C35, T C36
+    >
+struct list37_c
+    : l_item<
+          long_<37>
+        , integral_c< T,C0 >
+        , list36_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 >
+        >
+{
+    typedef list37_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
+    , T C31, T C32, T C33, T C34, T C35, T C36, T C37
+    >
+struct list38_c
+    : l_item<
+          long_<38>
+        , integral_c< T,C0 >
+        , list37_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 >
+        >
+{
+    typedef list38_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
+    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38
+    >
+struct list39_c
+    : l_item<
+          long_<39>
+        , integral_c< T,C0 >
+        , list38_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 >
+        >
+{
+    typedef list39_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
+    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39
+    >
+struct list40_c
+    : l_item<
+          long_<40>
+        , integral_c< T,C0 >
+        , list39_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 >
+        >
+{
+    typedef list40_c type;
+    typedef T value_type;
+};
+
+}}
diff --git a/ndnboost/mpl/list/aux_/preprocessed/plain/list50.hpp b/ndnboost/mpl/list/aux_/preprocessed/plain/list50.hpp
new file mode 100644
index 0000000..5b8fda5
--- /dev/null
+++ b/ndnboost/mpl/list/aux_/preprocessed/plain/list50.hpp
@@ -0,0 +1,229 @@
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+// Preprocessed version of "ndnboost/mpl/list/list50.hpp" header
+// -- DO NOT modify by hand!
+
+namespace ndnboost { namespace mpl {
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    , typename T25, typename T26, typename T27, typename T28, typename T29
+    , typename T30, typename T31, typename T32, typename T33, typename T34
+    , typename T35, typename T36, typename T37, typename T38, typename T39
+    , typename T40
+    >
+struct list41
+    : l_item<
+          long_<41>
+        , T0
+        , list40< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40 >
+        >
+{
+    typedef list41 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    , typename T25, typename T26, typename T27, typename T28, typename T29
+    , typename T30, typename T31, typename T32, typename T33, typename T34
+    , typename T35, typename T36, typename T37, typename T38, typename T39
+    , typename T40, typename T41
+    >
+struct list42
+    : l_item<
+          long_<42>
+        , T0
+        , list41< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41 >
+        >
+{
+    typedef list42 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    , typename T25, typename T26, typename T27, typename T28, typename T29
+    , typename T30, typename T31, typename T32, typename T33, typename T34
+    , typename T35, typename T36, typename T37, typename T38, typename T39
+    , typename T40, typename T41, typename T42
+    >
+struct list43
+    : l_item<
+          long_<43>
+        , T0
+        , list42< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42 >
+        >
+{
+    typedef list43 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    , typename T25, typename T26, typename T27, typename T28, typename T29
+    , typename T30, typename T31, typename T32, typename T33, typename T34
+    , typename T35, typename T36, typename T37, typename T38, typename T39
+    , typename T40, typename T41, typename T42, typename T43
+    >
+struct list44
+    : l_item<
+          long_<44>
+        , T0
+        , list43< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43 >
+        >
+{
+    typedef list44 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    , typename T25, typename T26, typename T27, typename T28, typename T29
+    , typename T30, typename T31, typename T32, typename T33, typename T34
+    , typename T35, typename T36, typename T37, typename T38, typename T39
+    , typename T40, typename T41, typename T42, typename T43, typename T44
+    >
+struct list45
+    : l_item<
+          long_<45>
+        , T0
+        , list44< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44 >
+        >
+{
+    typedef list45 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    , typename T25, typename T26, typename T27, typename T28, typename T29
+    , typename T30, typename T31, typename T32, typename T33, typename T34
+    , typename T35, typename T36, typename T37, typename T38, typename T39
+    , typename T40, typename T41, typename T42, typename T43, typename T44
+    , typename T45
+    >
+struct list46
+    : l_item<
+          long_<46>
+        , T0
+        , list45< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45 >
+        >
+{
+    typedef list46 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    , typename T25, typename T26, typename T27, typename T28, typename T29
+    , typename T30, typename T31, typename T32, typename T33, typename T34
+    , typename T35, typename T36, typename T37, typename T38, typename T39
+    , typename T40, typename T41, typename T42, typename T43, typename T44
+    , typename T45, typename T46
+    >
+struct list47
+    : l_item<
+          long_<47>
+        , T0
+        , list46< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46 >
+        >
+{
+    typedef list47 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    , typename T25, typename T26, typename T27, typename T28, typename T29
+    , typename T30, typename T31, typename T32, typename T33, typename T34
+    , typename T35, typename T36, typename T37, typename T38, typename T39
+    , typename T40, typename T41, typename T42, typename T43, typename T44
+    , typename T45, typename T46, typename T47
+    >
+struct list48
+    : l_item<
+          long_<48>
+        , T0
+        , list47< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47 >
+        >
+{
+    typedef list48 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    , typename T25, typename T26, typename T27, typename T28, typename T29
+    , typename T30, typename T31, typename T32, typename T33, typename T34
+    , typename T35, typename T36, typename T37, typename T38, typename T39
+    , typename T40, typename T41, typename T42, typename T43, typename T44
+    , typename T45, typename T46, typename T47, typename T48
+    >
+struct list49
+    : l_item<
+          long_<49>
+        , T0
+        , list48< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48 >
+        >
+{
+    typedef list49 type;
+};
+
+template<
+      typename T0, typename T1, typename T2, typename T3, typename T4
+    , typename T5, typename T6, typename T7, typename T8, typename T9
+    , typename T10, typename T11, typename T12, typename T13, typename T14
+    , typename T15, typename T16, typename T17, typename T18, typename T19
+    , typename T20, typename T21, typename T22, typename T23, typename T24
+    , typename T25, typename T26, typename T27, typename T28, typename T29
+    , typename T30, typename T31, typename T32, typename T33, typename T34
+    , typename T35, typename T36, typename T37, typename T38, typename T39
+    , typename T40, typename T41, typename T42, typename T43, typename T44
+    , typename T45, typename T46, typename T47, typename T48, typename T49
+    >
+struct list50
+    : l_item<
+          long_<50>
+        , T0
+        , list49< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49 >
+        >
+{
+    typedef list50 type;
+};
+
+}}
diff --git a/ndnboost/mpl/list/aux_/preprocessed/plain/list50_c.hpp b/ndnboost/mpl/list/aux_/preprocessed/plain/list50_c.hpp
new file mode 100644
index 0000000..d0f619e
--- /dev/null
+++ b/ndnboost/mpl/list/aux_/preprocessed/plain/list50_c.hpp
@@ -0,0 +1,203 @@
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+
+// Preprocessed version of "ndnboost/mpl/list/list50_c.hpp" header
+// -- DO NOT modify by hand!
+
+namespace ndnboost { namespace mpl {
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
+    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
+    >
+struct list41_c
+    : l_item<
+          long_<41>
+        , integral_c< T,C0 >
+        , list40_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 >
+        >
+{
+    typedef list41_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
+    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
+    , T C41
+    >
+struct list42_c
+    : l_item<
+          long_<42>
+        , integral_c< T,C0 >
+        , list41_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 >
+        >
+{
+    typedef list42_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
+    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
+    , T C41, T C42
+    >
+struct list43_c
+    : l_item<
+          long_<43>
+        , integral_c< T,C0 >
+        , list42_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 >
+        >
+{
+    typedef list43_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
+    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
+    , T C41, T C42, T C43
+    >
+struct list44_c
+    : l_item<
+          long_<44>
+        , integral_c< T,C0 >
+        , list43_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 >
+        >
+{
+    typedef list44_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
+    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
+    , T C41, T C42, T C43, T C44
+    >
+struct list45_c
+    : l_item<
+          long_<45>
+        , integral_c< T,C0 >
+        , list44_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 >
+        >
+{
+    typedef list45_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
+    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
+    , T C41, T C42, T C43, T C44, T C45
+    >
+struct list46_c
+    : l_item<
+          long_<46>
+        , integral_c< T,C0 >
+        , list45_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 >
+        >
+{
+    typedef list46_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
+    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
+    , T C41, T C42, T C43, T C44, T C45, T C46
+    >
+struct list47_c
+    : l_item<
+          long_<47>
+        , integral_c< T,C0 >
+        , list46_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 >
+        >
+{
+    typedef list47_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
+    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
+    , T C41, T C42, T C43, T C44, T C45, T C46, T C47
+    >
+struct list48_c
+    : l_item<
+          long_<48>
+        , integral_c< T,C0 >
+        , list47_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 >
+        >
+{
+    typedef list48_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
+    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
+    , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48
+    >
+struct list49_c
+    : l_item<
+          long_<49>
+        , integral_c< T,C0 >
+        , list48_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 >
+        >
+{
+    typedef list49_c type;
+    typedef T value_type;
+};
+
+template<
+      typename T
+    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
+    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
+    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
+    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
+    , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49
+    >
+struct list50_c
+    : l_item<
+          long_<50>
+        , integral_c< T,C0 >
+        , list49_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48,C49 >
+        >
+{
+    typedef list50_c type;
+    typedef T value_type;
+};
+
+}}
diff --git a/ndnboost/mpl/list/aux_/push_back.hpp b/ndnboost/mpl/list/aux_/push_back.hpp
new file mode 100644
index 0000000..41c2f9c
--- /dev/null
+++ b/ndnboost/mpl/list/aux_/push_back.hpp
@@ -0,0 +1,36 @@
+
+#ifndef BOOST_MPL_LIST_AUX_PUSH_BACK_HPP_INCLUDED
+#define BOOST_MPL_LIST_AUX_PUSH_BACK_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: push_back.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#include <ndnboost/mpl/push_back_fwd.hpp>
+#include <ndnboost/mpl/bool.hpp>
+#include <ndnboost/mpl/list/aux_/tag.hpp>
+
+namespace ndnboost { namespace mpl {
+
+template< typename Tag > struct has_push_back_impl;
+
+template<>
+struct has_push_back_impl< aux::list_tag >
+{
+    template< typename Seq > struct apply
+        : false_
+    {
+    };
+};
+
+}}
+
+#endif // BOOST_MPL_LIST_AUX_PUSH_BACK_HPP_INCLUDED
diff --git a/ndnboost/mpl/list/aux_/push_front.hpp b/ndnboost/mpl/list/aux_/push_front.hpp
new file mode 100644
index 0000000..9b0ed8c
--- /dev/null
+++ b/ndnboost/mpl/list/aux_/push_front.hpp
@@ -0,0 +1,39 @@
+
+#ifndef BOOST_MPL_LIST_AUX_PUSH_FRONT_HPP_INCLUDED
+#define BOOST_MPL_LIST_AUX_PUSH_FRONT_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: push_front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#include <ndnboost/mpl/push_front_fwd.hpp>
+#include <ndnboost/mpl/next.hpp>
+#include <ndnboost/mpl/list/aux_/item.hpp>
+#include <ndnboost/mpl/list/aux_/tag.hpp>
+
+namespace ndnboost { namespace mpl {
+
+template<>
+struct push_front_impl< aux::list_tag >
+{
+    template< typename List, typename T > struct apply
+    {
+        typedef l_item<
+              typename next<typename List::size>::type
+            , T
+            , typename List::type
+            > type;
+    };
+};
+
+}}
+
+#endif // BOOST_MPL_LIST_AUX_PUSH_FRONT_HPP_INCLUDED
diff --git a/ndnboost/mpl/list/aux_/size.hpp b/ndnboost/mpl/list/aux_/size.hpp
new file mode 100644
index 0000000..8581584
--- /dev/null
+++ b/ndnboost/mpl/list/aux_/size.hpp
@@ -0,0 +1,33 @@
+
+#ifndef BOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED
+#define BOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: size.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#include <ndnboost/mpl/size_fwd.hpp>
+#include <ndnboost/mpl/list/aux_/tag.hpp>
+
+namespace ndnboost { namespace mpl {
+
+template<>
+struct size_impl< aux::list_tag >
+{
+    template< typename List > struct apply
+        : List::size
+    {
+    };
+};
+
+}}
+
+#endif // BOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED
diff --git a/ndnboost/mpl/list/aux_/tag.hpp b/ndnboost/mpl/list/aux_/tag.hpp
new file mode 100644
index 0000000..2322a81
--- /dev/null
+++ b/ndnboost/mpl/list/aux_/tag.hpp
@@ -0,0 +1,24 @@
+
+#ifndef BOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED
+#define BOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: tag.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+namespace ndnboost { namespace mpl { namespace aux {
+
+struct list_tag;
+struct l_iter_tag;
+
+}}}
+
+#endif // BOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED
diff --git a/ndnboost/mpl/list/list0.hpp b/ndnboost/mpl/list/list0.hpp
new file mode 100644
index 0000000..3cd88e7
--- /dev/null
+++ b/ndnboost/mpl/list/list0.hpp
@@ -0,0 +1,42 @@
+
+#ifndef BOOST_MPL_LIST_LIST0_HPP_INCLUDED
+#define BOOST_MPL_LIST_LIST0_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: list0.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#include <ndnboost/mpl/long.hpp>
+#include <ndnboost/mpl/aux_/na.hpp>
+#include <ndnboost/mpl/list/aux_/push_front.hpp>
+#include <ndnboost/mpl/list/aux_/pop_front.hpp>
+#include <ndnboost/mpl/list/aux_/push_back.hpp>
+#include <ndnboost/mpl/list/aux_/front.hpp>
+#include <ndnboost/mpl/list/aux_/clear.hpp>
+#include <ndnboost/mpl/list/aux_/O1_size.hpp>
+#include <ndnboost/mpl/list/aux_/size.hpp>
+#include <ndnboost/mpl/list/aux_/empty.hpp>
+#include <ndnboost/mpl/list/aux_/begin_end.hpp>
+#include <ndnboost/mpl/list/aux_/item.hpp>
+
+namespace ndnboost { namespace mpl {
+
+template< typename Dummy = na > struct list0;
+
+template<> struct list0<na>
+    : l_end
+{
+    typedef l_end type;
+};
+
+}}
+
+#endif // BOOST_MPL_LIST_LIST0_HPP_INCLUDED
diff --git a/ndnboost/mpl/list/list0_c.hpp b/ndnboost/mpl/list/list0_c.hpp
new file mode 100644
index 0000000..882436a
--- /dev/null
+++ b/ndnboost/mpl/list/list0_c.hpp
@@ -0,0 +1,31 @@
+
+#ifndef BOOST_MPL_LIST_LIST0_C_HPP_INCLUDED
+#define BOOST_MPL_LIST_LIST0_C_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: list0_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#include <ndnboost/mpl/list/list0.hpp>
+#include <ndnboost/mpl/integral_c.hpp>
+
+namespace ndnboost { namespace mpl {
+
+template< typename T > struct list0_c
+    : l_end
+{
+    typedef l_end type;
+    typedef T value_type;
+};
+
+}}
+
+#endif // BOOST_MPL_LIST_LIST0_C_HPP_INCLUDED
diff --git a/ndnboost/mpl/list/list10.hpp b/ndnboost/mpl/list/list10.hpp
new file mode 100644
index 0000000..f78cf33
--- /dev/null
+++ b/ndnboost/mpl/list/list10.hpp
@@ -0,0 +1,43 @@
+
+#ifndef BOOST_MPL_LIST_LIST10_HPP_INCLUDED
+#define BOOST_MPL_LIST_LIST10_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: list10.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#   include <ndnboost/mpl/list/list0.hpp>
+#endif
+
+#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
+
+#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+    && !defined(BOOST_MPL_PREPROCESSING_MODE)
+
+#   define BOOST_MPL_PREPROCESSED_HEADER list10.hpp
+#   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
+
+#else
+
+#   include <ndnboost/preprocessor/iterate.hpp>
+
+namespace ndnboost { namespace mpl {
+
+#   define BOOST_PP_ITERATION_PARAMS_1 \
+    (3,(1, 10, <ndnboost/mpl/list/aux_/numbered.hpp>))
+#   include BOOST_PP_ITERATE()
+
+}}
+
+#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+
+#endif // BOOST_MPL_LIST_LIST10_HPP_INCLUDED
diff --git a/ndnboost/mpl/list/list10_c.hpp b/ndnboost/mpl/list/list10_c.hpp
new file mode 100644
index 0000000..86f3d89
--- /dev/null
+++ b/ndnboost/mpl/list/list10_c.hpp
@@ -0,0 +1,43 @@
+
+#ifndef BOOST_MPL_LIST_LIST10_C_HPP_INCLUDED
+#define BOOST_MPL_LIST_LIST10_C_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: list10_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#   include <ndnboost/mpl/list/list0_c.hpp>
+#endif
+
+#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
+
+#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+ && !defined(BOOST_MPL_PREPROCESSING_MODE)
+
+#   define BOOST_MPL_PREPROCESSED_HEADER list10_c.hpp
+#   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
+
+#else
+
+#   include <ndnboost/preprocessor/iterate.hpp>
+
+namespace ndnboost { namespace mpl {
+
+#   define BOOST_PP_ITERATION_PARAMS_1 \
+    (3,(1, 10, <ndnboost/mpl/list/aux_/numbered_c.hpp>))
+#   include BOOST_PP_ITERATE()
+
+}}
+
+#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+
+#endif // BOOST_MPL_LIST_LIST10_C_HPP_INCLUDED
diff --git a/ndnboost/mpl/list/list20.hpp b/ndnboost/mpl/list/list20.hpp
new file mode 100644
index 0000000..a9dd822
--- /dev/null
+++ b/ndnboost/mpl/list/list20.hpp
@@ -0,0 +1,43 @@
+
+#ifndef BOOST_MPL_LIST_LIST20_HPP_INCLUDED
+#define BOOST_MPL_LIST_LIST20_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: list20.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#   include <ndnboost/mpl/list/list10.hpp>
+#endif
+
+#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
+
+#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+ && !defined(BOOST_MPL_PREPROCESSING_MODE)
+
+#   define BOOST_MPL_PREPROCESSED_HEADER list20.hpp
+#   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
+
+#else
+
+#   include <ndnboost/preprocessor/iterate.hpp>
+
+namespace ndnboost { namespace mpl {
+
+#   define BOOST_PP_ITERATION_PARAMS_1 \
+    (3,(11, 20, <ndnboost/mpl/list/aux_/numbered.hpp>))
+#   include BOOST_PP_ITERATE()
+
+}}
+
+#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+
+#endif // BOOST_MPL_LIST_LIST20_HPP_INCLUDED
diff --git a/ndnboost/mpl/list/list20_c.hpp b/ndnboost/mpl/list/list20_c.hpp
new file mode 100644
index 0000000..deb2125
--- /dev/null
+++ b/ndnboost/mpl/list/list20_c.hpp
@@ -0,0 +1,43 @@
+
+#ifndef BOOST_MPL_LIST_LIST20_C_HPP_INCLUDED
+#define BOOST_MPL_LIST_LIST20_C_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: list20_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#   include <ndnboost/mpl/list/list10_c.hpp>
+#endif
+
+#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
+
+#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+ && !defined(BOOST_MPL_PREPROCESSING_MODE)
+
+#   define BOOST_MPL_PREPROCESSED_HEADER list20_c.hpp
+#   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
+
+#else
+
+#   include <ndnboost/preprocessor/iterate.hpp>
+
+namespace ndnboost { namespace mpl {
+
+#   define BOOST_PP_ITERATION_PARAMS_1 \
+    (3,(11, 20, <ndnboost/mpl/list/aux_/numbered_c.hpp>))
+#   include BOOST_PP_ITERATE()
+
+}}
+
+#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+
+#endif // BOOST_MPL_LIST_LIST20_C_HPP_INCLUDED
diff --git a/ndnboost/mpl/list/list30.hpp b/ndnboost/mpl/list/list30.hpp
new file mode 100644
index 0000000..eaade39
--- /dev/null
+++ b/ndnboost/mpl/list/list30.hpp
@@ -0,0 +1,43 @@
+
+#ifndef BOOST_MPL_LIST_LIST30_HPP_INCLUDED
+#define BOOST_MPL_LIST_LIST30_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: list30.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#   include <ndnboost/mpl/list/list20.hpp>
+#endif
+
+#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
+
+#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+ && !defined(BOOST_MPL_PREPROCESSING_MODE)
+
+#   define BOOST_MPL_PREPROCESSED_HEADER list30.hpp
+#   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
+
+#else
+
+#   include <ndnboost/preprocessor/iterate.hpp>
+
+namespace ndnboost { namespace mpl {
+
+#   define BOOST_PP_ITERATION_PARAMS_1 \
+    (3,(21, 30, <ndnboost/mpl/list/aux_/numbered.hpp>))
+#   include BOOST_PP_ITERATE()
+
+}}
+
+#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+
+#endif // BOOST_MPL_LIST_LIST30_HPP_INCLUDED
diff --git a/ndnboost/mpl/list/list30_c.hpp b/ndnboost/mpl/list/list30_c.hpp
new file mode 100644
index 0000000..6f9aa3c
--- /dev/null
+++ b/ndnboost/mpl/list/list30_c.hpp
@@ -0,0 +1,43 @@
+
+#ifndef BOOST_MPL_LIST_LIST30_C_HPP_INCLUDED
+#define BOOST_MPL_LIST_LIST30_C_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: list30_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#   include <ndnboost/mpl/list/list20_c.hpp>
+#endif
+
+#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
+
+#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+ && !defined(BOOST_MPL_PREPROCESSING_MODE)
+
+#   define BOOST_MPL_PREPROCESSED_HEADER list30_c.hpp
+#   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
+
+#else
+
+#   include <ndnboost/preprocessor/iterate.hpp>
+
+namespace ndnboost { namespace mpl {
+
+#   define BOOST_PP_ITERATION_PARAMS_1 \
+    (3,(21, 30, <ndnboost/mpl/list/aux_/numbered_c.hpp>))
+#   include BOOST_PP_ITERATE()
+
+}}
+
+#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+
+#endif // BOOST_MPL_LIST_LIST30_C_HPP_INCLUDED
diff --git a/ndnboost/mpl/list/list40.hpp b/ndnboost/mpl/list/list40.hpp
new file mode 100644
index 0000000..1cc4511
--- /dev/null
+++ b/ndnboost/mpl/list/list40.hpp
@@ -0,0 +1,43 @@
+
+#ifndef BOOST_MPL_LIST_LIST40_HPP_INCLUDED
+#define BOOST_MPL_LIST_LIST40_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: list40.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#   include <ndnboost/mpl/list/list30.hpp>
+#endif
+
+#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
+
+#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+ && !defined(BOOST_MPL_PREPROCESSING_MODE)
+
+#   define BOOST_MPL_PREPROCESSED_HEADER list40.hpp
+#   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
+
+#else
+
+#   include <ndnboost/preprocessor/iterate.hpp>
+
+namespace ndnboost { namespace mpl {
+
+#   define BOOST_PP_ITERATION_PARAMS_1 \
+    (3,(31, 40, <ndnboost/mpl/list/aux_/numbered.hpp>))
+#   include BOOST_PP_ITERATE()
+
+}}
+
+#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+
+#endif // BOOST_MPL_LIST_LIST40_HPP_INCLUDED
diff --git a/ndnboost/mpl/list/list40_c.hpp b/ndnboost/mpl/list/list40_c.hpp
new file mode 100644
index 0000000..0bea21d
--- /dev/null
+++ b/ndnboost/mpl/list/list40_c.hpp
@@ -0,0 +1,43 @@
+
+#ifndef BOOST_MPL_LIST_LIST40_C_HPP_INCLUDED
+#define BOOST_MPL_LIST_LIST40_C_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: list40_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#   include <ndnboost/mpl/list/list30_c.hpp>
+#endif
+
+#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
+
+#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+ && !defined(BOOST_MPL_PREPROCESSING_MODE)
+
+#   define BOOST_MPL_PREPROCESSED_HEADER list40_c.hpp
+#   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
+
+#else
+
+#   include <ndnboost/preprocessor/iterate.hpp>
+
+namespace ndnboost { namespace mpl {
+
+#   define BOOST_PP_ITERATION_PARAMS_1 \
+    (3,(31, 40, <ndnboost/mpl/list/aux_/numbered_c.hpp>))
+#   include BOOST_PP_ITERATE()
+
+}}
+
+#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+
+#endif // BOOST_MPL_LIST_LIST40_C_HPP_INCLUDED
diff --git a/ndnboost/mpl/list/list50.hpp b/ndnboost/mpl/list/list50.hpp
new file mode 100644
index 0000000..5850c5a
--- /dev/null
+++ b/ndnboost/mpl/list/list50.hpp
@@ -0,0 +1,43 @@
+
+#ifndef BOOST_MPL_LIST_LIST50_HPP_INCLUDED
+#define BOOST_MPL_LIST_LIST50_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: list50.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#   include <ndnboost/mpl/list/list40.hpp>
+#endif
+
+#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
+
+#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+ && !defined(BOOST_MPL_PREPROCESSING_MODE)
+
+#   define BOOST_MPL_PREPROCESSED_HEADER list50.hpp
+#   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
+
+#else
+
+#   include <ndnboost/preprocessor/iterate.hpp>
+
+namespace ndnboost { namespace mpl {
+
+#   define BOOST_PP_ITERATION_PARAMS_1 \
+    (3,(41, 50, <ndnboost/mpl/list/aux_/numbered.hpp>))
+#   include BOOST_PP_ITERATE()
+
+}}
+
+#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+
+#endif // BOOST_MPL_LIST_LIST50_HPP_INCLUDED
diff --git a/ndnboost/mpl/list/list50_c.hpp b/ndnboost/mpl/list/list50_c.hpp
new file mode 100644
index 0000000..12142f8
--- /dev/null
+++ b/ndnboost/mpl/list/list50_c.hpp
@@ -0,0 +1,43 @@
+
+#ifndef BOOST_MPL_LIST_LIST50_C_HPP_INCLUDED
+#define BOOST_MPL_LIST_LIST50_C_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: list50_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#if !defined(BOOST_MPL_PREPROCESSING_MODE)
+#   include <ndnboost/mpl/list/list40_c.hpp>
+#endif
+
+#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
+
+#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
+ && !defined(BOOST_MPL_PREPROCESSING_MODE)
+
+#   define BOOST_MPL_PREPROCESSED_HEADER list50_c.hpp
+#   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
+
+#else
+
+#   include <ndnboost/preprocessor/iterate.hpp>
+
+namespace ndnboost { namespace mpl {
+
+#   define BOOST_PP_ITERATION_PARAMS_1 \
+    (3,(41, 50, <ndnboost/mpl/list/aux_/numbered_c.hpp>))
+#   include BOOST_PP_ITERATE()
+
+}}
+
+#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+
+#endif // BOOST_MPL_LIST_LIST50_C_HPP_INCLUDED
diff --git a/ndnboost/mpl/not_equal_to.hpp b/ndnboost/mpl/not_equal_to.hpp
new file mode 100644
index 0000000..3698bf6
--- /dev/null
+++ b/ndnboost/mpl/not_equal_to.hpp
@@ -0,0 +1,21 @@
+
+#ifndef BOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED
+#define BOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED
+
+// Copyright Aleksey Gurtovoy 2000-2004
+//
+// Distributed under the Boost Software License, Version 1.0. 
+// (See accompanying file LICENSE_1_0.txt or copy at 
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/mpl for documentation.
+
+// $Id: not_equal_to.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
+// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
+// $Revision: 49267 $
+
+#define AUX778076_OP_NAME not_equal_to
+#define AUX778076_OP_TOKEN !=
+#include <ndnboost/mpl/aux_/comparison_op.hpp>
+
+#endif // BOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED
diff --git a/ndnboost/mpl/pop_front.hpp b/ndnboost/mpl/pop_front.hpp
deleted file mode 100644
index fe7f3cb..0000000
--- a/ndnboost/mpl/pop_front.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-
-#ifndef BOOST_MPL_POP_FRONT_HPP_INCLUDED
-#define BOOST_MPL_POP_FRONT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: pop_front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/pop_front_fwd.hpp>
-#include <ndnboost/mpl/aux_/pop_front_impl.hpp>
-#include <ndnboost/mpl/sequence_tag.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    >
-struct pop_front
-    : pop_front_impl< typename sequence_tag<Sequence>::type >
-        ::template apply< Sequence >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,pop_front,(Sequence))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, pop_front)
-
-}}
-
-#endif // BOOST_MPL_POP_FRONT_HPP_INCLUDED
diff --git a/ndnboost/mpl/remove.hpp b/ndnboost/mpl/remove.hpp
deleted file mode 100644
index b080cfc..0000000
--- a/ndnboost/mpl/remove.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-#ifndef BOOST_MPL_REMOVE_HPP_INCLUDED
-#define BOOST_MPL_REMOVE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: remove.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/remove_if.hpp>
-#include <ndnboost/mpl/same_as.hpp>
-#include <ndnboost/mpl/aux_/inserter_algorithm.hpp>
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename Sequence
-    , typename T
-    , typename Inserter 
-    >
-struct remove_impl
-    : remove_if_impl< Sequence, same_as<T>, Inserter >
-{
-};
-
-template<
-      typename Sequence
-    , typename T
-    , typename Inserter 
-    >
-struct reverse_remove_impl
-    : reverse_remove_if_impl< Sequence, same_as<T>, Inserter >
-{
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, remove)
-
-}}
-
-#endif // BOOST_MPL_REMOVE_HPP_INCLUDED