]> git.lyx.org Git - features.git/commitdiff
update to boost 1.39: add new files
authorPeter Kümmel <syntheticpp@gmx.net>
Mon, 17 Aug 2009 18:38:32 +0000 (18:38 +0000)
committerPeter Kümmel <syntheticpp@gmx.net>
Mon, 17 Aug 2009 18:38:32 +0000 (18:38 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31099 a592a061-630c-0410-9148-cb99ea01b6c8

257 files changed:
boost/boost/bind/bind.hpp [new file with mode: 0644]
boost/boost/bind/mem_fn.hpp [new file with mode: 0644]
boost/boost/config/compiler/codegear.hpp [new file with mode: 0644]
boost/boost/config/compiler/digitalmars.hpp [new file with mode: 0644]
boost/boost/config/compiler/gcc_xml.hpp [new file with mode: 0644]
boost/boost/config/compiler/pgi.hpp [new file with mode: 0644]
boost/boost/config/no_tr1/cmath.hpp [new file with mode: 0644]
boost/boost/config/platform/qnxnto.hpp [new file with mode: 0644]
boost/boost/config/requires_threads.hpp [new file with mode: 0644]
boost/boost/config/warning_disable.hpp [new file with mode: 0644]
boost/boost/detail/container_fwd.hpp [new file with mode: 0644]
boost/boost/exception/current_exception_cast.hpp [new file with mode: 0644]
boost/boost/exception/detail/error_info_impl.hpp [new file with mode: 0644]
boost/boost/exception/detail/type_info.hpp [new file with mode: 0644]
boost/boost/exception/get_error_info.hpp [new file with mode: 0644]
boost/boost/function/function_fwd.hpp [new file with mode: 0644]
boost/boost/function/function_typeof.hpp [new file with mode: 0644]
boost/boost/iterator/counting_iterator.hpp [new file with mode: 0644]
boost/boost/iterator/detail/any_conversion_eater.hpp [new file with mode: 0644]
boost/boost/iterator/is_lvalue_iterator.hpp [new file with mode: 0644]
boost/boost/iterator/is_readable_iterator.hpp [new file with mode: 0644]
boost/boost/iterator/iterator_archetypes.hpp [new file with mode: 0644]
boost/boost/iterator/iterator_concepts.hpp [new file with mode: 0644]
boost/boost/iterator/new_iterator_tests.hpp [new file with mode: 0644]
boost/boost/iterator/permutation_iterator.hpp [new file with mode: 0644]
boost/boost/iterator/zip_iterator.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/config/bcc.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/advance_backward.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/advance_forward.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/and.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply_fwd.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply_wrap.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/arg.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/basic_bind.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/bind.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/bind_fwd.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitand.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitor.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitxor.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/deque.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/divides.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/equal_to.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/fold_impl.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/full_lambda.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/greater.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/greater_equal.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/inherit.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_if_impl.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_impl.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/lambda_no_ctps.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/less.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/less_equal.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/list.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/list_c.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/map.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/modulus.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/not_equal_to.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/or.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/placeholders.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/plus.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/quote.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_fold_impl.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_iter_fold_impl.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/set.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/set_c.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/shift_left.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/shift_right.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/template_arity.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/times.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/unpack_args.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/vector.hpp [new file with mode: 0644]
boost/boost/mpl/aux_/preprocessed/bcc_pre590/vector_c.hpp [new file with mode: 0644]
boost/boost/optional/optional_io.hpp [new file with mode: 0644]
boost/boost/preprocessor/arithmetic/detail/div_base.hpp [new file with mode: 0644]
boost/boost/preprocessor/array/insert.hpp [new file with mode: 0644]
boost/boost/preprocessor/array/pop_back.hpp [new file with mode: 0644]
boost/boost/preprocessor/array/pop_front.hpp [new file with mode: 0644]
boost/boost/preprocessor/array/push_back.hpp [new file with mode: 0644]
boost/boost/preprocessor/array/push_front.hpp [new file with mode: 0644]
boost/boost/preprocessor/array/remove.hpp [new file with mode: 0644]
boost/boost/preprocessor/array/replace.hpp [new file with mode: 0644]
boost/boost/preprocessor/array/reverse.hpp [new file with mode: 0644]
boost/boost/preprocessor/config/limits.hpp [new file with mode: 0644]
boost/boost/preprocessor/control.hpp [new file with mode: 0644]
boost/boost/preprocessor/control/deduce_d.hpp [new file with mode: 0644]
boost/boost/preprocessor/control/detail/dmc/while.hpp [new file with mode: 0644]
boost/boost/preprocessor/control/detail/edg/while.hpp [new file with mode: 0644]
boost/boost/preprocessor/debug.hpp [new file with mode: 0644]
boost/boost/preprocessor/debug/assert.hpp [new file with mode: 0644]
boost/boost/preprocessor/debug/line.hpp [new file with mode: 0644]
boost/boost/preprocessor/detail/dmc/auto_rec.hpp [new file with mode: 0644]
boost/boost/preprocessor/detail/is_nullary.hpp [new file with mode: 0644]
boost/boost/preprocessor/detail/is_unary.hpp [new file with mode: 0644]
boost/boost/preprocessor/detail/null.hpp [new file with mode: 0644]
boost/boost/preprocessor/detail/split.hpp [new file with mode: 0644]
boost/boost/preprocessor/facilities.hpp [new file with mode: 0644]
boost/boost/preprocessor/facilities/apply.hpp [new file with mode: 0644]
boost/boost/preprocessor/facilities/expand.hpp [new file with mode: 0644]
boost/boost/preprocessor/facilities/intercept.hpp [new file with mode: 0644]
boost/boost/preprocessor/facilities/is_1.hpp [new file with mode: 0644]
boost/boost/preprocessor/facilities/is_empty.hpp [new file with mode: 0644]
boost/boost/preprocessor/facilities/is_empty_or_1.hpp [new file with mode: 0644]
boost/boost/preprocessor/iteration.hpp [new file with mode: 0644]
boost/boost/preprocessor/iteration/detail/bounds/lower2.hpp [new file with mode: 0644]
boost/boost/preprocessor/iteration/detail/bounds/lower3.hpp [new file with mode: 0644]
boost/boost/preprocessor/iteration/detail/bounds/lower4.hpp [new file with mode: 0644]
boost/boost/preprocessor/iteration/detail/bounds/lower5.hpp [new file with mode: 0644]
boost/boost/preprocessor/iteration/detail/bounds/upper2.hpp [new file with mode: 0644]
boost/boost/preprocessor/iteration/detail/bounds/upper3.hpp [new file with mode: 0644]
boost/boost/preprocessor/iteration/detail/bounds/upper4.hpp [new file with mode: 0644]
boost/boost/preprocessor/iteration/detail/bounds/upper5.hpp [new file with mode: 0644]
boost/boost/preprocessor/iteration/detail/finish.hpp [new file with mode: 0644]
boost/boost/preprocessor/iteration/detail/iter/forward2.hpp [new file with mode: 0644]
boost/boost/preprocessor/iteration/detail/iter/forward3.hpp [new file with mode: 0644]
boost/boost/preprocessor/iteration/detail/iter/forward4.hpp [new file with mode: 0644]
boost/boost/preprocessor/iteration/detail/iter/forward5.hpp [new file with mode: 0644]
boost/boost/preprocessor/iteration/detail/iter/reverse1.hpp [new file with mode: 0644]
boost/boost/preprocessor/iteration/detail/iter/reverse2.hpp [new file with mode: 0644]
boost/boost/preprocessor/iteration/detail/iter/reverse3.hpp [new file with mode: 0644]
boost/boost/preprocessor/iteration/detail/iter/reverse4.hpp [new file with mode: 0644]
boost/boost/preprocessor/iteration/detail/iter/reverse5.hpp [new file with mode: 0644]
boost/boost/preprocessor/iteration/detail/rlocal.hpp [new file with mode: 0644]
boost/boost/preprocessor/iteration/detail/self.hpp [new file with mode: 0644]
boost/boost/preprocessor/iteration/detail/start.hpp [new file with mode: 0644]
boost/boost/preprocessor/iteration/self.hpp [new file with mode: 0644]
boost/boost/preprocessor/library.hpp [new file with mode: 0644]
boost/boost/preprocessor/list/detail/dmc/fold_left.hpp [new file with mode: 0644]
boost/boost/preprocessor/list/detail/edg/fold_left.hpp [new file with mode: 0644]
boost/boost/preprocessor/list/detail/edg/fold_right.hpp [new file with mode: 0644]
boost/boost/preprocessor/logical/bitnor.hpp [new file with mode: 0644]
boost/boost/preprocessor/logical/bitor.hpp [new file with mode: 0644]
boost/boost/preprocessor/logical/bitxor.hpp [new file with mode: 0644]
boost/boost/preprocessor/punctuation.hpp [new file with mode: 0644]
boost/boost/preprocessor/punctuation/paren.hpp [new file with mode: 0644]
boost/boost/preprocessor/punctuation/paren_if.hpp [new file with mode: 0644]
boost/boost/preprocessor/repetition.hpp [new file with mode: 0644]
boost/boost/preprocessor/repetition/deduce_r.hpp [new file with mode: 0644]
boost/boost/preprocessor/repetition/deduce_z.hpp [new file with mode: 0644]
boost/boost/preprocessor/repetition/detail/dmc/for.hpp [new file with mode: 0644]
boost/boost/preprocessor/repetition/enum_params_with_a_default.hpp [new file with mode: 0644]
boost/boost/preprocessor/repetition/enum_params_with_defaults.hpp [new file with mode: 0644]
boost/boost/preprocessor/repetition/enum_shifted.hpp [new file with mode: 0644]
boost/boost/preprocessor/repetition/enum_shifted_binary_params.hpp [new file with mode: 0644]
boost/boost/preprocessor/repetition/enum_shifted_params.hpp [new file with mode: 0644]
boost/boost/preprocessor/repetition/enum_trailing.hpp [new file with mode: 0644]
boost/boost/preprocessor/repetition/enum_trailing_binary_params.hpp [new file with mode: 0644]
boost/boost/preprocessor/repetition/enum_trailing_params.hpp [new file with mode: 0644]
boost/boost/preprocessor/selection.hpp [new file with mode: 0644]
boost/boost/preprocessor/selection/max.hpp [new file with mode: 0644]
boost/boost/preprocessor/selection/min.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/cat.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/detail/split.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/elem.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/enum.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/filter.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/first_n.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/fold_left.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/fold_right.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/for_each.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/for_each_i.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/for_each_product.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/insert.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/pop_back.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/pop_front.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/push_back.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/push_front.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/remove.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/replace.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/rest_n.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/reverse.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/seq.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/size.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/subseq.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/to_array.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/to_tuple.hpp [new file with mode: 0644]
boost/boost/preprocessor/seq/transform.hpp [new file with mode: 0644]
boost/boost/preprocessor/slot/counter.hpp [new file with mode: 0644]
boost/boost/preprocessor/slot/detail/counter.hpp [new file with mode: 0644]
boost/boost/preprocessor/slot/detail/slot1.hpp [new file with mode: 0644]
boost/boost/preprocessor/slot/detail/slot2.hpp [new file with mode: 0644]
boost/boost/preprocessor/slot/detail/slot3.hpp [new file with mode: 0644]
boost/boost/preprocessor/slot/detail/slot4.hpp [new file with mode: 0644]
boost/boost/preprocessor/slot/detail/slot5.hpp [new file with mode: 0644]
boost/boost/preprocessor/tuple/to_seq.hpp [new file with mode: 0644]
boost/boost/preprocessor/wstringize.hpp [new file with mode: 0644]
boost/boost/regex/concepts.hpp [new file with mode: 0644]
boost/boost/regex/icu.hpp [new file with mode: 0644]
boost/boost/regex/mfc.hpp [new file with mode: 0644]
boost/boost/regex/pending/static_mutex.hpp [new file with mode: 0644]
boost/boost/regex/pending/unicode_iterator.hpp [new file with mode: 0644]
boost/boost/regex/v4/u32regex_iterator.hpp [new file with mode: 0644]
boost/boost/regex/v4/u32regex_token_iterator.hpp [new file with mode: 0644]
boost/boost/smart_ptr/bad_weak_ptr.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/atomic_count.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/atomic_count_gcc.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/atomic_count_pthreads.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/atomic_count_solaris.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/atomic_count_sync.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/atomic_count_win32.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/lightweight_mutex.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/lwm_nop.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/lwm_pthreads.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/lwm_win32_cs.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/operator_bool.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/quick_allocator.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/shared_array_nmt.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/shared_count.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/shared_ptr_nmt.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/sp_convertible.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/sp_counted_base.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/sp_counted_base_nt.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/sp_counted_base_pt.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/sp_counted_base_solaris.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/sp_counted_base_spin.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/sp_counted_base_sync.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/sp_counted_base_w32.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/sp_counted_impl.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/sp_has_sync.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/spinlock.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/spinlock_gcc_arm.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/spinlock_nt.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/spinlock_pool.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/spinlock_pt.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/spinlock_sync.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/spinlock_w32.hpp [new file with mode: 0644]
boost/boost/smart_ptr/detail/yield_k.hpp [new file with mode: 0644]
boost/boost/smart_ptr/enable_shared_from_this.hpp [new file with mode: 0644]
boost/boost/smart_ptr/intrusive_ptr.hpp [new file with mode: 0644]
boost/boost/smart_ptr/make_shared.hpp [new file with mode: 0644]
boost/boost/smart_ptr/scoped_array.hpp [new file with mode: 0644]
boost/boost/smart_ptr/scoped_ptr.hpp [new file with mode: 0644]
boost/boost/smart_ptr/shared_array.hpp [new file with mode: 0644]
boost/boost/smart_ptr/shared_ptr.hpp [new file with mode: 0644]
boost/boost/smart_ptr/weak_ptr.hpp [new file with mode: 0644]
boost/boost/type_traits/has_new_operator.hpp [new file with mode: 0644]
boost/boost/type_traits/is_virtual_base_of.hpp [new file with mode: 0644]
boost/boost/utility/binary.hpp [new file with mode: 0644]
boost/boost/utility/detail/in_place_factory_prefix.hpp [new file with mode: 0644]
boost/boost/utility/detail/in_place_factory_suffix.hpp [new file with mode: 0644]
boost/boost/utility/detail/result_of_iterate.hpp [new file with mode: 0644]
boost/boost/utility/in_place_factory.hpp [new file with mode: 0644]
boost/boost/utility/result_of.hpp [new file with mode: 0644]
boost/boost/utility/swap.hpp [new file with mode: 0644]
boost/boost/utility/typed_in_place_factory.hpp [new file with mode: 0644]
boost/boost/utility/value_init.hpp [new file with mode: 0644]

diff --git a/boost/boost/bind/bind.hpp b/boost/boost/bind/bind.hpp
new file mode 100644 (file)
index 0000000..2ee5c0f
--- /dev/null
@@ -0,0 +1,1733 @@
+#ifndef BOOST_BIND_BIND_HPP_INCLUDED\r
+#define BOOST_BIND_BIND_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  bind.hpp - binds function objects to arguments\r
+//\r
+//  Copyright (c) 2001-2004 Peter Dimov and Multi Media Ltd.\r
+//  Copyright (c) 2001 David Abrahams\r
+//  Copyright (c) 2005 Peter Dimov\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. (See\r
+// accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+//  See http://www.boost.org/libs/bind/bind.html for documentation.\r
+//\r
+\r
+#include <boost/config.hpp>\r
+#include <boost/ref.hpp>\r
+#include <boost/mem_fn.hpp>\r
+#include <boost/type.hpp>\r
+#include <boost/is_placeholder.hpp>\r
+#include <boost/bind/arg.hpp>\r
+#include <boost/detail/workaround.hpp>\r
+#include <boost/visit_each.hpp>\r
+\r
+// Borland-specific bug, visit_each() silently fails to produce code\r
+\r
+#if defined(__BORLANDC__)\r
+#  define BOOST_BIND_VISIT_EACH boost::visit_each\r
+#else\r
+#  define BOOST_BIND_VISIT_EACH visit_each\r
+#endif\r
+\r
+#include <boost/bind/storage.hpp>\r
+\r
+#ifdef BOOST_MSVC\r
+# pragma warning(push)\r
+# pragma warning(disable: 4512) // assignment operator could not be generated\r
+#endif\r
+\r
+namespace boost\r
+{\r
+\r
+template<class T> class weak_ptr;\r
+\r
+namespace _bi // implementation details\r
+{\r
+\r
+// result_traits\r
+\r
+template<class R, class F> struct result_traits\r
+{\r
+    typedef R type;\r
+};\r
+\r
+#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)\r
+\r
+struct unspecified {};\r
+\r
+template<class F> struct result_traits<unspecified, F>\r
+{\r
+    typedef typename F::result_type type;\r
+};\r
+\r
+template<class F> struct result_traits< unspecified, reference_wrapper<F> >\r
+{\r
+    typedef typename F::result_type type;\r
+};\r
+\r
+#endif\r
+\r
+// ref_compare\r
+\r
+template<class T> bool ref_compare( T const & a, T const & b, long )\r
+{\r
+    return a == b;\r
+}\r
+\r
+template<int I> bool ref_compare( arg<I> const &, arg<I> const &, int )\r
+{\r
+    return true;\r
+}\r
+\r
+template<int I> bool ref_compare( arg<I> (*) (), arg<I> (*) (), int )\r
+{\r
+    return true;\r
+}\r
+\r
+template<class T> bool ref_compare( reference_wrapper<T> const & a, reference_wrapper<T> const & b, int )\r
+{\r
+    return a.get_pointer() == b.get_pointer();\r
+}\r
+\r
+// bind_t forward declaration for listN\r
+\r
+template<class R, class F, class L> class bind_t;\r
+\r
+template<class R, class F, class L> bool ref_compare( bind_t<R, F, L> const & a, bind_t<R, F, L> const & b, int )\r
+{\r
+    return a.compare( b );\r
+}\r
+\r
+// value\r
+\r
+template<class T> class value\r
+{\r
+public:\r
+\r
+    value(T const & t): t_(t) {}\r
+\r
+    T & get() { return t_; }\r
+    T const & get() const { return t_; }\r
+\r
+    bool operator==(value const & rhs) const\r
+    {\r
+        return t_ == rhs.t_;\r
+    }\r
+\r
+private:\r
+\r
+    T t_;\r
+};\r
+\r
+// ref_compare for weak_ptr\r
+\r
+template<class T> bool ref_compare( value< weak_ptr<T> > const & a, value< weak_ptr<T> > const & b, int )\r
+{\r
+    return !(a.get() < b.get()) && !(b.get() < a.get());\r
+}\r
+\r
+// type\r
+\r
+template<class T> class type {};\r
+\r
+// unwrap\r
+\r
+template<class F> struct unwrapper\r
+{\r
+    static inline F & unwrap( F & f, long )\r
+    {\r
+        return f;\r
+    }\r
+\r
+    template<class F2> static inline F2 & unwrap( reference_wrapper<F2> rf, int )\r
+    {\r
+        return rf.get();\r
+    }\r
+\r
+    template<class R, class T> static inline _mfi::dm<R, T> unwrap( R T::* pm, int )\r
+    {\r
+        return _mfi::dm<R, T>( pm );\r
+    }\r
+};\r
+\r
+// listN\r
+\r
+class list0\r
+{\r
+public:\r
+\r
+    list0() {}\r
+\r
+    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }\r
+\r
+    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }\r
+\r
+    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }\r
+\r
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }\r
+\r
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }\r
+\r
+    template<class R, class F, class A> R operator()(type<R>, F & f, A &, long)\r
+    {\r
+        return unwrapper<F>::unwrap(f, 0)();\r
+    }\r
+\r
+    template<class R, class F, class A> R operator()(type<R>, F const & f, A &, long) const\r
+    {\r
+        return unwrapper<F const>::unwrap(f, 0)();\r
+    }\r
+\r
+    template<class F, class A> void operator()(type<void>, F & f, A &, int)\r
+    {\r
+        unwrapper<F>::unwrap(f, 0)();\r
+    }\r
+\r
+    template<class F, class A> void operator()(type<void>, F const & f, A &, int) const\r
+    {\r
+        unwrapper<F const>::unwrap(f, 0)();\r
+    }\r
+\r
+    template<class V> void accept(V &) const\r
+    {\r
+    }\r
+\r
+    bool operator==(list0 const &) const\r
+    {\r
+        return true;\r
+    }\r
+};\r
+\r
+template< class A1 > class list1: private storage1< A1 >\r
+{\r
+private:\r
+\r
+    typedef storage1< A1 > base_type;\r
+\r
+public:\r
+\r
+    explicit list1( A1 a1 ): base_type( a1 ) {}\r
+\r
+    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }\r
+\r
+    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }\r
+\r
+    template<class T> T & operator[] ( _bi::value<T> & v ) const { return v.get(); }\r
+\r
+    template<class T> T const & operator[] ( _bi::value<T> const & v ) const { return v.get(); }\r
+\r
+    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }\r
+\r
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }\r
+\r
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }\r
+\r
+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)\r
+    {\r
+        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_]);\r
+    }\r
+\r
+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const\r
+    {\r
+        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_]);\r
+    }\r
+\r
+    template<class F, class A> void operator()(type<void>, F & f, A & a, int)\r
+    {\r
+        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_]);\r
+    }\r
+\r
+    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const\r
+    {\r
+        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_]);\r
+    }\r
+\r
+    template<class V> void accept(V & v) const\r
+    {\r
+        base_type::accept(v);\r
+    }\r
+\r
+    bool operator==(list1 const & rhs) const\r
+    {\r
+        return ref_compare(base_type::a1_, rhs.a1_, 0);\r
+    }\r
+};\r
+\r
+struct logical_and;\r
+struct logical_or;\r
+\r
+template< class A1, class A2 > class list2: private storage2< A1, A2 >\r
+{\r
+private:\r
+\r
+    typedef storage2< A1, A2 > base_type;\r
+\r
+public:\r
+\r
+    list2( A1 a1, A2 a2 ): base_type( a1, a2 ) {}\r
+\r
+    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }\r
+    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }\r
+\r
+    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }\r
+    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }\r
+\r
+    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }\r
+\r
+    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }\r
+\r
+    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }\r
+\r
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }\r
+\r
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }\r
+\r
+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)\r
+    {\r
+        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);\r
+    }\r
+\r
+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const\r
+    {\r
+        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);\r
+    }\r
+\r
+    template<class F, class A> void operator()(type<void>, F & f, A & a, int)\r
+    {\r
+        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);\r
+    }\r
+\r
+    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const\r
+    {\r
+        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);\r
+    }\r
+\r
+    template<class A> bool operator()( type<bool>, logical_and & /*f*/, A & a, int )\r
+    {\r
+        return a[ base_type::a1_ ] && a[ base_type::a2_ ];\r
+    }\r
+\r
+    template<class A> bool operator()( type<bool>, logical_and const & /*f*/, A & a, int ) const\r
+    {\r
+        return a[ base_type::a1_ ] && a[ base_type::a2_ ];\r
+    }\r
+\r
+    template<class A> bool operator()( type<bool>, logical_or & /*f*/, A & a, int )\r
+    {\r
+        return a[ base_type::a1_ ] || a[ base_type::a2_ ];\r
+    }\r
+\r
+    template<class A> bool operator()( type<bool>, logical_or const & /*f*/, A & a, int ) const\r
+    {\r
+        return a[ base_type::a1_ ] || a[ base_type::a2_ ];\r
+    }\r
+\r
+    template<class V> void accept(V & v) const\r
+    {\r
+        base_type::accept(v);\r
+    }\r
+\r
+    bool operator==(list2 const & rhs) const\r
+    {\r
+        return ref_compare(base_type::a1_, rhs.a1_, 0) && ref_compare(base_type::a2_, rhs.a2_, 0);\r
+    }\r
+};\r
+\r
+template< class A1, class A2, class A3 > class list3: private storage3< A1, A2, A3 >\r
+{\r
+private:\r
+\r
+    typedef storage3< A1, A2, A3 > base_type;\r
+\r
+public:\r
+\r
+    list3( A1 a1, A2 a2, A3 a3 ): base_type( a1, a2, a3 ) {}\r
+\r
+    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }\r
+    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }\r
+    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }\r
+\r
+    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }\r
+    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }\r
+    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }\r
+\r
+    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }\r
+\r
+    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }\r
+\r
+    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }\r
+\r
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }\r
+\r
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }\r
+\r
+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)\r
+    {\r
+        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);\r
+    }\r
+\r
+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const\r
+    {\r
+        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);\r
+    }\r
+\r
+    template<class F, class A> void operator()(type<void>, F & f, A & a, int)\r
+    {\r
+        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);\r
+    }\r
+\r
+    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const\r
+    {\r
+        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);\r
+    }\r
+\r
+    template<class V> void accept(V & v) const\r
+    {\r
+        base_type::accept(v);\r
+    }\r
+\r
+    bool operator==(list3 const & rhs) const\r
+    {\r
+        return\r
+            \r
+            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&\r
+            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&\r
+            ref_compare( base_type::a3_, rhs.a3_, 0 );\r
+    }\r
+};\r
+\r
+template< class A1, class A2, class A3, class A4 > class list4: private storage4< A1, A2, A3, A4 >\r
+{\r
+private:\r
+\r
+    typedef storage4< A1, A2, A3, A4 > base_type;\r
+\r
+public:\r
+\r
+    list4( A1 a1, A2 a2, A3 a3, A4 a4 ): base_type( a1, a2, a3, a4 ) {}\r
+\r
+    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }\r
+    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }\r
+    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }\r
+    A4 operator[] (boost::arg<4>) const { return base_type::a4_; }\r
+\r
+    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }\r
+    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }\r
+    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }\r
+    A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }\r
+\r
+    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }\r
+\r
+    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }\r
+\r
+    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }\r
+\r
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }\r
+\r
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }\r
+\r
+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)\r
+    {\r
+        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);\r
+    }\r
+\r
+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const\r
+    {\r
+        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);\r
+    }\r
+\r
+    template<class F, class A> void operator()(type<void>, F & f, A & a, int)\r
+    {\r
+        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);\r
+    }\r
+\r
+    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const\r
+    {\r
+        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);\r
+    }\r
+\r
+    template<class V> void accept(V & v) const\r
+    {\r
+        base_type::accept(v);\r
+    }\r
+\r
+    bool operator==(list4 const & rhs) const\r
+    {\r
+        return\r
+\r
+            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&\r
+            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&\r
+            ref_compare( base_type::a3_, rhs.a3_, 0 ) &&\r
+            ref_compare( base_type::a4_, rhs.a4_, 0 );\r
+    }\r
+};\r
+\r
+template< class A1, class A2, class A3, class A4, class A5 > class list5: private storage5< A1, A2, A3, A4, A5 >\r
+{\r
+private:\r
+\r
+    typedef storage5< A1, A2, A3, A4, A5 > base_type;\r
+\r
+public:\r
+\r
+    list5( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5 ): base_type( a1, a2, a3, a4, a5 ) {}\r
+\r
+    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }\r
+    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }\r
+    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }\r
+    A4 operator[] (boost::arg<4>) const { return base_type::a4_; }\r
+    A5 operator[] (boost::arg<5>) const { return base_type::a5_; }\r
+\r
+    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }\r
+    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }\r
+    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }\r
+    A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }\r
+    A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }\r
+\r
+    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }\r
+\r
+    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }\r
+\r
+    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }\r
+\r
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }\r
+\r
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }\r
+\r
+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)\r
+    {\r
+        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);\r
+    }\r
+\r
+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const\r
+    {\r
+        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);\r
+    }\r
+\r
+    template<class F, class A> void operator()(type<void>, F & f, A & a, int)\r
+    {\r
+        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);\r
+    }\r
+\r
+    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const\r
+    {\r
+        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);\r
+    }\r
+\r
+    template<class V> void accept(V & v) const\r
+    {\r
+        base_type::accept(v);\r
+    }\r
+\r
+    bool operator==(list5 const & rhs) const\r
+    {\r
+        return\r
+\r
+            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&\r
+            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&\r
+            ref_compare( base_type::a3_, rhs.a3_, 0 ) &&\r
+            ref_compare( base_type::a4_, rhs.a4_, 0 ) &&\r
+            ref_compare( base_type::a5_, rhs.a5_, 0 );\r
+    }\r
+};\r
+\r
+template<class A1, class A2, class A3, class A4, class A5, class A6> class list6: private storage6< A1, A2, A3, A4, A5, A6 >\r
+{\r
+private:\r
+\r
+    typedef storage6< A1, A2, A3, A4, A5, A6 > base_type;\r
+\r
+public:\r
+\r
+    list6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6 ): base_type( a1, a2, a3, a4, a5, a6 ) {}\r
+\r
+    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }\r
+    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }\r
+    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }\r
+    A4 operator[] (boost::arg<4>) const { return base_type::a4_; }\r
+    A5 operator[] (boost::arg<5>) const { return base_type::a5_; }\r
+    A6 operator[] (boost::arg<6>) const { return base_type::a6_; }\r
+\r
+    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }\r
+    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }\r
+    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }\r
+    A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }\r
+    A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }\r
+    A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }\r
+\r
+    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }\r
+\r
+    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }\r
+\r
+    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }\r
+\r
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }\r
+\r
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }\r
+\r
+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)\r
+    {\r
+        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);\r
+    }\r
+\r
+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const\r
+    {\r
+        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);\r
+    }\r
+\r
+    template<class F, class A> void operator()(type<void>, F & f, A & a, int)\r
+    {\r
+        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);\r
+    }\r
+\r
+    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const\r
+    {\r
+        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);\r
+    }\r
+\r
+    template<class V> void accept(V & v) const\r
+    {\r
+        base_type::accept(v);\r
+    }\r
+\r
+    bool operator==(list6 const & rhs) const\r
+    {\r
+        return\r
+\r
+            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&\r
+            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&\r
+            ref_compare( base_type::a3_, rhs.a3_, 0 ) &&\r
+            ref_compare( base_type::a4_, rhs.a4_, 0 ) &&\r
+            ref_compare( base_type::a5_, rhs.a5_, 0 ) &&\r
+            ref_compare( base_type::a6_, rhs.a6_, 0 );\r
+    }\r
+};\r
+\r
+template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> class list7: private storage7< A1, A2, A3, A4, A5, A6, A7 >\r
+{\r
+private:\r
+\r
+    typedef storage7< A1, A2, A3, A4, A5, A6, A7 > base_type;\r
+\r
+public:\r
+\r
+    list7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7 ): base_type( a1, a2, a3, a4, a5, a6, a7 ) {}\r
+\r
+    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }\r
+    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }\r
+    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }\r
+    A4 operator[] (boost::arg<4>) const { return base_type::a4_; }\r
+    A5 operator[] (boost::arg<5>) const { return base_type::a5_; }\r
+    A6 operator[] (boost::arg<6>) const { return base_type::a6_; }\r
+    A7 operator[] (boost::arg<7>) const { return base_type::a7_; }\r
+\r
+    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }\r
+    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }\r
+    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }\r
+    A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }\r
+    A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }\r
+    A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }\r
+    A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; }\r
+\r
+    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }\r
+\r
+    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }\r
+\r
+    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }\r
+\r
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }\r
+\r
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }\r
+\r
+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)\r
+    {\r
+        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);\r
+    }\r
+\r
+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const\r
+    {\r
+        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);\r
+    }\r
+\r
+    template<class F, class A> void operator()(type<void>, F & f, A & a, int)\r
+    {\r
+        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);\r
+    }\r
+\r
+    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const\r
+    {\r
+        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);\r
+    }\r
+\r
+    template<class V> void accept(V & v) const\r
+    {\r
+        base_type::accept(v);\r
+    }\r
+\r
+    bool operator==(list7 const & rhs) const\r
+    {\r
+        return\r
+\r
+            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&\r
+            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&\r
+            ref_compare( base_type::a3_, rhs.a3_, 0 ) &&\r
+            ref_compare( base_type::a4_, rhs.a4_, 0 ) &&\r
+            ref_compare( base_type::a5_, rhs.a5_, 0 ) &&\r
+            ref_compare( base_type::a6_, rhs.a6_, 0 ) &&\r
+            ref_compare( base_type::a7_, rhs.a7_, 0 );\r
+    }\r
+};\r
+\r
+template< class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > class list8: private storage8< A1, A2, A3, A4, A5, A6, A7, A8 >\r
+{\r
+private:\r
+\r
+    typedef storage8< A1, A2, A3, A4, A5, A6, A7, A8 > base_type;\r
+\r
+public:\r
+\r
+    list8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8 ): base_type( a1, a2, a3, a4, a5, a6, a7, a8 ) {}\r
+\r
+    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }\r
+    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }\r
+    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }\r
+    A4 operator[] (boost::arg<4>) const { return base_type::a4_; }\r
+    A5 operator[] (boost::arg<5>) const { return base_type::a5_; }\r
+    A6 operator[] (boost::arg<6>) const { return base_type::a6_; }\r
+    A7 operator[] (boost::arg<7>) const { return base_type::a7_; }\r
+    A8 operator[] (boost::arg<8>) const { return base_type::a8_; }\r
+\r
+    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }\r
+    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }\r
+    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }\r
+    A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }\r
+    A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }\r
+    A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }\r
+    A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; }\r
+    A8 operator[] (boost::arg<8> (*) ()) const { return base_type::a8_; }\r
+\r
+    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }\r
+\r
+    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }\r
+\r
+    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }\r
+\r
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }\r
+\r
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }\r
+\r
+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)\r
+    {\r
+        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);\r
+    }\r
+\r
+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const\r
+    {\r
+        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);\r
+    }\r
+\r
+    template<class F, class A> void operator()(type<void>, F & f, A & a, int)\r
+    {\r
+        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);\r
+    }\r
+\r
+    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const\r
+    {\r
+        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);\r
+    }\r
+\r
+    template<class V> void accept(V & v) const\r
+    {\r
+        base_type::accept(v);\r
+    }\r
+\r
+    bool operator==(list8 const & rhs) const\r
+    {\r
+        return\r
+            \r
+            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&\r
+            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&\r
+            ref_compare( base_type::a3_, rhs.a3_, 0 ) &&\r
+            ref_compare( base_type::a4_, rhs.a4_, 0 ) &&\r
+            ref_compare( base_type::a5_, rhs.a5_, 0 ) &&\r
+            ref_compare( base_type::a6_, rhs.a6_, 0 ) &&\r
+            ref_compare( base_type::a7_, rhs.a7_, 0 ) &&\r
+            ref_compare( base_type::a8_, rhs.a8_, 0 );\r
+    }\r
+};\r
+\r
+template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> class list9: private storage9< A1, A2, A3, A4, A5, A6, A7, A8, A9 >\r
+{\r
+private:\r
+\r
+    typedef storage9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > base_type;\r
+\r
+public:\r
+\r
+    list9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9 ): base_type( a1, a2, a3, a4, a5, a6, a7, a8, a9 ) {}\r
+\r
+    A1 operator[] (boost::arg<1>) const { return base_type::a1_; }\r
+    A2 operator[] (boost::arg<2>) const { return base_type::a2_; }\r
+    A3 operator[] (boost::arg<3>) const { return base_type::a3_; }\r
+    A4 operator[] (boost::arg<4>) const { return base_type::a4_; }\r
+    A5 operator[] (boost::arg<5>) const { return base_type::a5_; }\r
+    A6 operator[] (boost::arg<6>) const { return base_type::a6_; }\r
+    A7 operator[] (boost::arg<7>) const { return base_type::a7_; }\r
+    A8 operator[] (boost::arg<8>) const { return base_type::a8_; }\r
+    A9 operator[] (boost::arg<9>) const { return base_type::a9_; }\r
+\r
+    A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; }\r
+    A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; }\r
+    A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; }\r
+    A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; }\r
+    A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; }\r
+    A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; }\r
+    A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; }\r
+    A8 operator[] (boost::arg<8> (*) ()) const { return base_type::a8_; }\r
+    A9 operator[] (boost::arg<9> (*) ()) const { return base_type::a9_; }\r
+\r
+    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }\r
+\r
+    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }\r
+\r
+    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }\r
+\r
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }\r
+\r
+    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }\r
+\r
+    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)\r
+    {\r
+        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);\r
+    }\r
+\r
+    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const\r
+    {\r
+        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);\r
+    }\r
+\r
+    template<class F, class A> void operator()(type<void>, F & f, A & a, int)\r
+    {\r
+        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);\r
+    }\r
+\r
+    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const\r
+    {\r
+        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);\r
+    }\r
+\r
+    template<class V> void accept(V & v) const\r
+    {\r
+        base_type::accept(v);\r
+    }\r
+\r
+    bool operator==(list9 const & rhs) const\r
+    {\r
+        return\r
+\r
+            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&\r
+            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&\r
+            ref_compare( base_type::a3_, rhs.a3_, 0 ) &&\r
+            ref_compare( base_type::a4_, rhs.a4_, 0 ) &&\r
+            ref_compare( base_type::a5_, rhs.a5_, 0 ) &&\r
+            ref_compare( base_type::a6_, rhs.a6_, 0 ) &&\r
+            ref_compare( base_type::a7_, rhs.a7_, 0 ) &&\r
+            ref_compare( base_type::a8_, rhs.a8_, 0 ) &&\r
+            ref_compare( base_type::a9_, rhs.a9_, 0 );\r
+    }\r
+};\r
+\r
+// bind_t\r
+\r
+#ifndef BOOST_NO_VOID_RETURNS\r
+\r
+template<class R, class F, class L> class bind_t\r
+{\r
+public:\r
+\r
+    typedef bind_t this_type;\r
+\r
+    bind_t(F f, L const & l): f_(f), l_(l) {}\r
+\r
+#define BOOST_BIND_RETURN return\r
+#include <boost/bind/bind_template.hpp>\r
+#undef BOOST_BIND_RETURN\r
+\r
+};\r
+\r
+#else\r
+\r
+template<class R> struct bind_t_generator\r
+{\r
+\r
+template<class F, class L> class implementation\r
+{\r
+public:\r
+\r
+    typedef implementation this_type;\r
+\r
+    implementation(F f, L const & l): f_(f), l_(l) {}\r
+\r
+#define BOOST_BIND_RETURN return\r
+#include <boost/bind/bind_template.hpp>\r
+#undef BOOST_BIND_RETURN\r
+\r
+};\r
+\r
+};\r
+\r
+template<> struct bind_t_generator<void>\r
+{\r
+\r
+template<class F, class L> class implementation\r
+{\r
+private:\r
+\r
+    typedef void R;\r
+\r
+public:\r
+\r
+    typedef implementation this_type;\r
+\r
+    implementation(F f, L const & l): f_(f), l_(l) {}\r
+\r
+#define BOOST_BIND_RETURN\r
+#include <boost/bind/bind_template.hpp>\r
+#undef BOOST_BIND_RETURN\r
+\r
+};\r
+\r
+};\r
+\r
+template<class R2, class F, class L> class bind_t: public bind_t_generator<R2>::BOOST_NESTED_TEMPLATE implementation<F, L>\r
+{\r
+public:\r
+\r
+    bind_t(F f, L const & l): bind_t_generator<R2>::BOOST_NESTED_TEMPLATE implementation<F, L>(f, l) {}\r
+\r
+};\r
+\r
+#endif\r
+\r
+// function_equal\r
+\r
+#ifndef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP\r
+\r
+// put overloads in _bi, rely on ADL\r
+\r
+# ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING\r
+\r
+template<class R, class F, class L> bool function_equal( bind_t<R, F, L> const & a, bind_t<R, F, L> const & b )\r
+{\r
+    return a.compare(b);\r
+}\r
+\r
+# else\r
+\r
+template<class R, class F, class L> bool function_equal_impl( bind_t<R, F, L> const & a, bind_t<R, F, L> const & b, int )\r
+{\r
+    return a.compare(b);\r
+}\r
+\r
+# endif // #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING\r
+\r
+#else // BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP\r
+\r
+// put overloads in boost\r
+\r
+} // namespace _bi\r
+\r
+# ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING\r
+\r
+template<class R, class F, class L> bool function_equal( _bi::bind_t<R, F, L> const & a, _bi::bind_t<R, F, L> const & b )\r
+{\r
+    return a.compare(b);\r
+}\r
+\r
+# else\r
+\r
+template<class R, class F, class L> bool function_equal_impl( _bi::bind_t<R, F, L> const & a, _bi::bind_t<R, F, L> const & b, int )\r
+{\r
+    return a.compare(b);\r
+}\r
+\r
+# endif // #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING\r
+\r
+namespace _bi\r
+{\r
+\r
+#endif // BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP\r
+\r
+// add_value\r
+\r
+#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || (__SUNPRO_CC >= 0x530)\r
+\r
+#if defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x582) )\r
+\r
+template<class T> struct add_value\r
+{\r
+    typedef _bi::value<T> type;\r
+};\r
+\r
+#else\r
+\r
+template< class T, int I > struct add_value_2\r
+{\r
+    typedef boost::arg<I> type;\r
+};\r
+\r
+template< class T > struct add_value_2< T, 0 >\r
+{\r
+    typedef _bi::value< T > type;\r
+};\r
+\r
+template<class T> struct add_value\r
+{\r
+    typedef typename add_value_2< T, boost::is_placeholder< T >::value >::type type;\r
+};\r
+\r
+#endif\r
+\r
+template<class T> struct add_value< value<T> >\r
+{\r
+    typedef _bi::value<T> type;\r
+};\r
+\r
+template<class T> struct add_value< reference_wrapper<T> >\r
+{\r
+    typedef reference_wrapper<T> type;\r
+};\r
+\r
+template<int I> struct add_value< arg<I> >\r
+{\r
+    typedef boost::arg<I> type;\r
+};\r
+\r
+template<int I> struct add_value< arg<I> (*) () >\r
+{\r
+    typedef boost::arg<I> (*type) ();\r
+};\r
+\r
+template<class R, class F, class L> struct add_value< bind_t<R, F, L> >\r
+{\r
+    typedef bind_t<R, F, L> type;\r
+};\r
+\r
+#else\r
+\r
+template<int I> struct _avt_0;\r
+\r
+template<> struct _avt_0<1>\r
+{\r
+    template<class T> struct inner\r
+    {\r
+        typedef T type;\r
+    };\r
+};\r
+\r
+template<> struct _avt_0<2>\r
+{\r
+    template<class T> struct inner\r
+    {\r
+        typedef value<T> type;\r
+    };\r
+};\r
+\r
+typedef char (&_avt_r1) [1];\r
+typedef char (&_avt_r2) [2];\r
+\r
+template<class T> _avt_r1 _avt_f(value<T>);\r
+template<class T> _avt_r1 _avt_f(reference_wrapper<T>);\r
+template<int I> _avt_r1 _avt_f(arg<I>);\r
+template<int I> _avt_r1 _avt_f(arg<I> (*) ());\r
+template<class R, class F, class L> _avt_r1 _avt_f(bind_t<R, F, L>);\r
+\r
+_avt_r2 _avt_f(...);\r
+\r
+template<class T> struct add_value\r
+{\r
+    static T t();\r
+    typedef typename _avt_0<sizeof(_avt_f(t()))>::template inner<T>::type type;\r
+};\r
+\r
+#endif\r
+\r
+// list_av_N\r
+\r
+template<class A1> struct list_av_1\r
+{\r
+    typedef typename add_value<A1>::type B1;\r
+    typedef list1<B1> type;\r
+};\r
+\r
+template<class A1, class A2> struct list_av_2\r
+{\r
+    typedef typename add_value<A1>::type B1;\r
+    typedef typename add_value<A2>::type B2;\r
+    typedef list2<B1, B2> type;\r
+};\r
+\r
+template<class A1, class A2, class A3> struct list_av_3\r
+{\r
+    typedef typename add_value<A1>::type B1;\r
+    typedef typename add_value<A2>::type B2;\r
+    typedef typename add_value<A3>::type B3;\r
+    typedef list3<B1, B2, B3> type;\r
+};\r
+\r
+template<class A1, class A2, class A3, class A4> struct list_av_4\r
+{\r
+    typedef typename add_value<A1>::type B1;\r
+    typedef typename add_value<A2>::type B2;\r
+    typedef typename add_value<A3>::type B3;\r
+    typedef typename add_value<A4>::type B4;\r
+    typedef list4<B1, B2, B3, B4> type;\r
+};\r
+\r
+template<class A1, class A2, class A3, class A4, class A5> struct list_av_5\r
+{\r
+    typedef typename add_value<A1>::type B1;\r
+    typedef typename add_value<A2>::type B2;\r
+    typedef typename add_value<A3>::type B3;\r
+    typedef typename add_value<A4>::type B4;\r
+    typedef typename add_value<A5>::type B5;\r
+    typedef list5<B1, B2, B3, B4, B5> type;\r
+};\r
+\r
+template<class A1, class A2, class A3, class A4, class A5, class A6> struct list_av_6\r
+{\r
+    typedef typename add_value<A1>::type B1;\r
+    typedef typename add_value<A2>::type B2;\r
+    typedef typename add_value<A3>::type B3;\r
+    typedef typename add_value<A4>::type B4;\r
+    typedef typename add_value<A5>::type B5;\r
+    typedef typename add_value<A6>::type B6;\r
+    typedef list6<B1, B2, B3, B4, B5, B6> type;\r
+};\r
+\r
+template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> struct list_av_7\r
+{\r
+    typedef typename add_value<A1>::type B1;\r
+    typedef typename add_value<A2>::type B2;\r
+    typedef typename add_value<A3>::type B3;\r
+    typedef typename add_value<A4>::type B4;\r
+    typedef typename add_value<A5>::type B5;\r
+    typedef typename add_value<A6>::type B6;\r
+    typedef typename add_value<A7>::type B7;\r
+    typedef list7<B1, B2, B3, B4, B5, B6, B7> type;\r
+};\r
+\r
+template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> struct list_av_8\r
+{\r
+    typedef typename add_value<A1>::type B1;\r
+    typedef typename add_value<A2>::type B2;\r
+    typedef typename add_value<A3>::type B3;\r
+    typedef typename add_value<A4>::type B4;\r
+    typedef typename add_value<A5>::type B5;\r
+    typedef typename add_value<A6>::type B6;\r
+    typedef typename add_value<A7>::type B7;\r
+    typedef typename add_value<A8>::type B8;\r
+    typedef list8<B1, B2, B3, B4, B5, B6, B7, B8> type;\r
+};\r
+\r
+template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> struct list_av_9\r
+{\r
+    typedef typename add_value<A1>::type B1;\r
+    typedef typename add_value<A2>::type B2;\r
+    typedef typename add_value<A3>::type B3;\r
+    typedef typename add_value<A4>::type B4;\r
+    typedef typename add_value<A5>::type B5;\r
+    typedef typename add_value<A6>::type B6;\r
+    typedef typename add_value<A7>::type B7;\r
+    typedef typename add_value<A8>::type B8;\r
+    typedef typename add_value<A9>::type B9;\r
+    typedef list9<B1, B2, B3, B4, B5, B6, B7, B8, B9> type;\r
+};\r
+\r
+// operator!\r
+\r
+struct logical_not\r
+{\r
+    template<class V> bool operator()(V const & v) const { return !v; }\r
+};\r
+\r
+template<class R, class F, class L>\r
+    bind_t< bool, logical_not, list1< bind_t<R, F, L> > >\r
+    operator! (bind_t<R, F, L> const & f)\r
+{\r
+    typedef list1< bind_t<R, F, L> > list_type;\r
+    return bind_t<bool, logical_not, list_type> ( logical_not(), list_type(f) );\r
+}\r
+\r
+// relational operators\r
+\r
+#define BOOST_BIND_OPERATOR( op, name ) \\r
+\\r
+struct name \\r
+{ \\r
+    template<class V, class W> bool operator()(V const & v, W const & w) const { return v op w; } \\r
+}; \\r
+ \\r
+template<class R, class F, class L, class A2> \\r
+    bind_t< bool, name, list2< bind_t<R, F, L>, typename add_value<A2>::type > > \\r
+    operator op (bind_t<R, F, L> const & f, A2 a2) \\r
+{ \\r
+    typedef typename add_value<A2>::type B2; \\r
+    typedef list2< bind_t<R, F, L>, B2> list_type; \\r
+    return bind_t<bool, name, list_type> ( name(), list_type(f, a2) ); \\r
+}\r
+\r
+BOOST_BIND_OPERATOR( ==, equal )\r
+BOOST_BIND_OPERATOR( !=, not_equal )\r
+\r
+BOOST_BIND_OPERATOR( <, less )\r
+BOOST_BIND_OPERATOR( <=, less_equal )\r
+\r
+BOOST_BIND_OPERATOR( >, greater )\r
+BOOST_BIND_OPERATOR( >=, greater_equal )\r
+\r
+BOOST_BIND_OPERATOR( &&, logical_and )\r
+BOOST_BIND_OPERATOR( ||, logical_or )\r
+\r
+#undef BOOST_BIND_OPERATOR\r
+\r
+#if defined(__GNUC__) && BOOST_WORKAROUND(__GNUC__, < 3)\r
+\r
+// resolve ambiguity with rel_ops\r
+\r
+#define BOOST_BIND_OPERATOR( op, name ) \\r
+\\r
+template<class R, class F, class L> \\r
+    bind_t< bool, name, list2< bind_t<R, F, L>, bind_t<R, F, L> > > \\r
+    operator op (bind_t<R, F, L> const & f, bind_t<R, F, L> const & g) \\r
+{ \\r
+    typedef list2< bind_t<R, F, L>, bind_t<R, F, L> > list_type; \\r
+    return bind_t<bool, name, list_type> ( name(), list_type(f, g) ); \\r
+}\r
+\r
+BOOST_BIND_OPERATOR( !=, not_equal )\r
+BOOST_BIND_OPERATOR( <=, less_equal )\r
+BOOST_BIND_OPERATOR( >, greater )\r
+BOOST_BIND_OPERATOR( >=, greater_equal )\r
+\r
+#endif\r
+\r
+// visit_each, ADL\r
+\r
+#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( __BORLANDC__ ) \\r
+   && !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3)\r
+\r
+template<class V, class T> void visit_each( V & v, value<T> const & t, int )\r
+{\r
+    using boost::visit_each;\r
+    BOOST_BIND_VISIT_EACH( v, t.get(), 0 );\r
+}\r
+\r
+template<class V, class R, class F, class L> void visit_each( V & v, bind_t<R, F, L> const & t, int )\r
+{\r
+    t.accept( v );\r
+}\r
+\r
+#endif\r
+\r
+} // namespace _bi\r
+\r
+// visit_each, no ADL\r
+\r
+#if defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) || defined( __BORLANDC__ ) \\r
+  || (defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3)\r
+\r
+template<class V, class T> void visit_each( V & v, _bi::value<T> const & t, int )\r
+{\r
+    BOOST_BIND_VISIT_EACH( v, t.get(), 0 );\r
+}\r
+\r
+template<class V, class R, class F, class L> void visit_each( V & v, _bi::bind_t<R, F, L> const & t, int )\r
+{\r
+    t.accept( v );\r
+}\r
+\r
+#endif\r
+\r
+// is_bind_expression\r
+\r
+template< class T > struct is_bind_expression\r
+{\r
+    enum _vt { value = 0 };\r
+};\r
+\r
+#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )\r
+\r
+template< class R, class F, class L > struct is_bind_expression< _bi::bind_t< R, F, L > >\r
+{\r
+    enum _vt { value = 1 };\r
+};\r
+\r
+#endif\r
+\r
+// bind\r
+\r
+#ifndef BOOST_BIND\r
+#define BOOST_BIND bind\r
+#endif\r
+\r
+// generic function objects\r
+\r
+template<class R, class F>\r
+    _bi::bind_t<R, F, _bi::list0>\r
+    BOOST_BIND(F f)\r
+{\r
+    typedef _bi::list0 list_type;\r
+    return _bi::bind_t<R, F, list_type> (f, list_type());\r
+}\r
+\r
+template<class R, class F, class A1>\r
+    _bi::bind_t<R, F, typename _bi::list_av_1<A1>::type>\r
+    BOOST_BIND(F f, A1 a1)\r
+{\r
+    typedef typename _bi::list_av_1<A1>::type list_type;\r
+    return _bi::bind_t<R, F, list_type> (f, list_type(a1));\r
+}\r
+\r
+template<class R, class F, class A1, class A2>\r
+    _bi::bind_t<R, F, typename _bi::list_av_2<A1, A2>::type>\r
+    BOOST_BIND(F f, A1 a1, A2 a2)\r
+{\r
+    typedef typename _bi::list_av_2<A1, A2>::type list_type;\r
+    return _bi::bind_t<R, F, list_type> (f, list_type(a1, a2));\r
+}\r
+\r
+template<class R, class F, class A1, class A2, class A3>\r
+    _bi::bind_t<R, F, typename _bi::list_av_3<A1, A2, A3>::type>\r
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3)\r
+{\r
+    typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;\r
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3));\r
+}\r
+\r
+template<class R, class F, class A1, class A2, class A3, class A4>\r
+    _bi::bind_t<R, F, typename _bi::list_av_4<A1, A2, A3, A4>::type>\r
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4)\r
+{\r
+    typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;\r
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4));\r
+}\r
+\r
+template<class R, class F, class A1, class A2, class A3, class A4, class A5>\r
+    _bi::bind_t<R, F, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>\r
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)\r
+{\r
+    typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;\r
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5));\r
+}\r
+\r
+template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6>\r
+    _bi::bind_t<R, F, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>\r
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)\r
+{\r
+    typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;\r
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6));\r
+}\r
+\r
+template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7>\r
+    _bi::bind_t<R, F, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>\r
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)\r
+{\r
+    typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;\r
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7));\r
+}\r
+\r
+template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>\r
+    _bi::bind_t<R, F, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>\r
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)\r
+{\r
+    typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;\r
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8));\r
+}\r
+\r
+template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>\r
+    _bi::bind_t<R, F, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>\r
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)\r
+{\r
+    typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;\r
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));\r
+}\r
+\r
+// generic function objects, alternative syntax\r
+\r
+template<class R, class F>\r
+    _bi::bind_t<R, F, _bi::list0>\r
+    BOOST_BIND(boost::type<R>, F f)\r
+{\r
+    typedef _bi::list0 list_type;\r
+    return _bi::bind_t<R, F, list_type> (f, list_type());\r
+}\r
+\r
+template<class R, class F, class A1>\r
+    _bi::bind_t<R, F, typename _bi::list_av_1<A1>::type>\r
+    BOOST_BIND(boost::type<R>, F f, A1 a1)\r
+{\r
+    typedef typename _bi::list_av_1<A1>::type list_type;\r
+    return _bi::bind_t<R, F, list_type> (f, list_type(a1));\r
+}\r
+\r
+template<class R, class F, class A1, class A2>\r
+    _bi::bind_t<R, F, typename _bi::list_av_2<A1, A2>::type>\r
+    BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2)\r
+{\r
+    typedef typename _bi::list_av_2<A1, A2>::type list_type;\r
+    return _bi::bind_t<R, F, list_type> (f, list_type(a1, a2));\r
+}\r
+\r
+template<class R, class F, class A1, class A2, class A3>\r
+    _bi::bind_t<R, F, typename _bi::list_av_3<A1, A2, A3>::type>\r
+    BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3)\r
+{\r
+    typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;\r
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3));\r
+}\r
+\r
+template<class R, class F, class A1, class A2, class A3, class A4>\r
+    _bi::bind_t<R, F, typename _bi::list_av_4<A1, A2, A3, A4>::type>\r
+    BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4)\r
+{\r
+    typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;\r
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4));\r
+}\r
+\r
+template<class R, class F, class A1, class A2, class A3, class A4, class A5>\r
+    _bi::bind_t<R, F, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>\r
+    BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)\r
+{\r
+    typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;\r
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5));\r
+}\r
+\r
+template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6>\r
+    _bi::bind_t<R, F, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>\r
+    BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)\r
+{\r
+    typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;\r
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6));\r
+}\r
+\r
+template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7>\r
+    _bi::bind_t<R, F, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>\r
+    BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)\r
+{\r
+    typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;\r
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7));\r
+}\r
+\r
+template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>\r
+    _bi::bind_t<R, F, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>\r
+    BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)\r
+{\r
+    typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;\r
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8));\r
+}\r
+\r
+template<class R, class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>\r
+    _bi::bind_t<R, F, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>\r
+    BOOST_BIND(boost::type<R>, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)\r
+{\r
+    typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;\r
+    return _bi::bind_t<R, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));\r
+}\r
+\r
+#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)\r
+\r
+// adaptable function objects\r
+\r
+template<class F>\r
+    _bi::bind_t<_bi::unspecified, F, _bi::list0>\r
+    BOOST_BIND(F f)\r
+{\r
+    typedef _bi::list0 list_type;\r
+    return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type());\r
+}\r
+\r
+template<class F, class A1>\r
+    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_1<A1>::type>\r
+    BOOST_BIND(F f, A1 a1)\r
+{\r
+    typedef typename _bi::list_av_1<A1>::type list_type;\r
+    return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type(a1));\r
+}\r
+\r
+template<class F, class A1, class A2>\r
+    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_2<A1, A2>::type>\r
+    BOOST_BIND(F f, A1 a1, A2 a2)\r
+{\r
+    typedef typename _bi::list_av_2<A1, A2>::type list_type;\r
+    return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type(a1, a2));\r
+}\r
+\r
+template<class F, class A1, class A2, class A3>\r
+    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_3<A1, A2, A3>::type>\r
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3)\r
+{\r
+    typedef typename _bi::list_av_3<A1, A2, A3>::type list_type;\r
+    return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3));\r
+}\r
+\r
+template<class F, class A1, class A2, class A3, class A4>\r
+    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_4<A1, A2, A3, A4>::type>\r
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4)\r
+{\r
+    typedef typename _bi::list_av_4<A1, A2, A3, A4>::type list_type;\r
+    return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4));\r
+}\r
+\r
+template<class F, class A1, class A2, class A3, class A4, class A5>\r
+    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_5<A1, A2, A3, A4, A5>::type>\r
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)\r
+{\r
+    typedef typename _bi::list_av_5<A1, A2, A3, A4, A5>::type list_type;\r
+    return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5));\r
+}\r
+\r
+template<class F, class A1, class A2, class A3, class A4, class A5, class A6>\r
+    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type>\r
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)\r
+{\r
+    typedef typename _bi::list_av_6<A1, A2, A3, A4, A5, A6>::type list_type;\r
+    return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6));\r
+}\r
+\r
+template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7>\r
+    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type>\r
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)\r
+{\r
+    typedef typename _bi::list_av_7<A1, A2, A3, A4, A5, A6, A7>::type list_type;\r
+    return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7));\r
+}\r
+\r
+template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>\r
+    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type>\r
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)\r
+{\r
+    typedef typename _bi::list_av_8<A1, A2, A3, A4, A5, A6, A7, A8>::type list_type;\r
+    return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8));\r
+}\r
+\r
+template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>\r
+    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type>\r
+    BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)\r
+{\r
+    typedef typename _bi::list_av_9<A1, A2, A3, A4, A5, A6, A7, A8, A9>::type list_type;\r
+    return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9));\r
+}\r
+\r
+#endif // !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)\r
+\r
+// function pointers\r
+\r
+#define BOOST_BIND_CC\r
+#define BOOST_BIND_ST\r
+\r
+#include <boost/bind/bind_cc.hpp>\r
+\r
+#undef BOOST_BIND_CC\r
+#undef BOOST_BIND_ST\r
+\r
+#ifdef BOOST_BIND_ENABLE_STDCALL\r
+\r
+#define BOOST_BIND_CC __stdcall\r
+#define BOOST_BIND_ST\r
+\r
+#include <boost/bind/bind_cc.hpp>\r
+\r
+#undef BOOST_BIND_CC\r
+#undef BOOST_BIND_ST\r
+\r
+#endif\r
+\r
+#ifdef BOOST_BIND_ENABLE_FASTCALL\r
+\r
+#define BOOST_BIND_CC __fastcall\r
+#define BOOST_BIND_ST\r
+\r
+#include <boost/bind/bind_cc.hpp>\r
+\r
+#undef BOOST_BIND_CC\r
+#undef BOOST_BIND_ST\r
+\r
+#endif\r
+\r
+#ifdef BOOST_BIND_ENABLE_PASCAL\r
+\r
+#define BOOST_BIND_ST pascal\r
+#define BOOST_BIND_CC\r
+\r
+#include <boost/bind/bind_cc.hpp>\r
+\r
+#undef BOOST_BIND_ST\r
+#undef BOOST_BIND_CC\r
+\r
+#endif\r
+\r
+// member function pointers\r
+\r
+#define BOOST_BIND_MF_NAME(X) X\r
+#define BOOST_BIND_MF_CC\r
+\r
+#include <boost/bind/bind_mf_cc.hpp>\r
+#include <boost/bind/bind_mf2_cc.hpp>\r
+\r
+#undef BOOST_BIND_MF_NAME\r
+#undef BOOST_BIND_MF_CC\r
+\r
+#ifdef BOOST_MEM_FN_ENABLE_CDECL\r
+\r
+#define BOOST_BIND_MF_NAME(X) X##_cdecl\r
+#define BOOST_BIND_MF_CC __cdecl\r
+\r
+#include <boost/bind/bind_mf_cc.hpp>\r
+#include <boost/bind/bind_mf2_cc.hpp>\r
+\r
+#undef BOOST_BIND_MF_NAME\r
+#undef BOOST_BIND_MF_CC\r
+\r
+#endif\r
+\r
+#ifdef BOOST_MEM_FN_ENABLE_STDCALL\r
+\r
+#define BOOST_BIND_MF_NAME(X) X##_stdcall\r
+#define BOOST_BIND_MF_CC __stdcall\r
+\r
+#include <boost/bind/bind_mf_cc.hpp>\r
+#include <boost/bind/bind_mf2_cc.hpp>\r
+\r
+#undef BOOST_BIND_MF_NAME\r
+#undef BOOST_BIND_MF_CC\r
+\r
+#endif\r
+\r
+#ifdef BOOST_MEM_FN_ENABLE_FASTCALL\r
+\r
+#define BOOST_BIND_MF_NAME(X) X##_fastcall\r
+#define BOOST_BIND_MF_CC __fastcall\r
+\r
+#include <boost/bind/bind_mf_cc.hpp>\r
+#include <boost/bind/bind_mf2_cc.hpp>\r
+\r
+#undef BOOST_BIND_MF_NAME\r
+#undef BOOST_BIND_MF_CC\r
+\r
+#endif\r
+\r
+// data member pointers\r
+\r
+#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \\r
+    || ( defined(__BORLANDC__) && BOOST_WORKAROUND( __BORLANDC__, <= 0x610 ) )\r
+\r
+template<class R, class T, class A1>\r
+_bi::bind_t< R, _mfi::dm<R, T>, typename _bi::list_av_1<A1>::type >\r
+    BOOST_BIND(R T::*f, A1 a1)\r
+{\r
+    typedef _mfi::dm<R, T> F;\r
+    typedef typename _bi::list_av_1<A1>::type list_type;\r
+    return _bi::bind_t<R, F, list_type>( F(f), list_type(a1) );\r
+}\r
+\r
+#else\r
+\r
+namespace _bi\r
+{\r
+\r
+template< class Pm, int I > struct add_cref;\r
+\r
+template< class M, class T > struct add_cref< M T::*, 0 >\r
+{\r
+    typedef M type;\r
+};\r
+\r
+template< class M, class T > struct add_cref< M T::*, 1 >\r
+{\r
+    typedef M const & type;\r
+};\r
+\r
+template< class R, class T > struct add_cref< R (T::*) (), 1 >\r
+{\r
+    typedef void type;\r
+};\r
+\r
+#if !( defined(__IBMCPP__) && BOOST_WORKAROUND( __IBMCPP__, BOOST_TESTED_AT(600) ) )\r
+\r
+template< class R, class T > struct add_cref< R (T::*) () const, 1 >\r
+{\r
+    typedef void type;\r
+};\r
+\r
+#endif // __IBMCPP__\r
+\r
+template<class R> struct isref\r
+{\r
+    enum value_type { value = 0 };\r
+};\r
+\r
+template<class R> struct isref< R& >\r
+{\r
+    enum value_type { value = 1 };\r
+};\r
+\r
+template<class R> struct isref< R* >\r
+{\r
+    enum value_type { value = 1 };\r
+};\r
+\r
+template<class Pm, class A1> struct dm_result\r
+{\r
+    typedef typename add_cref< Pm, 1 >::type type;\r
+};\r
+\r
+template<class Pm, class R, class F, class L> struct dm_result< Pm, bind_t<R, F, L> >\r
+{\r
+    typedef typename bind_t<R, F, L>::result_type result_type;\r
+    typedef typename add_cref< Pm, isref< result_type >::value >::type type;\r
+};\r
+\r
+} // namespace _bi\r
+\r
+template< class A1, class M, class T >\r
+\r
+_bi::bind_t<\r
+    typename _bi::dm_result< M T::*, A1 >::type,\r
+    _mfi::dm<M, T>,\r
+    typename _bi::list_av_1<A1>::type\r
+>\r
+\r
+BOOST_BIND( M T::*f, A1 a1 )\r
+{\r
+    typedef typename _bi::dm_result< M T::*, A1 >::type result_type;\r
+    typedef _mfi::dm<M, T> F;\r
+    typedef typename _bi::list_av_1<A1>::type list_type;\r
+    return _bi::bind_t< result_type, F, list_type >( F( f ), list_type( a1 ) );\r
+}\r
+\r
+#endif\r
+\r
+} // namespace boost\r
+\r
+#ifndef BOOST_BIND_NO_PLACEHOLDERS\r
+\r
+# include <boost/bind/placeholders.hpp>\r
+\r
+#endif\r
+\r
+#ifdef BOOST_MSVC\r
+# pragma warning(default: 4512) // assignment operator could not be generated\r
+# pragma warning(pop)\r
+#endif\r
+\r
+#endif // #ifndef BOOST_BIND_BIND_HPP_INCLUDED\r
diff --git a/boost/boost/bind/mem_fn.hpp b/boost/boost/bind/mem_fn.hpp
new file mode 100644 (file)
index 0000000..86c61e4
--- /dev/null
@@ -0,0 +1,389 @@
+#ifndef BOOST_BIND_MEM_FN_HPP_INCLUDED\r
+#define BOOST_BIND_MEM_FN_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  mem_fn.hpp - a generalization of std::mem_fun[_ref]\r
+//\r
+//  Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.\r
+//  Copyright (c) 2001 David Abrahams\r
+//  Copyright (c) 2003-2005 Peter Dimov\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. (See\r
+// accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+//  See http://www.boost.org/libs/bind/mem_fn.html for documentation.\r
+//\r
+\r
+#include <boost/config.hpp>\r
+#include <boost/get_pointer.hpp>\r
+#include <boost/detail/workaround.hpp>\r
+\r
+namespace boost\r
+{\r
+\r
+#if defined(BOOST_NO_VOID_RETURNS)\r
+\r
+#define BOOST_MEM_FN_CLASS_F , class F\r
+#define BOOST_MEM_FN_TYPEDEF(X)\r
+\r
+namespace _mfi // mem_fun_impl\r
+{\r
+\r
+template<class V> struct mf\r
+{\r
+\r
+#define BOOST_MEM_FN_RETURN return\r
+\r
+#define BOOST_MEM_FN_NAME(X) inner_##X\r
+#define BOOST_MEM_FN_CC\r
+\r
+#include <boost/bind/mem_fn_template.hpp>\r
+\r
+#undef BOOST_MEM_FN_CC\r
+#undef BOOST_MEM_FN_NAME\r
+\r
+#ifdef BOOST_MEM_FN_ENABLE_CDECL\r
+\r
+#define BOOST_MEM_FN_NAME(X) inner_##X##_cdecl\r
+#define BOOST_MEM_FN_CC __cdecl\r
+\r
+#include <boost/bind/mem_fn_template.hpp>\r
+\r
+#undef BOOST_MEM_FN_CC\r
+#undef BOOST_MEM_FN_NAME\r
+\r
+#endif\r
+\r
+#ifdef BOOST_MEM_FN_ENABLE_STDCALL\r
+\r
+#define BOOST_MEM_FN_NAME(X) inner_##X##_stdcall\r
+#define BOOST_MEM_FN_CC __stdcall\r
+\r
+#include <boost/bind/mem_fn_template.hpp>\r
+\r
+#undef BOOST_MEM_FN_CC\r
+#undef BOOST_MEM_FN_NAME\r
+\r
+#endif\r
+\r
+#ifdef BOOST_MEM_FN_ENABLE_FASTCALL\r
+\r
+#define BOOST_MEM_FN_NAME(X) inner_##X##_fastcall\r
+#define BOOST_MEM_FN_CC __fastcall\r
+\r
+#include <boost/bind/mem_fn_template.hpp>\r
+\r
+#undef BOOST_MEM_FN_CC\r
+#undef BOOST_MEM_FN_NAME\r
+\r
+#endif\r
+\r
+#undef BOOST_MEM_FN_RETURN\r
+\r
+}; // struct mf<V>\r
+\r
+template<> struct mf<void>\r
+{\r
+\r
+#define BOOST_MEM_FN_RETURN\r
+\r
+#define BOOST_MEM_FN_NAME(X) inner_##X\r
+#define BOOST_MEM_FN_CC\r
+\r
+#include <boost/bind/mem_fn_template.hpp>\r
+\r
+#undef BOOST_MEM_FN_CC\r
+#undef BOOST_MEM_FN_NAME\r
+\r
+#ifdef BOOST_MEM_FN_ENABLE_CDECL\r
+\r
+#define BOOST_MEM_FN_NAME(X) inner_##X##_cdecl\r
+#define BOOST_MEM_FN_CC __cdecl\r
+\r
+#include <boost/bind/mem_fn_template.hpp>\r
+\r
+#undef BOOST_MEM_FN_CC\r
+#undef BOOST_MEM_FN_NAME\r
+\r
+#endif\r
+\r
+#ifdef BOOST_MEM_FN_ENABLE_STDCALL\r
+\r
+#define BOOST_MEM_FN_NAME(X) inner_##X##_stdcall\r
+#define BOOST_MEM_FN_CC __stdcall\r
+\r
+#include <boost/bind/mem_fn_template.hpp>\r
+\r
+#undef BOOST_MEM_FN_CC\r
+#undef BOOST_MEM_FN_NAME\r
+\r
+#endif\r
+\r
+#ifdef BOOST_MEM_FN_ENABLE_FASTCALL\r
+\r
+#define BOOST_MEM_FN_NAME(X) inner_##X##_fastcall\r
+#define BOOST_MEM_FN_CC __fastcall\r
+\r
+#include <boost/bind/mem_fn_template.hpp>\r
+\r
+#undef BOOST_MEM_FN_CC\r
+#undef BOOST_MEM_FN_NAME\r
+\r
+#endif\r
+\r
+#undef BOOST_MEM_FN_RETURN\r
+\r
+}; // struct mf<void>\r
+\r
+#undef BOOST_MEM_FN_CLASS_F\r
+#undef BOOST_MEM_FN_TYPEDEF_F\r
+\r
+#define BOOST_MEM_FN_NAME(X) X\r
+#define BOOST_MEM_FN_NAME2(X) inner_##X\r
+#define BOOST_MEM_FN_CC\r
+\r
+#include <boost/bind/mem_fn_vw.hpp>\r
+\r
+#undef BOOST_MEM_FN_NAME\r
+#undef BOOST_MEM_FN_NAME2\r
+#undef BOOST_MEM_FN_CC\r
+\r
+#ifdef BOOST_MEM_FN_ENABLE_CDECL\r
+\r
+#define BOOST_MEM_FN_NAME(X) X##_cdecl\r
+#define BOOST_MEM_FN_NAME2(X) inner_##X##_cdecl\r
+#define BOOST_MEM_FN_CC __cdecl\r
+\r
+#include <boost/bind/mem_fn_vw.hpp>\r
+\r
+#undef BOOST_MEM_FN_NAME\r
+#undef BOOST_MEM_FN_NAME2\r
+#undef BOOST_MEM_FN_CC\r
+\r
+#endif\r
+\r
+#ifdef BOOST_MEM_FN_ENABLE_STDCALL\r
+\r
+#define BOOST_MEM_FN_NAME(X) X##_stdcall\r
+#define BOOST_MEM_FN_NAME2(X) inner_##X##_stdcall\r
+#define BOOST_MEM_FN_CC __stdcall\r
+\r
+#include <boost/bind/mem_fn_vw.hpp>\r
+\r
+#undef BOOST_MEM_FN_NAME\r
+#undef BOOST_MEM_FN_NAME2\r
+#undef BOOST_MEM_FN_CC\r
+\r
+#endif\r
+\r
+#ifdef BOOST_MEM_FN_ENABLE_FASTCALL\r
+\r
+#define BOOST_MEM_FN_NAME(X) X##_fastcall\r
+#define BOOST_MEM_FN_NAME2(X) inner_##X##_fastcall\r
+#define BOOST_MEM_FN_CC __fastcall\r
+\r
+#include <boost/bind/mem_fn_vw.hpp>\r
+\r
+#undef BOOST_MEM_FN_NAME\r
+#undef BOOST_MEM_FN_NAME2\r
+#undef BOOST_MEM_FN_CC\r
+\r
+#endif\r
+\r
+} // namespace _mfi\r
+\r
+#else // #ifdef BOOST_NO_VOID_RETURNS\r
+\r
+#define BOOST_MEM_FN_CLASS_F\r
+#define BOOST_MEM_FN_TYPEDEF(X) typedef X;\r
+\r
+namespace _mfi\r
+{\r
+\r
+#define BOOST_MEM_FN_RETURN return\r
+\r
+#define BOOST_MEM_FN_NAME(X) X\r
+#define BOOST_MEM_FN_CC\r
+\r
+#include <boost/bind/mem_fn_template.hpp>\r
+\r
+#undef BOOST_MEM_FN_CC\r
+#undef BOOST_MEM_FN_NAME\r
+\r
+#ifdef BOOST_MEM_FN_ENABLE_CDECL\r
+\r
+#define BOOST_MEM_FN_NAME(X) X##_cdecl\r
+#define BOOST_MEM_FN_CC __cdecl\r
+\r
+#include <boost/bind/mem_fn_template.hpp>\r
+\r
+#undef BOOST_MEM_FN_CC\r
+#undef BOOST_MEM_FN_NAME\r
+\r
+#endif\r
+\r
+#ifdef BOOST_MEM_FN_ENABLE_STDCALL\r
+\r
+#define BOOST_MEM_FN_NAME(X) X##_stdcall\r
+#define BOOST_MEM_FN_CC __stdcall\r
+\r
+#include <boost/bind/mem_fn_template.hpp>\r
+\r
+#undef BOOST_MEM_FN_CC\r
+#undef BOOST_MEM_FN_NAME\r
+\r
+#endif\r
+\r
+#ifdef BOOST_MEM_FN_ENABLE_FASTCALL\r
+\r
+#define BOOST_MEM_FN_NAME(X) X##_fastcall\r
+#define BOOST_MEM_FN_CC __fastcall\r
+\r
+#include <boost/bind/mem_fn_template.hpp>\r
+\r
+#undef BOOST_MEM_FN_CC\r
+#undef BOOST_MEM_FN_NAME\r
+\r
+#endif\r
+\r
+#undef BOOST_MEM_FN_RETURN\r
+\r
+} // namespace _mfi\r
+\r
+#undef BOOST_MEM_FN_CLASS_F\r
+#undef BOOST_MEM_FN_TYPEDEF\r
+\r
+#endif // #ifdef BOOST_NO_VOID_RETURNS\r
+\r
+#define BOOST_MEM_FN_NAME(X) X\r
+#define BOOST_MEM_FN_CC\r
+\r
+#include <boost/bind/mem_fn_cc.hpp>\r
+\r
+#undef BOOST_MEM_FN_NAME\r
+#undef BOOST_MEM_FN_CC\r
+\r
+#ifdef BOOST_MEM_FN_ENABLE_CDECL\r
+\r
+#define BOOST_MEM_FN_NAME(X) X##_cdecl\r
+#define BOOST_MEM_FN_CC __cdecl\r
+\r
+#include <boost/bind/mem_fn_cc.hpp>\r
+\r
+#undef BOOST_MEM_FN_NAME\r
+#undef BOOST_MEM_FN_CC\r
+\r
+#endif\r
+\r
+#ifdef BOOST_MEM_FN_ENABLE_STDCALL\r
+\r
+#define BOOST_MEM_FN_NAME(X) X##_stdcall\r
+#define BOOST_MEM_FN_CC __stdcall\r
+\r
+#include <boost/bind/mem_fn_cc.hpp>\r
+\r
+#undef BOOST_MEM_FN_NAME\r
+#undef BOOST_MEM_FN_CC\r
+\r
+#endif\r
+\r
+#ifdef BOOST_MEM_FN_ENABLE_FASTCALL\r
+\r
+#define BOOST_MEM_FN_NAME(X) X##_fastcall\r
+#define BOOST_MEM_FN_CC __fastcall\r
+\r
+#include <boost/bind/mem_fn_cc.hpp>\r
+\r
+#undef BOOST_MEM_FN_NAME\r
+#undef BOOST_MEM_FN_CC\r
+\r
+#endif\r
+\r
+// data member support\r
+\r
+namespace _mfi\r
+{\r
+\r
+template<class R, class T> class dm\r
+{\r
+public:\r
+\r
+    typedef R const & result_type;\r
+    typedef T const * argument_type;\r
+\r
+private:\r
+    \r
+    typedef R (T::*F);\r
+    F f_;\r
+\r
+    template<class U> R const & call(U & u, T const *) const\r
+    {\r
+        return (u.*f_);\r
+    }\r
+\r
+    template<class U> R const & call(U & u, void const *) const\r
+    {\r
+        return (get_pointer(u)->*f_);\r
+    }\r
+\r
+public:\r
+    \r
+    explicit dm(F f): f_(f) {}\r
+\r
+    R & operator()(T * p) const\r
+    {\r
+        return (p->*f_);\r
+    }\r
+\r
+    R const & operator()(T const * p) const\r
+    {\r
+        return (p->*f_);\r
+    }\r
+\r
+    template<class U> R const & operator()(U const & u) const\r
+    {\r
+        return call(u, &u);\r
+    }\r
+\r
+#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) && !BOOST_WORKAROUND(__MWERKS__, < 0x3200)\r
+\r
+    R & operator()(T & t) const\r
+    {\r
+        return (t.*f_);\r
+    }\r
+\r
+    R const & operator()(T const & t) const\r
+    {\r
+        return (t.*f_);\r
+    }\r
+\r
+#endif\r
+\r
+    bool operator==(dm const & rhs) const\r
+    {\r
+        return f_ == rhs.f_;\r
+    }\r
+\r
+    bool operator!=(dm const & rhs) const\r
+    {\r
+        return f_ != rhs.f_;\r
+    }\r
+};\r
+\r
+} // namespace _mfi\r
+\r
+template<class R, class T> _mfi::dm<R, T> mem_fn(R T::*f)\r
+{\r
+    return _mfi::dm<R, T>(f);\r
+}\r
+\r
+} // namespace boost\r
+\r
+#endif // #ifndef BOOST_BIND_MEM_FN_HPP_INCLUDED\r
diff --git a/boost/boost/config/compiler/codegear.hpp b/boost/boost/config/compiler/codegear.hpp
new file mode 100644 (file)
index 0000000..f393282
--- /dev/null
@@ -0,0 +1,153 @@
+//  (C) Copyright John Maddock 2001 - 2003.\r
+//  (C) Copyright David Abrahams 2002 - 2003.\r
+//  (C) Copyright Aleksey Gurtovoy 2002.\r
+//  Use, modification and distribution are subject to the\r
+//  Boost Software License, Version 1.0. (See accompanying file\r
+//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
+\r
+//  See http://www.boost.org for most recent version.\r
+\r
+//  CodeGear C++ compiler setup:\r
+\r
+#if !defined( BOOST_WITH_CODEGEAR_WARNINGS )\r
+// these warnings occur frequently in optimized template code\r
+# pragma warn -8004 // var assigned value, but never used\r
+# pragma warn -8008 // condition always true/false\r
+# pragma warn -8066 // dead code can never execute\r
+# pragma warn -8104 // static members with ctors not threadsafe\r
+# pragma warn -8105 // reference member in class without ctors\r
+#endif\r
+//\r
+// versions check:\r
+// last known and checked version is 0x610\r
+#if (__CODEGEARC__ > 0x610)\r
+#  if defined(BOOST_ASSERT_CONFIG)\r
+#     error "Unknown compiler version - please run the configure tests and report the results"\r
+#  else\r
+#     pragma message( "Unknown compiler version - please run the configure tests and report the results")\r
+#  endif\r
+#endif\r
+\r
+// CodeGear C++ Builder 2009\r
+#if (__CODEGEARC__ <= 0x610)\r
+#  define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL\r
+#  define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS\r
+#  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS\r
+#  define BOOST_NO_PRIVATE_IN_AGGREGATE\r
+#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP\r
+#  define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE\r
+#  define BOOST_NO_USING_TEMPLATE\r
+   // we shouldn't really need this - but too many things choke\r
+   // without it, this needs more investigation:\r
+#  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS\r
+#  define BOOST_NO_TYPENAME_WITH_CTOR    // Cannot use typename keyword when making temporaries of a dependant type\r
+#  define BOOST_NO_NESTED_FRIENDSHIP     // TC1 gives nested classes access rights as any other member\r
+\r
+// Temporary hack, until specific MPL preprocessed headers are generated\r
+#  define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS\r
+\r
+#  ifdef NDEBUG\r
+      // fix broken <cstring> so that Boost.test works:\r
+#     include <cstring>\r
+#     undef strcmp\r
+#  endif\r
+   // fix broken errno declaration:\r
+#  include <errno.h>\r
+#  ifndef errno\r
+#     define errno errno\r
+#  endif\r
+\r
+#endif\r
+\r
+//\r
+// C++0x macros:\r
+//\r
+#define BOOST_HAS_CHAR16_T\r
+#define BOOST_HAS_CHAR32_T\r
+#define BOOST_HAS_LONG_LONG\r
+// #define BOOST_HAS_ALIGNOF\r
+#define BOOST_HAS_DECLTYPE\r
+#define BOOST_HAS_EXPLICIT_CONVERSION_OPS\r
+// #define BOOST_HAS_RVALUE_REFS\r
+#define BOOST_HAS_SCOPED_ENUM\r
+// #define BOOST_HAS_STATIC_ASSERT\r
+#define BOOST_HAS_STD_TYPE_TRAITS\r
+\r
+#define BOOST_NO_EXTERN_TEMPLATE\r
+#define BOOST_NO_SCOPED_ENUMS\r
+#define BOOST_NO_STATIC_ASSERT\r
+#define BOOST_NO_RVALUE_REFERENCES\r
+#define BOOST_NO_VARIADIC_TEMPLATES\r
+#define BOOST_NO_CONSTEXPR\r
+#define BOOST_NO_DEFAULTED_FUNCTIONS\r
+#define BOOST_NO_DELETED_FUNCTIONS\r
+#define BOOST_NO_RAW_LITERALS\r
+#define BOOST_NO_UNICODE_LITERALS\r
+#define BOOST_NO_AUTO_DECLARATIONS\r
+#define BOOST_NO_AUTO_MULTIDECLARATIONS\r
+\r
+//\r
+// TR1 macros:\r
+//\r
+#define BOOST_HAS_TR1_HASH\r
+#define BOOST_HAS_TR1_TYPE_TRAITS\r
+#define BOOST_HAS_TR1_UNORDERED_MAP\r
+#define BOOST_HAS_TR1_UNORDERED_SET\r
+\r
+#define BOOST_HAS_MACRO_USE_FACET\r
+\r
+#define BOOST_NO_INITIALIZER_LISTS\r
+\r
+// On non-Win32 platforms let the platform config figure this out:\r
+#ifdef _WIN32\r
+#  define BOOST_HAS_STDINT_H\r
+#endif\r
+\r
+//\r
+// __int64:\r
+//\r
+#if !defined(__STRICT_ANSI__)\r
+#  define BOOST_HAS_MS_INT64\r
+#endif\r
+//\r
+// check for exception handling support:\r
+//\r
+#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS)\r
+#  define BOOST_NO_EXCEPTIONS\r
+#endif\r
+//\r
+// all versions have a <dirent.h>:\r
+//\r
+#if !defined(__STRICT_ANSI__)\r
+#  define BOOST_HAS_DIRENT_H\r
+#endif\r
+//\r
+// all versions support __declspec:\r
+//\r
+#if !defined(__STRICT_ANSI__)\r
+#  define BOOST_HAS_DECLSPEC\r
+#endif\r
+//\r
+// ABI fixing headers:\r
+//\r
+#ifndef BOOST_ABI_PREFIX\r
+#  define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"\r
+#endif\r
+#ifndef BOOST_ABI_SUFFIX\r
+#  define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp"\r
+#endif\r
+//\r
+// Disable Win32 support in ANSI mode:\r
+//\r
+#  pragma defineonoption BOOST_DISABLE_WIN32 -A\r
+//\r
+// MSVC compatibility mode does some nasty things:\r
+// TODO: look up if this doesn't apply to the whole 12xx range\r
+//\r
+#if defined(_MSC_VER) && (_MSC_VER <= 1200)\r
+#  define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP\r
+#  define BOOST_NO_VOID_RETURNS\r
+#endif\r
+\r
+#define BOOST_COMPILER "CodeGear C++ version " BOOST_STRINGIZE(__CODEGEARC__)\r
+\r
diff --git a/boost/boost/config/compiler/digitalmars.hpp b/boost/boost/config/compiler/digitalmars.hpp
new file mode 100644 (file)
index 0000000..f0c3c88
--- /dev/null
@@ -0,0 +1,87 @@
+//  Copyright (C) Christof Meerwald 2003\r
+//  Copyright (C) Dan Watkins 2003\r
+//\r
+//  Use, modification and distribution are subject to the \r
+//  Boost Software License, Version 1.0. (See accompanying file \r
+//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
+\r
+//  Digital Mars C++ compiler setup:\r
+#define BOOST_COMPILER __DMC_VERSION_STRING__\r
+\r
+#define BOOST_HAS_LONG_LONG\r
+#define BOOST_HAS_PRAGMA_ONCE\r
+\r
+#if (__DMC__ <= 0x833)\r
+#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL\r
+#define BOOST_NO_TEMPLATE_TEMPLATES\r
+#define BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING\r
+#define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS\r
+#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS\r
+#endif\r
+#if (__DMC__ <= 0x840) || !defined(BOOST_STRICT_CONFIG)\r
+#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS\r
+#define BOOST_NO_MEMBER_TEMPLATE_FRIENDS\r
+#define BOOST_NO_OPERATORS_IN_NAMESPACE\r
+#define BOOST_NO_UNREACHABLE_RETURN_DETECTION\r
+#define BOOST_NO_SFINAE\r
+#define BOOST_NO_USING_TEMPLATE\r
+#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL\r
+#define BOOST_NO_INITIALIZER_LISTS\r
+#endif\r
+\r
+//\r
+// has macros:\r
+#if (__DMC__ >= 0x840)\r
+#define BOOST_HAS_DIRENT_H\r
+#define BOOST_HAS_STDINT_H\r
+#define BOOST_HAS_WINTHREADS\r
+#endif\r
+\r
+#if (__DMC__ >= 0x847)\r
+#define BOOST_HAS_EXPM1\r
+#define BOOST_HAS_LOG1P\r
+#endif\r
+\r
+//\r
+// Is this really the best way to detect whether the std lib is in namespace std?\r
+//\r
+#include <cstddef>\r
+#if !defined(__STL_IMPORT_VENDOR_CSTD) && !defined(_STLP_IMPORT_VENDOR_CSTD)\r
+#  define BOOST_NO_STDC_NAMESPACE\r
+#endif\r
+\r
+\r
+// check for exception handling support:\r
+#ifndef _CPPUNWIND\r
+#  define BOOST_NO_EXCEPTIONS\r
+#endif\r
+\r
+//\r
+// C++0x features\r
+//\r
+#define BOOST_NO_CHAR16_T\r
+#define BOOST_NO_CHAR32_T\r
+#define BOOST_NO_CONSTEXPR\r
+#define BOOST_NO_DECLTYPE\r
+#define BOOST_NO_DEFAULTED_FUNCTIONS\r
+#define BOOST_NO_DELETED_FUNCTIONS\r
+#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS\r
+#define BOOST_NO_EXTERN_TEMPLATE\r
+#define BOOST_NO_RAW_LITERALS\r
+#define BOOST_NO_RVALUE_REFERENCES\r
+#define BOOST_NO_SCOPED_ENUMS\r
+#define BOOST_NO_STATIC_ASSERT\r
+#define BOOST_NO_UNICODE_LITERALS\r
+#define BOOST_NO_VARIADIC_TEMPLATES\r
+#define BOOST_NO_AUTO_DECLARATIONS\r
+#define BOOST_NO_AUTO_MULTIDECLARATIONS\r
+#if __DMC__ < 0x800\r
+#error "Compiler not supported or configured - please reconfigure"\r
+#endif\r
+//\r
+// last known and checked version is ...:\r
+#if (__DMC__ > 0x848)\r
+#  if defined(BOOST_ASSERT_CONFIG)\r
+#     error "Unknown compiler version - please run the configure tests and report the results"\r
+#  endif\r
+#endif\r
diff --git a/boost/boost/config/compiler/gcc_xml.hpp b/boost/boost/config/compiler/gcc_xml.hpp
new file mode 100644 (file)
index 0000000..76954a9
--- /dev/null
@@ -0,0 +1,30 @@
+//  (C) Copyright John Maddock 2006. \r
+//  Use, modification and distribution are subject to the \r
+//  Boost Software License, Version 1.0. (See accompanying file \r
+//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
+\r
+//  See http://www.boost.org for most recent version.\r
+\r
+//  GCC-XML C++ compiler setup:\r
+\r
+#  if !defined(__GCCXML_GNUC__) || ((__GCCXML_GNUC__ <= 3) && (__GCCXML_GNUC_MINOR__ <= 3))\r
+#     define BOOST_NO_IS_ABSTRACT\r
+#  endif\r
+\r
+//\r
+// Threading support: Turn this on unconditionally here (except for\r
+// those platforms where we can know for sure). It will get turned off again\r
+// later if no threading API is detected.\r
+//\r
+#if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(linux) && !defined(__linux) && !defined(__linux__)\r
+# define BOOST_HAS_THREADS\r
+#endif \r
+\r
+//\r
+// gcc has "long long"\r
+//\r
+#define BOOST_HAS_LONG_LONG\r
+\r
+#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__\r
+\r
+\r
diff --git a/boost/boost/config/compiler/pgi.hpp b/boost/boost/config/compiler/pgi.hpp
new file mode 100644 (file)
index 0000000..fe5f3d8
--- /dev/null
@@ -0,0 +1,56 @@
+//  (C) Copyright Noel Belcourt 2007.\r
+//  Use, modification and distribution are subject to the \r
+//  Boost Software License, Version 1.0. (See accompanying file \r
+//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
+\r
+//  See http://www.boost.org for most recent version.\r
+\r
+//  PGI C++ compiler setup:\r
+\r
+#define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__\r
+#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(_COMPILER_VERSION)\r
+\r
+//\r
+// Threading support:\r
+// Turn this on unconditionally here, it will get turned off again later\r
+// if no threading API is detected.\r
+//\r
+\r
+#if (__PGIC__ >= 7)\r
+\r
+#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL \r
+#define BOOST_NO_TWO_PHASE_NAME_LOOKUP\r
+#define BOOST_NO_SWPRINTF\r
+#define BOOST_NO_INITIALIZER_LISTS\r
+\r
+#else\r
+\r
+#  error "Pgi compiler not configured - please reconfigure"\r
+\r
+#endif\r
+//\r
+// C++0x features\r
+//\r
+//   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG\r
+//\r
+#define BOOST_NO_CHAR16_T\r
+#define BOOST_NO_CHAR32_T\r
+#define BOOST_NO_CONSTEXPR\r
+#define BOOST_NO_DECLTYPE\r
+#define BOOST_NO_DEFAULTED_FUNCTIONS\r
+#define BOOST_NO_DELETED_FUNCTIONS\r
+#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS\r
+#define BOOST_NO_EXTERN_TEMPLATE\r
+#define BOOST_NO_RAW_LITERALS\r
+#define BOOST_NO_RVALUE_REFERENCES\r
+#define BOOST_NO_SCOPED_ENUMS\r
+#define BOOST_NO_STATIC_ASSERT\r
+#define BOOST_NO_UNICODE_LITERALS\r
+#define BOOST_NO_VARIADIC_TEMPLATES\r
+#define BOOST_NO_AUTO_DECLARATIONS\r
+#define BOOST_NO_AUTO_MULTIDECLARATIONS\r
+\r
+//\r
+// version check:\r
+// probably nothing to do here?\r
+\r
diff --git a/boost/boost/config/no_tr1/cmath.hpp b/boost/boost/config/no_tr1/cmath.hpp
new file mode 100644 (file)
index 0000000..19ff526
--- /dev/null
@@ -0,0 +1,28 @@
+//  (C) Copyright John Maddock 2008.\r
+//  Use, modification and distribution are subject to the\r
+//  Boost Software License, Version 1.0. (See accompanying file\r
+//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+// The aim of this header is just to include <cmath> but to do\r
+// so in a way that does not result in recursive inclusion of\r
+// the Boost TR1 components if boost/tr1/tr1/cmath is in the\r
+// include search path.  We have to do this to avoid circular\r
+// dependencies:\r
+//\r
+\r
+#ifndef BOOST_CONFIG_CMATH\r
+#  define BOOST_CONFIG_CMATH\r
+\r
+#  ifndef BOOST_TR1_NO_RECURSION\r
+#     define BOOST_TR1_NO_RECURSION\r
+#     define BOOST_CONFIG_NO_CMATH_RECURSION\r
+#  endif\r
+\r
+#  include <cmath>\r
+\r
+#  ifdef BOOST_CONFIG_NO_CMATH_RECURSION\r
+#     undef BOOST_TR1_NO_RECURSION\r
+#     undef BOOST_CONFIG_NO_CMATH_RECURSION\r
+#  endif\r
+\r
+#endif\r
diff --git a/boost/boost/config/platform/qnxnto.hpp b/boost/boost/config/platform/qnxnto.hpp
new file mode 100644 (file)
index 0000000..102f27c
--- /dev/null
@@ -0,0 +1,31 @@
+//  (C) Copyright Jim Douglas 2005. \r
+//  Use, modification and distribution are subject to the \r
+//  Boost Software License, Version 1.0. (See accompanying file \r
+//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
+\r
+//  See http://www.boost.org for most recent version.\r
+\r
+//  QNX specific config options:\r
+\r
+#define BOOST_PLATFORM "QNX"\r
+\r
+#define BOOST_HAS_UNISTD_H\r
+#include <boost/config/posix_features.hpp>\r
+\r
+// QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h\r
+// or log1p and expm1:\r
+#undef  BOOST_HAS_NL_TYPES_H\r
+#undef  BOOST_HAS_LOG1P\r
+#undef  BOOST_HAS_EXPM1\r
+\r
+#define BOOST_HAS_PTHREADS\r
+#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE\r
+\r
+#define BOOST_HAS_GETTIMEOFDAY\r
+#define BOOST_HAS_CLOCK_GETTIME\r
+#define BOOST_HAS_NANOSLEEP\r
+\r
+\r
+\r
+\r
+\r
diff --git a/boost/boost/config/requires_threads.hpp b/boost/boost/config/requires_threads.hpp
new file mode 100644 (file)
index 0000000..b79723b
--- /dev/null
@@ -0,0 +1,92 @@
+//  (C) Copyright John Maddock 2003. \r
+//  Use, modification and distribution are subject to the \r
+//  Boost Software License, Version 1.0. (See accompanying file \r
+//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
+\r
+\r
+#ifndef BOOST_CONFIG_REQUIRES_THREADS_HPP\r
+#define BOOST_CONFIG_REQUIRES_THREADS_HPP\r
+\r
+#ifndef BOOST_CONFIG_HPP\r
+#  include <boost/config.hpp>\r
+#endif\r
+\r
+#if defined(BOOST_DISABLE_THREADS)\r
+\r
+//\r
+// special case to handle versions of gcc which don't currently support threads:\r
+//\r
+#if defined(__GNUC__) && ((__GNUC__ < 3) || (__GNUC_MINOR__ <= 3) || !defined(BOOST_STRICT_CONFIG))\r
+//\r
+// this is checked up to gcc 3.3:\r
+//\r
+#if defined(__sgi) || defined(__hpux)\r
+#  error "Multi-threaded programs are not supported by gcc on HPUX or Irix (last checked with gcc 3.3)"\r
+#endif\r
+\r
+#endif\r
+\r
+#  error "Threading support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS"\r
+\r
+#elif !defined(BOOST_HAS_THREADS)\r
+\r
+# if defined __COMO__\r
+//  Comeau C++\r
+#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_MT (Windows) or -D_REENTRANT (Unix)"\r
+\r
+#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)\r
+//  Intel\r
+#ifdef _WIN32\r
+#  error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd"\r
+#else\r
+#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -openmp"\r
+#endif\r
+\r
+# elif defined __GNUC__\r
+//  GNU C++:\r
+#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread (Linux), -pthreads (Solaris) or -mthreads (Mingw32)"\r
+\r
+#elif defined __sgi\r
+//  SGI MIPSpro C++\r
+#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_SGI_MP_SOURCE"\r
+\r
+#elif defined __DECCXX\r
+//  Compaq Tru64 Unix cxx\r
+#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread"\r
+\r
+#elif defined __BORLANDC__\r
+//  Borland\r
+#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -tWM"\r
+\r
+#elif defined  __MWERKS__\r
+//  Metrowerks CodeWarrior\r
+#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: either -runtime sm, -runtime smd, -runtime dm, or -runtime dmd"\r
+\r
+#elif defined  __SUNPRO_CC\r
+//  Sun Workshop Compiler C++\r
+#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt"\r
+\r
+#elif defined __HP_aCC\r
+//  HP aCC\r
+#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt"\r
+\r
+#elif defined(__IBMCPP__)\r
+//  IBM Visual Age\r
+#   error "Compiler threading support is not turned on. Please compile the code with the xlC_r compiler"\r
+\r
+#elif defined _MSC_VER\r
+//  Microsoft Visual C++\r
+//\r
+//  Must remain the last #elif since some other vendors (Metrowerks, for\r
+//  example) also #define _MSC_VER\r
+#  error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd"\r
+\r
+#else\r
+\r
+#  error "Compiler threading support is not turned on.  Please consult your compiler's documentation for the appropriate options to use"\r
+\r
+#endif // compilers\r
+\r
+#endif // BOOST_HAS_THREADS\r
+\r
+#endif // BOOST_CONFIG_REQUIRES_THREADS_HPP\r
diff --git a/boost/boost/config/warning_disable.hpp b/boost/boost/config/warning_disable.hpp
new file mode 100644 (file)
index 0000000..8fd46ff
--- /dev/null
@@ -0,0 +1,47 @@
+//  Copyright John Maddock 2008\r
+//  Use, modification, and distribution is subject to the Boost Software\r
+//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+//  This file exists to turn off some overly-pedantic warning emitted\r
+//  by certain compilers.  You should include this header only in:\r
+//\r
+//  * A test case, before any other headers, or,\r
+//  * A library source file before any other headers.\r
+//\r
+//  IT SHOULD NOT BE INCLUDED BY ANY BOOST HEADER.\r
+//\r
+//  YOU SHOULD NOT INCLUDE IT IF YOU CAN REASONABLY FIX THE WARNING.\r
+//\r
+//  The only warnings disabled here are those that are:\r
+//\r
+//  * Quite unreasonably pedantic.\r
+//  * Generally only emitted by a single compiler.\r
+//  * Can't easily be fixed: for example if the vendors own std lib \r
+//    code emits these warnings!\r
+//\r
+//  Note that THIS HEADER MUST NOT INCLUDE ANY OTHER HEADERS:\r
+//  not even std library ones!  Doing so may turn the warning\r
+//  off too late to be of any use.  For example the VC++ C4996\r
+//  warning can be omitted from <iosfwd> if that header is included\r
+//  before or by this one :-(\r
+//\r
+\r
+#ifndef BOOST_CONFIG_WARNING_DISABLE_HPP\r
+#define BOOST_CONFIG_WARNING_DISABLE_HPP\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1400) \r
+   // Error 'function': was declared deprecated\r
+   // http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx\r
+   // This error is emitted when you use some perfectly conforming\r
+   // std lib functions in a perfectly correct way, and also by\r
+   // some of Microsoft's own std lib code !\r
+#  pragma warning(disable:4996)\r
+#endif\r
+#if defined(__INTEL_COMPILER) || defined(__ICL)\r
+   // As above: gives warning when a "deprecated"\r
+   // std library function is encountered.\r
+#  pragma warning(disable:1786)\r
+#endif\r
+\r
+#endif // BOOST_CONFIG_WARNING_DISABLE_HPP\r
diff --git a/boost/boost/detail/container_fwd.hpp b/boost/boost/detail/container_fwd.hpp
new file mode 100644 (file)
index 0000000..67031b9
--- /dev/null
@@ -0,0 +1,99 @@
+\r
+// Copyright 2005-2008 Daniel James.\r
+// Distributed under the Boost Software License, Version 1.0. (See accompanying\r
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
+\r
+#if !defined(BOOST_DETAIL_CONTAINER_FWD_HPP)\r
+#define BOOST_DETAIL_CONTAINER_FWD_HPP\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+#include <boost/config.hpp>\r
+#include <boost/detail/workaround.hpp>\r
+\r
+#if BOOST_WORKAROUND(__GNUC__, < 3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)\r
+#define BOOST_HASH_CHAR_TRAITS string_char_traits\r
+#else\r
+#define BOOST_HASH_CHAR_TRAITS char_traits\r
+#endif\r
+\r
+#if ((defined(__GLIBCPP__) || defined(__GLIBCXX__)) && defined(_GLIBCXX_DEBUG)) \\r
+    || BOOST_WORKAROUND(__BORLANDC__, > 0x551) \\r
+    || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x842)) \\r
+    || (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION))\r
+\r
+#include <deque>\r
+#include <list>\r
+#include <vector>\r
+#include <map>\r
+#include <set>\r
+#include <bitset>\r
+#include <string>\r
+#include <complex>\r
+\r
+#else\r
+\r
+#include <cstddef>\r
+\r
+#if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) && \\r
+        defined(__STL_CONFIG_H)\r
+\r
+#define BOOST_CONTAINER_FWD_BAD_BITSET\r
+\r
+#if !defined(__STL_NON_TYPE_TMPL_PARAM_BUG)\r
+#define BOOST_CONTAINER_FWD_BAD_DEQUE\r
+#endif\r
+\r
+#endif\r
+\r
+#if defined(BOOST_CONTAINER_FWD_BAD_DEQUE)\r
+#include <deque>\r
+#endif\r
+\r
+#if defined(BOOST_CONTAINER_FWD_BAD_BITSET)\r
+#include <bitset>\r
+#endif\r
+\r
+#if defined(BOOST_MSVC)\r
+#pragma warning(push)\r
+#pragma warning(disable:4099) // struct/class mismatch in fwd declarations\r
+#endif\r
+\r
+namespace std\r
+{\r
+    template <class T> class allocator;\r
+    template <class charT, class traits, class Allocator> class basic_string;\r
+    template <class charT> struct BOOST_HASH_CHAR_TRAITS;\r
+    template <class T> class complex;\r
+}\r
+\r
+// gcc 3.4 and greater\r
+namespace std\r
+{\r
+#if !defined(BOOST_CONTAINER_FWD_BAD_DEQUE)\r
+    template <class T, class Allocator> class deque;\r
+#endif\r
+\r
+    template <class T, class Allocator> class list;\r
+    template <class T, class Allocator> class vector;\r
+    template <class Key, class T, class Compare, class Allocator> class map;\r
+    template <class Key, class T, class Compare, class Allocator>\r
+    class multimap;\r
+    template <class Key, class Compare, class Allocator> class set;\r
+    template <class Key, class Compare, class Allocator> class multiset;\r
+\r
+#if !defined(BOOST_CONTAINER_FWD_BAD_BITSET)\r
+    template <size_t N> class bitset;\r
+#endif\r
+    template <class T1, class T2> struct pair;\r
+}\r
+\r
+#if defined(BOOST_MSVC)\r
+#pragma warning(pop)\r
+#endif\r
+\r
+#endif\r
+\r
+#endif\r
diff --git a/boost/boost/exception/current_exception_cast.hpp b/boost/boost/exception/current_exception_cast.hpp
new file mode 100644 (file)
index 0000000..61f2b7a
--- /dev/null
@@ -0,0 +1,34 @@
+//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.\r
+\r
+//Distributed under the Boost Software License, Version 1.0. (See accompanying\r
+//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
+\r
+#ifndef UUID_7E83C166200811DE885E826156D89593\r
+#define UUID_7E83C166200811DE885E826156D89593\r
+\r
+namespace\r
+boost\r
+    {\r
+    template <class E>\r
+    inline\r
+    E *\r
+    current_exception_cast()\r
+        {\r
+        try\r
+            {\r
+            throw;\r
+            }\r
+        catch(\r
+        E & e )\r
+            {\r
+            return &e;\r
+            }\r
+        catch(\r
+        ...)\r
+            {\r
+            return 0;\r
+            }\r
+        }\r
+    }\r
+\r
+#endif\r
diff --git a/boost/boost/exception/detail/error_info_impl.hpp b/boost/boost/exception/detail/error_info_impl.hpp
new file mode 100644 (file)
index 0000000..ee5a8cb
--- /dev/null
@@ -0,0 +1,61 @@
+//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.\r
+\r
+//Distributed under the Boost Software License, Version 1.0. (See accompanying\r
+//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
+\r
+#ifndef UUID_CE6983AC753411DDA764247956D89593\r
+#define UUID_CE6983AC753411DDA764247956D89593\r
+\r
+#include <string>\r
+\r
+namespace\r
+boost\r
+    {\r
+    namespace\r
+    exception_detail\r
+        {\r
+        class\r
+        error_info_base\r
+            {\r
+            public:\r
+\r
+            virtual char const * tag_typeid_name() const = 0;\r
+            virtual std::string value_as_string() const = 0;\r
+\r
+            protected:\r
+\r
+            virtual\r
+            ~error_info_base() throw()\r
+                {\r
+                }\r
+            };\r
+        }\r
+\r
+    template <class Tag,class T>\r
+    class\r
+    error_info:\r
+        public exception_detail::error_info_base\r
+        {\r
+        public:\r
+\r
+        typedef T value_type;\r
+\r
+        error_info( value_type const & value );\r
+        ~error_info() throw();\r
+\r
+        value_type const &\r
+        value() const\r
+            {\r
+            return value_;\r
+            }\r
+\r
+        private:\r
+\r
+        char const * tag_typeid_name() const;\r
+        std::string value_as_string() const;\r
+\r
+        value_type const value_;\r
+        };\r
+    }\r
+\r
+#endif\r
diff --git a/boost/boost/exception/detail/type_info.hpp b/boost/boost/exception/detail/type_info.hpp
new file mode 100644 (file)
index 0000000..369470e
--- /dev/null
@@ -0,0 +1,130 @@
+//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.\r
+\r
+//Distributed under the Boost Software License, Version 1.0. (See accompanying\r
+//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
+\r
+#ifndef UUID_C3E1741C754311DDB2834CCA55D89593\r
+#define UUID_C3E1741C754311DDB2834CCA55D89593\r
+\r
+#include <boost/detail/sp_typeinfo.hpp>\r
+#include <boost/current_function.hpp>\r
+\r
+namespace\r
+boost\r
+    {\r
+    template <class T>\r
+    inline\r
+    char const *\r
+    tag_type_name()\r
+        {\r
+#ifdef BOOST_NO_TYPEID\r
+        return BOOST_CURRENT_FUNCTION;\r
+#else\r
+        return typeid(T*).name();\r
+#endif\r
+        }\r
+\r
+    template <class T>\r
+    inline\r
+    char const *\r
+    type_name()\r
+        {\r
+#ifdef BOOST_NO_TYPEID\r
+        return BOOST_CURRENT_FUNCTION;\r
+#else\r
+        return typeid(T).name();\r
+#endif\r
+        }\r
+\r
+    namespace\r
+    exception_detail\r
+        {\r
+#ifdef BOOST_NO_TYPEID\r
+        struct\r
+        type_info_\r
+            {\r
+            detail::sp_typeinfo type_;\r
+            char const * name_;\r
+\r
+            explicit\r
+            type_info_( detail::sp_typeinfo type, char const * name ):\r
+                type_(type),\r
+                name_(name)\r
+                {\r
+                }\r
+\r
+            friend\r
+            bool\r
+            operator==( type_info_ const & a, type_info_ const & b )\r
+                {\r
+                return a.type_==b.type_;\r
+                }\r
+\r
+            friend\r
+            bool\r
+            operator<( type_info_ const & a, type_info_ const & b )\r
+                {\r
+                return a.type_<b.type_;\r
+                }\r
+\r
+            char const *\r
+            name() const\r
+                {\r
+                return name_;\r
+                }\r
+            };\r
+#else\r
+        struct\r
+        type_info_\r
+            {\r
+            detail::sp_typeinfo const * type_;\r
+\r
+            explicit\r
+            type_info_( detail::sp_typeinfo const & type ):\r
+                type_(&type)\r
+                {\r
+                }\r
+\r
+            type_info_( detail::sp_typeinfo const & type, char const * ):\r
+                type_(&type)\r
+                {\r
+                }\r
+\r
+            friend\r
+            bool\r
+            operator==( type_info_ const & a, type_info_ const & b )\r
+                {\r
+                return (*a.type_)==(*b.type_);\r
+                }\r
+\r
+            friend\r
+            bool\r
+            operator<( type_info_ const & a, type_info_ const & b )\r
+                {\r
+                return 0!=(a.type_->before(*b.type_));\r
+                }\r
+\r
+            char const *\r
+            name() const\r
+                {\r
+                return type_->name();\r
+                }\r
+            };\r
+#endif\r
+\r
+        inline\r
+        bool\r
+        operator!=( type_info_ const & a, type_info_ const & b )\r
+            {\r
+            return !(a==b);\r
+            }\r
+        }\r
+    }\r
+\r
+#define BOOST_EXCEPTION_STATIC_TYPEID(T) ::boost::exception_detail::type_info_(BOOST_SP_TYPEID(T),::boost::tag_type_name<T>())\r
+\r
+#ifndef BOOST_NO_RTTI\r
+#define BOOST_EXCEPTION_DYNAMIC_TYPEID(x) ::boost::exception_detail::type_info_(typeid(x))\r
+#endif\r
+\r
+#endif\r
diff --git a/boost/boost/exception/get_error_info.hpp b/boost/boost/exception/get_error_info.hpp
new file mode 100644 (file)
index 0000000..8efc834
--- /dev/null
@@ -0,0 +1,100 @@
+//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.\r
+\r
+//Distributed under the Boost Software License, Version 1.0. (See accompanying\r
+//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
+\r
+#ifndef UUID_1A590226753311DD9E4CCF6156D89593\r
+#define UUID_1A590226753311DD9E4CCF6156D89593\r
+\r
+#include <boost/exception/exception.hpp>\r
+#include <boost/exception/detail/error_info_impl.hpp>\r
+#include <boost/exception/detail/type_info.hpp>\r
+#include <boost/shared_ptr.hpp>\r
+\r
+namespace\r
+boost\r
+    {\r
+    namespace\r
+    exception_detail\r
+        {\r
+        template <class ErrorInfo>\r
+        struct\r
+        get_info\r
+            {\r
+            static\r
+            typename ErrorInfo::value_type const *\r
+            get( exception const & x )\r
+                {\r
+                if( exception_detail::error_info_container * c=x.data_.get() )\r
+                    if( shared_ptr<exception_detail::error_info_base const> eib = c->get(BOOST_EXCEPTION_STATIC_TYPEID(ErrorInfo)) )\r
+                        {\r
+#ifndef BOOST_NO_RTTI\r
+                        BOOST_ASSERT( 0!=dynamic_cast<ErrorInfo const *>(eib.get()) );\r
+#endif\r
+                        ErrorInfo const * w = static_cast<ErrorInfo const *>(eib.get());\r
+                        return &w->value();\r
+                        }\r
+                return 0;\r
+                }\r
+            };\r
+\r
+        template <>\r
+        struct\r
+        get_info<throw_function>\r
+            {\r
+            static\r
+            char const * const *\r
+            get( exception const & x )\r
+                {\r
+                return x.throw_function_ ? &x.throw_function_ : 0;\r
+                }\r
+            };\r
+\r
+        template <>\r
+        struct\r
+        get_info<throw_file>\r
+            {\r
+            static\r
+            char const * const *\r
+            get( exception const & x )\r
+                {\r
+                return x.throw_file_ ? &x.throw_file_ : 0;\r
+                }\r
+            };\r
+\r
+        template <>\r
+        struct\r
+        get_info<throw_line>\r
+            {\r
+            static\r
+            int const *\r
+            get( exception const & x )\r
+                {\r
+                return x.throw_line_!=-1 ? &x.throw_line_ : 0;\r
+                }\r
+            };\r
+        }\r
+\r
+#ifdef BOOST_NO_RTTI\r
+    template <class ErrorInfo>\r
+    inline\r
+    typename ErrorInfo::value_type const *\r
+    get_error_info( boost::exception const & x )\r
+        {\r
+        return exception_detail::get_info<ErrorInfo>::get(x);\r
+        }\r
+#else\r
+    template <class ErrorInfo,class E>\r
+    inline\r
+    typename ErrorInfo::value_type const *\r
+    get_error_info( E const & some_exception )\r
+        {\r
+        if( exception const * x = dynamic_cast<exception const *>(&some_exception) )\r
+            return exception_detail::get_info<ErrorInfo>::get(*x);\r
+        else\r
+            return 0;\r
+        }\r
+#endif\r
+    }\r
+\r
+#endif\r
diff --git a/boost/boost/function/function_fwd.hpp b/boost/boost/function/function_fwd.hpp
new file mode 100644 (file)
index 0000000..0879263
--- /dev/null
@@ -0,0 +1,70 @@
+// Boost.Function library\r
+//  Copyright (C) Douglas Gregor 2008\r
+//\r
+//  Use, modification and distribution is subject to the Boost\r
+//  Software License, Version 1.0.  (See accompanying file\r
+//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+// For more information, see http://www.boost.org\r
+#ifndef BOOST_FUNCTION_FWD_HPP\r
+#define BOOST_FUNCTION_FWD_HPP\r
+#include <boost/config.hpp>\r
+\r
+#if defined(__sgi) && defined(_COMPILER_VERSION) && _COMPILER_VERSION <= 730 && !defined(BOOST_STRICT_CONFIG)\r
+// Work around a compiler bug.\r
+// boost::python::objects::function has to be seen by the compiler before the\r
+// boost::function class template.\r
+namespace boost { namespace python { namespace objects {\r
+  class function;\r
+}}}\r
+#endif\r
+\r
+#if defined (BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)                    \\r
+ || defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG)                         \\r
+ || !(BOOST_STRICT_CONFIG || !defined(__SUNPRO_CC) || __SUNPRO_CC > 0x540)\r
+#  define BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX\r
+#endif\r
+\r
+namespace boost {\r
+  class bad_function_call;\r
+\r
+#if !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX)\r
+  // Preferred syntax\r
+  template<typename Signature> class function;\r
+\r
+  template<typename Signature>\r
+  inline void swap(function<Signature>& f1, function<Signature>& f2)\r
+  {\r
+    f1.swap(f2);\r
+  }\r
+#endif // have partial specialization\r
+\r
+  // Portable syntax\r
+  template<typename R> class function0;\r
+  template<typename R, typename T1> class function1;\r
+  template<typename R, typename T1, typename T2> class function2;\r
+  template<typename R, typename T1, typename T2, typename T3> class function3;\r
+  template<typename R, typename T1, typename T2, typename T3, typename T4> \r
+    class function4;\r
+  template<typename R, typename T1, typename T2, typename T3, typename T4,\r
+           typename T5> \r
+    class function5;\r
+  template<typename R, typename T1, typename T2, typename T3, typename T4,\r
+           typename T5, typename T6> \r
+    class function6;\r
+  template<typename R, typename T1, typename T2, typename T3, typename T4,\r
+           typename T5, typename T6, typename T7> \r
+    class function7;\r
+  template<typename R, typename T1, typename T2, typename T3, typename T4,\r
+           typename T5, typename T6, typename T7, typename T8> \r
+    class function8;\r
+  template<typename R, typename T1, typename T2, typename T3, typename T4,\r
+           typename T5, typename T6, typename T7, typename T8, typename T9> \r
+    class function9;\r
+  template<typename R, typename T1, typename T2, typename T3, typename T4,\r
+           typename T5, typename T6, typename T7, typename T8, typename T9,\r
+           typename T10> \r
+    class function10;\r
+}\r
+\r
+#endif\r
diff --git a/boost/boost/function/function_typeof.hpp b/boost/boost/function/function_typeof.hpp
new file mode 100644 (file)
index 0000000..b2c1255
--- /dev/null
@@ -0,0 +1,45 @@
+// Boost.Function library - Typeof support\r
+//  Copyright (C) Douglas Gregor 2008\r
+//\r
+//  Use, modification and distribution is subject to the Boost\r
+//  Software License, Version 1.0.  (See accompanying file\r
+//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+// For more information, see http://www.boost.org\r
+#ifndef BOOST_FUNCTION_TYPEOF_HPP\r
+#define BOOST_FUNCTION_TYPEOF_HPP\r
+#include <boost/function/function_fwd.hpp>\r
+#include <boost/typeof/typeof.hpp>\r
+\r
+#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()\r
+\r
+BOOST_TYPEOF_REGISTER_TYPE(boost::bad_function_call)\r
+\r
+#if !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX)\r
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function, (typename))\r
+#endif\r
+\r
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function0, (typename))\r
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function1, (typename)(typename))\r
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function2, (typename)(typename)(typename))\r
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function3, \r
+  (typename)(typename)(typename)(typename))\r
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function4, \r
+  (typename)(typename)(typename)(typename)(typename))\r
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function5, \r
+  (typename)(typename)(typename)(typename)(typename)(typename))\r
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function6, \r
+  (typename)(typename)(typename)(typename)(typename)(typename)(typename))\r
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function7, \r
+  (typename)(typename)(typename)(typename)(typename)(typename)(typename)\r
+  (typename))\r
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function8, \r
+  (typename)(typename)(typename)(typename)(typename)(typename)(typename)\r
+  (typename)(typename))\r
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function9, \r
+  (typename)(typename)(typename)(typename)(typename)(typename)(typename)\r
+  (typename)(typename)(typename))\r
+BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function10, \r
+  (typename)(typename)(typename)(typename)(typename)(typename)(typename)\r
+  (typename)(typename)(typename)(typename))\r
+#endif\r
diff --git a/boost/boost/iterator/counting_iterator.hpp b/boost/boost/iterator/counting_iterator.hpp
new file mode 100644 (file)
index 0000000..09fc5a7
--- /dev/null
@@ -0,0 +1,215 @@
+// Copyright David Abrahams 2003.\r
+// Distributed under the Boost Software License, Version 1.0. (See\r
+// accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+#ifndef COUNTING_ITERATOR_DWA200348_HPP\r
+# define COUNTING_ITERATOR_DWA200348_HPP\r
+\r
+# include <boost/iterator/iterator_adaptor.hpp>\r
+# include <boost/detail/numeric_traits.hpp>\r
+# include <boost/mpl/bool.hpp>\r
+# include <boost/mpl/if.hpp>\r
+# include <boost/mpl/identity.hpp>\r
+# include <boost/mpl/eval_if.hpp>\r
+\r
+namespace boost {\r
+\r
+template <\r
+    class Incrementable\r
+  , class CategoryOrTraversal\r
+  , class Difference\r
+>\r
+class counting_iterator;\r
+\r
+namespace detail\r
+{\r
+  // Try to detect numeric types at compile time in ways compatible\r
+  // with the limitations of the compiler and library.\r
+  template <class T>\r
+  struct is_numeric_impl\r
+  {\r
+      // For a while, this wasn't true, but we rely on it below. This is a regression assert.\r
+      BOOST_STATIC_ASSERT(::boost::is_integral<char>::value);\r
+      \r
+# ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS\r
+      \r
+      BOOST_STATIC_CONSTANT(bool, value = std::numeric_limits<T>::is_specialized);\r
+      \r
+# else\r
+      \r
+#  if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))\r
+      BOOST_STATIC_CONSTANT(\r
+          bool, value = (\r
+              boost::is_convertible<int,T>::value\r
+           && boost::is_convertible<T,int>::value\r
+      ));\r
+#  else\r
+    BOOST_STATIC_CONSTANT(bool, value = ::boost::is_arithmetic<T>::value);\r
+#  endif\r
+      \r
+# endif\r
+  };\r
+\r
+  template <class T>\r
+  struct is_numeric\r
+    : mpl::bool_<(::boost::detail::is_numeric_impl<T>::value)>\r
+  {};\r
+\r
+#  if defined(BOOST_HAS_LONG_LONG)\r
+  template <>\r
+  struct is_numeric< ::boost::long_long_type>\r
+    : mpl::true_ {};\r
+  \r
+  template <>\r
+  struct is_numeric< ::boost::ulong_long_type>\r
+    : mpl::true_ {};\r
+#  endif\r
+\r
+  // Some compilers fail to have a numeric_limits specialization\r
+  template <>\r
+  struct is_numeric<wchar_t>\r
+    : mpl::true_ {};\r
+  \r
+  template <class T>\r
+  struct numeric_difference\r
+  {\r
+      typedef typename boost::detail::numeric_traits<T>::difference_type type;\r
+  };\r
+\r
+  BOOST_STATIC_ASSERT(is_numeric<int>::value);\r
+  \r
+  template <class Incrementable, class CategoryOrTraversal, class Difference>\r
+  struct counting_iterator_base\r
+  {\r
+      typedef typename detail::ia_dflt_help<\r
+          CategoryOrTraversal\r
+        , mpl::eval_if<\r
+              is_numeric<Incrementable>\r
+            , mpl::identity<random_access_traversal_tag>\r
+            , iterator_traversal<Incrementable>\r
+          >\r
+      >::type traversal;\r
+      \r
+      typedef typename detail::ia_dflt_help<\r
+          Difference\r
+        , mpl::eval_if<\r
+              is_numeric<Incrementable>\r
+            , numeric_difference<Incrementable>\r
+            , iterator_difference<Incrementable>\r
+          >\r
+      >::type difference;\r
+      \r
+      typedef iterator_adaptor<\r
+          counting_iterator<Incrementable, CategoryOrTraversal, Difference> // self\r
+        , Incrementable                                           // Base\r
+        , Incrementable                                           // Value\r
+# ifndef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY\r
+          const  // MSVC won't strip this.  Instead we enable Thomas'\r
+                 // criterion (see boost/iterator/detail/facade_iterator_category.hpp)\r
+# endif \r
+        , traversal\r
+        , Incrementable const&                                    // reference\r
+        , difference\r
+      > type;\r
+  };\r
+\r
+  // Template class distance_policy_select -- choose a policy for computing the\r
+  // distance between counting_iterators at compile-time based on whether or not\r
+  // the iterator wraps an integer or an iterator, using "poor man's partial\r
+  // specialization".\r
+\r
+  template <bool is_integer> struct distance_policy_select;\r
+\r
+  // A policy for wrapped iterators\r
+  template <class Difference, class Incrementable1, class Incrementable2>\r
+  struct iterator_distance\r
+  {\r
+      static Difference distance(Incrementable1 x, Incrementable2 y)\r
+      {\r
+          return y - x;\r
+      }\r
+  };\r
+\r
+  // A policy for wrapped numbers\r
+  template <class Difference, class Incrementable1, class Incrementable2>\r
+  struct number_distance\r
+  {\r
+      static Difference distance(Incrementable1 x, Incrementable2 y)\r
+      {\r
+          return numeric_distance(x, y);\r
+      }\r
+  };\r
+}\r
+\r
+template <\r
+    class Incrementable\r
+  , class CategoryOrTraversal = use_default\r
+  , class Difference = use_default\r
+>\r
+class counting_iterator\r
+  : public detail::counting_iterator_base<\r
+        Incrementable, CategoryOrTraversal, Difference\r
+    >::type\r
+{\r
+    typedef typename detail::counting_iterator_base<\r
+        Incrementable, CategoryOrTraversal, Difference\r
+    >::type super_t;\r
+    \r
+    friend class iterator_core_access;\r
+\r
+ public:\r
+    typedef typename super_t::difference_type difference_type;\r
+\r
+    counting_iterator() { }\r
+    \r
+    counting_iterator(counting_iterator const& rhs) : super_t(rhs.base()) {}\r
+\r
+    counting_iterator(Incrementable x)\r
+      : super_t(x)\r
+    {\r
+    }\r
+\r
+# if 0\r
+    template<class OtherIncrementable>\r
+    counting_iterator(\r
+        counting_iterator<OtherIncrementable, CategoryOrTraversal, Difference> const& t\r
+      , typename enable_if_convertible<OtherIncrementable, Incrementable>::type* = 0\r
+    )\r
+      : super_t(t.base())\r
+    {}\r
+# endif \r
+\r
+ private:\r
+    \r
+    typename super_t::reference dereference() const\r
+    {\r
+        return this->base_reference();\r
+    }\r
+\r
+    template <class OtherIncrementable>\r
+    difference_type\r
+    distance_to(counting_iterator<OtherIncrementable, CategoryOrTraversal, Difference> const& y) const\r
+    {\r
+      typedef typename mpl::if_<\r
+          detail::is_numeric<Incrementable>\r
+        , detail::number_distance<difference_type, Incrementable, OtherIncrementable>\r
+        , detail::iterator_distance<difference_type, Incrementable, OtherIncrementable>\r
+      >::type d;\r
+\r
+      return d::distance(this->base(), y.base());\r
+    }\r
+};\r
+\r
+// Manufacture a counting iterator for an arbitrary incrementable type\r
+template <class Incrementable>\r
+inline counting_iterator<Incrementable>\r
+make_counting_iterator(Incrementable x)\r
+{\r
+  typedef counting_iterator<Incrementable> result_t;\r
+  return result_t(x);\r
+}\r
+\r
+\r
+} // namespace boost::iterator\r
+\r
+#endif // COUNTING_ITERATOR_DWA200348_HPP\r
diff --git a/boost/boost/iterator/detail/any_conversion_eater.hpp b/boost/boost/iterator/detail/any_conversion_eater.hpp
new file mode 100644 (file)
index 0000000..ce9e043
--- /dev/null
@@ -0,0 +1,19 @@
+// Copyright David Abrahams 2003. Use, modification and distribution is\r
+// subject to the Boost Software License, Version 1.0. (See accompanying\r
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
+#ifndef ANY_CONVERSION_EATER_DWA20031117_HPP\r
+# define ANY_CONVERSION_EATER_DWA20031117_HPP\r
+\r
+namespace boost { namespace detail {\r
+\r
+// This type can be used in traits to "eat" up the one user-defined\r
+// implicit conversion allowed.\r
+struct any_conversion_eater\r
+{\r
+    template <class T>\r
+    any_conversion_eater(T const&);\r
+};\r
+\r
+}} // namespace boost::detail\r
+\r
+#endif // ANY_CONVERSION_EATER_DWA20031117_HPP\r
diff --git a/boost/boost/iterator/is_lvalue_iterator.hpp b/boost/boost/iterator/is_lvalue_iterator.hpp
new file mode 100644 (file)
index 0000000..1db6ee4
--- /dev/null
@@ -0,0 +1,150 @@
+// Copyright David Abrahams 2003. Use, modification and distribution is\r
+// subject to the Boost Software License, Version 1.0. (See accompanying\r
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
+#ifndef IS_LVALUE_ITERATOR_DWA2003112_HPP\r
+# define IS_LVALUE_ITERATOR_DWA2003112_HPP\r
+\r
+#include <boost/iterator.hpp>\r
+\r
+#include <boost/detail/workaround.hpp>\r
+#include <boost/detail/iterator.hpp>\r
+\r
+#include <boost/iterator/detail/any_conversion_eater.hpp>\r
+\r
+// should be the last #includes\r
+#include <boost/type_traits/detail/bool_trait_def.hpp>\r
+#include <boost/iterator/detail/config_def.hpp>\r
+\r
+#ifndef BOOST_NO_IS_CONVERTIBLE\r
+\r
+namespace boost {\r
\r
+namespace detail\r
+{\r
+#ifndef BOOST_NO_LVALUE_RETURN_DETECTION\r
+  // Calling lvalue_preserver( <expression>, 0 ) returns a reference\r
+  // to the expression's result if <expression> is an lvalue, or\r
+  // not_an_lvalue() otherwise.\r
+  struct not_an_lvalue {};\r
+  \r
+  template <class T>\r
+  T& lvalue_preserver(T&, int);\r
+  \r
+  template <class U>\r
+  not_an_lvalue lvalue_preserver(U const&, ...);\r
+  \r
+# define BOOST_LVALUE_PRESERVER(expr) detail::lvalue_preserver(expr,0)\r
+  \r
+#else\r
+  \r
+# define BOOST_LVALUE_PRESERVER(expr) expr\r
+  \r
+#endif \r
+\r
+  // Guts of is_lvalue_iterator.  Value is the iterator's value_type\r
+  // and the result is computed in the nested rebind template.\r
+  template <class Value>\r
+  struct is_lvalue_iterator_impl\r
+  {\r
+      // Eat implicit conversions so we don't report true for things\r
+      // convertible to Value const&\r
+      struct conversion_eater\r
+      {\r
+          conversion_eater(Value&);\r
+      };\r
+\r
+      static char tester(conversion_eater, int);\r
+      static char (& tester(any_conversion_eater, ...) )[2];\r
+    \r
+      template <class It>\r
+      struct rebind\r
+      {\r
+          static It& x;\r
+          \r
+          BOOST_STATIC_CONSTANT(\r
+              bool\r
+            , value = (\r
+                sizeof(\r
+                    is_lvalue_iterator_impl<Value>::tester(\r
+                        BOOST_LVALUE_PRESERVER(*x), 0\r
+                    )\r
+                ) == 1\r
+            )\r
+          );\r
+      };\r
+  };\r
+\r
+#undef BOOST_LVALUE_PRESERVER\r
+  \r
+  //\r
+  // void specializations to handle std input and output iterators\r
+  //\r
+  template <>\r
+  struct is_lvalue_iterator_impl<void>\r
+  {\r
+      template <class It>\r
+      struct rebind : boost::mpl::false_\r
+      {};\r
+  };\r
+\r
+#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS\r
+  template <>\r
+  struct is_lvalue_iterator_impl<const void>\r
+  {\r
+      template <class It>\r
+      struct rebind : boost::mpl::false_\r
+      {};\r
+  };\r
+\r
+  template <>\r
+  struct is_lvalue_iterator_impl<volatile void>\r
+  {\r
+      template <class It>\r
+      struct rebind : boost::mpl::false_\r
+      {};\r
+  };\r
+\r
+  template <>\r
+  struct is_lvalue_iterator_impl<const volatile void>\r
+  {\r
+      template <class It>\r
+      struct rebind : boost::mpl::false_\r
+      {};\r
+  };\r
+#endif\r
+\r
+  //\r
+  // This level of dispatching is required for Borland.  We might save\r
+  // an instantiation by removing it for others.\r
+  //\r
+  template <class It>\r
+  struct is_readable_lvalue_iterator_impl\r
+    : is_lvalue_iterator_impl<\r
+          BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<It>::value_type const\r
+      >::template rebind<It>\r
+  {};\r
+\r
+  template <class It>\r
+  struct is_non_const_lvalue_iterator_impl\r
+    : is_lvalue_iterator_impl<\r
+          BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<It>::value_type\r
+      >::template rebind<It>\r
+  {};\r
+} // namespace detail\r
+\r
+// Define the trait with full mpl lambda capability and various broken\r
+// compiler workarounds\r
+BOOST_TT_AUX_BOOL_TRAIT_DEF1(\r
+    is_lvalue_iterator,T,::boost::detail::is_readable_lvalue_iterator_impl<T>::value)\r
+    \r
+BOOST_TT_AUX_BOOL_TRAIT_DEF1(\r
+    is_non_const_lvalue_iterator,T,::boost::detail::is_non_const_lvalue_iterator_impl<T>::value)\r
+    \r
+} // namespace boost\r
+\r
+#endif\r
+\r
+#include <boost/iterator/detail/config_undef.hpp>\r
+#include <boost/type_traits/detail/bool_trait_undef.hpp>\r
+\r
+#endif // IS_LVALUE_ITERATOR_DWA2003112_HPP\r
diff --git a/boost/boost/iterator/is_readable_iterator.hpp b/boost/boost/iterator/is_readable_iterator.hpp
new file mode 100644 (file)
index 0000000..036585e
--- /dev/null
@@ -0,0 +1,108 @@
+// Copyright David Abrahams 2003. Use, modification and distribution is\r
+// subject to the Boost Software License, Version 1.0. (See accompanying\r
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
+#ifndef IS_READABLE_ITERATOR_DWA2003112_HPP\r
+# define IS_READABLE_ITERATOR_DWA2003112_HPP\r
+\r
+#include <boost/mpl/bool.hpp>\r
+#include <boost/detail/iterator.hpp>\r
+\r
+#include <boost/type_traits/detail/bool_trait_def.hpp>\r
+#include <boost/iterator/detail/any_conversion_eater.hpp>\r
+\r
+// should be the last #include\r
+#include <boost/iterator/detail/config_def.hpp>\r
+\r
+#ifndef BOOST_NO_IS_CONVERTIBLE\r
+\r
+namespace boost {\r
\r
+namespace detail\r
+{\r
+  // Guts of is_readable_iterator.  Value is the iterator's value_type\r
+  // and the result is computed in the nested rebind template.\r
+  template <class Value>\r
+  struct is_readable_iterator_impl\r
+  {\r
+      static char tester(Value&, int);\r
+      static char (& tester(any_conversion_eater, ...) )[2];\r
+    \r
+      template <class It>\r
+      struct rebind\r
+      {\r
+          static It& x;\r
+          \r
+          BOOST_STATIC_CONSTANT(\r
+              bool\r
+            , value = (\r
+                sizeof(\r
+                    is_readable_iterator_impl<Value>::tester(*x, 1)\r
+                ) == 1\r
+            )\r
+          );\r
+      };\r
+  };\r
+\r
+#undef BOOST_READABLE_PRESERVER\r
+  \r
+  //\r
+  // void specializations to handle std input and output iterators\r
+  //\r
+  template <>\r
+  struct is_readable_iterator_impl<void>\r
+  {\r
+      template <class It>\r
+      struct rebind : boost::mpl::false_\r
+      {};\r
+  };\r
+\r
+#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS\r
+  template <>\r
+  struct is_readable_iterator_impl<const void>\r
+  {\r
+      template <class It>\r
+      struct rebind : boost::mpl::false_\r
+      {};\r
+  };\r
+\r
+  template <>\r
+  struct is_readable_iterator_impl<volatile void>\r
+  {\r
+      template <class It>\r
+      struct rebind : boost::mpl::false_\r
+      {};\r
+  };\r
+\r
+  template <>\r
+  struct is_readable_iterator_impl<const volatile void>\r
+  {\r
+      template <class It>\r
+      struct rebind : boost::mpl::false_\r
+      {};\r
+  };\r
+#endif\r
+\r
+  //\r
+  // This level of dispatching is required for Borland.  We might save\r
+  // an instantiation by removing it for others.\r
+  //\r
+  template <class It>\r
+  struct is_readable_iterator_impl2\r
+    : is_readable_iterator_impl<\r
+          BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<It>::value_type const\r
+      >::template rebind<It>\r
+  {};\r
+} // namespace detail\r
+\r
+// Define the trait with full mpl lambda capability and various broken\r
+// compiler workarounds\r
+BOOST_TT_AUX_BOOL_TRAIT_DEF1(\r
+    is_readable_iterator,T,::boost::detail::is_readable_iterator_impl2<T>::value)\r
+    \r
+} // namespace boost\r
+\r
+#endif\r
+\r
+#include <boost/iterator/detail/config_undef.hpp>\r
+\r
+#endif // IS_READABLE_ITERATOR_DWA2003112_HPP\r
diff --git a/boost/boost/iterator/iterator_archetypes.hpp b/boost/boost/iterator/iterator_archetypes.hpp
new file mode 100644 (file)
index 0000000..74b250b
--- /dev/null
@@ -0,0 +1,515 @@
+// (C) Copyright Jeremy Siek 2002.\r
+// Distributed under the Boost Software License, Version 1.0. (See\r
+// accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+\r
+#ifndef BOOST_ITERATOR_ARCHETYPES_HPP\r
+#define BOOST_ITERATOR_ARCHETYPES_HPP\r
+\r
+#include <boost/iterator/iterator_categories.hpp>\r
+#include <boost/operators.hpp>\r
+#include <boost/static_assert.hpp>\r
+#include <boost/iterator.hpp>\r
+\r
+#include <boost/iterator/detail/facade_iterator_category.hpp>\r
+\r
+#include <boost/type_traits/is_const.hpp>\r
+#include <boost/type_traits/add_const.hpp>\r
+#include <boost/type_traits/remove_const.hpp>\r
+#include <boost/type_traits/remove_cv.hpp>\r
+\r
+#include <boost/concept_archetype.hpp>\r
+\r
+#include <boost/mpl/aux_/msvc_eti_base.hpp>\r
+#include <boost/mpl/bitand.hpp>\r
+#include <boost/mpl/int.hpp>\r
+#include <boost/mpl/equal_to.hpp>\r
+#include <boost/mpl/if.hpp>\r
+#include <boost/mpl/eval_if.hpp>\r
+#include <boost/mpl/and.hpp>\r
+#include <boost/mpl/identity.hpp>\r
+\r
+#include <cstddef>\r
+\r
+namespace boost {\r
+\r
+template <class Value, class AccessCategory>\r
+struct access_archetype;\r
+\r
+template <class Derived, class Value, class AccessCategory, class TraversalCategory>\r
+struct traversal_archetype;\r
+\r
+namespace iterator_archetypes\r
+{\r
+  enum {\r
+      readable_iterator_bit = 1\r
+    , writable_iterator_bit = 2\r
+    , swappable_iterator_bit = 4\r
+    , lvalue_iterator_bit = 8\r
+  };\r
+\r
+  // Not quite tags, since dispatching wouldn't work.\r
+  typedef mpl::int_<readable_iterator_bit>::type readable_iterator_t;\r
+  typedef mpl::int_<writable_iterator_bit>::type writable_iterator_t;\r
+  \r
+  typedef mpl::int_<\r
+      (readable_iterator_bit|writable_iterator_bit)\r
+          >::type readable_writable_iterator_t;\r
+  \r
+  typedef mpl::int_<\r
+      (readable_iterator_bit|lvalue_iterator_bit)\r
+          >::type readable_lvalue_iterator_t;\r
+  \r
+  typedef mpl::int_<\r
+      (lvalue_iterator_bit|writable_iterator_bit)\r
+          >::type writable_lvalue_iterator_t;\r
+  \r
+  typedef mpl::int_<swappable_iterator_bit>::type swappable_iterator_t;\r
+  typedef mpl::int_<lvalue_iterator_bit>::type lvalue_iterator_t;\r
+\r
+  template <class Derived, class Base>\r
+  struct has_access\r
+    : mpl::equal_to<\r
+          mpl::bitand_<Derived,Base>\r
+        , Base\r
+      >\r
+  {};\r
+}\r
+\r
+namespace detail\r
+{\r
+  template <class T>\r
+  struct assign_proxy\r
+  {\r
+      assign_proxy& operator=(T) { return *this; }\r
+  };\r
+\r
+  template <class T>\r
+  struct read_proxy\r
+  {\r
+      operator T() { return static_object<T>::get(); }\r
+  };\r
+\r
+  template <class T>\r
+  struct read_write_proxy\r
+    : read_proxy<T> // Use to inherit from assign_proxy, but that doesn't work. -JGS\r
+  {\r
+      read_write_proxy& operator=(T) { return *this; }\r
+  };\r
+\r
+  template <class T>\r
+  struct arrow_proxy\r
+  {\r
+      T const* operator->() const { return 0; }\r
+  };\r
+\r
+  struct no_operator_brackets {};\r
+\r
+  template <class ValueType>\r
+  struct readable_operator_brackets\r
+  {\r
+      read_proxy<ValueType> operator[](std::ptrdiff_t n) const { return read_proxy<ValueType>(); }\r
+  };\r
+\r
+  template <class ValueType>\r
+  struct writable_operator_brackets\r
+  {\r
+      read_write_proxy<ValueType> operator[](std::ptrdiff_t n) const { return read_write_proxy<ValueType>(); }\r
+  };\r
+\r
+  template <class Value, class AccessCategory, class TraversalCategory>\r
+  struct operator_brackets\r
+    : mpl::aux::msvc_eti_base<\r
+          typename mpl::eval_if<\r
+              is_convertible<TraversalCategory, random_access_traversal_tag>\r
+            , mpl::eval_if<\r
+                  iterator_archetypes::has_access<\r
+                      AccessCategory\r
+                    , iterator_archetypes::writable_iterator_t\r
+                  >\r
+                , mpl::identity<writable_operator_brackets<Value> >\r
+                , mpl::if_<\r
+                      iterator_archetypes::has_access<\r
+                          AccessCategory\r
+                        , iterator_archetypes::readable_iterator_t\r
+                      >\r
+                    , readable_operator_brackets<Value>\r
+                    , no_operator_brackets\r
+                  >\r
+              >\r
+            , mpl::identity<no_operator_brackets>\r
+          >::type\r
+      >::type\r
+  {};\r
+  \r
+  template <class TraversalCategory>\r
+  struct traversal_archetype_impl\r
+  {\r
+      template <class Derived,class Value> struct archetype;\r
+  };\r
+\r
+  // Constructor argument for those iterators that\r
+  // are not default constructible\r
+  struct ctor_arg {};\r
+\r
+  template <class Derived, class Value, class TraversalCategory>\r
+  struct traversal_archetype_\r
+    : mpl::aux::msvc_eti_base<\r
+          typename traversal_archetype_impl<TraversalCategory>::template archetype<Derived,Value>\r
+      >::type\r
+  {\r
+      typedef typename\r
+        traversal_archetype_impl<TraversalCategory>::template archetype<Derived,Value>\r
+      base;\r
+      \r
+      traversal_archetype_() {}\r
+\r
+      traversal_archetype_(ctor_arg arg)\r
+        : base(arg) \r
+      {}\r
+  };\r
+\r
+  template <>\r
+  struct traversal_archetype_impl<incrementable_traversal_tag>\r
+  {\r
+      template<class Derived, class Value>\r
+      struct archetype\r
+      {\r
+          explicit archetype(ctor_arg) {}\r
+\r
+          struct bogus { }; // This use to be void, but that causes trouble for iterator_facade. Need more research. -JGS\r
+          typedef bogus difference_type;\r
+\r
+          Derived& operator++() { return (Derived&)static_object<Derived>::get(); }\r
+          Derived  operator++(int) const { return (Derived&)static_object<Derived>::get(); }\r
+      };\r
+  };\r
+\r
+  template <>\r
+  struct traversal_archetype_impl<single_pass_traversal_tag>\r
+  {\r
+      template<class Derived, class Value>\r
+      struct archetype\r
+        : public equality_comparable< traversal_archetype_<Derived, Value, single_pass_traversal_tag> >,\r
+          public traversal_archetype_<Derived, Value, incrementable_traversal_tag>\r
+      {\r
+          explicit archetype(ctor_arg arg)\r
+            : traversal_archetype_<Derived, Value, incrementable_traversal_tag>(arg)\r
+          {}\r
+          \r
+          typedef std::ptrdiff_t difference_type;\r
+      };\r
+  };\r
+\r
+  template <class Derived, class Value>\r
+  bool operator==(traversal_archetype_<Derived, Value, single_pass_traversal_tag> const&,\r
+                  traversal_archetype_<Derived, Value, single_pass_traversal_tag> const&) { return true; }\r
+  \r
+#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)\r
+  // doesn't seem to pick up != from equality_comparable\r
+  template <class Derived, class Value>\r
+  bool operator!=(traversal_archetype_<Derived, Value, single_pass_traversal_tag> const&,\r
+                  traversal_archetype_<Derived, Value, single_pass_traversal_tag> const&) { return true; }\r
+#endif \r
+  template <>\r
+  struct traversal_archetype_impl<forward_traversal_tag>\r
+  {\r
+      template<class Derived, class Value>\r
+      struct archetype\r
+        : public traversal_archetype_<Derived, Value, single_pass_traversal_tag>\r
+      {\r
+          archetype() \r
+            : traversal_archetype_<Derived, Value, single_pass_traversal_tag>(ctor_arg())\r
+          {}\r
+      };\r
+  };\r
+\r
+  template <>\r
+  struct traversal_archetype_impl<bidirectional_traversal_tag>\r
+  {\r
+      template<class Derived, class Value>\r
+      struct archetype\r
+        : public traversal_archetype_<Derived, Value, forward_traversal_tag>\r
+      {\r
+          Derived& operator--() { return static_object<Derived>::get(); }\r
+          Derived  operator--(int) const { return static_object<Derived>::get(); }\r
+      };\r
+  };\r
+\r
+  template <>\r
+  struct traversal_archetype_impl<random_access_traversal_tag>\r
+  {\r
+      template<class Derived, class Value>\r
+      struct archetype\r
+        : public traversal_archetype_<Derived, Value, bidirectional_traversal_tag> \r
+      {\r
+          Derived& operator+=(std::ptrdiff_t) { return static_object<Derived>::get(); }\r
+          Derived& operator-=(std::ptrdiff_t) { return static_object<Derived>::get(); }\r
+      };\r
+  };\r
+\r
+  template <class Derived, class Value>\r
+  Derived& operator+(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,\r
+                     std::ptrdiff_t) { return static_object<Derived>::get(); }\r
+\r
+  template <class Derived, class Value>\r
+  Derived& operator+(std::ptrdiff_t,\r
+                     traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)\r
+      { return static_object<Derived>::get(); }\r
+\r
+  template <class Derived, class Value>\r
+  Derived& operator-(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,\r
+                     std::ptrdiff_t)\r
+      { return static_object<Derived>::get(); }\r
+\r
+  template <class Derived, class Value>\r
+  std::ptrdiff_t operator-(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,\r
+                           traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)\r
+      { return 0; }\r
+\r
+  template <class Derived, class Value>\r
+  bool operator<(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,\r
+                 traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)\r
+      { return true; }\r
+\r
+  template <class Derived, class Value>\r
+  bool operator>(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,\r
+                 traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)\r
+      { return true; }\r
+\r
+  template <class Derived, class Value>\r
+  bool operator<=(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,\r
+                 traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)\r
+      { return true; }\r
+\r
+  template <class Derived, class Value>\r
+  bool operator>=(traversal_archetype_<Derived, Value, random_access_traversal_tag> const&,\r
+                 traversal_archetype_<Derived, Value, random_access_traversal_tag> const&)\r
+      { return true; }\r
+\r
+  struct bogus_type;\r
+\r
+  template <class Value>\r
+  struct convertible_type\r
+    : mpl::if_< is_const<Value>,\r
+                typename remove_const<Value>::type,\r
+                bogus_type >\r
+  {};\r
+\r
+} // namespace detail\r
+\r
+\r
+template <class> struct undefined;\r
+  \r
+template <class AccessCategory>\r
+struct iterator_access_archetype_impl\r
+{\r
+    template <class Value> struct archetype;\r
+};\r
+\r
+template <class Value, class AccessCategory>\r
+struct iterator_access_archetype\r
+  : mpl::aux::msvc_eti_base<\r
+        typename iterator_access_archetype_impl<\r
+            AccessCategory\r
+        >::template archetype<Value>\r
+    >::type\r
+{\r
+};\r
+\r
+template <>\r
+struct iterator_access_archetype_impl<\r
+    iterator_archetypes::readable_iterator_t\r
+>\r
+{\r
+    template <class Value>\r
+    struct archetype\r
+    {\r
+        typedef typename remove_cv<Value>::type value_type;\r
+        typedef Value                           reference;\r
+        typedef Value*                          pointer;\r
+\r
+        value_type operator*() const { return static_object<value_type>::get(); }\r
+\r
+        detail::arrow_proxy<Value> operator->() const { return detail::arrow_proxy<Value>(); }\r
+    };\r
+};\r
+\r
+template <>\r
+struct iterator_access_archetype_impl<\r
+    iterator_archetypes::writable_iterator_t\r
+>\r
+{\r
+    template <class Value>\r
+    struct archetype\r
+    {\r
+# if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300)\r
+        BOOST_STATIC_ASSERT(!is_const<Value>::value);\r
+# endif \r
+        typedef void value_type;\r
+        typedef void reference;\r
+        typedef void pointer;\r
+\r
+        detail::assign_proxy<Value> operator*() const { return detail::assign_proxy<Value>(); }\r
+    };\r
+};\r
+\r
+template <>\r
+struct iterator_access_archetype_impl<\r
+    iterator_archetypes::readable_writable_iterator_t\r
+>\r
+{\r
+    template <class Value>\r
+    struct archetype\r
+      : public virtual iterator_access_archetype<\r
+            Value, iterator_archetypes::readable_iterator_t\r
+        >\r
+    {\r
+        typedef detail::read_write_proxy<Value>    reference;\r
+\r
+        detail::read_write_proxy<Value> operator*() const { return detail::read_write_proxy<Value>(); }\r
+    };\r
+};\r
+\r
+template <>\r
+struct iterator_access_archetype_impl<iterator_archetypes::readable_lvalue_iterator_t>\r
+{\r
+    template <class Value>\r
+    struct archetype\r
+      : public virtual iterator_access_archetype<\r
+            Value, iterator_archetypes::readable_iterator_t\r
+        >\r
+    {\r
+        typedef Value&    reference;\r
+\r
+        Value& operator*() const { return static_object<Value>::get(); }\r
+        Value* operator->() const { return 0; }\r
+    };\r
+};\r
+  \r
+template <>\r
+struct iterator_access_archetype_impl<iterator_archetypes::writable_lvalue_iterator_t>\r
+{\r
+    template <class Value>\r
+    struct archetype\r
+      : public virtual iterator_access_archetype<\r
+            Value, iterator_archetypes::readable_lvalue_iterator_t\r
+        >\r
+    {\r
+# if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300)\r
+        BOOST_STATIC_ASSERT((!is_const<Value>::value));\r
+# endif \r
+    };\r
+};\r
+  \r
+\r
+template <class Value, class AccessCategory, class TraversalCategory>\r
+struct iterator_archetype;\r
+  \r
+template <class Value, class AccessCategory, class TraversalCategory>\r
+struct traversal_archetype_base \r
+  : detail::operator_brackets<\r
+        typename remove_cv<Value>::type\r
+      , AccessCategory\r
+      , TraversalCategory\r
+    >\r
+  , detail::traversal_archetype_<\r
+        iterator_archetype<Value, AccessCategory, TraversalCategory>\r
+      , Value\r
+      , TraversalCategory\r
+    >\r
+{\r
+};\r
+\r
+namespace detail\r
+{\r
+  template <class Value, class AccessCategory, class TraversalCategory>\r
+  struct iterator_archetype_base\r
+    : iterator_access_archetype<Value, AccessCategory>\r
+    , traversal_archetype_base<Value, AccessCategory, TraversalCategory>\r
+  {\r
+      typedef iterator_access_archetype<Value, AccessCategory> access;\r
+      \r
+      typedef typename detail::facade_iterator_category<\r
+          TraversalCategory\r
+        , typename mpl::eval_if<\r
+              iterator_archetypes::has_access<\r
+                  AccessCategory, iterator_archetypes::writable_iterator_t\r
+              >\r
+            , remove_const<Value>\r
+            , add_const<Value>\r
+          >::type\r
+        , typename access::reference\r
+      >::type iterator_category;\r
+\r
+      // Needed for some broken libraries (see below)\r
+      typedef boost::iterator<\r
+          iterator_category\r
+        , Value\r
+        , typename traversal_archetype_base<\r
+              Value, AccessCategory, TraversalCategory\r
+          >::difference_type\r
+        , typename access::pointer\r
+        , typename access::reference\r
+      > workaround_iterator_base;\r
+  };\r
+}\r
+\r
+template <class Value, class AccessCategory, class TraversalCategory>\r
+struct iterator_archetype\r
+  : public detail::iterator_archetype_base<Value, AccessCategory, TraversalCategory>\r
+\r
+    // These broken libraries require derivation from std::iterator\r
+    // (or related magic) in order to handle iter_swap and other\r
+    // iterator operations\r
+# if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, < 310)           \\r
+    || BOOST_WORKAROUND(_RWSTD_VER, BOOST_TESTED_AT(0x20101))\r
+  , public detail::iterator_archetype_base<\r
+        Value, AccessCategory, TraversalCategory\r
+    >::workaround_iterator_base\r
+# endif \r
+{\r
+    // Derivation from std::iterator above caused references to nested\r
+    // types to be ambiguous, so now we have to redeclare them all\r
+    // here.\r
+# if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, < 310)           \\r
+    || BOOST_WORKAROUND(_RWSTD_VER, BOOST_TESTED_AT(0x20101))\r
+    \r
+    typedef detail::iterator_archetype_base<\r
+        Value,AccessCategory,TraversalCategory\r
+    > base;\r
+    \r
+    typedef typename base::value_type value_type;\r
+    typedef typename base::reference reference;\r
+    typedef typename base::pointer pointer;\r
+    typedef typename base::difference_type difference_type;\r
+    typedef typename base::iterator_category iterator_category;\r
+# endif\r
+\r
+    iterator_archetype() { }\r
+    iterator_archetype(iterator_archetype const& x)\r
+      : detail::iterator_archetype_base<\r
+            Value\r
+          , AccessCategory\r
+          , TraversalCategory\r
+        >(x)\r
+    {}\r
+\r
+    iterator_archetype& operator=(iterator_archetype const&)\r
+        { return *this; }\r
+\r
+# if 0\r
+    // Optional conversion from mutable\r
+    iterator_archetype(\r
+        iterator_archetype<\r
+        typename detail::convertible_type<Value>::type\r
+      , AccessCategory\r
+      , TraversalCategory> const&\r
+    );\r
+# endif\r
+};\r
+\r
+} // namespace boost\r
+\r
+\r
+#endif // BOOST_ITERATOR_ARCHETYPES_HPP\r
diff --git a/boost/boost/iterator/iterator_concepts.hpp b/boost/boost/iterator/iterator_concepts.hpp
new file mode 100644 (file)
index 0000000..732ad88
--- /dev/null
@@ -0,0 +1,284 @@
+// (C) Copyright Jeremy Siek 2002.\r
+// Distributed under the Boost Software License, Version 1.0. (See\r
+// accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+\r
+#ifndef BOOST_ITERATOR_CONCEPTS_HPP\r
+#define BOOST_ITERATOR_CONCEPTS_HPP\r
+\r
+#include <boost/concept_check.hpp>\r
+#include <boost/iterator/iterator_categories.hpp>\r
+\r
+// Use boost::detail::iterator_traits to work around some MSVC/Dinkumware problems.\r
+#include <boost/detail/iterator.hpp>\r
+\r
+#include <boost/type_traits/is_same.hpp>\r
+#include <boost/type_traits/is_integral.hpp>\r
+\r
+#include <boost/mpl/bool.hpp>\r
+#include <boost/mpl/if.hpp>\r
+#include <boost/mpl/and.hpp>\r
+#include <boost/mpl/or.hpp>\r
+\r
+#include <boost/static_assert.hpp>\r
+\r
+// Use boost/limits to work around missing limits headers on some compilers\r
+#include <boost/limits.hpp>\r
+#include <boost/config.hpp>\r
+\r
+#include <algorithm>\r
+\r
+#include <boost/concept/detail/concept_def.hpp>\r
+\r
+namespace boost_concepts\r
+{\r
+  // Used a different namespace here (instead of "boost") so that the\r
+  // concept descriptions do not take for granted the names in\r
+  // namespace boost.\r
+\r
+  //===========================================================================\r
+  // Iterator Access Concepts\r
+\r
+  BOOST_concept(ReadableIterator,(Iterator))\r
+    : boost::Assignable<Iterator>\r
+    , boost::CopyConstructible<Iterator>\r
+\r
+  {\r
+      typedef BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::value_type value_type;\r
+      typedef BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::reference reference;\r
+\r
+      BOOST_CONCEPT_USAGE(ReadableIterator)\r
+      {\r
+\r
+          value_type v = *i;\r
+          boost::ignore_unused_variable_warning(v);\r
+      }\r
+  private:\r
+      Iterator i;\r
+  };\r
+  \r
+  template <\r
+      typename Iterator\r
+    , typename ValueType = BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::value_type\r
+  >\r
+  struct WritableIterator\r
+    : boost::CopyConstructible<Iterator>\r
+  {\r
+      BOOST_CONCEPT_USAGE(WritableIterator)\r
+      {\r
+          *i = v;\r
+      }\r
+  private:\r
+      ValueType v;\r
+      Iterator i;\r
+  };\r
+\r
+  template <\r
+      typename Iterator\r
+    , typename ValueType = BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::value_type\r
+  >\r
+  struct WritableIteratorConcept : WritableIterator<Iterator,ValueType> {};\r
+  \r
+  BOOST_concept(SwappableIterator,(Iterator))\r
+  {\r
+      BOOST_CONCEPT_USAGE(SwappableIterator)\r
+      {\r
+          std::iter_swap(i1, i2);\r
+      }\r
+  private:\r
+      Iterator i1;\r
+      Iterator i2;\r
+  };\r
+\r
+  BOOST_concept(LvalueIterator,(Iterator))\r
+  {\r
+      typedef typename boost::detail::iterator_traits<Iterator>::value_type value_type;\r
+      \r
+      BOOST_CONCEPT_USAGE(LvalueIterator)\r
+      {\r
+        value_type& r = const_cast<value_type&>(*i);\r
+        boost::ignore_unused_variable_warning(r);\r
+      }\r
+  private:\r
+      Iterator i;\r
+  };\r
+\r
+  \r
+  //===========================================================================\r
+  // Iterator Traversal Concepts\r
+\r
+  BOOST_concept(IncrementableIterator,(Iterator))\r
+    : boost::Assignable<Iterator>\r
+    , boost::CopyConstructible<Iterator>\r
+  {\r
+      typedef typename boost::iterator_traversal<Iterator>::type traversal_category;\r
+\r
+      BOOST_CONCEPT_ASSERT((\r
+        boost::Convertible<\r
+            traversal_category\r
+          , boost::incrementable_traversal_tag\r
+        >));\r
+\r
+      BOOST_CONCEPT_USAGE(IncrementableIterator)\r
+      {\r
+          ++i;\r
+          (void)i++;\r
+      }\r
+  private:\r
+      Iterator i;\r
+  };\r
+\r
+  BOOST_concept(SinglePassIterator,(Iterator))\r
+    : IncrementableIterator<Iterator>\r
+    , boost::EqualityComparable<Iterator>\r
+\r
+  {\r
+      BOOST_CONCEPT_ASSERT((\r
+          boost::Convertible<\r
+             BOOST_DEDUCED_TYPENAME SinglePassIterator::traversal_category\r
+           , boost::single_pass_traversal_tag\r
+          > ));\r
+  };\r
+\r
+  BOOST_concept(ForwardTraversal,(Iterator))\r
+    : SinglePassIterator<Iterator>\r
+    , boost::DefaultConstructible<Iterator>\r
+  {\r
+      typedef typename boost::detail::iterator_traits<Iterator>::difference_type difference_type;\r
+      \r
+      BOOST_MPL_ASSERT((boost::is_integral<difference_type>));\r
+      BOOST_MPL_ASSERT_RELATION(std::numeric_limits<difference_type>::is_signed, ==, true);\r
+\r
+      BOOST_CONCEPT_ASSERT((\r
+          boost::Convertible<\r
+             BOOST_DEDUCED_TYPENAME ForwardTraversal::traversal_category\r
+           , boost::forward_traversal_tag\r
+          > ));\r
+  };\r
+  \r
+  BOOST_concept(BidirectionalTraversal,(Iterator))\r
+    : ForwardTraversal<Iterator>\r
+  {\r
+      BOOST_CONCEPT_ASSERT((\r
+          boost::Convertible<\r
+             BOOST_DEDUCED_TYPENAME BidirectionalTraversal::traversal_category\r
+           , boost::bidirectional_traversal_tag\r
+          > ));\r
+\r
+      BOOST_CONCEPT_USAGE(BidirectionalTraversal)\r
+      {\r
+          --i;\r
+          (void)i--;\r
+      }\r
+   private:\r
+      Iterator i;\r
+  };\r
+\r
+  BOOST_concept(RandomAccessTraversal,(Iterator))\r
+    : BidirectionalTraversal<Iterator>\r
+  {\r
+      BOOST_CONCEPT_ASSERT((\r
+          boost::Convertible<\r
+             BOOST_DEDUCED_TYPENAME RandomAccessTraversal::traversal_category\r
+           , boost::random_access_traversal_tag\r
+          > ));\r
+\r
+      BOOST_CONCEPT_USAGE(RandomAccessTraversal)\r
+      {\r
+          i += n;\r
+          i = i + n;\r
+          i = n + i;\r
+          i -= n;\r
+          i = i - n;\r
+          n = i - j;\r
+      }\r
+      \r
+   private:\r
+      typename BidirectionalTraversal<Iterator>::difference_type n;\r
+      Iterator i, j;\r
+  };\r
+\r
+  //===========================================================================\r
+  // Iterator Interoperability \r
+\r
+  namespace detail\r
+  {\r
+    template <typename Iterator1, typename Iterator2>\r
+    void interop_single_pass_constraints(Iterator1 const& i1, Iterator2 const& i2)\r
+    {\r
+        bool b;\r
+        b = i1 == i2;\r
+        b = i1 != i2;\r
+\r
+        b = i2 == i1;\r
+        b = i2 != i1;\r
+        boost::ignore_unused_variable_warning(b);\r
+    }\r
+\r
+    template <typename Iterator1, typename Iterator2>\r
+    void interop_rand_access_constraints(\r
+        Iterator1 const& i1, Iterator2 const& i2,\r
+        boost::random_access_traversal_tag, boost::random_access_traversal_tag)\r
+    {\r
+        bool b;\r
+        typename boost::detail::iterator_traits<Iterator2>::difference_type n;\r
+        b = i1 <  i2;\r
+        b = i1 <= i2;\r
+        b = i1 >  i2;\r
+        b = i1 >= i2;\r
+        n = i1 -  i2;\r
+\r
+        b = i2 <  i1;\r
+        b = i2 <= i1;\r
+        b = i2 >  i1;\r
+        b = i2 >= i1;\r
+        n = i2 -  i1;\r
+        boost::ignore_unused_variable_warning(b);\r
+        boost::ignore_unused_variable_warning(n);\r
+    }\r
+\r
+    template <typename Iterator1, typename Iterator2>\r
+    void interop_rand_access_constraints(\r
+        Iterator1 const&, Iterator2 const&,\r
+        boost::single_pass_traversal_tag, boost::single_pass_traversal_tag)\r
+    { }\r
+\r
+  } // namespace detail\r
+\r
+  BOOST_concept(InteroperableIterator,(Iterator)(ConstIterator))\r
+  {\r
+   private:\r
+      typedef typename boost::detail::pure_traversal_tag<\r
+          typename boost::iterator_traversal<\r
+              Iterator\r
+          >::type\r
+      >::type traversal_category;\r
+\r
+      typedef typename boost::detail::pure_traversal_tag<\r
+          typename boost::iterator_traversal<\r
+              ConstIterator\r
+          >::type\r
+      >::type const_traversal_category;\r
+      \r
+  public:\r
+      BOOST_CONCEPT_ASSERT((SinglePassIterator<Iterator>));\r
+      BOOST_CONCEPT_ASSERT((SinglePassIterator<ConstIterator>));\r
+\r
+      BOOST_CONCEPT_USAGE(InteroperableIterator)\r
+      {\r
+          detail::interop_single_pass_constraints(i, ci);\r
+          detail::interop_rand_access_constraints(i, ci, traversal_category(), const_traversal_category());\r
+\r
+          ci = i;\r
+      }\r
+      \r
+   private:\r
+      Iterator      i;\r
+      ConstIterator ci;\r
+  };\r
+\r
+} // namespace boost_concepts\r
+\r
+#include <boost/concept/detail/concept_undef.hpp>\r
+\r
+#endif // BOOST_ITERATOR_CONCEPTS_HPP\r
diff --git a/boost/boost/iterator/new_iterator_tests.hpp b/boost/boost/iterator/new_iterator_tests.hpp
new file mode 100644 (file)
index 0000000..a6a95eb
--- /dev/null
@@ -0,0 +1,264 @@
+#ifndef BOOST_NEW_ITERATOR_TESTS_HPP\r
+# define BOOST_NEW_ITERATOR_TESTS_HPP\r
+\r
+//\r
+// Copyright (c) David Abrahams 2001.\r
+// Copyright (c) Jeremy Siek 2001-2003.\r
+// Copyright (c) Thomas Witt 2002.\r
+//\r
+// Use, modification and distribution is subject to the\r
+// Boost Software License, Version 1.0.\r
+// (See accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// This is meant to be the beginnings of a comprehensive, generic\r
+// test suite for STL concepts such as iterators and containers.\r
+//\r
+// Revision History:\r
+// 28 Oct 2002  Started update for new iterator categories\r
+//              (Jeremy Siek)\r
+// 28 Apr 2002  Fixed input iterator requirements.\r
+//              For a == b a++ == b++ is no longer required.\r
+//              See 24.1.1/3 for details.\r
+//              (Thomas Witt)\r
+// 08 Feb 2001  Fixed bidirectional iterator test so that\r
+//              --i is no longer a precondition.\r
+//              (Jeremy Siek)\r
+// 04 Feb 2001  Added lvalue test, corrected preconditions\r
+//              (David Abrahams)\r
+\r
+# include <iterator>\r
+# include <boost/type_traits.hpp>\r
+# include <boost/static_assert.hpp>\r
+# include <boost/concept_archetype.hpp> // for detail::dummy_constructor\r
+# include <boost/detail/iterator.hpp>\r
+# include <boost/pending/iterator_tests.hpp>\r
+# include <boost/iterator/is_readable_iterator.hpp>\r
+# include <boost/iterator/is_lvalue_iterator.hpp>\r
+\r
+# include <boost/iterator/detail/config_def.hpp>\r
+# include <boost/detail/is_incrementable.hpp>\r
+# include <boost/detail/lightweight_test.hpp>\r
+\r
+namespace boost {\r
+\r
+\r
+// Do separate tests for *i++ so we can treat, e.g., smart pointers,\r
+// as readable and/or writable iterators.\r
+template <class Iterator, class T>\r
+void readable_iterator_traversal_test(Iterator i1, T v, mpl::true_)\r
+{\r
+    T v2(*i1++);\r
+    BOOST_TEST(v == v2);\r
+}\r
+\r
+template <class Iterator, class T>\r
+void readable_iterator_traversal_test(const Iterator i1, T v, mpl::false_)\r
+{}\r
+\r
+template <class Iterator, class T>\r
+void writable_iterator_traversal_test(Iterator i1, T v, mpl::true_)\r
+{\r
+    ++i1;  // we just wrote into that position\r
+    *i1++ = v;\r
+    Iterator x(i1++);\r
+    (void)x;\r
+}\r
+\r
+template <class Iterator, class T>\r
+void writable_iterator_traversal_test(const Iterator i1, T v, mpl::false_)\r
+{}\r
+\r
+\r
+// Preconditions: *i == v\r
+template <class Iterator, class T>\r
+void readable_iterator_test(const Iterator i1, T v)\r
+{\r
+  Iterator i2(i1); // Copy Constructible\r
+  typedef typename detail::iterator_traits<Iterator>::reference ref_t;\r
+  ref_t r1 = *i1;\r
+  ref_t r2 = *i2;\r
+  T v1 = r1;\r
+  T v2 = r2;\r
+  BOOST_TEST(v1 == v);\r
+  BOOST_TEST(v2 == v);\r
+\r
+# if !BOOST_WORKAROUND(__MWERKS__, <= 0x2407)\r
+  readable_iterator_traversal_test(i1, v, detail::is_postfix_incrementable<Iterator>());\r
+      \r
+  // I think we don't really need this as it checks the same things as\r
+  // the above code.\r
+  BOOST_STATIC_ASSERT(is_readable_iterator<Iterator>::value);\r
+# endif \r
+}\r
+\r
+template <class Iterator, class T>\r
+void writable_iterator_test(Iterator i, T v, T v2)\r
+{\r
+  Iterator i2(i); // Copy Constructible\r
+  *i2 = v;\r
+\r
+# if !BOOST_WORKAROUND(__MWERKS__, <= 0x2407)\r
+  writable_iterator_traversal_test(\r
+      i, v2, mpl::and_<\r
+          detail::is_incrementable<Iterator>\r
+        , detail::is_postfix_incrementable<Iterator>\r
+      >());\r
+# endif \r
+}\r
+\r
+template <class Iterator>\r
+void swappable_iterator_test(Iterator i, Iterator j)\r
+{\r
+  Iterator i2(i), j2(j);\r
+  typename detail::iterator_traits<Iterator>::value_type bi = *i, bj = *j;\r
+  iter_swap(i2, j2);\r
+  typename detail::iterator_traits<Iterator>::value_type ai = *i, aj = *j;\r
+  BOOST_TEST(bi == aj && bj == ai);\r
+}\r
+\r
+template <class Iterator, class T>\r
+void constant_lvalue_iterator_test(Iterator i, T v1)\r
+{\r
+  Iterator i2(i);\r
+  typedef typename detail::iterator_traits<Iterator>::value_type value_type;\r
+  typedef typename detail::iterator_traits<Iterator>::reference reference;\r
+  BOOST_STATIC_ASSERT((is_same<const value_type&, reference>::value));\r
+  const T& v2 = *i2;\r
+  BOOST_TEST(v1 == v2);\r
+# ifndef BOOST_NO_LVALUE_RETURN_DETECTION\r
+  BOOST_STATIC_ASSERT(is_lvalue_iterator<Iterator>::value);\r
+  BOOST_STATIC_ASSERT(!is_non_const_lvalue_iterator<Iterator>::value);\r
+# endif \r
+}\r
+\r
+template <class Iterator, class T>\r
+void non_const_lvalue_iterator_test(Iterator i, T v1, T v2)\r
+{\r
+  Iterator i2(i);\r
+  typedef typename detail::iterator_traits<Iterator>::value_type value_type;\r
+  typedef typename detail::iterator_traits<Iterator>::reference reference;\r
+  BOOST_STATIC_ASSERT((is_same<value_type&, reference>::value));\r
+  T& v3 = *i2;\r
+  BOOST_TEST(v1 == v3);\r
+  \r
+  // A non-const lvalue iterator is not neccessarily writable, but we\r
+  // are assuming the value_type is assignable here\r
+  *i = v2;\r
+  \r
+  T& v4 = *i2;\r
+  BOOST_TEST(v2 == v4);\r
+# ifndef BOOST_NO_LVALUE_RETURN_DETECTION\r
+  BOOST_STATIC_ASSERT(is_lvalue_iterator<Iterator>::value);\r
+  BOOST_STATIC_ASSERT(is_non_const_lvalue_iterator<Iterator>::value);\r
+# endif \r
+}\r
+\r
+template <class Iterator, class T>\r
+void forward_readable_iterator_test(Iterator i, Iterator j, T val1, T val2)\r
+{\r
+  Iterator i2;\r
+  Iterator i3(i);\r
+  i2 = i;\r
+  BOOST_TEST(i2 == i3);\r
+  BOOST_TEST(i != j);\r
+  BOOST_TEST(i2 != j);\r
+  readable_iterator_test(i, val1);\r
+  readable_iterator_test(i2, val1);\r
+  readable_iterator_test(i3, val1);\r
+\r
+  BOOST_TEST(i == i2++);\r
+  BOOST_TEST(i != ++i3);\r
+\r
+  readable_iterator_test(i2, val2);\r
+  readable_iterator_test(i3, val2);\r
+\r
+  readable_iterator_test(i, val1);\r
+}\r
+\r
+template <class Iterator, class T>\r
+void forward_swappable_iterator_test(Iterator i, Iterator j, T val1, T val2)\r
+{\r
+  forward_readable_iterator_test(i, j, val1, val2);\r
+  Iterator i2 = i;\r
+  ++i2;\r
+  swappable_iterator_test(i, i2);\r
+}\r
+\r
+// bidirectional\r
+// Preconditions: *i == v1, *++i == v2\r
+template <class Iterator, class T>\r
+void bidirectional_readable_iterator_test(Iterator i, T v1, T v2)\r
+{\r
+  Iterator j(i);\r
+  ++j;\r
+  forward_readable_iterator_test(i, j, v1, v2);\r
+  ++i;\r
+\r
+  Iterator i1 = i, i2 = i;\r
+\r
+  BOOST_TEST(i == i1--);\r
+  BOOST_TEST(i != --i2);\r
+\r
+  readable_iterator_test(i, v2);\r
+  readable_iterator_test(i1, v1);\r
+  readable_iterator_test(i2, v1);\r
+\r
+  --i;\r
+  BOOST_TEST(i == i1);\r
+  BOOST_TEST(i == i2);\r
+  ++i1;\r
+  ++i2;\r
+\r
+  readable_iterator_test(i, v1);\r
+  readable_iterator_test(i1, v2);\r
+  readable_iterator_test(i2, v2);\r
+}\r
+\r
+// random access\r
+// Preconditions: [i,i+N) is a valid range\r
+template <class Iterator, class TrueVals>\r
+void random_access_readable_iterator_test(Iterator i, int N, TrueVals vals)\r
+{\r
+  bidirectional_readable_iterator_test(i, vals[0], vals[1]);\r
+  const Iterator j = i;\r
+  int c;\r
+\r
+  for (c = 0; c < N-1; ++c)\r
+  {\r
+    BOOST_TEST(i == j + c);\r
+    BOOST_TEST(*i == vals[c]);\r
+    typename detail::iterator_traits<Iterator>::value_type x = j[c];\r
+    BOOST_TEST(*i == x);\r
+    BOOST_TEST(*i == *(j + c));\r
+    BOOST_TEST(*i == *(c + j));\r
+    ++i;\r
+    BOOST_TEST(i > j);\r
+    BOOST_TEST(i >= j);\r
+    BOOST_TEST(j <= i);\r
+    BOOST_TEST(j < i);\r
+  }\r
+\r
+  Iterator k = j + N - 1;\r
+  for (c = 0; c < N-1; ++c)\r
+  {\r
+    BOOST_TEST(i == k - c);\r
+    BOOST_TEST(*i == vals[N - 1 - c]);\r
+    typename detail::iterator_traits<Iterator>::value_type x = j[N - 1 - c];\r
+    BOOST_TEST(*i == x);\r
+    Iterator q = k - c; \r
+    BOOST_TEST(*i == *q);\r
+    BOOST_TEST(i > j);\r
+    BOOST_TEST(i >= j);\r
+    BOOST_TEST(j <= i);\r
+    BOOST_TEST(j < i);\r
+    --i;\r
+  }\r
+}\r
+\r
+} // namespace boost\r
+\r
+# include <boost/iterator/detail/config_undef.hpp>\r
+\r
+#endif // BOOST_NEW_ITERATOR_TESTS_HPP\r
diff --git a/boost/boost/iterator/permutation_iterator.hpp b/boost/boost/iterator/permutation_iterator.hpp
new file mode 100644 (file)
index 0000000..05c740d
--- /dev/null
@@ -0,0 +1,72 @@
+// (C) Copyright Toon Knapen    2001.\r
+// (C) Copyright David Abrahams 2003.\r
+// (C) Copyright Roland Richter 2003.\r
+// Distributed under the Boost Software License, Version 1.0. (See\r
+// accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+\r
+#ifndef BOOST_PERMUTATION_ITERATOR_HPP\r
+#define BOOST_PERMUTATION_ITERATOR_HPP\r
+\r
+#include <iterator>\r
+\r
+#include <boost/iterator/iterator_adaptor.hpp>\r
+\r
+\r
+namespace boost\r
+{\r
+\r
+template< class ElementIterator\r
+        , class IndexIterator>\r
+class permutation_iterator\r
+  : public iterator_adaptor< \r
+             permutation_iterator<ElementIterator, IndexIterator>\r
+           , IndexIterator, typename detail::iterator_traits<ElementIterator>::value_type\r
+           , use_default, typename detail::iterator_traits<ElementIterator>::reference>\r
+{\r
+  typedef iterator_adaptor< \r
+            permutation_iterator<ElementIterator, IndexIterator>\r
+          , IndexIterator, typename detail::iterator_traits<ElementIterator>::value_type\r
+          , use_default, typename detail::iterator_traits<ElementIterator>::reference> super_t;\r
+\r
+  friend class iterator_core_access;\r
+\r
+public:\r
+  permutation_iterator() : m_elt_iter() {}\r
+\r
+  explicit permutation_iterator(ElementIterator x, IndexIterator y) \r
+      : super_t(y), m_elt_iter(x) {}\r
+\r
+  template<class OtherElementIterator, class OtherIndexIterator>\r
+  permutation_iterator(\r
+      permutation_iterator<OtherElementIterator, OtherIndexIterator> const& r\r
+      , typename enable_if_convertible<OtherElementIterator, ElementIterator>::type* = 0\r
+      , typename enable_if_convertible<OtherIndexIterator, IndexIterator>::type* = 0\r
+      )\r
+    : super_t(r.base()), m_elt_iter(r.m_elt_iter)\r
+  {}\r
+\r
+private:\r
+    typename super_t::reference dereference() const\r
+        { return *(m_elt_iter + *this->base()); }\r
+\r
+#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS\r
+    template <class,class> friend class permutation_iterator;\r
+#else\r
+ public:\r
+#endif \r
+    ElementIterator m_elt_iter;\r
+};\r
+\r
+\r
+template <class ElementIterator, class IndexIterator>\r
+permutation_iterator<ElementIterator, IndexIterator> \r
+make_permutation_iterator( ElementIterator e, IndexIterator i )\r
+{\r
+    return permutation_iterator<ElementIterator, IndexIterator>( e, i );\r
+}\r
+\r
+\r
+} // namespace boost\r
+\r
+#endif\r
diff --git a/boost/boost/iterator/zip_iterator.hpp b/boost/boost/iterator/zip_iterator.hpp
new file mode 100644 (file)
index 0000000..edc7e09
--- /dev/null
@@ -0,0 +1,585 @@
+// Copyright David Abrahams and Thomas Becker 2000-2006. Distributed\r
+// under the Boost Software License, Version 1.0. (See accompanying\r
+// file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+\r
+#ifndef BOOST_ZIP_ITERATOR_TMB_07_13_2003_HPP_\r
+# define BOOST_ZIP_ITERATOR_TMB_07_13_2003_HPP_\r
+\r
+#include <stddef.h>\r
+#include <boost/iterator.hpp>\r
+#include <boost/iterator/iterator_traits.hpp>\r
+#include <boost/iterator/iterator_facade.hpp>\r
+#include <boost/iterator/iterator_adaptor.hpp> // for enable_if_convertible\r
+#include <boost/iterator/iterator_categories.hpp>\r
+#include <boost/detail/iterator.hpp>\r
+\r
+#include <boost/iterator/detail/minimum_category.hpp>\r
+\r
+#include <boost/tuple/tuple.hpp>\r
+\r
+#include <boost/type_traits/is_same.hpp>\r
+#include <boost/mpl/and.hpp>\r
+#include <boost/mpl/apply.hpp>\r
+#include <boost/mpl/eval_if.hpp>\r
+#include <boost/mpl/lambda.hpp>\r
+#include <boost/mpl/placeholders.hpp>\r
+#include <boost/mpl/aux_/lambda_support.hpp>\r
+\r
+namespace boost {\r
+\r
+  // Zip iterator forward declaration for zip_iterator_base\r
+  template<typename IteratorTuple>\r
+  class zip_iterator;\r
+\r
+  // One important design goal of the zip_iterator is to isolate all\r
+  // functionality whose implementation relies on the current tuple\r
+  // implementation. This goal has been achieved as follows: Inside\r
+  // the namespace detail there is a namespace tuple_impl_specific.\r
+  // This namespace encapsulates all functionality that is specific\r
+  // to the current Boost tuple implementation. More precisely, the\r
+  // namespace tuple_impl_specific provides the following tuple\r
+  // algorithms and meta-algorithms for the current Boost tuple\r
+  // implementation:\r
+  //\r
+  // tuple_meta_transform\r
+  // tuple_meta_accumulate\r
+  // tuple_transform\r
+  // tuple_for_each\r
+  //\r
+  // If the tuple implementation changes, all that needs to be\r
+  // replaced is the implementation of these four (meta-)algorithms.\r
+\r
+  namespace detail\r
+  {\r
+\r
+    // Functors to be used with tuple algorithms\r
+    //\r
+    template<typename DiffType>\r
+    class advance_iterator\r
+    {\r
+    public:\r
+      advance_iterator(DiffType step) : m_step(step) {}\r
+      \r
+      template<typename Iterator>\r
+      void operator()(Iterator& it) const\r
+      { it += m_step; }\r
+\r
+    private:\r
+      DiffType m_step;\r
+    };\r
+    //\r
+    struct increment_iterator\r
+    {\r
+      template<typename Iterator>\r
+      void operator()(Iterator& it)\r
+      { ++it; }\r
+    };\r
+    //\r
+    struct decrement_iterator\r
+    {\r
+      template<typename Iterator>\r
+      void operator()(Iterator& it)\r
+      { --it; }\r
+    };\r
+    //\r
+    struct dereference_iterator\r
+    {\r
+      template<typename Iterator>\r
+      struct apply\r
+      { \r
+        typedef typename\r
+          iterator_traits<Iterator>::reference\r
+        type;\r
+      };\r
+\r
+      template<typename Iterator>\r
+        typename apply<Iterator>::type operator()(Iterator const& it)\r
+      { return *it; }\r
+    };\r
+           \r
+\r
+    // The namespace tuple_impl_specific provides two meta-\r
+    // algorithms and two algorithms for tuples.\r
+    //\r
+    namespace tuple_impl_specific\r
+    {\r
+      // Meta-transform algorithm for tuples\r
+      //\r
+      template<typename Tuple, class UnaryMetaFun>\r
+      struct tuple_meta_transform;\r
+      \r
+      template<typename Tuple, class UnaryMetaFun>\r
+      struct tuple_meta_transform_impl\r
+      {\r
+          typedef tuples::cons<\r
+              typename mpl::apply1<\r
+                  typename mpl::lambda<UnaryMetaFun>::type\r
+                , typename Tuple::head_type\r
+              >::type\r
+            , typename tuple_meta_transform<\r
+                  typename Tuple::tail_type\r
+                , UnaryMetaFun \r
+              >::type\r
+          > type;\r
+      };\r
+\r
+      template<typename Tuple, class UnaryMetaFun>\r
+      struct tuple_meta_transform\r
+        : mpl::eval_if<\r
+              boost::is_same<Tuple, tuples::null_type>\r
+            , mpl::identity<tuples::null_type>\r
+            , tuple_meta_transform_impl<Tuple, UnaryMetaFun>\r
+        >\r
+      {\r
+      };\r
+      \r
+      // Meta-accumulate algorithm for tuples. Note: The template \r
+      // parameter StartType corresponds to the initial value in \r
+      // ordinary accumulation.\r
+      //\r
+      template<class Tuple, class BinaryMetaFun, class StartType>\r
+      struct tuple_meta_accumulate;\r
+      \r
+      template<\r
+          typename Tuple\r
+        , class BinaryMetaFun\r
+        , typename StartType\r
+      >\r
+      struct tuple_meta_accumulate_impl\r
+      {\r
+         typedef typename mpl::apply2<\r
+             typename mpl::lambda<BinaryMetaFun>::type\r
+           , typename Tuple::head_type\r
+           , typename tuple_meta_accumulate<\r
+                 typename Tuple::tail_type\r
+               , BinaryMetaFun\r
+               , StartType \r
+             >::type\r
+         >::type type;\r
+      };\r
+\r
+      template<\r
+          typename Tuple\r
+        , class BinaryMetaFun\r
+        , typename StartType\r
+      >\r
+      struct tuple_meta_accumulate\r
+        : mpl::eval_if<\r
+#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)\r
+              mpl::or_<\r
+#endif \r
+                  boost::is_same<Tuple, tuples::null_type>\r
+#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)\r
+                , boost::is_same<Tuple,int>\r
+              >\r
+#endif \r
+            , mpl::identity<StartType>\r
+            , tuple_meta_accumulate_impl<\r
+                  Tuple\r
+                , BinaryMetaFun\r
+                , StartType\r
+              >\r
+          >\r
+      {\r
+      };  \r
+\r
+#if defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)                            \\r
+    || (                                                                    \\r
+      BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, != 0) && defined(_MSC_VER)  \\r
+    )\r
+// Not sure why intel's partial ordering fails in this case, but I'm\r
+// assuming int's an MSVC bug-compatibility feature.\r
+      \r
+# define BOOST_TUPLE_ALGO_DISPATCH\r
+# define BOOST_TUPLE_ALGO(algo) algo##_impl\r
+# define BOOST_TUPLE_ALGO_TERMINATOR , int\r
+# define BOOST_TUPLE_ALGO_RECURSE , ...\r
+#else \r
+# define BOOST_TUPLE_ALGO(algo) algo\r
+# define BOOST_TUPLE_ALGO_TERMINATOR\r
+# define BOOST_TUPLE_ALGO_RECURSE\r
+#endif\r
+      \r
+      // transform algorithm for tuples. The template parameter Fun\r
+      // must be a unary functor which is also a unary metafunction\r
+      // class that computes its return type based on its argument\r
+      // type. For example:\r
+      //\r
+      // struct to_ptr\r
+      // {\r
+      //     template <class Arg>\r
+      //     struct apply\r
+      //     {\r
+      //          typedef Arg* type;\r
+      //     }\r
+      //\r
+      //     template <class Arg>\r
+      //     Arg* operator()(Arg x);\r
+      // };\r
+      template<typename Fun>\r
+      tuples::null_type BOOST_TUPLE_ALGO(tuple_transform)\r
+          (tuples::null_type const&, Fun BOOST_TUPLE_ALGO_TERMINATOR)\r
+      { return tuples::null_type(); }\r
+\r
+      template<typename Tuple, typename Fun>\r
+      typename tuple_meta_transform<\r
+          Tuple\r
+        , Fun\r
+      >::type\r
+      \r
+      BOOST_TUPLE_ALGO(tuple_transform)(\r
+        const Tuple& t, \r
+        Fun f\r
+        BOOST_TUPLE_ALGO_RECURSE\r
+      )\r
+      { \r
+          typedef typename tuple_meta_transform<\r
+              BOOST_DEDUCED_TYPENAME Tuple::tail_type\r
+            , Fun\r
+          >::type transformed_tail_type;\r
+\r
+        return tuples::cons<\r
+            BOOST_DEDUCED_TYPENAME mpl::apply1<\r
+                Fun, BOOST_DEDUCED_TYPENAME Tuple::head_type\r
+             >::type\r
+           , transformed_tail_type\r
+        >( \r
+            f(boost::tuples::get<0>(t)), tuple_transform(t.get_tail(), f)\r
+        );\r
+      }\r
+\r
+#ifdef BOOST_TUPLE_ALGO_DISPATCH\r
+      template<typename Tuple, typename Fun>\r
+      typename tuple_meta_transform<\r
+          Tuple\r
+        , Fun\r
+      >::type\r
+      \r
+      tuple_transform(\r
+        const Tuple& t, \r
+        Fun f\r
+      )\r
+      {\r
+          return tuple_transform_impl(t, f, 1);\r
+      }\r
+#endif\r
+      \r
+      // for_each algorithm for tuples.\r
+      //\r
+      template<typename Fun>\r
+      Fun BOOST_TUPLE_ALGO(tuple_for_each)(\r
+          tuples::null_type\r
+        , Fun f BOOST_TUPLE_ALGO_TERMINATOR\r
+      )\r
+      { return f; }\r
+\r
+      \r
+      template<typename Tuple, typename Fun>\r
+      Fun BOOST_TUPLE_ALGO(tuple_for_each)(\r
+          Tuple& t\r
+        , Fun f BOOST_TUPLE_ALGO_RECURSE)\r
+      { \r
+          f( t.get_head() );\r
+          return tuple_for_each(t.get_tail(), f);\r
+      }\r
+      \r
+#ifdef BOOST_TUPLE_ALGO_DISPATCH\r
+      template<typename Tuple, typename Fun>\r
+      Fun\r
+      tuple_for_each(\r
+        Tuple& t, \r
+        Fun f\r
+      )\r
+      {\r
+          return tuple_for_each_impl(t, f, 1);\r
+      }\r
+#endif\r
+      \r
+      // Equality of tuples. NOTE: "==" for tuples currently (7/2003)\r
+      // has problems under some compilers, so I just do my own.\r
+      // No point in bringing in a bunch of #ifdefs here. This is\r
+      // going to go away with the next tuple implementation anyway.\r
+      //\r
+      inline bool tuple_equal(tuples::null_type, tuples::null_type)\r
+      { return true; }\r
+\r
+      template<typename Tuple1, typename Tuple2>\r
+        bool tuple_equal(\r
+            Tuple1 const& t1, \r
+            Tuple2 const& t2\r
+        )\r
+      { \r
+          return t1.get_head() == t2.get_head() && \r
+          tuple_equal(t1.get_tail(), t2.get_tail());\r
+      }\r
+    }\r
+    //\r
+    // end namespace tuple_impl_specific\r
+\r
+    template<typename Iterator>\r
+    struct iterator_reference\r
+    {\r
+        typedef typename iterator_traits<Iterator>::reference type;\r
+    };\r
+\r
+#ifdef BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT\r
+    // Hack because BOOST_MPL_AUX_LAMBDA_SUPPORT doesn't seem to work\r
+    // out well.  Instantiating the nested apply template also\r
+    // requires instantiating iterator_traits on the\r
+    // placeholder. Instead we just specialize it as a metafunction\r
+    // class.\r
+    template<>\r
+    struct iterator_reference<mpl::_1>\r
+    {\r
+        template <class T>\r
+        struct apply : iterator_reference<T> {};\r
+    };\r
+#endif\r
+    \r
+    // Metafunction to obtain the type of the tuple whose element types\r
+    // are the reference types of an iterator tuple.\r
+    //\r
+    template<typename IteratorTuple>\r
+    struct tuple_of_references\r
+      : tuple_impl_specific::tuple_meta_transform<\r
+            IteratorTuple, \r
+            iterator_reference<mpl::_1>\r
+          >\r
+    {\r
+    };\r
+\r
+    // Metafunction to obtain the minimal traversal tag in a tuple\r
+    // of iterators.\r
+    //\r
+    template<typename IteratorTuple>\r
+    struct minimum_traversal_category_in_iterator_tuple\r
+    {\r
+      typedef typename tuple_impl_specific::tuple_meta_transform<\r
+          IteratorTuple\r
+        , iterator_traversal<>\r
+      >::type tuple_of_traversal_tags;\r
+          \r
+      typedef typename tuple_impl_specific::tuple_meta_accumulate<\r
+          tuple_of_traversal_tags\r
+        , minimum_category<>\r
+        , random_access_traversal_tag\r
+      >::type type;\r
+    };\r
+\r
+#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) // ETI workaround\r
+      template <>\r
+      struct minimum_traversal_category_in_iterator_tuple<int>\r
+      {\r
+          typedef int type;\r
+      };\r
+#endif\r
+      \r
+      // We need to call tuple_meta_accumulate with mpl::and_ as the\r
+      // accumulating functor. To this end, we need to wrap it into\r
+      // a struct that has exactly two arguments (that is, template\r
+      // parameters) and not five, like mpl::and_ does.\r
+      //\r
+      template<typename Arg1, typename Arg2>\r
+      struct and_with_two_args\r
+        : mpl::and_<Arg1, Arg2>\r
+      {\r
+      };\r
+    \r
+# ifdef BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT\r
+  // Hack because BOOST_MPL_AUX_LAMBDA_SUPPORT doesn't seem to work\r
+  // out well.  In this case I think it's an MPL bug\r
+      template<>\r
+      struct and_with_two_args<mpl::_1,mpl::_2>\r
+      {\r
+          template <class A1, class A2>\r
+          struct apply : mpl::and_<A1,A2>\r
+          {};\r
+      };\r
+# endif \r
+\r
+    ///////////////////////////////////////////////////////////////////\r
+    //\r
+    // Class zip_iterator_base\r
+    //\r
+    // Builds and exposes the iterator facade type from which the zip \r
+    // iterator will be derived.\r
+    //\r
+    template<typename IteratorTuple>\r
+    struct zip_iterator_base\r
+    {\r
+     private:\r
+        // Reference type is the type of the tuple obtained from the\r
+        // iterators' reference types.\r
+        typedef typename \r
+        detail::tuple_of_references<IteratorTuple>::type reference;\r
+      \r
+        // Value type is the same as reference type.\r
+        typedef reference value_type;\r
+      \r
+        // Difference type is the first iterator's difference type\r
+        typedef typename iterator_traits<\r
+            typename tuples::element<0, IteratorTuple>::type\r
+            >::difference_type difference_type;\r
+      \r
+        // Traversal catetgory is the minimum traversal category in the \r
+        // iterator tuple.\r
+        typedef typename \r
+        detail::minimum_traversal_category_in_iterator_tuple<\r
+            IteratorTuple\r
+        >::type traversal_category;\r
+     public:\r
+      \r
+        // The iterator facade type from which the zip iterator will\r
+        // be derived.\r
+        typedef iterator_facade<\r
+            zip_iterator<IteratorTuple>,\r
+            value_type,  \r
+            traversal_category,\r
+            reference,\r
+            difference_type\r
+        > type;\r
+    };\r
+\r
+    template <>\r
+    struct zip_iterator_base<int>\r
+    {\r
+        typedef int type;\r
+    };\r
+  }\r
+  \r
+  /////////////////////////////////////////////////////////////////////\r
+  //\r
+  // zip_iterator class definition\r
+  //\r
+  template<typename IteratorTuple>\r
+  class zip_iterator : \r
+    public detail::zip_iterator_base<IteratorTuple>::type\r
+  {  \r
+\r
+   // Typedef super_t as our base class. \r
+   typedef typename \r
+     detail::zip_iterator_base<IteratorTuple>::type super_t;\r
+\r
+   // iterator_core_access is the iterator's best friend.\r
+   friend class iterator_core_access;\r
+\r
+  public:\r
+    \r
+    // Construction\r
+    // ============\r
+    \r
+    // Default constructor\r
+    zip_iterator() { }\r
+\r
+    // Constructor from iterator tuple\r
+    zip_iterator(IteratorTuple iterator_tuple) \r
+      : m_iterator_tuple(iterator_tuple) \r
+    { }\r
+\r
+    // Copy constructor\r
+    template<typename OtherIteratorTuple>\r
+    zip_iterator(\r
+       const zip_iterator<OtherIteratorTuple>& other,\r
+       typename enable_if_convertible<\r
+         OtherIteratorTuple,\r
+         IteratorTuple\r
+         >::type* = 0\r
+    ) : m_iterator_tuple(other.get_iterator_tuple())\r
+    {}\r
+\r
+    // Get method for the iterator tuple.\r
+    const IteratorTuple& get_iterator_tuple() const\r
+    { return m_iterator_tuple; }\r
+\r
+  private:\r
+    \r
+    // Implementation of Iterator Operations\r
+    // =====================================\r
+    \r
+    // Dereferencing returns a tuple built from the dereferenced\r
+    // iterators in the iterator tuple.\r
+    typename super_t::reference dereference() const\r
+    { \r
+      return detail::tuple_impl_specific::tuple_transform( \r
+        get_iterator_tuple(),\r
+        detail::dereference_iterator()\r
+       );\r
+    }\r
+\r
+    // Two zip iterators are equal if all iterators in the iterator\r
+    // tuple are equal. NOTE: It should be possible to implement this\r
+    // as\r
+    //\r
+    // return get_iterator_tuple() == other.get_iterator_tuple();\r
+    //\r
+    // but equality of tuples currently (7/2003) does not compile\r
+    // under several compilers. No point in bringing in a bunch\r
+    // of #ifdefs here.\r
+    //\r
+    template<typename OtherIteratorTuple>   \r
+    bool equal(const zip_iterator<OtherIteratorTuple>& other) const\r
+    {\r
+      return detail::tuple_impl_specific::tuple_equal(\r
+        get_iterator_tuple(),\r
+        other.get_iterator_tuple()\r
+        );\r
+    }\r
+\r
+    // Advancing a zip iterator means to advance all iterators in the\r
+    // iterator tuple.\r
+    void advance(typename super_t::difference_type n)\r
+    { \r
+      detail::tuple_impl_specific::tuple_for_each(\r
+          m_iterator_tuple,\r
+          detail::advance_iterator<BOOST_DEDUCED_TYPENAME super_t::difference_type>(n)\r
+          );\r
+    }\r
+    // Incrementing a zip iterator means to increment all iterators in\r
+    // the iterator tuple.\r
+    void increment()\r
+    { \r
+      detail::tuple_impl_specific::tuple_for_each(\r
+        m_iterator_tuple,\r
+        detail::increment_iterator()\r
+        );\r
+    }\r
+    \r
+    // Decrementing a zip iterator means to decrement all iterators in\r
+    // the iterator tuple.\r
+    void decrement()\r
+    { \r
+      detail::tuple_impl_specific::tuple_for_each(\r
+        m_iterator_tuple,\r
+        detail::decrement_iterator()\r
+        );\r
+    }\r
+    \r
+    // Distance is calculated using the first iterator in the tuple.\r
+    template<typename OtherIteratorTuple>\r
+      typename super_t::difference_type distance_to(\r
+        const zip_iterator<OtherIteratorTuple>& other\r
+        ) const\r
+    { \r
+        return boost::tuples::get<0>(other.get_iterator_tuple()) - \r
+            boost::tuples::get<0>(this->get_iterator_tuple());\r
+    }\r
+  \r
+    // Data Members\r
+    // ============\r
+    \r
+    // The iterator tuple.\r
+    IteratorTuple m_iterator_tuple;\r
\r
+  };\r
+\r
+  // Make function for zip iterator\r
+  //\r
+  template<typename IteratorTuple> \r
+  zip_iterator<IteratorTuple> \r
+  make_zip_iterator(IteratorTuple t)\r
+  { return zip_iterator<IteratorTuple>(t); }\r
+\r
+}\r
+\r
+#endif\r
diff --git a/boost/boost/mpl/aux_/config/bcc.hpp b/boost/boost/mpl/aux_/config/bcc.hpp
new file mode 100644 (file)
index 0000000..9f09902
--- /dev/null
@@ -0,0 +1,28 @@
+\r
+#ifndef BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED\r
+#define BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED\r
+\r
+// Copyright Aleksey Gurtovoy 2008\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+// See http://www.boost.org/libs/mpl for documentation.\r
+\r
+// $Id: bcc.hpp 49272 2008-10-11 06:50:46Z agurtovoy $\r
+// $Date: 2004-09-02 10:41:37 -0500 (Thu, 02 Sep 2004) $\r
+// $Revision: 24874 $\r
+\r
+#include <boost/mpl/aux_/config/workaround.hpp>\r
+\r
+#if    !defined(BOOST_MPL_CFG_BCC590_WORKAROUNDS) \\r
+    && !defined(BOOST_MPL_PREPROCESSING_MODE) \\r
+    && BOOST_WORKAROUND(__BORLANDC__, >= 0x590) \\r
+    && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))\r
+\r
+#   define BOOST_MPL_CFG_BCC590_WORKAROUNDS\r
+\r
+#endif\r
+\r
+#endif // BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/advance_backward.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/advance_backward.hpp
new file mode 100644 (file)
index 0000000..d4666be
--- /dev/null
@@ -0,0 +1,97 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "advance_backward.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl { namespace aux {\r
+\r
+template< long N > struct advance_backward;\r
+template<>\r
+struct advance_backward<0>\r
+{\r
+    template< typename Iterator > struct apply\r
+    {\r
+        typedef Iterator iter0;\r
+        typedef iter0 type;\r
+    };\r
+};\r
+\r
+template<>\r
+struct advance_backward<1>\r
+{\r
+    template< typename Iterator > struct apply\r
+    {\r
+        typedef Iterator iter0;\r
+        typedef typename prior<iter0>::type iter1;\r
+        typedef iter1 type;\r
+    };\r
+};\r
+\r
+template<>\r
+struct advance_backward<2>\r
+{\r
+    template< typename Iterator > struct apply\r
+    {\r
+        typedef Iterator iter0;\r
+        typedef typename prior<iter0>::type iter1;\r
+        typedef typename prior<iter1>::type iter2;\r
+        typedef iter2 type;\r
+    };\r
+};\r
+\r
+template<>\r
+struct advance_backward<3>\r
+{\r
+    template< typename Iterator > struct apply\r
+    {\r
+        typedef Iterator iter0;\r
+        typedef typename prior<iter0>::type iter1;\r
+        typedef typename prior<iter1>::type iter2;\r
+        typedef typename prior<iter2>::type iter3;\r
+        typedef iter3 type;\r
+    };\r
+};\r
+\r
+template<>\r
+struct advance_backward<4>\r
+{\r
+    template< typename Iterator > struct apply\r
+    {\r
+        typedef Iterator iter0;\r
+        typedef typename prior<iter0>::type iter1;\r
+        typedef typename prior<iter1>::type iter2;\r
+        typedef typename prior<iter2>::type iter3;\r
+        typedef typename prior<iter3>::type iter4;\r
+        typedef iter4 type;\r
+    };\r
+};\r
+\r
+template< long N >\r
+struct advance_backward\r
+{\r
+    template< typename Iterator > struct apply\r
+    {\r
+        typedef typename apply_wrap1<\r
+              advance_backward<4>\r
+            , Iterator\r
+            >::type chunk_result_;\r
+\r
+        typedef typename apply_wrap1<\r
+              advance_backward<(\r
+                (N - 4) < 0\r
+                    ? 0\r
+                    : N - 4\r
+                    )>\r
+            , chunk_result_\r
+            >::type type;\r
+    };\r
+};\r
+\r
+}}}\r
+\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/advance_forward.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/advance_forward.hpp
new file mode 100644 (file)
index 0000000..1424fc1
--- /dev/null
@@ -0,0 +1,97 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "advance_forward.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl { namespace aux {\r
+\r
+template< long N > struct advance_forward;\r
+template<>\r
+struct advance_forward<0>\r
+{\r
+    template< typename Iterator > struct apply\r
+    {\r
+        typedef Iterator iter0;\r
+        typedef iter0 type;\r
+    };\r
+};\r
+\r
+template<>\r
+struct advance_forward<1>\r
+{\r
+    template< typename Iterator > struct apply\r
+    {\r
+        typedef Iterator iter0;\r
+        typedef typename next<iter0>::type iter1;\r
+        typedef iter1 type;\r
+    };\r
+};\r
+\r
+template<>\r
+struct advance_forward<2>\r
+{\r
+    template< typename Iterator > struct apply\r
+    {\r
+        typedef Iterator iter0;\r
+        typedef typename next<iter0>::type iter1;\r
+        typedef typename next<iter1>::type iter2;\r
+        typedef iter2 type;\r
+    };\r
+};\r
+\r
+template<>\r
+struct advance_forward<3>\r
+{\r
+    template< typename Iterator > struct apply\r
+    {\r
+        typedef Iterator iter0;\r
+        typedef typename next<iter0>::type iter1;\r
+        typedef typename next<iter1>::type iter2;\r
+        typedef typename next<iter2>::type iter3;\r
+        typedef iter3 type;\r
+    };\r
+};\r
+\r
+template<>\r
+struct advance_forward<4>\r
+{\r
+    template< typename Iterator > struct apply\r
+    {\r
+        typedef Iterator iter0;\r
+        typedef typename next<iter0>::type iter1;\r
+        typedef typename next<iter1>::type iter2;\r
+        typedef typename next<iter2>::type iter3;\r
+        typedef typename next<iter3>::type iter4;\r
+        typedef iter4 type;\r
+    };\r
+};\r
+\r
+template< long N >\r
+struct advance_forward\r
+{\r
+    template< typename Iterator > struct apply\r
+    {\r
+        typedef typename apply_wrap1<\r
+              advance_forward<4>\r
+            , Iterator\r
+            >::type chunk_result_;\r
+\r
+        typedef typename apply_wrap1<\r
+              advance_forward<(\r
+                (N - 4) < 0\r
+                    ? 0\r
+                    : N - 4\r
+                    )>\r
+            , chunk_result_\r
+            >::type type;\r
+    };\r
+};\r
+\r
+}}}\r
+\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/and.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/and.hpp
new file mode 100644 (file)
index 0000000..3ab3249
--- /dev/null
@@ -0,0 +1,69 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "and.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+namespace aux {\r
+\r
+template< bool C_, typename T1, typename T2, typename T3, typename T4 >\r
+struct and_impl\r
+    : false_\r
+{\r
+};\r
+\r
+template< typename T1, typename T2, typename T3, typename T4 >\r
+struct and_impl< true,T1,T2,T3,T4 >\r
+    : and_impl<\r
+          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value\r
+        , T2, T3, T4\r
+        , true_\r
+        >\r
+{\r
+};\r
+\r
+template<>\r
+struct and_impl<\r
+          true\r
+        , true_, true_, true_, true_\r
+        >\r
+    : true_\r
+{\r
+};\r
+\r
+} // namespace aux\r
+\r
+template<\r
+      typename BOOST_MPL_AUX_NA_PARAM(T1)\r
+    , typename BOOST_MPL_AUX_NA_PARAM(T2)\r
+    , typename T3 = true_, typename T4 = true_, typename T5 = true_\r
+    >\r
+struct and_\r
+\r
+    : aux::and_impl<\r
+          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value\r
+        , T2, T3, T4, T5\r
+        >\r
+\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
+          5\r
+        , and_\r
+        , ( T1, T2, T3, T4, T5)\r
+        )\r
+};\r
+\r
+BOOST_MPL_AUX_NA_SPEC2(\r
+      2\r
+    , 5\r
+    , and_\r
+    )\r
+\r
+}}\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply.hpp
new file mode 100644 (file)
index 0000000..844db68
--- /dev/null
@@ -0,0 +1,169 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "apply.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename F\r
+    >\r
+struct apply0\r
+\r
+    : apply_wrap0<\r
+          typename lambda<F>::type\r
+       \r
+        >\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
+          1\r
+        , apply0\r
+        , (F )\r
+        )\r
+};\r
+\r
+template<\r
+      typename F\r
+    >\r
+struct apply< F,na,na,na,na,na >\r
+    : apply0<F>\r
+{\r
+};\r
+\r
+template<\r
+      typename F, typename T1\r
+    >\r
+struct apply1\r
+\r
+    : apply_wrap1<\r
+          typename lambda<F>::type\r
+        , T1\r
+        >\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
+          2\r
+        , apply1\r
+        , (F, T1)\r
+        )\r
+};\r
+\r
+template<\r
+      typename F, typename T1\r
+    >\r
+struct apply< F,T1,na,na,na,na >\r
+    : apply1< F,T1 >\r
+{\r
+};\r
+\r
+template<\r
+      typename F, typename T1, typename T2\r
+    >\r
+struct apply2\r
+\r
+    : apply_wrap2<\r
+          typename lambda<F>::type\r
+        , T1, T2\r
+        >\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
+          3\r
+        , apply2\r
+        , (F, T1, T2)\r
+        )\r
+};\r
+\r
+template<\r
+      typename F, typename T1, typename T2\r
+    >\r
+struct apply< F,T1,T2,na,na,na >\r
+    : apply2< F,T1,T2 >\r
+{\r
+};\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3\r
+    >\r
+struct apply3\r
+\r
+    : apply_wrap3<\r
+          typename lambda<F>::type\r
+        , T1, T2, T3\r
+        >\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
+          4\r
+        , apply3\r
+        , (F, T1, T2, T3)\r
+        )\r
+};\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3\r
+    >\r
+struct apply< F,T1,T2,T3,na,na >\r
+    : apply3< F,T1,T2,T3 >\r
+{\r
+};\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename T4\r
+    >\r
+struct apply4\r
+\r
+    : apply_wrap4<\r
+          typename lambda<F>::type\r
+        , T1, T2, T3, T4\r
+        >\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
+          5\r
+        , apply4\r
+        , (F, T1, T2, T3, T4)\r
+        )\r
+};\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename T4\r
+    >\r
+struct apply< F,T1,T2,T3,T4,na >\r
+    : apply4< F,T1,T2,T3,T4 >\r
+{\r
+};\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5\r
+    >\r
+struct apply5\r
+\r
+    : apply_wrap5<\r
+          typename lambda<F>::type\r
+        , T1, T2, T3, T4, T5\r
+        >\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
+          6\r
+        , apply5\r
+        , (F, T1, T2, T3, T4, T5)\r
+        )\r
+};\r
+\r
+/// primary template (not a specialization!)\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5\r
+    >\r
+struct apply\r
+    : apply5< F,T1,T2,T3,T4,T5 >\r
+{\r
+};\r
+\r
+}}\r
+\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply_fwd.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply_fwd.hpp
new file mode 100644 (file)
index 0000000..80a2835
--- /dev/null
@@ -0,0 +1,52 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "apply_fwd.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename F, typename T1 = na, typename T2 = na, typename T3 = na\r
+    , typename T4 = na, typename T5 = na\r
+    >\r
+struct apply;\r
+\r
+template<\r
+      typename F\r
+    >\r
+struct apply0;\r
+\r
+template<\r
+      typename F, typename T1\r
+    >\r
+struct apply1;\r
+\r
+template<\r
+      typename F, typename T1, typename T2\r
+    >\r
+struct apply2;\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3\r
+    >\r
+struct apply3;\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename T4\r
+    >\r
+struct apply4;\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5\r
+    >\r
+struct apply5;\r
+\r
+}}\r
+\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply_wrap.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply_wrap.hpp
new file mode 100644 (file)
index 0000000..8e385bd
--- /dev/null
@@ -0,0 +1,456 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2008\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "apply_wrap.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      int N, typename F\r
+    >\r
+struct apply_wrap_impl0;\r
+\r
+template<\r
+      typename F\r
+    >\r
+struct apply_wrap_impl0<\r
+          0\r
+        , F\r
+       \r
+        >\r
+{\r
+    typedef typename F::template apply<\r
+         \r
+/// since the defaults are "lost", we have to pass *something* even for nullary\r
+/// metafunction classes\r
+        na\r
+        > type;\r
+};\r
+\r
+template<\r
+      typename F\r
+    >\r
+struct apply_wrap_impl0<\r
+          1\r
+        , F\r
+       \r
+        >\r
+{\r
+    typedef typename F::template apply<\r
+         \r
+        na\r
+        > type;\r
+};\r
+\r
+template<\r
+      typename F\r
+    >\r
+struct apply_wrap_impl0<\r
+          2\r
+        , F\r
+       \r
+        >\r
+{\r
+    typedef typename F::template apply<\r
+         \r
+        na, na\r
+\r
+        > type;\r
+};\r
+\r
+template<\r
+      typename F\r
+    >\r
+struct apply_wrap_impl0<\r
+          3\r
+        , F\r
+       \r
+        >\r
+{\r
+    typedef typename F::template apply<\r
+         \r
+        na, na, na\r
+\r
+        > type;\r
+};\r
+\r
+template<\r
+      typename F\r
+    >\r
+struct apply_wrap_impl0<\r
+          4\r
+        , F\r
+       \r
+        >\r
+{\r
+    typedef typename F::template apply<\r
+         \r
+        na, na, na, na\r
+\r
+        > type;\r
+};\r
+\r
+template<\r
+      typename F\r
+    >\r
+struct apply_wrap_impl0<\r
+          5\r
+        , F\r
+       \r
+        >\r
+{\r
+    typedef typename F::template apply<\r
+         \r
+        na, na, na, na, na\r
+\r
+        > type;\r
+};\r
+\r
+template<\r
+      typename F\r
+    >\r
+struct apply_wrap0\r
+    : apply_wrap_impl0<\r
+          ::boost::mpl::aux::arity< F,0 >::value\r
+        , F\r
+       \r
+        >::type\r
+{\r
+};\r
+\r
+template<\r
+      int N, typename F, typename T1\r
+    >\r
+struct apply_wrap_impl1;\r
+\r
+template<\r
+      typename F, typename T1\r
+    >\r
+struct apply_wrap_impl1<\r
+          1\r
+        , F\r
+        , T1\r
+        >\r
+{\r
+    typedef typename F::template apply<\r
+          T1\r
+        > type;\r
+};\r
+\r
+template<\r
+      typename F, typename T1\r
+    >\r
+struct apply_wrap_impl1<\r
+          2\r
+        , F\r
+        , T1\r
+        >\r
+{\r
+    typedef typename F::template apply<\r
+          T1\r
+        , na\r
+\r
+        > type;\r
+};\r
+\r
+template<\r
+      typename F, typename T1\r
+    >\r
+struct apply_wrap_impl1<\r
+          3\r
+        , F\r
+        , T1\r
+        >\r
+{\r
+    typedef typename F::template apply<\r
+          T1\r
+        , na, na\r
+\r
+        > type;\r
+};\r
+\r
+template<\r
+      typename F, typename T1\r
+    >\r
+struct apply_wrap_impl1<\r
+          4\r
+        , F\r
+        , T1\r
+        >\r
+{\r
+    typedef typename F::template apply<\r
+          T1\r
+        , na, na, na\r
+\r
+        > type;\r
+};\r
+\r
+template<\r
+      typename F, typename T1\r
+    >\r
+struct apply_wrap_impl1<\r
+          5\r
+        , F\r
+        , T1\r
+        >\r
+{\r
+    typedef typename F::template apply<\r
+          T1\r
+        , na, na, na, na\r
+\r
+        > type;\r
+};\r
+\r
+template<\r
+      typename F, typename T1\r
+    >\r
+struct apply_wrap1\r
+    : apply_wrap_impl1<\r
+          ::boost::mpl::aux::arity< F,1 >::value\r
+        , F\r
+        , T1\r
+        >::type\r
+{\r
+};\r
+\r
+template<\r
+      int N, typename F, typename T1, typename T2\r
+    >\r
+struct apply_wrap_impl2;\r
+\r
+template<\r
+      typename F, typename T1, typename T2\r
+    >\r
+struct apply_wrap_impl2<\r
+          2\r
+        , F\r
+        , T1, T2\r
+        >\r
+{\r
+    typedef typename F::template apply<\r
+          T1, T2\r
+\r
+        > type;\r
+};\r
+\r
+template<\r
+      typename F, typename T1, typename T2\r
+    >\r
+struct apply_wrap_impl2<\r
+          3\r
+        , F\r
+        , T1, T2\r
+        >\r
+{\r
+    typedef typename F::template apply<\r
+          T1, T2\r
+\r
+        , na\r
+\r
+        > type;\r
+};\r
+\r
+template<\r
+      typename F, typename T1, typename T2\r
+    >\r
+struct apply_wrap_impl2<\r
+          4\r
+        , F\r
+        , T1, T2\r
+        >\r
+{\r
+    typedef typename F::template apply<\r
+          T1, T2\r
+\r
+        , na, na\r
+\r
+        > type;\r
+};\r
+\r
+template<\r
+      typename F, typename T1, typename T2\r
+    >\r
+struct apply_wrap_impl2<\r
+          5\r
+        , F\r
+        , T1, T2\r
+        >\r
+{\r
+    typedef typename F::template apply<\r
+          T1, T2\r
+\r
+        , na, na, na\r
+\r
+        > type;\r
+};\r
+\r
+template<\r
+      typename F, typename T1, typename T2\r
+    >\r
+struct apply_wrap2\r
+    : apply_wrap_impl2<\r
+          ::boost::mpl::aux::arity< F,2 >::value\r
+        , F\r
+        , T1, T2\r
+        >::type\r
+{\r
+};\r
+\r
+template<\r
+      int N, typename F, typename T1, typename T2, typename T3\r
+    >\r
+struct apply_wrap_impl3;\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3\r
+    >\r
+struct apply_wrap_impl3<\r
+          3\r
+        , F\r
+        , T1, T2, T3\r
+        >\r
+{\r
+    typedef typename F::template apply<\r
+          T1, T2, T3\r
+\r
+        > type;\r
+};\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3\r
+    >\r
+struct apply_wrap_impl3<\r
+          4\r
+        , F\r
+        , T1, T2, T3\r
+        >\r
+{\r
+    typedef typename F::template apply<\r
+          T1, T2, T3\r
+\r
+        , na\r
+\r
+        > type;\r
+};\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3\r
+    >\r
+struct apply_wrap_impl3<\r
+          5\r
+        , F\r
+        , T1, T2, T3\r
+        >\r
+{\r
+    typedef typename F::template apply<\r
+          T1, T2, T3\r
+\r
+        , na, na\r
+\r
+        > type;\r
+};\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3\r
+    >\r
+struct apply_wrap3\r
+    : apply_wrap_impl3<\r
+          ::boost::mpl::aux::arity< F,3 >::value\r
+        , F\r
+        , T1, T2, T3\r
+        >::type\r
+{\r
+};\r
+\r
+template<\r
+      int N, typename F, typename T1, typename T2, typename T3, typename T4\r
+    >\r
+struct apply_wrap_impl4;\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename T4\r
+    >\r
+struct apply_wrap_impl4<\r
+          4\r
+        , F\r
+        , T1, T2, T3, T4\r
+        >\r
+{\r
+    typedef typename F::template apply<\r
+          T1, T2, T3, T4\r
+\r
+        > type;\r
+};\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename T4\r
+    >\r
+struct apply_wrap_impl4<\r
+          5\r
+        , F\r
+        , T1, T2, T3, T4\r
+        >\r
+{\r
+    typedef typename F::template apply<\r
+          T1, T2, T3, T4\r
+\r
+        , na\r
+\r
+        > type;\r
+};\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename T4\r
+    >\r
+struct apply_wrap4\r
+    : apply_wrap_impl4<\r
+          ::boost::mpl::aux::arity< F,4 >::value\r
+        , F\r
+        , T1, T2, T3, T4\r
+        >::type\r
+{\r
+};\r
+\r
+template<\r
+      int N, typename F, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5\r
+    >\r
+struct apply_wrap_impl5;\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5\r
+    >\r
+struct apply_wrap_impl5<\r
+          5\r
+        , F\r
+        , T1, T2, T3, T4, T5\r
+        >\r
+{\r
+    typedef typename F::template apply<\r
+          T1, T2, T3, T4, T5\r
+\r
+        > type;\r
+};\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5\r
+    >\r
+struct apply_wrap5\r
+    : apply_wrap_impl5<\r
+          ::boost::mpl::aux::arity< F,5 >::value\r
+        , F\r
+        , T1, T2, T3, T4, T5\r
+        >::type\r
+{\r
+};\r
+\r
+}}\r
+\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/arg.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/arg.hpp
new file mode 100644 (file)
index 0000000..c87ef00
--- /dev/null
@@ -0,0 +1,117 @@
+\r
+// Copyright Peter Dimov 2001-2002\r
+// Copyright Aleksey Gurtovoy 2001-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "arg.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN\r
+template<> struct arg< -1 >\r
+{\r
+    BOOST_STATIC_CONSTANT(int, value  = -1);\r
+    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)\r
+    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)\r
+\r
+    template<\r
+          typename U1, typename U2, typename U3, typename U4, typename U5\r
+        >\r
+    struct apply\r
+    {\r
+        typedef U1 type;\r
+        BOOST_MPL_AUX_ASSERT_NOT_NA(type);\r
+    };\r
+};\r
+\r
+template<> struct arg<1>\r
+{\r
+    BOOST_STATIC_CONSTANT(int, value  = 1);\r
+    typedef arg<2> next;\r
+    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)\r
+    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)\r
+\r
+    template<\r
+          typename U1, typename U2, typename U3, typename U4, typename U5\r
+        >\r
+    struct apply\r
+    {\r
+        typedef U1 type;\r
+        BOOST_MPL_AUX_ASSERT_NOT_NA(type);\r
+    };\r
+};\r
+\r
+template<> struct arg<2>\r
+{\r
+    BOOST_STATIC_CONSTANT(int, value  = 2);\r
+    typedef arg<3> next;\r
+    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)\r
+    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)\r
+\r
+    template<\r
+          typename U1, typename U2, typename U3, typename U4, typename U5\r
+        >\r
+    struct apply\r
+    {\r
+        typedef U2 type;\r
+        BOOST_MPL_AUX_ASSERT_NOT_NA(type);\r
+    };\r
+};\r
+\r
+template<> struct arg<3>\r
+{\r
+    BOOST_STATIC_CONSTANT(int, value  = 3);\r
+    typedef arg<4> next;\r
+    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)\r
+    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)\r
+\r
+    template<\r
+          typename U1, typename U2, typename U3, typename U4, typename U5\r
+        >\r
+    struct apply\r
+    {\r
+        typedef U3 type;\r
+        BOOST_MPL_AUX_ASSERT_NOT_NA(type);\r
+    };\r
+};\r
+\r
+template<> struct arg<4>\r
+{\r
+    BOOST_STATIC_CONSTANT(int, value  = 4);\r
+    typedef arg<5> next;\r
+    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)\r
+    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)\r
+\r
+    template<\r
+          typename U1, typename U2, typename U3, typename U4, typename U5\r
+        >\r
+    struct apply\r
+    {\r
+        typedef U4 type;\r
+        BOOST_MPL_AUX_ASSERT_NOT_NA(type);\r
+    };\r
+};\r
+\r
+template<> struct arg<5>\r
+{\r
+    BOOST_STATIC_CONSTANT(int, value  = 5);\r
+    typedef arg<6> next;\r
+    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)\r
+    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)\r
+\r
+    template<\r
+          typename U1, typename U2, typename U3, typename U4, typename U5\r
+        >\r
+    struct apply\r
+    {\r
+        typedef U5 type;\r
+        BOOST_MPL_AUX_ASSERT_NOT_NA(type);\r
+    };\r
+};\r
+\r
+BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)\r
+\r
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/basic_bind.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/basic_bind.hpp
new file mode 100644 (file)
index 0000000..a525a9f
--- /dev/null
@@ -0,0 +1,300 @@
+\r
+// Copyright Peter Dimov 2001\r
+// Copyright Aleksey Gurtovoy 2001-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "basic_bind.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+namespace aux {\r
+\r
+template<\r
+      typename T, typename U1, typename U2, typename U3, typename U4\r
+    , typename U5\r
+    >\r
+struct resolve_bind_arg\r
+{\r
+    typedef T type;\r
+};\r
+\r
+template<\r
+      int N, typename U1, typename U2, typename U3, typename U4, typename U5\r
+    >\r
+struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >\r
+{\r
+    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;\r
+};\r
+\r
+} // namespace aux\r
+\r
+template<\r
+      typename F\r
+    >\r
+struct bind0\r
+{\r
+    template<\r
+          typename U1, typename U2, typename U3, typename U4, typename U5\r
+        >\r
+    struct apply\r
+    {\r
+     private:\r
+        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;\r
+\r
+     public:\r
+        typedef typename apply_wrap0<\r
+              f_\r
+            >::type type;\r
+\r
+    };\r
+};\r
+\r
+namespace aux {\r
+\r
+template<\r
+      typename F, typename U1, typename U2, typename U3, typename U4\r
+    , typename U5\r
+    >\r
+struct resolve_bind_arg<\r
+      bind0<F>, U1, U2, U3, U4, U5\r
+    >\r
+{\r
+    typedef bind0<F> f_;\r
+    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
+};\r
+\r
+} // namespace aux\r
+\r
+BOOST_MPL_AUX_ARITY_SPEC(1, bind0)\r
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)\r
+\r
+template<\r
+      typename F, typename T1\r
+    >\r
+struct bind1\r
+{\r
+    template<\r
+          typename U1, typename U2, typename U3, typename U4, typename U5\r
+        >\r
+    struct apply\r
+    {\r
+     private:\r
+        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;\r
+        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;\r
+\r
+     public:\r
+        typedef typename apply_wrap1<\r
+              f_\r
+            , typename t1::type\r
+            >::type type;\r
+\r
+    };\r
+};\r
+\r
+namespace aux {\r
+\r
+template<\r
+      typename F, typename T1, typename U1, typename U2, typename U3\r
+    , typename U4, typename U5\r
+    >\r
+struct resolve_bind_arg<\r
+      bind1< F,T1 >, U1, U2, U3, U4, U5\r
+    >\r
+{\r
+    typedef bind1< F,T1 > f_;\r
+    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
+};\r
+\r
+} // namespace aux\r
+\r
+BOOST_MPL_AUX_ARITY_SPEC(2, bind1)\r
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)\r
+\r
+template<\r
+      typename F, typename T1, typename T2\r
+    >\r
+struct bind2\r
+{\r
+    template<\r
+          typename U1, typename U2, typename U3, typename U4, typename U5\r
+        >\r
+    struct apply\r
+    {\r
+     private:\r
+        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;\r
+        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;\r
+        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;\r
+\r
+     public:\r
+        typedef typename apply_wrap2<\r
+              f_\r
+            , typename t1::type, typename t2::type\r
+            >::type type;\r
+\r
+    };\r
+};\r
+\r
+namespace aux {\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename U1, typename U2\r
+    , typename U3, typename U4, typename U5\r
+    >\r
+struct resolve_bind_arg<\r
+      bind2< F,T1,T2 >, U1, U2, U3, U4, U5\r
+    >\r
+{\r
+    typedef bind2< F,T1,T2 > f_;\r
+    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
+};\r
+\r
+} // namespace aux\r
+\r
+BOOST_MPL_AUX_ARITY_SPEC(3, bind2)\r
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3\r
+    >\r
+struct bind3\r
+{\r
+    template<\r
+          typename U1, typename U2, typename U3, typename U4, typename U5\r
+        >\r
+    struct apply\r
+    {\r
+     private:\r
+        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;\r
+        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;\r
+        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;\r
+        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;\r
+\r
+     public:\r
+        typedef typename apply_wrap3<\r
+              f_\r
+            , typename t1::type, typename t2::type, typename t3::type\r
+            >::type type;\r
+\r
+    };\r
+};\r
+\r
+namespace aux {\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename U1\r
+    , typename U2, typename U3, typename U4, typename U5\r
+    >\r
+struct resolve_bind_arg<\r
+      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5\r
+    >\r
+{\r
+    typedef bind3< F,T1,T2,T3 > f_;\r
+    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
+};\r
+\r
+} // namespace aux\r
+\r
+BOOST_MPL_AUX_ARITY_SPEC(4, bind3)\r
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename T4\r
+    >\r
+struct bind4\r
+{\r
+    template<\r
+          typename U1, typename U2, typename U3, typename U4, typename U5\r
+        >\r
+    struct apply\r
+    {\r
+     private:\r
+        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;\r
+        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;\r
+        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;\r
+        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;\r
+        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;\r
+\r
+     public:\r
+        typedef typename apply_wrap4<\r
+              f_\r
+            , typename t1::type, typename t2::type, typename t3::type\r
+            , typename t4::type\r
+            >::type type;\r
+\r
+    };\r
+};\r
+\r
+namespace aux {\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename T4\r
+    , typename U1, typename U2, typename U3, typename U4, typename U5\r
+    >\r
+struct resolve_bind_arg<\r
+      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5\r
+    >\r
+{\r
+    typedef bind4< F,T1,T2,T3,T4 > f_;\r
+    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
+};\r
+\r
+} // namespace aux\r
+\r
+BOOST_MPL_AUX_ARITY_SPEC(5, bind4)\r
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5\r
+    >\r
+struct bind5\r
+{\r
+    template<\r
+          typename U1, typename U2, typename U3, typename U4, typename U5\r
+        >\r
+    struct apply\r
+    {\r
+     private:\r
+        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;\r
+        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;\r
+        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;\r
+        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;\r
+        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;\r
+        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;\r
+\r
+     public:\r
+        typedef typename apply_wrap5<\r
+              f_\r
+            , typename t1::type, typename t2::type, typename t3::type\r
+            , typename t4::type, typename t5::type\r
+            >::type type;\r
+\r
+    };\r
+};\r
+\r
+namespace aux {\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename U1, typename U2, typename U3, typename U4\r
+    , typename U5\r
+    >\r
+struct resolve_bind_arg<\r
+      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5\r
+    >\r
+{\r
+    typedef bind5< F,T1,T2,T3,T4,T5 > f_;\r
+    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
+};\r
+\r
+} // namespace aux\r
+\r
+BOOST_MPL_AUX_ARITY_SPEC(6, bind5)\r
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)\r
+}}\r
+\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/bind.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/bind.hpp
new file mode 100644 (file)
index 0000000..e04f409
--- /dev/null
@@ -0,0 +1,397 @@
+\r
+// Copyright Peter Dimov 2001\r
+// Copyright Aleksey Gurtovoy 2001-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "bind.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+namespace aux {\r
+\r
+template<\r
+      typename T, typename U1, typename U2, typename U3, typename U4\r
+    , typename U5\r
+    >\r
+struct resolve_bind_arg\r
+{\r
+    typedef T type;\r
+};\r
+\r
+template<\r
+      typename T\r
+    , typename Arg\r
+    >\r
+struct replace_unnamed_arg\r
+{\r
+    typedef Arg next;\r
+    typedef T type;\r
+};\r
+\r
+template<\r
+      typename Arg\r
+    >\r
+struct replace_unnamed_arg< arg< -1 >, Arg >\r
+{\r
+    typedef typename Arg::next next;\r
+    typedef Arg type;\r
+};\r
+\r
+template<\r
+      int N, typename U1, typename U2, typename U3, typename U4, typename U5\r
+    >\r
+struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >\r
+{\r
+    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;\r
+};\r
+\r
+} // namespace aux\r
+\r
+template<\r
+      typename F\r
+    >\r
+struct bind0\r
+{\r
+    template<\r
+          typename U1, typename U2, typename U3, typename U4, typename U5\r
+        >\r
+    struct apply\r
+    {\r
+     private:\r
+        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;\r
+        typedef typename r0::type a0;\r
+        typedef typename r0::next n1;\r
+        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;\r
+        ///\r
+     public:\r
+        typedef typename apply_wrap0<\r
+              f_\r
+            >::type type;\r
+\r
+    };\r
+};\r
+\r
+namespace aux {\r
+\r
+template<\r
+      typename F, typename U1, typename U2, typename U3, typename U4\r
+    , typename U5\r
+    >\r
+struct resolve_bind_arg<\r
+      bind0<F>, U1, U2, U3, U4, U5\r
+    >\r
+{\r
+    typedef bind0<F> f_;\r
+    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
+};\r
+\r
+} // namespace aux\r
+\r
+BOOST_MPL_AUX_ARITY_SPEC(1, bind0)\r
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)\r
+\r
+template<\r
+      typename F, typename T1\r
+    >\r
+struct bind1\r
+{\r
+    template<\r
+          typename U1, typename U2, typename U3, typename U4, typename U5\r
+        >\r
+    struct apply\r
+    {\r
+     private:\r
+        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;\r
+        typedef typename r0::type a0;\r
+        typedef typename r0::next n1;\r
+        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;\r
+        ///\r
+        typedef aux::replace_unnamed_arg< T1,n1 > r1;\r
+        typedef typename r1::type a1;\r
+        typedef typename r1::next n2;\r
+        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;\r
+        ///\r
+     public:\r
+        typedef typename apply_wrap1<\r
+              f_\r
+            , typename t1::type\r
+            >::type type;\r
+\r
+    };\r
+};\r
+\r
+namespace aux {\r
+\r
+template<\r
+      typename F, typename T1, typename U1, typename U2, typename U3\r
+    , typename U4, typename U5\r
+    >\r
+struct resolve_bind_arg<\r
+      bind1< F,T1 >, U1, U2, U3, U4, U5\r
+    >\r
+{\r
+    typedef bind1< F,T1 > f_;\r
+    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
+};\r
+\r
+} // namespace aux\r
+\r
+BOOST_MPL_AUX_ARITY_SPEC(2, bind1)\r
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)\r
+\r
+template<\r
+      typename F, typename T1, typename T2\r
+    >\r
+struct bind2\r
+{\r
+    template<\r
+          typename U1, typename U2, typename U3, typename U4, typename U5\r
+        >\r
+    struct apply\r
+    {\r
+     private:\r
+        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;\r
+        typedef typename r0::type a0;\r
+        typedef typename r0::next n1;\r
+        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;\r
+        ///\r
+        typedef aux::replace_unnamed_arg< T1,n1 > r1;\r
+        typedef typename r1::type a1;\r
+        typedef typename r1::next n2;\r
+        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;\r
+        ///\r
+        typedef aux::replace_unnamed_arg< T2,n2 > r2;\r
+        typedef typename r2::type a2;\r
+        typedef typename r2::next n3;\r
+        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;\r
+        ///\r
+     public:\r
+        typedef typename apply_wrap2<\r
+              f_\r
+            , typename t1::type, typename t2::type\r
+            >::type type;\r
+\r
+    };\r
+};\r
+\r
+namespace aux {\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename U1, typename U2\r
+    , typename U3, typename U4, typename U5\r
+    >\r
+struct resolve_bind_arg<\r
+      bind2< F,T1,T2 >, U1, U2, U3, U4, U5\r
+    >\r
+{\r
+    typedef bind2< F,T1,T2 > f_;\r
+    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
+};\r
+\r
+} // namespace aux\r
+\r
+BOOST_MPL_AUX_ARITY_SPEC(3, bind2)\r
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3\r
+    >\r
+struct bind3\r
+{\r
+    template<\r
+          typename U1, typename U2, typename U3, typename U4, typename U5\r
+        >\r
+    struct apply\r
+    {\r
+     private:\r
+        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;\r
+        typedef typename r0::type a0;\r
+        typedef typename r0::next n1;\r
+        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;\r
+        ///\r
+        typedef aux::replace_unnamed_arg< T1,n1 > r1;\r
+        typedef typename r1::type a1;\r
+        typedef typename r1::next n2;\r
+        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;\r
+        ///\r
+        typedef aux::replace_unnamed_arg< T2,n2 > r2;\r
+        typedef typename r2::type a2;\r
+        typedef typename r2::next n3;\r
+        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;\r
+        ///\r
+        typedef aux::replace_unnamed_arg< T3,n3 > r3;\r
+        typedef typename r3::type a3;\r
+        typedef typename r3::next n4;\r
+        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;\r
+        ///\r
+     public:\r
+        typedef typename apply_wrap3<\r
+              f_\r
+            , typename t1::type, typename t2::type, typename t3::type\r
+            >::type type;\r
+\r
+    };\r
+};\r
+\r
+namespace aux {\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename U1\r
+    , typename U2, typename U3, typename U4, typename U5\r
+    >\r
+struct resolve_bind_arg<\r
+      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5\r
+    >\r
+{\r
+    typedef bind3< F,T1,T2,T3 > f_;\r
+    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
+};\r
+\r
+} // namespace aux\r
+\r
+BOOST_MPL_AUX_ARITY_SPEC(4, bind3)\r
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename T4\r
+    >\r
+struct bind4\r
+{\r
+    template<\r
+          typename U1, typename U2, typename U3, typename U4, typename U5\r
+        >\r
+    struct apply\r
+    {\r
+     private:\r
+        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;\r
+        typedef typename r0::type a0;\r
+        typedef typename r0::next n1;\r
+        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;\r
+        ///\r
+        typedef aux::replace_unnamed_arg< T1,n1 > r1;\r
+        typedef typename r1::type a1;\r
+        typedef typename r1::next n2;\r
+        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;\r
+        ///\r
+        typedef aux::replace_unnamed_arg< T2,n2 > r2;\r
+        typedef typename r2::type a2;\r
+        typedef typename r2::next n3;\r
+        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;\r
+        ///\r
+        typedef aux::replace_unnamed_arg< T3,n3 > r3;\r
+        typedef typename r3::type a3;\r
+        typedef typename r3::next n4;\r
+        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;\r
+        ///\r
+        typedef aux::replace_unnamed_arg< T4,n4 > r4;\r
+        typedef typename r4::type a4;\r
+        typedef typename r4::next n5;\r
+        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;\r
+        ///\r
+     public:\r
+        typedef typename apply_wrap4<\r
+              f_\r
+            , typename t1::type, typename t2::type, typename t3::type\r
+            , typename t4::type\r
+            >::type type;\r
+\r
+    };\r
+};\r
+\r
+namespace aux {\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename T4\r
+    , typename U1, typename U2, typename U3, typename U4, typename U5\r
+    >\r
+struct resolve_bind_arg<\r
+      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5\r
+    >\r
+{\r
+    typedef bind4< F,T1,T2,T3,T4 > f_;\r
+    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
+};\r
+\r
+} // namespace aux\r
+\r
+BOOST_MPL_AUX_ARITY_SPEC(5, bind4)\r
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5\r
+    >\r
+struct bind5\r
+{\r
+    template<\r
+          typename U1, typename U2, typename U3, typename U4, typename U5\r
+        >\r
+    struct apply\r
+    {\r
+     private:\r
+        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;\r
+        typedef typename r0::type a0;\r
+        typedef typename r0::next n1;\r
+        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;\r
+        ///\r
+        typedef aux::replace_unnamed_arg< T1,n1 > r1;\r
+        typedef typename r1::type a1;\r
+        typedef typename r1::next n2;\r
+        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;\r
+        ///\r
+        typedef aux::replace_unnamed_arg< T2,n2 > r2;\r
+        typedef typename r2::type a2;\r
+        typedef typename r2::next n3;\r
+        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;\r
+        ///\r
+        typedef aux::replace_unnamed_arg< T3,n3 > r3;\r
+        typedef typename r3::type a3;\r
+        typedef typename r3::next n4;\r
+        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;\r
+        ///\r
+        typedef aux::replace_unnamed_arg< T4,n4 > r4;\r
+        typedef typename r4::type a4;\r
+        typedef typename r4::next n5;\r
+        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;\r
+        ///\r
+        typedef aux::replace_unnamed_arg< T5,n5 > r5;\r
+        typedef typename r5::type a5;\r
+        typedef typename r5::next n6;\r
+        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;\r
+        ///\r
+     public:\r
+        typedef typename apply_wrap5<\r
+              f_\r
+            , typename t1::type, typename t2::type, typename t3::type\r
+            , typename t4::type, typename t5::type\r
+            >::type type;\r
+\r
+    };\r
+};\r
+\r
+namespace aux {\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename U1, typename U2, typename U3, typename U4\r
+    , typename U5\r
+    >\r
+struct resolve_bind_arg<\r
+      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5\r
+    >\r
+{\r
+    typedef bind5< F,T1,T2,T3,T4,T5 > f_;\r
+    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;\r
+};\r
+\r
+} // namespace aux\r
+\r
+BOOST_MPL_AUX_ARITY_SPEC(6, bind5)\r
+BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)\r
+}}\r
+\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/bind_fwd.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/bind_fwd.hpp
new file mode 100644 (file)
index 0000000..77802c5
--- /dev/null
@@ -0,0 +1,46 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "bind_fwd.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename F\r
+    >\r
+struct bind0;\r
+\r
+template<\r
+      typename F, typename T1\r
+    >\r
+struct bind1;\r
+\r
+template<\r
+      typename F, typename T1, typename T2\r
+    >\r
+struct bind2;\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3\r
+    >\r
+struct bind3;\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename T4\r
+    >\r
+struct bind4;\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5\r
+    >\r
+struct bind5;\r
+\r
+}}\r
+\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitand.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitand.hpp
new file mode 100644 (file)
index 0000000..da520a7
--- /dev/null
@@ -0,0 +1,147 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+// Copyright Jaap Suter 2003\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "bitand.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename Tag1\r
+    , typename Tag2\r
+    >\r
+struct bitand_impl\r
+    : if_c<\r
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
+            )\r
+\r
+        , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
+        , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
+        >::type\r
+{\r
+};\r
+\r
+/// for Digital Mars C++/compilers with no CTPS/TTP support\r
+template<> struct bitand_impl< na,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct bitand_impl< na,Tag >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct bitand_impl< Tag,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename T > struct bitand_tag\r
+{\r
+    typedef typename T::tag type;\r
+};\r
+\r
+template<\r
+      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
+    , typename N3 = na, typename N4 = na, typename N5 = na\r
+    >\r
+struct bitand_\r
+    : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5>\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
+          5\r
+        , bitand_\r
+        , ( N1, N2, N3, N4, N5 )\r
+        )\r
+};\r
+\r
+template<\r
+      typename N1, typename N2, typename N3, typename N4\r
+    >\r
+struct bitand_< N1,N2,N3,N4,na >\r
+\r
+    : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
+          5\r
+        , bitand_\r
+        , ( N1, N2, N3, N4, na )\r
+        )\r
+};\r
+\r
+template<\r
+      typename N1, typename N2, typename N3\r
+    >\r
+struct bitand_< N1,N2,N3,na,na >\r
+\r
+    : bitand_< bitand_< N1,N2 >, N3>\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
+          5\r
+        , bitand_\r
+        , ( N1, N2, N3, na, na )\r
+        )\r
+};\r
+\r
+template<\r
+      typename N1, typename N2\r
+    >\r
+struct bitand_< N1,N2,na,na,na >\r
+    : bitand_impl<\r
+          typename bitand_tag<N1>::type\r
+        , typename bitand_tag<N2>::type\r
+        >::template apply< N1,N2 >::type\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
+          5\r
+        , bitand_\r
+        , ( N1, N2, na, na, na )\r
+        )\r
+\r
+};\r
+\r
+BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)\r
+\r
+}}\r
+\r
+namespace boost { namespace mpl {\r
+template<>\r
+struct bitand_impl< integral_c_tag,integral_c_tag >\r
+{\r
+    template< typename N1, typename N2 > struct apply\r
+\r
+        : integral_c<\r
+              typename aux::largest_int<\r
+                  typename N1::value_type\r
+                , typename N2::value_type\r
+                >::type\r
+            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value\r
+                  & BOOST_MPL_AUX_VALUE_WKND(N2)::value\r
+                )\r
+            >\r
+    {\r
+    };\r
+};\r
+\r
+}}\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitor.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitor.hpp
new file mode 100644 (file)
index 0000000..9c2e186
--- /dev/null
@@ -0,0 +1,147 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+// Copyright Jaap Suter 2003\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "bitor.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename Tag1\r
+    , typename Tag2\r
+    >\r
+struct bitor_impl\r
+    : if_c<\r
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
+            )\r
+\r
+        , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
+        , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
+        >::type\r
+{\r
+};\r
+\r
+/// for Digital Mars C++/compilers with no CTPS/TTP support\r
+template<> struct bitor_impl< na,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct bitor_impl< na,Tag >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct bitor_impl< Tag,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename T > struct bitor_tag\r
+{\r
+    typedef typename T::tag type;\r
+};\r
+\r
+template<\r
+      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
+    , typename N3 = na, typename N4 = na, typename N5 = na\r
+    >\r
+struct bitor_\r
+    : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5>\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
+          5\r
+        , bitor_\r
+        , ( N1, N2, N3, N4, N5 )\r
+        )\r
+};\r
+\r
+template<\r
+      typename N1, typename N2, typename N3, typename N4\r
+    >\r
+struct bitor_< N1,N2,N3,N4,na >\r
+\r
+    : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
+          5\r
+        , bitor_\r
+        , ( N1, N2, N3, N4, na )\r
+        )\r
+};\r
+\r
+template<\r
+      typename N1, typename N2, typename N3\r
+    >\r
+struct bitor_< N1,N2,N3,na,na >\r
+\r
+    : bitor_< bitor_< N1,N2 >, N3>\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
+          5\r
+        , bitor_\r
+        , ( N1, N2, N3, na, na )\r
+        )\r
+};\r
+\r
+template<\r
+      typename N1, typename N2\r
+    >\r
+struct bitor_< N1,N2,na,na,na >\r
+    : bitor_impl<\r
+          typename bitor_tag<N1>::type\r
+        , typename bitor_tag<N2>::type\r
+        >::template apply< N1,N2 >::type\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
+          5\r
+        , bitor_\r
+        , ( N1, N2, na, na, na )\r
+        )\r
+\r
+};\r
+\r
+BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)\r
+\r
+}}\r
+\r
+namespace boost { namespace mpl {\r
+template<>\r
+struct bitor_impl< integral_c_tag,integral_c_tag >\r
+{\r
+    template< typename N1, typename N2 > struct apply\r
+\r
+        : integral_c<\r
+              typename aux::largest_int<\r
+                  typename N1::value_type\r
+                , typename N2::value_type\r
+                >::type\r
+            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value\r
+                  | BOOST_MPL_AUX_VALUE_WKND(N2)::value\r
+                )\r
+            >\r
+    {\r
+    };\r
+};\r
+\r
+}}\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitxor.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitxor.hpp
new file mode 100644 (file)
index 0000000..b7f8ff4
--- /dev/null
@@ -0,0 +1,147 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+// Copyright Jaap Suter 2003\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "bitxor.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename Tag1\r
+    , typename Tag2\r
+    >\r
+struct bitxor_impl\r
+    : if_c<\r
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
+            )\r
+\r
+        , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
+        , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
+        >::type\r
+{\r
+};\r
+\r
+/// for Digital Mars C++/compilers with no CTPS/TTP support\r
+template<> struct bitxor_impl< na,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct bitxor_impl< na,Tag >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct bitxor_impl< Tag,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename T > struct bitxor_tag\r
+{\r
+    typedef typename T::tag type;\r
+};\r
+\r
+template<\r
+      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
+    , typename N3 = na, typename N4 = na, typename N5 = na\r
+    >\r
+struct bitxor_\r
+    : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5>\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
+          5\r
+        , bitxor_\r
+        , ( N1, N2, N3, N4, N5 )\r
+        )\r
+};\r
+\r
+template<\r
+      typename N1, typename N2, typename N3, typename N4\r
+    >\r
+struct bitxor_< N1,N2,N3,N4,na >\r
+\r
+    : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
+          5\r
+        , bitxor_\r
+        , ( N1, N2, N3, N4, na )\r
+        )\r
+};\r
+\r
+template<\r
+      typename N1, typename N2, typename N3\r
+    >\r
+struct bitxor_< N1,N2,N3,na,na >\r
+\r
+    : bitxor_< bitxor_< N1,N2 >, N3>\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
+          5\r
+        , bitxor_\r
+        , ( N1, N2, N3, na, na )\r
+        )\r
+};\r
+\r
+template<\r
+      typename N1, typename N2\r
+    >\r
+struct bitxor_< N1,N2,na,na,na >\r
+    : bitxor_impl<\r
+          typename bitxor_tag<N1>::type\r
+        , typename bitxor_tag<N2>::type\r
+        >::template apply< N1,N2 >::type\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
+          5\r
+        , bitxor_\r
+        , ( N1, N2, na, na, na )\r
+        )\r
+\r
+};\r
+\r
+BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)\r
+\r
+}}\r
+\r
+namespace boost { namespace mpl {\r
+template<>\r
+struct bitxor_impl< integral_c_tag,integral_c_tag >\r
+{\r
+    template< typename N1, typename N2 > struct apply\r
+\r
+        : integral_c<\r
+              typename aux::largest_int<\r
+                  typename N1::value_type\r
+                , typename N2::value_type\r
+                >::type\r
+            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value\r
+                  ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value\r
+                )\r
+            >\r
+    {\r
+    };\r
+};\r
+\r
+}}\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/deque.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/deque.hpp
new file mode 100644 (file)
index 0000000..0b0de67
--- /dev/null
@@ -0,0 +1,323 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "deque.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na\r
+    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na\r
+    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na\r
+    , typename T12 = na, typename T13 = na, typename T14 = na\r
+    , typename T15 = na, typename T16 = na, typename T17 = na\r
+    , typename T18 = na, typename T19 = na\r
+    >\r
+struct deque;\r
+\r
+template<\r
+     \r
+    >\r
+struct deque<\r
+          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : vector0<  >\r
+{\r
+    typedef vector0<  >::type type;\r
+};\r
+\r
+template<\r
+      typename T0\r
+    >\r
+struct deque<\r
+          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : vector1<T0>\r
+{\r
+    typedef typename vector1<T0>::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1\r
+    >\r
+struct deque<\r
+          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : vector2< T0,T1 >\r
+{\r
+    typedef typename vector2< T0,T1 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2\r
+    >\r
+struct deque<\r
+          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : vector3< T0,T1,T2 >\r
+{\r
+    typedef typename vector3< T0,T1,T2 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3\r
+    >\r
+struct deque<\r
+          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : vector4< T0,T1,T2,T3 >\r
+{\r
+    typedef typename vector4< T0,T1,T2,T3 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    >\r
+struct deque<\r
+          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : vector5< T0,T1,T2,T3,T4 >\r
+{\r
+    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5\r
+    >\r
+struct deque<\r
+          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : vector6< T0,T1,T2,T3,T4,T5 >\r
+{\r
+    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6\r
+    >\r
+struct deque<\r
+          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : vector7< T0,T1,T2,T3,T4,T5,T6 >\r
+{\r
+    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7\r
+    >\r
+struct deque<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >\r
+{\r
+    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8\r
+    >\r
+struct deque<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >\r
+{\r
+    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    >\r
+struct deque<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >\r
+{\r
+    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10\r
+    >\r
+struct deque<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >\r
+{\r
+    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11\r
+    >\r
+struct deque<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na\r
+        , na, na, na, na\r
+        >\r
+    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >\r
+{\r
+    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12\r
+    >\r
+struct deque<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na\r
+        , na, na, na, na\r
+        >\r
+    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >\r
+{\r
+    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13\r
+    >\r
+struct deque<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na\r
+        , na, na, na, na\r
+        >\r
+    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >\r
+{\r
+    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    >\r
+struct deque<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na\r
+        , na, na, na, na\r
+        >\r
+    : vector15<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        >\r
+{\r
+    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    , typename T15\r
+    >\r
+struct deque<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, na, na, na, na\r
+        >\r
+    : vector16<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15\r
+        >\r
+{\r
+    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    , typename T15, typename T16\r
+    >\r
+struct deque<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, na, na, na\r
+        >\r
+    : vector17<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16\r
+        >\r
+{\r
+    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    , typename T15, typename T16, typename T17\r
+    >\r
+struct deque<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, T17, na, na\r
+        >\r
+    : vector18<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, T17\r
+        >\r
+{\r
+    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    , typename T15, typename T16, typename T17, typename T18\r
+    >\r
+struct deque<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, T17, T18, na\r
+        >\r
+    : vector19<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, T17, T18\r
+        >\r
+{\r
+    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;\r
+};\r
+\r
+/// primary template (not a specialization!)\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    , typename T15, typename T16, typename T17, typename T18, typename T19\r
+    >\r
+struct deque\r
+    : vector20<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, T17, T18, T19\r
+        >\r
+{\r
+    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;\r
+};\r
+\r
+}}\r
+\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/divides.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/divides.hpp
new file mode 100644 (file)
index 0000000..74765f9
--- /dev/null
@@ -0,0 +1,146 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "divides.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename Tag1\r
+    , typename Tag2\r
+    >\r
+struct divides_impl\r
+    : if_c<\r
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
+            )\r
+\r
+        , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
+        , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
+        >::type\r
+{\r
+};\r
+\r
+/// for Digital Mars C++/compilers with no CTPS/TTP support\r
+template<> struct divides_impl< na,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct divides_impl< na,Tag >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct divides_impl< Tag,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename T > struct divides_tag\r
+{\r
+    typedef typename T::tag type;\r
+};\r
+\r
+template<\r
+      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
+    , typename N3 = na, typename N4 = na, typename N5 = na\r
+    >\r
+struct divides\r
+    : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5>\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
+          5\r
+        , divides\r
+        , ( N1, N2, N3, N4, N5 )\r
+        )\r
+};\r
+\r
+template<\r
+      typename N1, typename N2, typename N3, typename N4\r
+    >\r
+struct divides< N1,N2,N3,N4,na >\r
+\r
+    : divides< divides< divides< N1,N2 >, N3>, N4>\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
+          5\r
+        , divides\r
+        , ( N1, N2, N3, N4, na )\r
+        )\r
+};\r
+\r
+template<\r
+      typename N1, typename N2, typename N3\r
+    >\r
+struct divides< N1,N2,N3,na,na >\r
+\r
+    : divides< divides< N1,N2 >, N3>\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
+          5\r
+        , divides\r
+        , ( N1, N2, N3, na, na )\r
+        )\r
+};\r
+\r
+template<\r
+      typename N1, typename N2\r
+    >\r
+struct divides< N1,N2,na,na,na >\r
+    : divides_impl<\r
+          typename divides_tag<N1>::type\r
+        , typename divides_tag<N2>::type\r
+        >::template apply< N1,N2 >::type\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
+          5\r
+        , divides\r
+        , ( N1, N2, na, na, na )\r
+        )\r
+\r
+};\r
+\r
+BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)\r
+\r
+}}\r
+\r
+namespace boost { namespace mpl {\r
+template<>\r
+struct divides_impl< integral_c_tag,integral_c_tag >\r
+{\r
+    template< typename N1, typename N2 > struct apply\r
+\r
+        : integral_c<\r
+              typename aux::largest_int<\r
+                  typename N1::value_type\r
+                , typename N2::value_type\r
+                >::type\r
+            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value\r
+                  / BOOST_MPL_AUX_VALUE_WKND(N2)::value\r
+                )\r
+            >\r
+    {\r
+    };\r
+};\r
+\r
+}}\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/equal_to.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/equal_to.hpp
new file mode 100644 (file)
index 0000000..6933512
--- /dev/null
@@ -0,0 +1,94 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "equal_to.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename Tag1\r
+    , typename Tag2\r
+    >\r
+struct equal_to_impl\r
+    : if_c<\r
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
+            )\r
+\r
+        , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
+        , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
+        >::type\r
+{\r
+};\r
+\r
+/// for Digital Mars C++/compilers with no CTPS/TTP support\r
+template<> struct equal_to_impl< na,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct equal_to_impl< na,Tag >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct equal_to_impl< Tag,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename T > struct equal_to_tag\r
+{\r
+    typedef typename T::tag type;\r
+};\r
+\r
+template<\r
+      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
+    >\r
+struct equal_to\r
+\r
+    : equal_to_impl<\r
+          typename equal_to_tag<N1>::type\r
+        , typename equal_to_tag<N2>::type\r
+        >::template apply< N1,N2 >::type\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))\r
+\r
+};\r
+\r
+BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)\r
+\r
+}}\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<>\r
+struct equal_to_impl< integral_c_tag,integral_c_tag >\r
+{\r
+    template< typename N1, typename N2 > struct apply\r
+\r
+        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value  == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >\r
+    {\r
+    };\r
+};\r
+\r
+}}\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/fold_impl.hpp
new file mode 100644 (file)
index 0000000..6c5be57
--- /dev/null
@@ -0,0 +1,180 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "fold_impl.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl { namespace aux {\r
+\r
+/// forward declaration\r
+\r
+template<\r
+      int N\r
+    , typename First\r
+    , typename Last\r
+    , typename State\r
+    , typename ForwardOp\r
+    >\r
+struct fold_impl;\r
+\r
+template<\r
+      typename First\r
+    , typename Last\r
+    , typename State\r
+    , typename ForwardOp\r
+    >\r
+struct fold_impl< 0,First,Last,State,ForwardOp >\r
+{\r
+    typedef First iter0;\r
+    typedef State state0;\r
+    typedef state0 state;\r
+    typedef iter0 iterator;\r
+};\r
+\r
+template<\r
+      typename First\r
+    , typename Last\r
+    , typename State\r
+    , typename ForwardOp\r
+    >\r
+struct fold_impl< 1,First,Last,State,ForwardOp >\r
+{\r
+    typedef First iter0;\r
+    typedef State state0;\r
+    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;\r
+    typedef typename mpl::next<iter0>::type iter1;\r
+    \r
+\r
+    typedef state1 state;\r
+    typedef iter1 iterator;\r
+};\r
+\r
+template<\r
+      typename First\r
+    , typename Last\r
+    , typename State\r
+    , typename ForwardOp\r
+    >\r
+struct fold_impl< 2,First,Last,State,ForwardOp >\r
+{\r
+    typedef First iter0;\r
+    typedef State state0;\r
+    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;\r
+    typedef typename mpl::next<iter0>::type iter1;\r
+    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;\r
+    typedef typename mpl::next<iter1>::type iter2;\r
+    \r
+\r
+    typedef state2 state;\r
+    typedef iter2 iterator;\r
+};\r
+\r
+template<\r
+      typename First\r
+    , typename Last\r
+    , typename State\r
+    , typename ForwardOp\r
+    >\r
+struct fold_impl< 3,First,Last,State,ForwardOp >\r
+{\r
+    typedef First iter0;\r
+    typedef State state0;\r
+    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;\r
+    typedef typename mpl::next<iter0>::type iter1;\r
+    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;\r
+    typedef typename mpl::next<iter1>::type iter2;\r
+    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;\r
+    typedef typename mpl::next<iter2>::type iter3;\r
+    \r
+\r
+    typedef state3 state;\r
+    typedef iter3 iterator;\r
+};\r
+\r
+template<\r
+      typename First\r
+    , typename Last\r
+    , typename State\r
+    , typename ForwardOp\r
+    >\r
+struct fold_impl< 4,First,Last,State,ForwardOp >\r
+{\r
+    typedef First iter0;\r
+    typedef State state0;\r
+    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;\r
+    typedef typename mpl::next<iter0>::type iter1;\r
+    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;\r
+    typedef typename mpl::next<iter1>::type iter2;\r
+    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;\r
+    typedef typename mpl::next<iter2>::type iter3;\r
+    typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;\r
+    typedef typename mpl::next<iter3>::type iter4;\r
+    \r
+\r
+    typedef state4 state;\r
+    typedef iter4 iterator;\r
+};\r
+\r
+template<\r
+      int N\r
+    , typename First\r
+    , typename Last\r
+    , typename State\r
+    , typename ForwardOp\r
+    >\r
+struct fold_impl\r
+{\r
+    typedef fold_impl<\r
+          4\r
+        , First\r
+        , Last\r
+        , State\r
+        , ForwardOp\r
+        > chunk_;\r
+\r
+    typedef fold_impl<\r
+          ( (N - 4) < 0 ? 0 : N - 4 )\r
+        , typename chunk_::iterator\r
+        , Last\r
+        , typename chunk_::state\r
+        , ForwardOp\r
+        > res_;\r
+\r
+    typedef typename res_::state state;\r
+    typedef typename res_::iterator iterator;\r
+};\r
+\r
+template<\r
+      typename First\r
+    , typename Last\r
+    , typename State\r
+    , typename ForwardOp\r
+    >\r
+struct fold_impl< -1,First,Last,State,ForwardOp >\r
+    : fold_impl<\r
+          -1\r
+        , typename mpl::next<First>::type\r
+        , Last\r
+        , typename apply2<ForwardOp,State, typename deref<First>::type>::type\r
+        , ForwardOp\r
+        >\r
+{\r
+};\r
+\r
+template<\r
+      typename Last\r
+    , typename State\r
+    , typename ForwardOp\r
+    >\r
+struct fold_impl< -1,Last,Last,State,ForwardOp >\r
+{\r
+    typedef State state;\r
+    typedef Last iterator;\r
+};\r
+\r
+}}}\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/full_lambda.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/full_lambda.hpp
new file mode 100644 (file)
index 0000000..d987a99
--- /dev/null
@@ -0,0 +1,558 @@
+\r
+// Copyright Aleksey Gurtovoy 2001-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "full_lambda.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+namespace aux {\r
+\r
+template<\r
+      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false\r
+    , bool C5 = false\r
+    >\r
+struct lambda_or\r
+    : true_\r
+{\r
+};\r
+\r
+template<>\r
+struct lambda_or< false,false,false,false,false >\r
+    : false_\r
+{\r
+};\r
+\r
+} // namespace aux\r
+\r
+template<\r
+      typename T\r
+    , typename Tag\r
+    , typename Arity\r
+    >\r
+struct lambda\r
+{\r
+    typedef false_ is_le;\r
+    typedef T result_;\r
+    typedef T type;\r
+};\r
+\r
+template<\r
+      typename T\r
+    >\r
+struct is_lambda_expression\r
+    : lambda<T>::is_le\r
+{\r
+};\r
+\r
+template< int N, typename Tag >\r
+struct lambda< arg<N>,Tag, int_< -1 > >\r
+{\r
+    typedef true_ is_le;\r
+    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41\r
+    typedef mpl::protect<result_> type;\r
+};\r
+\r
+template<\r
+      typename F\r
+    , typename Tag\r
+    >\r
+struct lambda<\r
+          bind0<F>\r
+        , Tag\r
+        , int_<1>\r
+        >\r
+{\r
+    typedef false_ is_le;\r
+    typedef bind0<\r
+          F\r
+        > result_;\r
+\r
+    typedef result_ type;\r
+};\r
+\r
+namespace aux {\r
+\r
+template<\r
+      typename IsLE, typename Tag\r
+    , template< typename P1 > class F\r
+    , typename L1\r
+    >\r
+struct le_result1\r
+{\r
+    typedef F<\r
+          typename L1::type\r
+        > result_;\r
+\r
+    typedef result_ type;\r
+};\r
+\r
+template<\r
+      typename Tag\r
+    , template< typename P1 > class F\r
+    , typename L1\r
+    >\r
+struct le_result1< true_,Tag,F,L1 >\r
+{\r
+    typedef bind1<\r
+          quote1< F,Tag >\r
+        , typename L1::result_\r
+        > result_;\r
+\r
+    typedef mpl::protect<result_> type;\r
+};\r
+\r
+} // namespace aux\r
+\r
+template<\r
+      template< typename P1 > class F\r
+    , typename T1\r
+    , typename Tag\r
+    >\r
+struct lambda<\r
+          F<T1>\r
+        , Tag\r
+        , int_<1>\r
+        >\r
+{\r
+    typedef lambda< T1,Tag > l1;\r
+    typedef typename l1::is_le is_le1;\r
+    typedef typename aux::lambda_or<\r
+          is_le1::value\r
+        >::type is_le;\r
+\r
+    typedef aux::le_result1<\r
+          is_le, Tag, F, l1\r
+        > le_result_;\r
+\r
+    typedef typename le_result_::result_ result_;\r
+    typedef typename le_result_::type type;\r
+};\r
+\r
+template<\r
+      typename F, typename T1\r
+    , typename Tag\r
+    >\r
+struct lambda<\r
+          bind1< F,T1 >\r
+        , Tag\r
+        , int_<2>\r
+        >\r
+{\r
+    typedef false_ is_le;\r
+    typedef bind1<\r
+          F\r
+        , T1\r
+        > result_;\r
+\r
+    typedef result_ type;\r
+};\r
+\r
+namespace aux {\r
+\r
+template<\r
+      typename IsLE, typename Tag\r
+    , template< typename P1, typename P2 > class F\r
+    , typename L1, typename L2\r
+    >\r
+struct le_result2\r
+{\r
+    typedef F<\r
+          typename L1::type, typename L2::type\r
+        > result_;\r
+\r
+    typedef result_ type;\r
+};\r
+\r
+template<\r
+      typename Tag\r
+    , template< typename P1, typename P2 > class F\r
+    , typename L1, typename L2\r
+    >\r
+struct le_result2< true_,Tag,F,L1,L2 >\r
+{\r
+    typedef bind2<\r
+          quote2< F,Tag >\r
+        , typename L1::result_, typename L2::result_\r
+        > result_;\r
+\r
+    typedef mpl::protect<result_> type;\r
+};\r
+\r
+} // namespace aux\r
+\r
+template<\r
+      template< typename P1, typename P2 > class F\r
+    , typename T1, typename T2\r
+    , typename Tag\r
+    >\r
+struct lambda<\r
+          F< T1,T2 >\r
+        , Tag\r
+        , int_<2>\r
+        >\r
+{\r
+    typedef lambda< T1,Tag > l1;\r
+    typedef lambda< T2,Tag > l2;\r
+    \r
+    typedef typename l1::is_le is_le1;\r
+    typedef typename l2::is_le is_le2;\r
+    \r
+\r
+    typedef typename aux::lambda_or<\r
+          is_le1::value, is_le2::value\r
+        >::type is_le;\r
+\r
+    typedef aux::le_result2<\r
+          is_le, Tag, F, l1, l2\r
+        > le_result_;\r
+\r
+    typedef typename le_result_::result_ result_;\r
+    typedef typename le_result_::type type;\r
+};\r
+\r
+template<\r
+      typename F, typename T1, typename T2\r
+    , typename Tag\r
+    >\r
+struct lambda<\r
+          bind2< F,T1,T2 >\r
+        , Tag\r
+        , int_<3>\r
+        >\r
+{\r
+    typedef false_ is_le;\r
+    typedef bind2<\r
+          F\r
+        , T1, T2\r
+        > result_;\r
+\r
+    typedef result_ type;\r
+};\r
+\r
+namespace aux {\r
+\r
+template<\r
+      typename IsLE, typename Tag\r
+    , template< typename P1, typename P2, typename P3 > class F\r
+    , typename L1, typename L2, typename L3\r
+    >\r
+struct le_result3\r
+{\r
+    typedef F<\r
+          typename L1::type, typename L2::type, typename L3::type\r
+        > result_;\r
+\r
+    typedef result_ type;\r
+};\r
+\r
+template<\r
+      typename Tag\r
+    , template< typename P1, typename P2, typename P3 > class F\r
+    , typename L1, typename L2, typename L3\r
+    >\r
+struct le_result3< true_,Tag,F,L1,L2,L3 >\r
+{\r
+    typedef bind3<\r
+          quote3< F,Tag >\r
+        , typename L1::result_, typename L2::result_, typename L3::result_\r
+        > result_;\r
+\r
+    typedef mpl::protect<result_> type;\r
+};\r
+\r
+} // namespace aux\r
+\r
+template<\r
+      template< typename P1, typename P2, typename P3 > class F\r
+    , typename T1, typename T2, typename T3\r
+    , typename Tag\r
+    >\r
+struct lambda<\r
+          F< T1,T2,T3 >\r
+        , Tag\r
+        , int_<3>\r
+        >\r
+{\r
+    typedef lambda< T1,Tag > l1;\r
+    typedef lambda< T2,Tag > l2;\r
+    typedef lambda< T3,Tag > l3;\r
+    \r
+    typedef typename l1::is_le is_le1;\r
+    typedef typename l2::is_le is_le2;\r
+    typedef typename l3::is_le is_le3;\r
+    \r
+\r
+    typedef typename aux::lambda_or<\r
+          is_le1::value, is_le2::value, is_le3::value\r
+        >::type is_le;\r
+\r
+    typedef aux::le_result3<\r
+          is_le, Tag, F, l1, l2, l3\r
+        > le_result_;\r
+\r
+    typedef typename le_result_::result_ result_;\r
+    typedef typename le_result_::type type;\r
+};\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3\r
+    , typename Tag\r
+    >\r
+struct lambda<\r
+          bind3< F,T1,T2,T3 >\r
+        , Tag\r
+        , int_<4>\r
+        >\r
+{\r
+    typedef false_ is_le;\r
+    typedef bind3<\r
+          F\r
+        , T1, T2, T3\r
+        > result_;\r
+\r
+    typedef result_ type;\r
+};\r
+\r
+namespace aux {\r
+\r
+template<\r
+      typename IsLE, typename Tag\r
+    , template< typename P1, typename P2, typename P3, typename P4 > class F\r
+    , typename L1, typename L2, typename L3, typename L4\r
+    >\r
+struct le_result4\r
+{\r
+    typedef F<\r
+          typename L1::type, typename L2::type, typename L3::type\r
+        , typename L4::type\r
+        > result_;\r
+\r
+    typedef result_ type;\r
+};\r
+\r
+template<\r
+      typename Tag\r
+    , template< typename P1, typename P2, typename P3, typename P4 > class F\r
+    , typename L1, typename L2, typename L3, typename L4\r
+    >\r
+struct le_result4< true_,Tag,F,L1,L2,L3,L4 >\r
+{\r
+    typedef bind4<\r
+          quote4< F,Tag >\r
+        , typename L1::result_, typename L2::result_, typename L3::result_\r
+        , typename L4::result_\r
+        > result_;\r
+\r
+    typedef mpl::protect<result_> type;\r
+};\r
+\r
+} // namespace aux\r
+\r
+template<\r
+      template< typename P1, typename P2, typename P3, typename P4 > class F\r
+    , typename T1, typename T2, typename T3, typename T4\r
+    , typename Tag\r
+    >\r
+struct lambda<\r
+          F< T1,T2,T3,T4 >\r
+        , Tag\r
+        , int_<4>\r
+        >\r
+{\r
+    typedef lambda< T1,Tag > l1;\r
+    typedef lambda< T2,Tag > l2;\r
+    typedef lambda< T3,Tag > l3;\r
+    typedef lambda< T4,Tag > l4;\r
+    \r
+    typedef typename l1::is_le is_le1;\r
+    typedef typename l2::is_le is_le2;\r
+    typedef typename l3::is_le is_le3;\r
+    typedef typename l4::is_le is_le4;\r
+    \r
+\r
+    typedef typename aux::lambda_or<\r
+          is_le1::value, is_le2::value, is_le3::value, is_le4::value\r
+        >::type is_le;\r
+\r
+    typedef aux::le_result4<\r
+          is_le, Tag, F, l1, l2, l3, l4\r
+        > le_result_;\r
+\r
+    typedef typename le_result_::result_ result_;\r
+    typedef typename le_result_::type type;\r
+};\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename T4\r
+    , typename Tag\r
+    >\r
+struct lambda<\r
+          bind4< F,T1,T2,T3,T4 >\r
+        , Tag\r
+        , int_<5>\r
+        >\r
+{\r
+    typedef false_ is_le;\r
+    typedef bind4<\r
+          F\r
+        , T1, T2, T3, T4\r
+        > result_;\r
+\r
+    typedef result_ type;\r
+};\r
+\r
+namespace aux {\r
+\r
+template<\r
+      typename IsLE, typename Tag\r
+    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F\r
+    , typename L1, typename L2, typename L3, typename L4, typename L5\r
+    >\r
+struct le_result5\r
+{\r
+    typedef F<\r
+          typename L1::type, typename L2::type, typename L3::type\r
+        , typename L4::type, typename L5::type\r
+        > result_;\r
+\r
+    typedef result_ type;\r
+};\r
+\r
+template<\r
+      typename Tag\r
+    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F\r
+    , typename L1, typename L2, typename L3, typename L4, typename L5\r
+    >\r
+struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 >\r
+{\r
+    typedef bind5<\r
+          quote5< F,Tag >\r
+        , typename L1::result_, typename L2::result_, typename L3::result_\r
+        , typename L4::result_, typename L5::result_\r
+        > result_;\r
+\r
+    typedef mpl::protect<result_> type;\r
+};\r
+\r
+} // namespace aux\r
+\r
+template<\r
+      template<\r
+          typename P1, typename P2, typename P3, typename P4\r
+        , typename P5\r
+        >\r
+      class F\r
+    , typename T1, typename T2, typename T3, typename T4, typename T5\r
+    , typename Tag\r
+    >\r
+struct lambda<\r
+          F< T1,T2,T3,T4,T5 >\r
+        , Tag\r
+        , int_<5>\r
+        >\r
+{\r
+    typedef lambda< T1,Tag > l1;\r
+    typedef lambda< T2,Tag > l2;\r
+    typedef lambda< T3,Tag > l3;\r
+    typedef lambda< T4,Tag > l4;\r
+    typedef lambda< T5,Tag > l5;\r
+    \r
+    typedef typename l1::is_le is_le1;\r
+    typedef typename l2::is_le is_le2;\r
+    typedef typename l3::is_le is_le3;\r
+    typedef typename l4::is_le is_le4;\r
+    typedef typename l5::is_le is_le5;\r
+    \r
+\r
+    typedef typename aux::lambda_or<\r
+          is_le1::value, is_le2::value, is_le3::value, is_le4::value\r
+        , is_le5::value\r
+        >::type is_le;\r
+\r
+    typedef aux::le_result5<\r
+          is_le, Tag, F, l1, l2, l3, l4, l5\r
+        > le_result_;\r
+\r
+    typedef typename le_result_::result_ result_;\r
+    typedef typename le_result_::type type;\r
+};\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5\r
+    , typename Tag\r
+    >\r
+struct lambda<\r
+          bind5< F,T1,T2,T3,T4,T5 >\r
+        , Tag\r
+        , int_<6>\r
+        >\r
+{\r
+    typedef false_ is_le;\r
+    typedef bind5<\r
+          F\r
+        , T1, T2, T3, T4, T5\r
+        > result_;\r
+\r
+    typedef result_ type;\r
+};\r
+\r
+/// special case for 'protect'\r
+template< typename T, typename Tag >\r
+struct lambda< mpl::protect<T>,Tag, int_<1> >\r
+{\r
+    typedef false_ is_le;\r
+    typedef mpl::protect<T> result_;\r
+    typedef result_ type;\r
+};\r
+\r
+/// specializations for the main 'bind' form\r
+\r
+template<\r
+      typename F, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5\r
+    , typename Tag\r
+    >\r
+struct lambda<\r
+          bind< F,T1,T2,T3,T4,T5 >\r
+        , Tag\r
+        , int_<6>\r
+        >\r
+{\r
+    typedef false_ is_le;\r
+    typedef bind< F,T1,T2,T3,T4,T5 > result_;\r
+    typedef result_ type;\r
+};\r
+\r
+template<\r
+      typename F\r
+    , typename Tag1\r
+    , typename Tag2\r
+    , typename Arity\r
+    >\r
+struct lambda<\r
+          lambda< F,Tag1,Arity >\r
+        , Tag2\r
+        , int_<3>\r
+        >\r
+{\r
+    typedef lambda< F,Tag2 > l1;\r
+    typedef lambda< Tag1,Tag2 > l2;\r
+    typedef typename l1::is_le is_le;\r
+    typedef bind1< quote1<aux::template_arity>, typename l1::result_ > arity_;\r
+    typedef lambda< typename if_< is_le,arity_,Arity >::type, Tag2 > l3;\r
+    typedef aux::le_result3<is_le, Tag2, mpl::lambda, l1, l2, l3> le_result_;\r
+    typedef typename le_result_::result_ result_;\r
+    typedef typename le_result_::type type;\r
+};\r
+\r
+BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda)\r
+\r
+}}\r
+\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/greater.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/greater.hpp
new file mode 100644 (file)
index 0000000..a9153e9
--- /dev/null
@@ -0,0 +1,94 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "greater.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename Tag1\r
+    , typename Tag2\r
+    >\r
+struct greater_impl\r
+    : if_c<\r
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
+            )\r
+\r
+        , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
+        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
+        >::type\r
+{\r
+};\r
+\r
+/// for Digital Mars C++/compilers with no CTPS/TTP support\r
+template<> struct greater_impl< na,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct greater_impl< na,Tag >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct greater_impl< Tag,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename T > struct greater_tag\r
+{\r
+    typedef typename T::tag type;\r
+};\r
+\r
+template<\r
+      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
+    >\r
+struct greater\r
+\r
+    : greater_impl<\r
+          typename greater_tag<N1>::type\r
+        , typename greater_tag<N2>::type\r
+        >::template apply< N1,N2 >::type\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))\r
+\r
+};\r
+\r
+BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)\r
+\r
+}}\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<>\r
+struct greater_impl< integral_c_tag,integral_c_tag >\r
+{\r
+    template< typename N1, typename N2 > struct apply\r
+\r
+        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >\r
+    {\r
+    };\r
+};\r
+\r
+}}\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/greater_equal.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/greater_equal.hpp
new file mode 100644 (file)
index 0000000..05d42d6
--- /dev/null
@@ -0,0 +1,94 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "greater_equal.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename Tag1\r
+    , typename Tag2\r
+    >\r
+struct greater_equal_impl\r
+    : if_c<\r
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
+            )\r
+\r
+        , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
+        , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
+        >::type\r
+{\r
+};\r
+\r
+/// for Digital Mars C++/compilers with no CTPS/TTP support\r
+template<> struct greater_equal_impl< na,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct greater_equal_impl< na,Tag >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct greater_equal_impl< Tag,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename T > struct greater_equal_tag\r
+{\r
+    typedef typename T::tag type;\r
+};\r
+\r
+template<\r
+      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
+    >\r
+struct greater_equal\r
+\r
+    : greater_equal_impl<\r
+          typename greater_equal_tag<N1>::type\r
+        , typename greater_equal_tag<N2>::type\r
+        >::template apply< N1,N2 >::type\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))\r
+\r
+};\r
+\r
+BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)\r
+\r
+}}\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<>\r
+struct greater_equal_impl< integral_c_tag,integral_c_tag >\r
+{\r
+    template< typename N1, typename N2 > struct apply\r
+\r
+        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >\r
+    {\r
+    };\r
+};\r
+\r
+}}\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/inherit.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/inherit.hpp
new file mode 100644 (file)
index 0000000..38fde94
--- /dev/null
@@ -0,0 +1,139 @@
+\r
+// Copyright Aleksey Gurtovoy 2001-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "inherit.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename BOOST_MPL_AUX_NA_PARAM(T1)\r
+    , typename BOOST_MPL_AUX_NA_PARAM(T2)\r
+    >\r
+struct inherit2\r
+    : T1, T2\r
+{\r
+    typedef inherit2 type;\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))\r
+};\r
+\r
+template< typename T1 >\r
+struct inherit2< T1,empty_base >\r
+{\r
+    typedef T1 type;\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))\r
+};\r
+\r
+template< typename T2 >\r
+struct inherit2< empty_base,T2 >\r
+{\r
+    typedef T2 type;\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))\r
+};\r
+\r
+template<>\r
+struct inherit2< empty_base,empty_base >\r
+{\r
+    typedef empty_base type;\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))\r
+};\r
+\r
+BOOST_MPL_AUX_NA_SPEC(2, inherit2)\r
+\r
+template<\r
+      typename T1 = na, typename T2 = na, typename T3 = na\r
+    >\r
+struct inherit3\r
+    : inherit2<\r
+          typename inherit2<\r
+              T1, T2\r
+            >::type\r
+        , T3\r
+        >\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
+          3\r
+        , inherit3\r
+        , ( T1, T2, T3)\r
+        )\r
+};\r
+\r
+BOOST_MPL_AUX_NA_SPEC(3, inherit3)\r
+\r
+template<\r
+      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na\r
+    >\r
+struct inherit4\r
+    : inherit2<\r
+          typename inherit3<\r
+              T1, T2, T3\r
+            >::type\r
+        , T4\r
+        >\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
+          4\r
+        , inherit4\r
+        , ( T1, T2, T3, T4)\r
+        )\r
+};\r
+\r
+BOOST_MPL_AUX_NA_SPEC(4, inherit4)\r
+\r
+template<\r
+      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na\r
+    , typename T5 = na\r
+    >\r
+struct inherit5\r
+    : inherit2<\r
+          typename inherit4<\r
+              T1, T2, T3, T4\r
+            >::type\r
+        , T5\r
+        >\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
+          5\r
+        , inherit5\r
+        , ( T1, T2, T3, T4, T5)\r
+        )\r
+};\r
+\r
+BOOST_MPL_AUX_NA_SPEC(5, inherit5)\r
+\r
+/// primary template\r
+\r
+template<\r
+      typename T1 = empty_base, typename T2 = empty_base\r
+    , typename T3 = empty_base, typename T4 = empty_base\r
+    , typename T5 = empty_base\r
+    >\r
+struct inherit\r
+    : inherit5< T1,T2,T3,T4,T5 >\r
+{\r
+};\r
+\r
+template<>\r
+struct inherit< na,na,na,na,na >\r
+{\r
+    template<\r
+\r
+          typename T1, typename T2, typename T3, typename T4, typename T5\r
+\r
+        >\r
+    struct apply\r
+        : inherit< T1,T2,T3,T4,T5 >\r
+    {\r
+    };\r
+};\r
+\r
+BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)\r
+BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)\r
+BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)\r
+}}\r
+\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_if_impl.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_if_impl.hpp
new file mode 100644 (file)
index 0000000..b93d59d
--- /dev/null
@@ -0,0 +1,133 @@
+\r
+// Copyright Aleksey Gurtovoy 2001-2004\r
+// Copyright David Abrahams 2001-2002\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "iter_fold_if_impl.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl { namespace aux {\r
+\r
+template< typename Iterator, typename State >\r
+struct iter_fold_if_null_step\r
+{\r
+    typedef State state;\r
+    typedef Iterator iterator;\r
+};\r
+\r
+template< bool >\r
+struct iter_fold_if_step_impl\r
+{\r
+    template<\r
+          typename Iterator\r
+        , typename State\r
+        , typename StateOp\r
+        , typename IteratorOp\r
+        >\r
+    struct result_\r
+    {\r
+        typedef typename apply2< StateOp,State,Iterator >::type state;\r
+        typedef typename IteratorOp::type iterator;\r
+    };\r
+};\r
+\r
+template<>\r
+struct iter_fold_if_step_impl<false>\r
+{\r
+    template<\r
+          typename Iterator\r
+        , typename State\r
+        , typename StateOp\r
+        , typename IteratorOp\r
+        >\r
+    struct result_\r
+    {\r
+        typedef State state;\r
+        typedef Iterator iterator;\r
+    };\r
+};\r
+\r
+template<\r
+      typename Iterator\r
+    , typename State\r
+    , typename ForwardOp\r
+    , typename Predicate\r
+    >\r
+struct iter_fold_if_forward_step\r
+{\r
+    typedef typename apply2< Predicate,State,Iterator >::type not_last;\r
+    typedef typename iter_fold_if_step_impl<\r
+          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value\r
+        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;\r
+\r
+    typedef typename impl_::state state;\r
+    typedef typename impl_::iterator iterator;\r
+};\r
+\r
+template<\r
+      typename Iterator\r
+    , typename State\r
+    , typename BackwardOp\r
+    , typename Predicate\r
+    >\r
+struct iter_fold_if_backward_step\r
+{\r
+    typedef typename apply2< Predicate,State,Iterator >::type not_last;\r
+    typedef typename iter_fold_if_step_impl<\r
+          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value\r
+        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;\r
+\r
+    typedef typename impl_::state state;\r
+    typedef typename impl_::iterator iterator;\r
+};\r
+\r
+template<\r
+      typename Iterator\r
+    , typename State\r
+    , typename ForwardOp\r
+    , typename ForwardPredicate\r
+    , typename BackwardOp\r
+    , typename BackwardPredicate\r
+    >\r
+struct iter_fold_if_impl\r
+{\r
+ private:\r
+    typedef iter_fold_if_null_step< Iterator,State > forward_step0;\r
+    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;\r
+    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;\r
+    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;\r
+    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;\r
+    \r
+\r
+    typedef typename if_<\r
+          typename forward_step4::not_last\r
+        , iter_fold_if_impl<\r
+              typename forward_step4::iterator\r
+            , typename forward_step4::state\r
+            , ForwardOp\r
+            , ForwardPredicate\r
+            , BackwardOp\r
+            , BackwardPredicate\r
+            >\r
+        , iter_fold_if_null_step<\r
+              typename forward_step4::iterator\r
+            , typename forward_step4::state\r
+            >\r
+        >::type backward_step4;\r
+\r
+    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;\r
+    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;\r
+    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;\r
+    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;\r
+    \r
+\r
+ public:\r
+    typedef typename backward_step0::state state;\r
+    typedef typename backward_step4::iterator iterator;\r
+};\r
+\r
+}}}\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_impl.hpp
new file mode 100644 (file)
index 0000000..e6bc9b8
--- /dev/null
@@ -0,0 +1,180 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "iter_fold_impl.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl { namespace aux {\r
+\r
+/// forward declaration\r
+\r
+template<\r
+      int N\r
+    , typename First\r
+    , typename Last\r
+    , typename State\r
+    , typename ForwardOp\r
+    >\r
+struct iter_fold_impl;\r
+\r
+template<\r
+      typename First\r
+    , typename Last\r
+    , typename State\r
+    , typename ForwardOp\r
+    >\r
+struct iter_fold_impl< 0,First,Last,State,ForwardOp >\r
+{\r
+    typedef First iter0;\r
+    typedef State state0;\r
+    typedef state0 state;\r
+    typedef iter0 iterator;\r
+};\r
+\r
+template<\r
+      typename First\r
+    , typename Last\r
+    , typename State\r
+    , typename ForwardOp\r
+    >\r
+struct iter_fold_impl< 1,First,Last,State,ForwardOp >\r
+{\r
+    typedef First iter0;\r
+    typedef State state0;\r
+    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;\r
+    typedef typename mpl::next<iter0>::type iter1;\r
+    \r
+\r
+    typedef state1 state;\r
+    typedef iter1 iterator;\r
+};\r
+\r
+template<\r
+      typename First\r
+    , typename Last\r
+    , typename State\r
+    , typename ForwardOp\r
+    >\r
+struct iter_fold_impl< 2,First,Last,State,ForwardOp >\r
+{\r
+    typedef First iter0;\r
+    typedef State state0;\r
+    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;\r
+    typedef typename mpl::next<iter0>::type iter1;\r
+    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;\r
+    typedef typename mpl::next<iter1>::type iter2;\r
+    \r
+\r
+    typedef state2 state;\r
+    typedef iter2 iterator;\r
+};\r
+\r
+template<\r
+      typename First\r
+    , typename Last\r
+    , typename State\r
+    , typename ForwardOp\r
+    >\r
+struct iter_fold_impl< 3,First,Last,State,ForwardOp >\r
+{\r
+    typedef First iter0;\r
+    typedef State state0;\r
+    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;\r
+    typedef typename mpl::next<iter0>::type iter1;\r
+    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;\r
+    typedef typename mpl::next<iter1>::type iter2;\r
+    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;\r
+    typedef typename mpl::next<iter2>::type iter3;\r
+    \r
+\r
+    typedef state3 state;\r
+    typedef iter3 iterator;\r
+};\r
+\r
+template<\r
+      typename First\r
+    , typename Last\r
+    , typename State\r
+    , typename ForwardOp\r
+    >\r
+struct iter_fold_impl< 4,First,Last,State,ForwardOp >\r
+{\r
+    typedef First iter0;\r
+    typedef State state0;\r
+    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;\r
+    typedef typename mpl::next<iter0>::type iter1;\r
+    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;\r
+    typedef typename mpl::next<iter1>::type iter2;\r
+    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;\r
+    typedef typename mpl::next<iter2>::type iter3;\r
+    typedef typename apply2< ForwardOp,state3,iter3 >::type state4;\r
+    typedef typename mpl::next<iter3>::type iter4;\r
+    \r
+\r
+    typedef state4 state;\r
+    typedef iter4 iterator;\r
+};\r
+\r
+template<\r
+      int N\r
+    , typename First\r
+    , typename Last\r
+    , typename State\r
+    , typename ForwardOp\r
+    >\r
+struct iter_fold_impl\r
+{\r
+    typedef iter_fold_impl<\r
+          4\r
+        , First\r
+        , Last\r
+        , State\r
+        , ForwardOp\r
+        > chunk_;\r
+\r
+    typedef iter_fold_impl<\r
+          ( (N - 4) < 0 ? 0 : N - 4 )\r
+        , typename chunk_::iterator\r
+        , Last\r
+        , typename chunk_::state\r
+        , ForwardOp\r
+        > res_;\r
+\r
+    typedef typename res_::state state;\r
+    typedef typename res_::iterator iterator;\r
+};\r
+\r
+template<\r
+      typename First\r
+    , typename Last\r
+    , typename State\r
+    , typename ForwardOp\r
+    >\r
+struct iter_fold_impl< -1,First,Last,State,ForwardOp >\r
+    : iter_fold_impl<\r
+          -1\r
+        , typename mpl::next<First>::type\r
+        , Last\r
+        , typename apply2< ForwardOp,State,First >::type\r
+        , ForwardOp\r
+        >\r
+{\r
+};\r
+\r
+template<\r
+      typename Last\r
+    , typename State\r
+    , typename ForwardOp\r
+    >\r
+struct iter_fold_impl< -1,Last,Last,State,ForwardOp >\r
+{\r
+    typedef State state;\r
+    typedef Last iterator;\r
+};\r
+\r
+}}}\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/lambda_no_ctps.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/lambda_no_ctps.hpp
new file mode 100644 (file)
index 0000000..2595766
--- /dev/null
@@ -0,0 +1,229 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "lambda_no_ctps.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+namespace aux {\r
+\r
+template<\r
+      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false\r
+    , bool C5 = false\r
+    >\r
+struct lambda_or\r
+    : true_\r
+{\r
+};\r
+\r
+template<>\r
+struct lambda_or< false,false,false,false,false >\r
+    : false_\r
+{\r
+};\r
+\r
+template< typename Arity > struct lambda_impl\r
+{\r
+    template< typename T, typename Tag, typename Protect > struct result_\r
+    {\r
+        typedef T type;\r
+        typedef is_placeholder<T> is_le;\r
+    };\r
+};\r
+\r
+template<> struct lambda_impl< int_<1> >\r
+{\r
+    template< typename F, typename Tag, typename Protect > struct result_\r
+    {\r
+        typedef lambda< typename F::arg1, Tag, false_ > l1;\r
+        typedef typename l1::is_le is_le1;\r
+        typedef aux::lambda_or<\r
+              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value\r
+            > is_le;\r
+\r
+        typedef bind1<\r
+              typename F::rebind\r
+            , typename l1::type\r
+            > bind_;\r
+\r
+        typedef typename if_<\r
+              is_le\r
+            , if_< Protect, mpl::protect<bind_>, bind_ >\r
+            , identity<F>\r
+            >::type type_;\r
+\r
+        typedef typename type_::type type;\r
+    };\r
+};\r
+\r
+template<> struct lambda_impl< int_<2> >\r
+{\r
+    template< typename F, typename Tag, typename Protect > struct result_\r
+    {\r
+        typedef lambda< typename F::arg1, Tag, false_ > l1;\r
+        typedef lambda< typename F::arg2, Tag, false_ > l2;\r
+        \r
+        typedef typename l1::is_le is_le1;\r
+        typedef typename l2::is_le is_le2;\r
+        \r
+\r
+        typedef aux::lambda_or<\r
+              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value\r
+            > is_le;\r
+\r
+        typedef bind2<\r
+              typename F::rebind\r
+            , typename l1::type, typename l2::type\r
+            > bind_;\r
+\r
+        typedef typename if_<\r
+              is_le\r
+            , if_< Protect, mpl::protect<bind_>, bind_ >\r
+            , identity<F>\r
+            >::type type_;\r
+\r
+        typedef typename type_::type type;\r
+    };\r
+};\r
+\r
+template<> struct lambda_impl< int_<3> >\r
+{\r
+    template< typename F, typename Tag, typename Protect > struct result_\r
+    {\r
+        typedef lambda< typename F::arg1, Tag, false_ > l1;\r
+        typedef lambda< typename F::arg2, Tag, false_ > l2;\r
+        typedef lambda< typename F::arg3, Tag, false_ > l3;\r
+        \r
+        typedef typename l1::is_le is_le1;\r
+        typedef typename l2::is_le is_le2;\r
+        typedef typename l3::is_le is_le3;\r
+        \r
+\r
+        typedef aux::lambda_or<\r
+              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value\r
+            > is_le;\r
+\r
+        typedef bind3<\r
+              typename F::rebind\r
+            , typename l1::type, typename l2::type, typename l3::type\r
+            > bind_;\r
+\r
+        typedef typename if_<\r
+              is_le\r
+            , if_< Protect, mpl::protect<bind_>, bind_ >\r
+            , identity<F>\r
+            >::type type_;\r
+\r
+        typedef typename type_::type type;\r
+    };\r
+};\r
+\r
+template<> struct lambda_impl< int_<4> >\r
+{\r
+    template< typename F, typename Tag, typename Protect > struct result_\r
+    {\r
+        typedef lambda< typename F::arg1, Tag, false_ > l1;\r
+        typedef lambda< typename F::arg2, Tag, false_ > l2;\r
+        typedef lambda< typename F::arg3, Tag, false_ > l3;\r
+        typedef lambda< typename F::arg4, Tag, false_ > l4;\r
+        \r
+        typedef typename l1::is_le is_le1;\r
+        typedef typename l2::is_le is_le2;\r
+        typedef typename l3::is_le is_le3;\r
+        typedef typename l4::is_le is_le4;\r
+        \r
+\r
+        typedef aux::lambda_or<\r
+              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value\r
+            > is_le;\r
+\r
+        typedef bind4<\r
+              typename F::rebind\r
+            , typename l1::type, typename l2::type, typename l3::type\r
+            , typename l4::type\r
+            > bind_;\r
+\r
+        typedef typename if_<\r
+              is_le\r
+            , if_< Protect, mpl::protect<bind_>, bind_ >\r
+            , identity<F>\r
+            >::type type_;\r
+\r
+        typedef typename type_::type type;\r
+    };\r
+};\r
+\r
+template<> struct lambda_impl< int_<5> >\r
+{\r
+    template< typename F, typename Tag, typename Protect > struct result_\r
+    {\r
+        typedef lambda< typename F::arg1, Tag, false_ > l1;\r
+        typedef lambda< typename F::arg2, Tag, false_ > l2;\r
+        typedef lambda< typename F::arg3, Tag, false_ > l3;\r
+        typedef lambda< typename F::arg4, Tag, false_ > l4;\r
+        typedef lambda< typename F::arg5, Tag, false_ > l5;\r
+        \r
+        typedef typename l1::is_le is_le1;\r
+        typedef typename l2::is_le is_le2;\r
+        typedef typename l3::is_le is_le3;\r
+        typedef typename l4::is_le is_le4;\r
+        typedef typename l5::is_le is_le5;\r
+        \r
+\r
+        typedef aux::lambda_or<\r
+              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value\r
+            > is_le;\r
+\r
+        typedef bind5<\r
+              typename F::rebind\r
+            , typename l1::type, typename l2::type, typename l3::type\r
+            , typename l4::type, typename l5::type\r
+            > bind_;\r
+\r
+        typedef typename if_<\r
+              is_le\r
+            , if_< Protect, mpl::protect<bind_>, bind_ >\r
+            , identity<F>\r
+            >::type type_;\r
+\r
+        typedef typename type_::type type;\r
+    };\r
+};\r
+\r
+} // namespace aux\r
+\r
+template<\r
+      typename T\r
+    , typename Tag\r
+    , typename Protect\r
+    >\r
+struct lambda\r
+{\r
+    /// Metafunction forwarding confuses MSVC 6.x\r
+    typedef typename aux::template_arity<T>::type arity_;\r
+    typedef typename aux::lambda_impl<arity_>\r
+        ::template result_< T,Tag,Protect > l_;\r
+\r
+    typedef typename l_::type type;\r
+    typedef typename l_::is_le is_le;\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))\r
+};\r
+\r
+BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)\r
+\r
+template<\r
+      typename T\r
+    >\r
+struct is_lambda_expression\r
+    : lambda<T>::is_le\r
+{\r
+};\r
+\r
+}}\r
+\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/less.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/less.hpp
new file mode 100644 (file)
index 0000000..b72f534
--- /dev/null
@@ -0,0 +1,94 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "less.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename Tag1\r
+    , typename Tag2\r
+    >\r
+struct less_impl\r
+    : if_c<\r
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
+            )\r
+\r
+        , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
+        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
+        >::type\r
+{\r
+};\r
+\r
+/// for Digital Mars C++/compilers with no CTPS/TTP support\r
+template<> struct less_impl< na,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct less_impl< na,Tag >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct less_impl< Tag,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename T > struct less_tag\r
+{\r
+    typedef typename T::tag type;\r
+};\r
+\r
+template<\r
+      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
+    >\r
+struct less\r
+\r
+    : less_impl<\r
+          typename less_tag<N1>::type\r
+        , typename less_tag<N2>::type\r
+        >::template apply< N1,N2 >::type\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))\r
+\r
+};\r
+\r
+BOOST_MPL_AUX_NA_SPEC2(2, 2, less)\r
+\r
+}}\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<>\r
+struct less_impl< integral_c_tag,integral_c_tag >\r
+{\r
+    template< typename N1, typename N2 > struct apply\r
+\r
+        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) >\r
+    {\r
+    };\r
+};\r
+\r
+}}\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/less_equal.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/less_equal.hpp
new file mode 100644 (file)
index 0000000..a9362e2
--- /dev/null
@@ -0,0 +1,94 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "less_equal.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename Tag1\r
+    , typename Tag2\r
+    >\r
+struct less_equal_impl\r
+    : if_c<\r
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
+            )\r
+\r
+        , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
+        , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
+        >::type\r
+{\r
+};\r
+\r
+/// for Digital Mars C++/compilers with no CTPS/TTP support\r
+template<> struct less_equal_impl< na,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct less_equal_impl< na,Tag >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct less_equal_impl< Tag,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename T > struct less_equal_tag\r
+{\r
+    typedef typename T::tag type;\r
+};\r
+\r
+template<\r
+      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
+    >\r
+struct less_equal\r
+\r
+    : less_equal_impl<\r
+          typename less_equal_tag<N1>::type\r
+        , typename less_equal_tag<N2>::type\r
+        >::template apply< N1,N2 >::type\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))\r
+\r
+};\r
+\r
+BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)\r
+\r
+}}\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<>\r
+struct less_equal_impl< integral_c_tag,integral_c_tag >\r
+{\r
+    template< typename N1, typename N2 > struct apply\r
+\r
+        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >\r
+    {\r
+    };\r
+};\r
+\r
+}}\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/list.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/list.hpp
new file mode 100644 (file)
index 0000000..3340e91
--- /dev/null
@@ -0,0 +1,323 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "list.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na\r
+    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na\r
+    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na\r
+    , typename T12 = na, typename T13 = na, typename T14 = na\r
+    , typename T15 = na, typename T16 = na, typename T17 = na\r
+    , typename T18 = na, typename T19 = na\r
+    >\r
+struct list;\r
+\r
+template<\r
+     \r
+    >\r
+struct list<\r
+          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : list0<  >\r
+{\r
+    typedef list0<  >::type type;\r
+};\r
+\r
+template<\r
+      typename T0\r
+    >\r
+struct list<\r
+          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : list1<T0>\r
+{\r
+    typedef typename list1<T0>::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1\r
+    >\r
+struct list<\r
+          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : list2< T0,T1 >\r
+{\r
+    typedef typename list2< T0,T1 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2\r
+    >\r
+struct list<\r
+          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : list3< T0,T1,T2 >\r
+{\r
+    typedef typename list3< T0,T1,T2 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3\r
+    >\r
+struct list<\r
+          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : list4< T0,T1,T2,T3 >\r
+{\r
+    typedef typename list4< T0,T1,T2,T3 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    >\r
+struct list<\r
+          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : list5< T0,T1,T2,T3,T4 >\r
+{\r
+    typedef typename list5< T0,T1,T2,T3,T4 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5\r
+    >\r
+struct list<\r
+          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : list6< T0,T1,T2,T3,T4,T5 >\r
+{\r
+    typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6\r
+    >\r
+struct list<\r
+          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : list7< T0,T1,T2,T3,T4,T5,T6 >\r
+{\r
+    typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7\r
+    >\r
+struct list<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : list8< T0,T1,T2,T3,T4,T5,T6,T7 >\r
+{\r
+    typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8\r
+    >\r
+struct list<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >\r
+{\r
+    typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    >\r
+struct list<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >\r
+{\r
+    typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10\r
+    >\r
+struct list<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >\r
+{\r
+    typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11\r
+    >\r
+struct list<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na\r
+        , na, na, na, na\r
+        >\r
+    : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >\r
+{\r
+    typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12\r
+    >\r
+struct list<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na\r
+        , na, na, na, na\r
+        >\r
+    : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >\r
+{\r
+    typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13\r
+    >\r
+struct list<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na\r
+        , na, na, na, na\r
+        >\r
+    : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >\r
+{\r
+    typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    >\r
+struct list<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na\r
+        , na, na, na, na\r
+        >\r
+    : list15<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        >\r
+{\r
+    typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    , typename T15\r
+    >\r
+struct list<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, na, na, na, na\r
+        >\r
+    : list16<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15\r
+        >\r
+{\r
+    typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    , typename T15, typename T16\r
+    >\r
+struct list<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, na, na, na\r
+        >\r
+    : list17<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16\r
+        >\r
+{\r
+    typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    , typename T15, typename T16, typename T17\r
+    >\r
+struct list<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, T17, na, na\r
+        >\r
+    : list18<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, T17\r
+        >\r
+{\r
+    typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    , typename T15, typename T16, typename T17, typename T18\r
+    >\r
+struct list<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, T17, T18, na\r
+        >\r
+    : list19<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, T17, T18\r
+        >\r
+{\r
+    typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;\r
+};\r
+\r
+/// primary template (not a specialization!)\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    , typename T15, typename T16, typename T17, typename T18, typename T19\r
+    >\r
+struct list\r
+    : list20<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, T17, T18, T19\r
+        >\r
+{\r
+    typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;\r
+};\r
+\r
+}}\r
+\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/list_c.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/list_c.hpp
new file mode 100644 (file)
index 0000000..1fc8a10
--- /dev/null
@@ -0,0 +1,328 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "list_c.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX\r
+    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX\r
+    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX\r
+    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX\r
+    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX\r
+    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX\r
+    , long C18 = LONG_MAX, long C19 = LONG_MAX\r
+    >\r
+struct list_c;\r
+\r
+template<\r
+      typename T\r
+    >\r
+struct list_c<\r
+          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : list0_c<T>\r
+{\r
+    typedef typename list0_c<T>::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0\r
+    >\r
+struct list_c<\r
+          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : list1_c< T,C0 >\r
+{\r
+    typedef typename list1_c< T,C0 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1\r
+    >\r
+struct list_c<\r
+          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : list2_c< T,C0,C1 >\r
+{\r
+    typedef typename list2_c< T,C0,C1 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2\r
+    >\r
+struct list_c<\r
+          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : list3_c< T,C0,C1,C2 >\r
+{\r
+    typedef typename list3_c< T,C0,C1,C2 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3\r
+    >\r
+struct list_c<\r
+          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : list4_c< T,C0,C1,C2,C3 >\r
+{\r
+    typedef typename list4_c< T,C0,C1,C2,C3 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4\r
+    >\r
+struct list_c<\r
+          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : list5_c< T,C0,C1,C2,C3,C4 >\r
+{\r
+    typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    >\r
+struct list_c<\r
+          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : list6_c< T,C0,C1,C2,C3,C4,C5 >\r
+{\r
+    typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6\r
+    >\r
+struct list_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : list7_c< T,C0,C1,C2,C3,C4,C5,C6 >\r
+{\r
+    typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7\r
+    >\r
+struct list_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX\r
+        >\r
+    : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >\r
+{\r
+    typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8\r
+    >\r
+struct list_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX\r
+        >\r
+    : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >\r
+{\r
+    typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9\r
+    >\r
+struct list_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX\r
+        >\r
+    : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >\r
+{\r
+    typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10\r
+    >\r
+struct list_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >\r
+{\r
+    typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11\r
+    >\r
+struct list_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >\r
+{\r
+    typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
+    >\r
+struct list_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >\r
+{\r
+    typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
+    , long C13\r
+    >\r
+struct list_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : list14_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13\r
+        >\r
+{\r
+    typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
+    , long C13, long C14\r
+    >\r
+struct list_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : list15_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        >\r
+{\r
+    typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
+    , long C13, long C14, long C15\r
+    >\r
+struct list_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : list16_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        , C15\r
+        >\r
+{\r
+    typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
+    , long C13, long C14, long C15, long C16\r
+    >\r
+struct list_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : list17_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        , C15, C16\r
+        >\r
+{\r
+    typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
+    , long C13, long C14, long C15, long C16, long C17\r
+    >\r
+struct list_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        , C15, C16, C17, LONG_MAX, LONG_MAX\r
+        >\r
+    : list18_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        , C15, C16, C17\r
+        >\r
+{\r
+    typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
+    , long C13, long C14, long C15, long C16, long C17, long C18\r
+    >\r
+struct list_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        , C15, C16, C17, C18, LONG_MAX\r
+        >\r
+    : list19_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        , C15, C16, C17, C18\r
+        >\r
+{\r
+    typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;\r
+};\r
+\r
+/// primary template (not a specialization!)\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
+    , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
+    >\r
+struct list_c\r
+    : list20_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        , C15, C16, C17, C18, C19\r
+        >\r
+{\r
+    typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;\r
+};\r
+\r
+}}\r
+\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/map.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/map.hpp
new file mode 100644 (file)
index 0000000..fd678b4
--- /dev/null
@@ -0,0 +1,323 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "map.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na\r
+    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na\r
+    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na\r
+    , typename T12 = na, typename T13 = na, typename T14 = na\r
+    , typename T15 = na, typename T16 = na, typename T17 = na\r
+    , typename T18 = na, typename T19 = na\r
+    >\r
+struct map;\r
+\r
+template<\r
+     \r
+    >\r
+struct map<\r
+          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : map0<  >\r
+{\r
+    typedef map0<  >::type type;\r
+};\r
+\r
+template<\r
+      typename T0\r
+    >\r
+struct map<\r
+          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : map1<T0>\r
+{\r
+    typedef typename map1<T0>::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1\r
+    >\r
+struct map<\r
+          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : map2< T0,T1 >\r
+{\r
+    typedef typename map2< T0,T1 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2\r
+    >\r
+struct map<\r
+          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : map3< T0,T1,T2 >\r
+{\r
+    typedef typename map3< T0,T1,T2 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3\r
+    >\r
+struct map<\r
+          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : map4< T0,T1,T2,T3 >\r
+{\r
+    typedef typename map4< T0,T1,T2,T3 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    >\r
+struct map<\r
+          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : map5< T0,T1,T2,T3,T4 >\r
+{\r
+    typedef typename map5< T0,T1,T2,T3,T4 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5\r
+    >\r
+struct map<\r
+          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : map6< T0,T1,T2,T3,T4,T5 >\r
+{\r
+    typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6\r
+    >\r
+struct map<\r
+          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : map7< T0,T1,T2,T3,T4,T5,T6 >\r
+{\r
+    typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7\r
+    >\r
+struct map<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : map8< T0,T1,T2,T3,T4,T5,T6,T7 >\r
+{\r
+    typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8\r
+    >\r
+struct map<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >\r
+{\r
+    typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    >\r
+struct map<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >\r
+{\r
+    typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10\r
+    >\r
+struct map<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >\r
+{\r
+    typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11\r
+    >\r
+struct map<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na\r
+        , na, na, na, na\r
+        >\r
+    : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >\r
+{\r
+    typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12\r
+    >\r
+struct map<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na\r
+        , na, na, na, na\r
+        >\r
+    : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >\r
+{\r
+    typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13\r
+    >\r
+struct map<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na\r
+        , na, na, na, na\r
+        >\r
+    : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >\r
+{\r
+    typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    >\r
+struct map<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na\r
+        , na, na, na, na\r
+        >\r
+    : map15<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        >\r
+{\r
+    typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    , typename T15\r
+    >\r
+struct map<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, na, na, na, na\r
+        >\r
+    : map16<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15\r
+        >\r
+{\r
+    typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    , typename T15, typename T16\r
+    >\r
+struct map<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, na, na, na\r
+        >\r
+    : map17<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16\r
+        >\r
+{\r
+    typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    , typename T15, typename T16, typename T17\r
+    >\r
+struct map<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, T17, na, na\r
+        >\r
+    : map18<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, T17\r
+        >\r
+{\r
+    typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    , typename T15, typename T16, typename T17, typename T18\r
+    >\r
+struct map<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, T17, T18, na\r
+        >\r
+    : map19<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, T17, T18\r
+        >\r
+{\r
+    typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;\r
+};\r
+\r
+/// primary template (not a specialization!)\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    , typename T15, typename T16, typename T17, typename T18, typename T19\r
+    >\r
+struct map\r
+    : map20<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, T17, T18, T19\r
+        >\r
+{\r
+    typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;\r
+};\r
+\r
+}}\r
+\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp
new file mode 100644 (file)
index 0000000..c8f70d2
--- /dev/null
@@ -0,0 +1,146 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "minus.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename Tag1\r
+    , typename Tag2\r
+    >\r
+struct minus_impl\r
+    : if_c<\r
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
+            )\r
+\r
+        , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
+        , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
+        >::type\r
+{\r
+};\r
+\r
+/// for Digital Mars C++/compilers with no CTPS/TTP support\r
+template<> struct minus_impl< na,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct minus_impl< na,Tag >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct minus_impl< Tag,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename T > struct minus_tag\r
+{\r
+    typedef typename T::tag type;\r
+};\r
+\r
+template<\r
+      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
+    , typename N3 = na, typename N4 = na, typename N5 = na\r
+    >\r
+struct minus\r
+    : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5>\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
+          5\r
+        , minus\r
+        , ( N1, N2, N3, N4, N5 )\r
+        )\r
+};\r
+\r
+template<\r
+      typename N1, typename N2, typename N3, typename N4\r
+    >\r
+struct minus< N1,N2,N3,N4,na >\r
+\r
+    : minus< minus< minus< N1,N2 >, N3>, N4>\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
+          5\r
+        , minus\r
+        , ( N1, N2, N3, N4, na )\r
+        )\r
+};\r
+\r
+template<\r
+      typename N1, typename N2, typename N3\r
+    >\r
+struct minus< N1,N2,N3,na,na >\r
+\r
+    : minus< minus< N1,N2 >, N3>\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
+          5\r
+        , minus\r
+        , ( N1, N2, N3, na, na )\r
+        )\r
+};\r
+\r
+template<\r
+      typename N1, typename N2\r
+    >\r
+struct minus< N1,N2,na,na,na >\r
+    : minus_impl<\r
+          typename minus_tag<N1>::type\r
+        , typename minus_tag<N2>::type\r
+        >::template apply< N1,N2 >::type\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
+          5\r
+        , minus\r
+        , ( N1, N2, na, na, na )\r
+        )\r
+\r
+};\r
+\r
+BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)\r
+\r
+}}\r
+\r
+namespace boost { namespace mpl {\r
+template<>\r
+struct minus_impl< integral_c_tag,integral_c_tag >\r
+{\r
+    template< typename N1, typename N2 > struct apply\r
+\r
+        : integral_c<\r
+              typename aux::largest_int<\r
+                  typename N1::value_type\r
+                , typename N2::value_type\r
+                >::type\r
+            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value\r
+                  - BOOST_MPL_AUX_VALUE_WKND(N2)::value\r
+                )\r
+            >\r
+    {\r
+    };\r
+};\r
+\r
+}}\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/modulus.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/modulus.hpp
new file mode 100644 (file)
index 0000000..1d30682
--- /dev/null
@@ -0,0 +1,101 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "modulus.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename Tag1\r
+    , typename Tag2\r
+    >\r
+struct modulus_impl\r
+    : if_c<\r
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
+            )\r
+\r
+        , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
+        , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
+        >::type\r
+{\r
+};\r
+\r
+/// for Digital Mars C++/compilers with no CTPS/TTP support\r
+template<> struct modulus_impl< na,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct modulus_impl< na,Tag >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct modulus_impl< Tag,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename T > struct modulus_tag\r
+{\r
+    typedef typename T::tag type;\r
+};\r
+\r
+template<\r
+      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
+    >\r
+struct modulus\r
+\r
+    : modulus_impl<\r
+          typename modulus_tag<N1>::type\r
+        , typename modulus_tag<N2>::type\r
+        >::template apply< N1,N2 >::type\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))\r
+\r
+};\r
+\r
+BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)\r
+\r
+}}\r
+\r
+namespace boost { namespace mpl {\r
+template<>\r
+struct modulus_impl< integral_c_tag,integral_c_tag >\r
+{\r
+    template< typename N1, typename N2 > struct apply\r
+\r
+        : integral_c<\r
+              typename aux::largest_int<\r
+                  typename N1::value_type\r
+                , typename N2::value_type\r
+                >::type\r
+            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value\r
+                  % BOOST_MPL_AUX_VALUE_WKND(N2)::value\r
+                )\r
+            >\r
+    {\r
+    };\r
+};\r
+\r
+}}\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/not_equal_to.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/not_equal_to.hpp
new file mode 100644 (file)
index 0000000..76a4152
--- /dev/null
@@ -0,0 +1,94 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "not_equal_to.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename Tag1\r
+    , typename Tag2\r
+    >\r
+struct not_equal_to_impl\r
+    : if_c<\r
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
+            )\r
+\r
+        , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
+        , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
+        >::type\r
+{\r
+};\r
+\r
+/// for Digital Mars C++/compilers with no CTPS/TTP support\r
+template<> struct not_equal_to_impl< na,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct not_equal_to_impl< na,Tag >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct not_equal_to_impl< Tag,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename T > struct not_equal_to_tag\r
+{\r
+    typedef typename T::tag type;\r
+};\r
+\r
+template<\r
+      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
+    >\r
+struct not_equal_to\r
+\r
+    : not_equal_to_impl<\r
+          typename not_equal_to_tag<N1>::type\r
+        , typename not_equal_to_tag<N2>::type\r
+        >::template apply< N1,N2 >::type\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))\r
+\r
+};\r
+\r
+BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)\r
+\r
+}}\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<>\r
+struct not_equal_to_impl< integral_c_tag,integral_c_tag >\r
+{\r
+    template< typename N1, typename N2 > struct apply\r
+\r
+        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >\r
+    {\r
+    };\r
+};\r
+\r
+}}\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/or.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/or.hpp
new file mode 100644 (file)
index 0000000..0a62060
--- /dev/null
@@ -0,0 +1,69 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "or.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+namespace aux {\r
+\r
+template< bool C_, typename T1, typename T2, typename T3, typename T4 >\r
+struct or_impl\r
+    : true_\r
+{\r
+};\r
+\r
+template< typename T1, typename T2, typename T3, typename T4 >\r
+struct or_impl< false,T1,T2,T3,T4 >\r
+    : or_impl<\r
+          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value\r
+        , T2, T3, T4\r
+        , false_\r
+        >\r
+{\r
+};\r
+\r
+template<>\r
+struct or_impl<\r
+          false\r
+        , false_, false_, false_, false_\r
+        >\r
+    : false_\r
+{\r
+};\r
+\r
+} // namespace aux\r
+\r
+template<\r
+      typename BOOST_MPL_AUX_NA_PARAM(T1)\r
+    , typename BOOST_MPL_AUX_NA_PARAM(T2)\r
+    , typename T3 = false_, typename T4 = false_, typename T5 = false_\r
+    >\r
+struct or_\r
+\r
+    : aux::or_impl<\r
+          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value\r
+        , T2, T3, T4, T5\r
+        >\r
+\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
+          5\r
+        , or_\r
+        , ( T1, T2, T3, T4, T5)\r
+        )\r
+};\r
+\r
+BOOST_MPL_AUX_NA_SPEC2(\r
+      2\r
+    , 5\r
+    , or_\r
+    )\r
+\r
+}}\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/placeholders.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/placeholders.hpp
new file mode 100644 (file)
index 0000000..ea973c8
--- /dev/null
@@ -0,0 +1,105 @@
+\r
+// Copyright Aleksey Gurtovoy 2001-2004\r
+// Copyright Peter Dimov 2001-2003\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "placeholders.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN\r
+typedef arg< -1 > _;\r
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE\r
+namespace boost { namespace mpl {\r
+\r
+BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)\r
+\r
+namespace placeholders {\r
+using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;\r
+}\r
+\r
+}}\r
+\r
+/// agurt, 17/mar/02: one more placeholder for the last 'apply#' \r
+/// specialization\r
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN\r
+typedef arg<1> _1;\r
+\r
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE\r
+namespace boost { namespace mpl {\r
+\r
+BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)\r
+\r
+namespace placeholders {\r
+using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;\r
+}\r
+\r
+}}\r
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN\r
+typedef arg<2> _2;\r
+\r
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE\r
+namespace boost { namespace mpl {\r
+\r
+BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)\r
+\r
+namespace placeholders {\r
+using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;\r
+}\r
+\r
+}}\r
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN\r
+typedef arg<3> _3;\r
+\r
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE\r
+namespace boost { namespace mpl {\r
+\r
+BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)\r
+\r
+namespace placeholders {\r
+using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;\r
+}\r
+\r
+}}\r
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN\r
+typedef arg<4> _4;\r
+\r
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE\r
+namespace boost { namespace mpl {\r
+\r
+BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)\r
+\r
+namespace placeholders {\r
+using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;\r
+}\r
+\r
+}}\r
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN\r
+typedef arg<5> _5;\r
+\r
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE\r
+namespace boost { namespace mpl {\r
+\r
+BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)\r
+\r
+namespace placeholders {\r
+using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;\r
+}\r
+\r
+}}\r
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN\r
+typedef arg<6> _6;\r
+\r
+BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE\r
+namespace boost { namespace mpl {\r
+\r
+BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)\r
+\r
+namespace placeholders {\r
+using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;\r
+}\r
+\r
+}}\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/plus.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/plus.hpp
new file mode 100644 (file)
index 0000000..6a9a4a0
--- /dev/null
@@ -0,0 +1,146 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "plus.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename Tag1\r
+    , typename Tag2\r
+    >\r
+struct plus_impl\r
+    : if_c<\r
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
+            )\r
+\r
+        , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
+        , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
+        >::type\r
+{\r
+};\r
+\r
+/// for Digital Mars C++/compilers with no CTPS/TTP support\r
+template<> struct plus_impl< na,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct plus_impl< na,Tag >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct plus_impl< Tag,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename T > struct plus_tag\r
+{\r
+    typedef typename T::tag type;\r
+};\r
+\r
+template<\r
+      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
+    , typename N3 = na, typename N4 = na, typename N5 = na\r
+    >\r
+struct plus\r
+    : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5>\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
+          5\r
+        , plus\r
+        , ( N1, N2, N3, N4, N5 )\r
+        )\r
+};\r
+\r
+template<\r
+      typename N1, typename N2, typename N3, typename N4\r
+    >\r
+struct plus< N1,N2,N3,N4,na >\r
+\r
+    : plus< plus< plus< N1,N2 >, N3>, N4>\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
+          5\r
+        , plus\r
+        , ( N1, N2, N3, N4, na )\r
+        )\r
+};\r
+\r
+template<\r
+      typename N1, typename N2, typename N3\r
+    >\r
+struct plus< N1,N2,N3,na,na >\r
+\r
+    : plus< plus< N1,N2 >, N3>\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
+          5\r
+        , plus\r
+        , ( N1, N2, N3, na, na )\r
+        )\r
+};\r
+\r
+template<\r
+      typename N1, typename N2\r
+    >\r
+struct plus< N1,N2,na,na,na >\r
+    : plus_impl<\r
+          typename plus_tag<N1>::type\r
+        , typename plus_tag<N2>::type\r
+        >::template apply< N1,N2 >::type\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
+          5\r
+        , plus\r
+        , ( N1, N2, na, na, na )\r
+        )\r
+\r
+};\r
+\r
+BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)\r
+\r
+}}\r
+\r
+namespace boost { namespace mpl {\r
+template<>\r
+struct plus_impl< integral_c_tag,integral_c_tag >\r
+{\r
+    template< typename N1, typename N2 > struct apply\r
+\r
+        : integral_c<\r
+              typename aux::largest_int<\r
+                  typename N1::value_type\r
+                , typename N2::value_type\r
+                >::type\r
+            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value\r
+                  + BOOST_MPL_AUX_VALUE_WKND(N2)::value\r
+                )\r
+            >\r
+    {\r
+    };\r
+};\r
+\r
+}}\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/quote.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/quote.hpp
new file mode 100644 (file)
index 0000000..8eaab71
--- /dev/null
@@ -0,0 +1,11 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2008\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "quote.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_fold_impl.hpp
new file mode 100644 (file)
index 0000000..e453bca
--- /dev/null
@@ -0,0 +1,295 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "reverse_fold_impl.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl { namespace aux {\r
+\r
+/// forward declaration\r
+\r
+template<\r
+      long N\r
+    , typename First\r
+    , typename Last\r
+    , typename State\r
+    , typename BackwardOp\r
+    , typename ForwardOp\r
+    >\r
+struct reverse_fold_impl;\r
+\r
+template< long N >\r
+struct reverse_fold_chunk;\r
+\r
+template<> struct reverse_fold_chunk<0>\r
+{\r
+    template<\r
+          typename First\r
+        , typename Last\r
+        , typename State\r
+        , typename BackwardOp\r
+        , typename ForwardOp\r
+        >\r
+    struct result_\r
+    {\r
+        typedef First iter0;\r
+        typedef State fwd_state0;\r
+        typedef fwd_state0 bkwd_state0;\r
+        typedef bkwd_state0 state;\r
+        typedef iter0 iterator;\r
+    };\r
+};\r
+\r
+template<> struct reverse_fold_chunk<1>\r
+{\r
+    template<\r
+          typename First\r
+        , typename Last\r
+        , typename State\r
+        , typename BackwardOp\r
+        , typename ForwardOp\r
+        >\r
+    struct result_\r
+    {\r
+        typedef First iter0;\r
+        typedef State fwd_state0;\r
+        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;\r
+        typedef typename mpl::next<iter0>::type iter1;\r
+        \r
+\r
+        typedef fwd_state1 bkwd_state1;\r
+        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;\r
+        typedef bkwd_state0 state;\r
+        typedef iter1 iterator;\r
+    };\r
+};\r
+\r
+template<> struct reverse_fold_chunk<2>\r
+{\r
+    template<\r
+          typename First\r
+        , typename Last\r
+        , typename State\r
+        , typename BackwardOp\r
+        , typename ForwardOp\r
+        >\r
+    struct result_\r
+    {\r
+        typedef First iter0;\r
+        typedef State fwd_state0;\r
+        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;\r
+        typedef typename mpl::next<iter0>::type iter1;\r
+        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;\r
+        typedef typename mpl::next<iter1>::type iter2;\r
+        \r
+\r
+        typedef fwd_state2 bkwd_state2;\r
+        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;\r
+        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;\r
+        \r
+\r
+        typedef bkwd_state0 state;\r
+        typedef iter2 iterator;\r
+    };\r
+};\r
+\r
+template<> struct reverse_fold_chunk<3>\r
+{\r
+    template<\r
+          typename First\r
+        , typename Last\r
+        , typename State\r
+        , typename BackwardOp\r
+        , typename ForwardOp\r
+        >\r
+    struct result_\r
+    {\r
+        typedef First iter0;\r
+        typedef State fwd_state0;\r
+        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;\r
+        typedef typename mpl::next<iter0>::type iter1;\r
+        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;\r
+        typedef typename mpl::next<iter1>::type iter2;\r
+        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;\r
+        typedef typename mpl::next<iter2>::type iter3;\r
+        \r
+\r
+        typedef fwd_state3 bkwd_state3;\r
+        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;\r
+        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;\r
+        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;\r
+        \r
+\r
+        typedef bkwd_state0 state;\r
+        typedef iter3 iterator;\r
+    };\r
+};\r
+\r
+template<> struct reverse_fold_chunk<4>\r
+{\r
+    template<\r
+          typename First\r
+        , typename Last\r
+        , typename State\r
+        , typename BackwardOp\r
+        , typename ForwardOp\r
+        >\r
+    struct result_\r
+    {\r
+        typedef First iter0;\r
+        typedef State fwd_state0;\r
+        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;\r
+        typedef typename mpl::next<iter0>::type iter1;\r
+        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;\r
+        typedef typename mpl::next<iter1>::type iter2;\r
+        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;\r
+        typedef typename mpl::next<iter2>::type iter3;\r
+        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;\r
+        typedef typename mpl::next<iter3>::type iter4;\r
+        \r
+\r
+        typedef fwd_state4 bkwd_state4;\r
+        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;\r
+        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;\r
+        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;\r
+        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;\r
+        \r
+\r
+        typedef bkwd_state0 state;\r
+        typedef iter4 iterator;\r
+    };\r
+};\r
+\r
+template< long N >\r
+struct reverse_fold_chunk\r
+{\r
+    template<\r
+          typename First\r
+        , typename Last\r
+        , typename State\r
+        , typename BackwardOp\r
+        , typename ForwardOp\r
+        >\r
+    struct result_\r
+    {\r
+        typedef First iter0;\r
+        typedef State fwd_state0;\r
+        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;\r
+        typedef typename mpl::next<iter0>::type iter1;\r
+        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;\r
+        typedef typename mpl::next<iter1>::type iter2;\r
+        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;\r
+        typedef typename mpl::next<iter2>::type iter3;\r
+        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;\r
+        typedef typename mpl::next<iter3>::type iter4;\r
+        \r
+\r
+        typedef reverse_fold_impl<\r
+              ( (N - 4) < 0 ? 0 : N - 4 )\r
+            , iter4\r
+            , Last\r
+            , fwd_state4\r
+            , BackwardOp\r
+            , ForwardOp\r
+            > nested_chunk;\r
+\r
+        typedef typename nested_chunk::state bkwd_state4;\r
+        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;\r
+        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;\r
+        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;\r
+        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;\r
+        \r
+\r
+        typedef bkwd_state0 state;\r
+        typedef typename nested_chunk::iterator iterator;\r
+    };\r
+};\r
+\r
+template<\r
+      typename First\r
+    , typename Last\r
+    , typename State\r
+    , typename BackwardOp\r
+    , typename ForwardOp\r
+    >\r
+struct reverse_fold_step;\r
+\r
+template<\r
+      typename Last\r
+    , typename State\r
+    >\r
+struct reverse_fold_null_step\r
+{\r
+    typedef Last iterator;\r
+    typedef State state;\r
+};\r
+\r
+template<>\r
+struct reverse_fold_chunk< -1 >\r
+{\r
+    template<\r
+          typename First\r
+        , typename Last\r
+        , typename State\r
+        , typename BackwardOp\r
+        , typename ForwardOp\r
+        >\r
+    struct result_\r
+    {\r
+        typedef typename if_<\r
+              typename is_same< First,Last >::type\r
+            , reverse_fold_null_step< Last,State >\r
+            , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp >\r
+            >::type res_;\r
+\r
+        typedef typename res_::state state;\r
+        typedef typename res_::iterator iterator;\r
+    };\r
+};\r
+\r
+template<\r
+      typename First\r
+    , typename Last\r
+    , typename State\r
+    , typename BackwardOp\r
+    , typename ForwardOp\r
+    >\r
+struct reverse_fold_step\r
+{\r
+    typedef reverse_fold_chunk< -1 >::template result_<\r
+          typename mpl::next<First>::type\r
+        , Last\r
+        , typename apply2<ForwardOp,State, typename deref<First>::type>::type\r
+        , BackwardOp\r
+        , ForwardOp\r
+        > nested_step;\r
+\r
+    typedef typename apply2<\r
+          BackwardOp\r
+        , typename nested_step::state\r
+        , typename deref<First>::type\r
+        >::type state;\r
+\r
+    typedef typename nested_step::iterator iterator;\r
+};\r
+\r
+template<\r
+      long N\r
+    , typename First\r
+    , typename Last\r
+    , typename State\r
+    , typename BackwardOp\r
+    , typename ForwardOp\r
+    >\r
+struct reverse_fold_impl\r
+    : reverse_fold_chunk<N>\r
+        ::template result_< First,Last,State,BackwardOp,ForwardOp >\r
+{\r
+};\r
+\r
+}}}\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_iter_fold_impl.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_iter_fold_impl.hpp
new file mode 100644 (file)
index 0000000..454ed8e
--- /dev/null
@@ -0,0 +1,295 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "reverse_iter_fold_impl.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl { namespace aux {\r
+\r
+/// forward declaration\r
+\r
+template<\r
+      long N\r
+    , typename First\r
+    , typename Last\r
+    , typename State\r
+    , typename BackwardOp\r
+    , typename ForwardOp\r
+    >\r
+struct reverse_iter_fold_impl;\r
+\r
+template< long N >\r
+struct reverse_iter_fold_chunk;\r
+\r
+template<> struct reverse_iter_fold_chunk<0>\r
+{\r
+    template<\r
+          typename First\r
+        , typename Last\r
+        , typename State\r
+        , typename BackwardOp\r
+        , typename ForwardOp\r
+        >\r
+    struct result_\r
+    {\r
+        typedef First iter0;\r
+        typedef State fwd_state0;\r
+        typedef fwd_state0 bkwd_state0;\r
+        typedef bkwd_state0 state;\r
+        typedef iter0 iterator;\r
+    };\r
+};\r
+\r
+template<> struct reverse_iter_fold_chunk<1>\r
+{\r
+    template<\r
+          typename First\r
+        , typename Last\r
+        , typename State\r
+        , typename BackwardOp\r
+        , typename ForwardOp\r
+        >\r
+    struct result_\r
+    {\r
+        typedef First iter0;\r
+        typedef State fwd_state0;\r
+        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;\r
+        typedef typename mpl::next<iter0>::type iter1;\r
+        \r
+\r
+        typedef fwd_state1 bkwd_state1;\r
+        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;\r
+        typedef bkwd_state0 state;\r
+        typedef iter1 iterator;\r
+    };\r
+};\r
+\r
+template<> struct reverse_iter_fold_chunk<2>\r
+{\r
+    template<\r
+          typename First\r
+        , typename Last\r
+        , typename State\r
+        , typename BackwardOp\r
+        , typename ForwardOp\r
+        >\r
+    struct result_\r
+    {\r
+        typedef First iter0;\r
+        typedef State fwd_state0;\r
+        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;\r
+        typedef typename mpl::next<iter0>::type iter1;\r
+        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;\r
+        typedef typename mpl::next<iter1>::type iter2;\r
+        \r
+\r
+        typedef fwd_state2 bkwd_state2;\r
+        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;\r
+        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;\r
+        \r
+\r
+        typedef bkwd_state0 state;\r
+        typedef iter2 iterator;\r
+    };\r
+};\r
+\r
+template<> struct reverse_iter_fold_chunk<3>\r
+{\r
+    template<\r
+          typename First\r
+        , typename Last\r
+        , typename State\r
+        , typename BackwardOp\r
+        , typename ForwardOp\r
+        >\r
+    struct result_\r
+    {\r
+        typedef First iter0;\r
+        typedef State fwd_state0;\r
+        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;\r
+        typedef typename mpl::next<iter0>::type iter1;\r
+        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;\r
+        typedef typename mpl::next<iter1>::type iter2;\r
+        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;\r
+        typedef typename mpl::next<iter2>::type iter3;\r
+        \r
+\r
+        typedef fwd_state3 bkwd_state3;\r
+        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;\r
+        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;\r
+        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;\r
+        \r
+\r
+        typedef bkwd_state0 state;\r
+        typedef iter3 iterator;\r
+    };\r
+};\r
+\r
+template<> struct reverse_iter_fold_chunk<4>\r
+{\r
+    template<\r
+          typename First\r
+        , typename Last\r
+        , typename State\r
+        , typename BackwardOp\r
+        , typename ForwardOp\r
+        >\r
+    struct result_\r
+    {\r
+        typedef First iter0;\r
+        typedef State fwd_state0;\r
+        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;\r
+        typedef typename mpl::next<iter0>::type iter1;\r
+        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;\r
+        typedef typename mpl::next<iter1>::type iter2;\r
+        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;\r
+        typedef typename mpl::next<iter2>::type iter3;\r
+        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;\r
+        typedef typename mpl::next<iter3>::type iter4;\r
+        \r
+\r
+        typedef fwd_state4 bkwd_state4;\r
+        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;\r
+        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;\r
+        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;\r
+        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;\r
+        \r
+\r
+        typedef bkwd_state0 state;\r
+        typedef iter4 iterator;\r
+    };\r
+};\r
+\r
+template< long N >\r
+struct reverse_iter_fold_chunk\r
+{\r
+    template<\r
+          typename First\r
+        , typename Last\r
+        , typename State\r
+        , typename BackwardOp\r
+        , typename ForwardOp\r
+        >\r
+    struct result_\r
+    {\r
+        typedef First iter0;\r
+        typedef State fwd_state0;\r
+        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;\r
+        typedef typename mpl::next<iter0>::type iter1;\r
+        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;\r
+        typedef typename mpl::next<iter1>::type iter2;\r
+        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;\r
+        typedef typename mpl::next<iter2>::type iter3;\r
+        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;\r
+        typedef typename mpl::next<iter3>::type iter4;\r
+        \r
+\r
+        typedef reverse_iter_fold_impl<\r
+              ( (N - 4) < 0 ? 0 : N - 4 )\r
+            , iter4\r
+            , Last\r
+            , fwd_state4\r
+            , BackwardOp\r
+            , ForwardOp\r
+            > nested_chunk;\r
+\r
+        typedef typename nested_chunk::state bkwd_state4;\r
+        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;\r
+        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;\r
+        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;\r
+        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;\r
+        \r
+\r
+        typedef bkwd_state0 state;\r
+        typedef typename nested_chunk::iterator iterator;\r
+    };\r
+};\r
+\r
+template<\r
+      typename First\r
+    , typename Last\r
+    , typename State\r
+    , typename BackwardOp\r
+    , typename ForwardOp\r
+    >\r
+struct reverse_iter_fold_step;\r
+\r
+template<\r
+      typename Last\r
+    , typename State\r
+    >\r
+struct reverse_iter_fold_null_step\r
+{\r
+    typedef Last iterator;\r
+    typedef State state;\r
+};\r
+\r
+template<>\r
+struct reverse_iter_fold_chunk< -1 >\r
+{\r
+    template<\r
+          typename First\r
+        , typename Last\r
+        , typename State\r
+        , typename BackwardOp\r
+        , typename ForwardOp\r
+        >\r
+    struct result_\r
+    {\r
+        typedef typename if_<\r
+              typename is_same< First,Last >::type\r
+            , reverse_iter_fold_null_step< Last,State >\r
+            , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp >\r
+            >::type res_;\r
+\r
+        typedef typename res_::state state;\r
+        typedef typename res_::iterator iterator;\r
+    };\r
+};\r
+\r
+template<\r
+      typename First\r
+    , typename Last\r
+    , typename State\r
+    , typename BackwardOp\r
+    , typename ForwardOp\r
+    >\r
+struct reverse_iter_fold_step\r
+{\r
+    typedef reverse_iter_fold_chunk< -1 >::template result_<\r
+          typename mpl::next<First>::type\r
+        , Last\r
+        , typename apply2< ForwardOp,State,First >::type\r
+        , BackwardOp\r
+        , ForwardOp\r
+        > nested_step;\r
+\r
+    typedef typename apply2<\r
+          BackwardOp\r
+        , typename nested_step::state\r
+        , First\r
+        >::type state;\r
+\r
+    typedef typename nested_step::iterator iterator;\r
+};\r
+\r
+template<\r
+      long N\r
+    , typename First\r
+    , typename Last\r
+    , typename State\r
+    , typename BackwardOp\r
+    , typename ForwardOp\r
+    >\r
+struct reverse_iter_fold_impl\r
+    : reverse_iter_fold_chunk<N>\r
+        ::template result_< First,Last,State,BackwardOp,ForwardOp >\r
+{\r
+};\r
+\r
+}}}\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/set.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/set.hpp
new file mode 100644 (file)
index 0000000..089ce0b
--- /dev/null
@@ -0,0 +1,323 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "set.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na\r
+    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na\r
+    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na\r
+    , typename T12 = na, typename T13 = na, typename T14 = na\r
+    , typename T15 = na, typename T16 = na, typename T17 = na\r
+    , typename T18 = na, typename T19 = na\r
+    >\r
+struct set;\r
+\r
+template<\r
+     \r
+    >\r
+struct set<\r
+          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : set0<  >\r
+{\r
+    typedef set0<  >::type type;\r
+};\r
+\r
+template<\r
+      typename T0\r
+    >\r
+struct set<\r
+          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : set1<T0>\r
+{\r
+    typedef typename set1<T0>::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1\r
+    >\r
+struct set<\r
+          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : set2< T0,T1 >\r
+{\r
+    typedef typename set2< T0,T1 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2\r
+    >\r
+struct set<\r
+          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : set3< T0,T1,T2 >\r
+{\r
+    typedef typename set3< T0,T1,T2 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3\r
+    >\r
+struct set<\r
+          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : set4< T0,T1,T2,T3 >\r
+{\r
+    typedef typename set4< T0,T1,T2,T3 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    >\r
+struct set<\r
+          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : set5< T0,T1,T2,T3,T4 >\r
+{\r
+    typedef typename set5< T0,T1,T2,T3,T4 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5\r
+    >\r
+struct set<\r
+          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : set6< T0,T1,T2,T3,T4,T5 >\r
+{\r
+    typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6\r
+    >\r
+struct set<\r
+          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : set7< T0,T1,T2,T3,T4,T5,T6 >\r
+{\r
+    typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7\r
+    >\r
+struct set<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : set8< T0,T1,T2,T3,T4,T5,T6,T7 >\r
+{\r
+    typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8\r
+    >\r
+struct set<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >\r
+{\r
+    typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    >\r
+struct set<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >\r
+{\r
+    typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10\r
+    >\r
+struct set<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >\r
+{\r
+    typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11\r
+    >\r
+struct set<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na\r
+        , na, na, na, na\r
+        >\r
+    : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >\r
+{\r
+    typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12\r
+    >\r
+struct set<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na\r
+        , na, na, na, na\r
+        >\r
+    : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >\r
+{\r
+    typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13\r
+    >\r
+struct set<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na\r
+        , na, na, na, na\r
+        >\r
+    : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >\r
+{\r
+    typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    >\r
+struct set<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na\r
+        , na, na, na, na\r
+        >\r
+    : set15<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        >\r
+{\r
+    typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    , typename T15\r
+    >\r
+struct set<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, na, na, na, na\r
+        >\r
+    : set16<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15\r
+        >\r
+{\r
+    typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    , typename T15, typename T16\r
+    >\r
+struct set<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, na, na, na\r
+        >\r
+    : set17<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16\r
+        >\r
+{\r
+    typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    , typename T15, typename T16, typename T17\r
+    >\r
+struct set<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, T17, na, na\r
+        >\r
+    : set18<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, T17\r
+        >\r
+{\r
+    typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    , typename T15, typename T16, typename T17, typename T18\r
+    >\r
+struct set<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, T17, T18, na\r
+        >\r
+    : set19<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, T17, T18\r
+        >\r
+{\r
+    typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;\r
+};\r
+\r
+/// primary template (not a specialization!)\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    , typename T15, typename T16, typename T17, typename T18, typename T19\r
+    >\r
+struct set\r
+    : set20<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, T17, T18, T19\r
+        >\r
+{\r
+    typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;\r
+};\r
+\r
+}}\r
+\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/set_c.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/set_c.hpp
new file mode 100644 (file)
index 0000000..6351904
--- /dev/null
@@ -0,0 +1,328 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "set_c.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX\r
+    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX\r
+    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX\r
+    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX\r
+    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX\r
+    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX\r
+    , long C18 = LONG_MAX, long C19 = LONG_MAX\r
+    >\r
+struct set_c;\r
+\r
+template<\r
+      typename T\r
+    >\r
+struct set_c<\r
+          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : set0_c<T>\r
+{\r
+    typedef typename set0_c<T>::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0\r
+    >\r
+struct set_c<\r
+          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : set1_c< T,C0 >\r
+{\r
+    typedef typename set1_c< T,C0 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1\r
+    >\r
+struct set_c<\r
+          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : set2_c< T,C0,C1 >\r
+{\r
+    typedef typename set2_c< T,C0,C1 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2\r
+    >\r
+struct set_c<\r
+          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : set3_c< T,C0,C1,C2 >\r
+{\r
+    typedef typename set3_c< T,C0,C1,C2 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3\r
+    >\r
+struct set_c<\r
+          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : set4_c< T,C0,C1,C2,C3 >\r
+{\r
+    typedef typename set4_c< T,C0,C1,C2,C3 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4\r
+    >\r
+struct set_c<\r
+          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : set5_c< T,C0,C1,C2,C3,C4 >\r
+{\r
+    typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    >\r
+struct set_c<\r
+          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : set6_c< T,C0,C1,C2,C3,C4,C5 >\r
+{\r
+    typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6\r
+    >\r
+struct set_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : set7_c< T,C0,C1,C2,C3,C4,C5,C6 >\r
+{\r
+    typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7\r
+    >\r
+struct set_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX\r
+        >\r
+    : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >\r
+{\r
+    typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8\r
+    >\r
+struct set_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX\r
+        >\r
+    : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >\r
+{\r
+    typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9\r
+    >\r
+struct set_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX\r
+        >\r
+    : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >\r
+{\r
+    typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10\r
+    >\r
+struct set_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >\r
+{\r
+    typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11\r
+    >\r
+struct set_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >\r
+{\r
+    typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
+    >\r
+struct set_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >\r
+{\r
+    typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
+    , long C13\r
+    >\r
+struct set_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : set14_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13\r
+        >\r
+{\r
+    typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
+    , long C13, long C14\r
+    >\r
+struct set_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : set15_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        >\r
+{\r
+    typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
+    , long C13, long C14, long C15\r
+    >\r
+struct set_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : set16_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        , C15\r
+        >\r
+{\r
+    typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
+    , long C13, long C14, long C15, long C16\r
+    >\r
+struct set_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : set17_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        , C15, C16\r
+        >\r
+{\r
+    typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
+    , long C13, long C14, long C15, long C16, long C17\r
+    >\r
+struct set_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        , C15, C16, C17, LONG_MAX, LONG_MAX\r
+        >\r
+    : set18_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        , C15, C16, C17\r
+        >\r
+{\r
+    typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
+    , long C13, long C14, long C15, long C16, long C17, long C18\r
+    >\r
+struct set_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        , C15, C16, C17, C18, LONG_MAX\r
+        >\r
+    : set19_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        , C15, C16, C17, C18\r
+        >\r
+{\r
+    typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;\r
+};\r
+\r
+/// primary template (not a specialization!)\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
+    , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
+    >\r
+struct set_c\r
+    : set20_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        , C15, C16, C17, C18, C19\r
+        >\r
+{\r
+    typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;\r
+};\r
+\r
+}}\r
+\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/shift_left.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/shift_left.hpp
new file mode 100644 (file)
index 0000000..6f99bd9
--- /dev/null
@@ -0,0 +1,99 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+// Copyright Jaap Suter 2003\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "shift_left.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename Tag1\r
+    , typename Tag2\r
+    >\r
+struct shift_left_impl\r
+    : if_c<\r
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
+            )\r
+\r
+        , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
+        , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
+        >::type\r
+{\r
+};\r
+\r
+/// for Digital Mars C++/compilers with no CTPS/TTP support\r
+template<> struct shift_left_impl< na,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct shift_left_impl< na,Tag >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct shift_left_impl< Tag,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename T > struct shift_left_tag\r
+{\r
+    typedef typename T::tag type;\r
+};\r
+\r
+template<\r
+      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
+    >\r
+struct shift_left\r
+\r
+    : shift_left_impl<\r
+          typename shift_left_tag<N1>::type\r
+        , typename shift_left_tag<N2>::type\r
+        >::template apply< N1,N2 >::type\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))\r
+\r
+};\r
+\r
+BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)\r
+\r
+}}\r
+\r
+namespace boost { namespace mpl {\r
+template<>\r
+struct shift_left_impl< integral_c_tag,integral_c_tag >\r
+{\r
+    template< typename N, typename S > struct apply\r
+\r
+        : integral_c<\r
+              typename N::value_type\r
+            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value\r
+                  << BOOST_MPL_AUX_VALUE_WKND(S)::value\r
+                )\r
+            >\r
+    {\r
+    };\r
+};\r
+\r
+}}\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/shift_right.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/shift_right.hpp
new file mode 100644 (file)
index 0000000..64d80fd
--- /dev/null
@@ -0,0 +1,99 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+// Copyright Jaap Suter 2003\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "shift_right.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename Tag1\r
+    , typename Tag2\r
+    >\r
+struct shift_right_impl\r
+    : if_c<\r
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
+            )\r
+\r
+        , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
+        , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
+        >::type\r
+{\r
+};\r
+\r
+/// for Digital Mars C++/compilers with no CTPS/TTP support\r
+template<> struct shift_right_impl< na,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct shift_right_impl< na,Tag >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct shift_right_impl< Tag,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename T > struct shift_right_tag\r
+{\r
+    typedef typename T::tag type;\r
+};\r
+\r
+template<\r
+      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
+    >\r
+struct shift_right\r
+\r
+    : shift_right_impl<\r
+          typename shift_right_tag<N1>::type\r
+        , typename shift_right_tag<N2>::type\r
+        >::template apply< N1,N2 >::type\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))\r
+\r
+};\r
+\r
+BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)\r
+\r
+}}\r
+\r
+namespace boost { namespace mpl {\r
+template<>\r
+struct shift_right_impl< integral_c_tag,integral_c_tag >\r
+{\r
+    template< typename N, typename S > struct apply\r
+\r
+        : integral_c<\r
+              typename N::value_type\r
+            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value\r
+                  >> BOOST_MPL_AUX_VALUE_WKND(S)::value\r
+                )\r
+            >\r
+    {\r
+    };\r
+};\r
+\r
+}}\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/template_arity.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/template_arity.hpp
new file mode 100644 (file)
index 0000000..a0b058f
--- /dev/null
@@ -0,0 +1,40 @@
+\r
+// Copyright Aleksey Gurtovoy 2001-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "template_arity.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl { namespace aux {\r
+\r
+template< bool >\r
+struct template_arity_impl\r
+{\r
+    template< typename F > struct result_\r
+        : mpl::int_< -1 >\r
+    {\r
+    };\r
+};\r
+\r
+template<>\r
+struct template_arity_impl<true>\r
+{\r
+    template< typename F > struct result_\r
+        : F::arity\r
+    {\r
+    };\r
+};\r
+\r
+template< typename F >\r
+struct template_arity\r
+    : template_arity_impl< ::boost::mpl::aux::has_rebind<F>::value >\r
+        ::template result_<F>\r
+{\r
+};\r
+\r
+}}}\r
+\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/times.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/times.hpp
new file mode 100644 (file)
index 0000000..69a885a
--- /dev/null
@@ -0,0 +1,146 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "times.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename Tag1\r
+    , typename Tag2\r
+    >\r
+struct times_impl\r
+    : if_c<\r
+          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)\r
+              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)\r
+            )\r
+\r
+        , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 >\r
+        , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 >\r
+        >::type\r
+{\r
+};\r
+\r
+/// for Digital Mars C++/compilers with no CTPS/TTP support\r
+template<> struct times_impl< na,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct times_impl< na,Tag >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename Tag > struct times_impl< Tag,na >\r
+{\r
+    template< typename U1, typename U2 > struct apply\r
+    {\r
+        typedef apply type;\r
+        BOOST_STATIC_CONSTANT(int, value  = 0);\r
+    };\r
+};\r
+\r
+template< typename T > struct times_tag\r
+{\r
+    typedef typename T::tag type;\r
+};\r
+\r
+template<\r
+      typename BOOST_MPL_AUX_NA_PARAM(N1)\r
+    , typename BOOST_MPL_AUX_NA_PARAM(N2)\r
+    , typename N3 = na, typename N4 = na, typename N5 = na\r
+    >\r
+struct times\r
+    : times< times< times< times< N1,N2 >, N3>, N4>, N5>\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT(\r
+          5\r
+        , times\r
+        , ( N1, N2, N3, N4, N5 )\r
+        )\r
+};\r
+\r
+template<\r
+      typename N1, typename N2, typename N3, typename N4\r
+    >\r
+struct times< N1,N2,N3,N4,na >\r
+\r
+    : times< times< times< N1,N2 >, N3>, N4>\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
+          5\r
+        , times\r
+        , ( N1, N2, N3, N4, na )\r
+        )\r
+};\r
+\r
+template<\r
+      typename N1, typename N2, typename N3\r
+    >\r
+struct times< N1,N2,N3,na,na >\r
+\r
+    : times< times< N1,N2 >, N3>\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
+          5\r
+        , times\r
+        , ( N1, N2, N3, na, na )\r
+        )\r
+};\r
+\r
+template<\r
+      typename N1, typename N2\r
+    >\r
+struct times< N1,N2,na,na,na >\r
+    : times_impl<\r
+          typename times_tag<N1>::type\r
+        , typename times_tag<N2>::type\r
+        >::template apply< N1,N2 >::type\r
+{\r
+    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(\r
+          5\r
+        , times\r
+        , ( N1, N2, na, na, na )\r
+        )\r
+\r
+};\r
+\r
+BOOST_MPL_AUX_NA_SPEC2(2, 5, times)\r
+\r
+}}\r
+\r
+namespace boost { namespace mpl {\r
+template<>\r
+struct times_impl< integral_c_tag,integral_c_tag >\r
+{\r
+    template< typename N1, typename N2 > struct apply\r
+\r
+        : integral_c<\r
+              typename aux::largest_int<\r
+                  typename N1::value_type\r
+                , typename N2::value_type\r
+                >::type\r
+            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value\r
+                  * BOOST_MPL_AUX_VALUE_WKND(N2)::value\r
+                )\r
+            >\r
+    {\r
+    };\r
+};\r
+\r
+}}\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/unpack_args.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/unpack_args.hpp
new file mode 100644 (file)
index 0000000..cedd428
--- /dev/null
@@ -0,0 +1,97 @@
+\r
+// Copyright Aleksey Gurtovoy 2002-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "unpack_args.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+namespace aux {\r
+\r
+template< int size, typename F, typename Args >\r
+struct unpack_args_impl;\r
+\r
+template< typename F, typename Args >\r
+struct unpack_args_impl< 0,F,Args >\r
+    : apply0<\r
+          F\r
+        >\r
+{\r
+};\r
+\r
+template< typename F, typename Args >\r
+struct unpack_args_impl< 1,F,Args >\r
+    : apply1<\r
+          F\r
+        , typename at_c< Args,0 >::type\r
+        >\r
+{\r
+};\r
+\r
+template< typename F, typename Args >\r
+struct unpack_args_impl< 2,F,Args >\r
+    : apply2<\r
+          F\r
+        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type\r
+        >\r
+{\r
+};\r
+\r
+template< typename F, typename Args >\r
+struct unpack_args_impl< 3,F,Args >\r
+    : apply3<\r
+          F\r
+        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type\r
+        , typename at_c< Args,2 >::type\r
+        >\r
+{\r
+};\r
+\r
+template< typename F, typename Args >\r
+struct unpack_args_impl< 4,F,Args >\r
+    : apply4<\r
+          F\r
+        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type\r
+        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type\r
+        >\r
+{\r
+};\r
+\r
+template< typename F, typename Args >\r
+struct unpack_args_impl< 5,F,Args >\r
+    : apply5<\r
+          F\r
+        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type\r
+        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type\r
+        , typename at_c< Args,4 >::type\r
+        >\r
+{\r
+};\r
+\r
+}\r
+\r
+template<\r
+      typename F\r
+    >\r
+struct unpack_args\r
+{\r
+    template< typename Args > struct apply\r
+    {\r
+        typedef typename aux::unpack_args_impl<\r
+              size<Args>::value\r
+            , F\r
+            , Args\r
+            >::type type;\r
+\r
+    };\r
+};\r
+\r
+BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)\r
+\r
+}}\r
+\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/vector.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/vector.hpp
new file mode 100644 (file)
index 0000000..e1f3c62
--- /dev/null
@@ -0,0 +1,323 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2004\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "vector.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na\r
+    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na\r
+    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na\r
+    , typename T12 = na, typename T13 = na, typename T14 = na\r
+    , typename T15 = na, typename T16 = na, typename T17 = na\r
+    , typename T18 = na, typename T19 = na\r
+    >\r
+struct vector;\r
+\r
+template<\r
+     \r
+    >\r
+struct vector<\r
+          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : vector0<  >\r
+{\r
+    typedef vector0<  >::type type;\r
+};\r
+\r
+template<\r
+      typename T0\r
+    >\r
+struct vector<\r
+          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : vector1<T0>\r
+{\r
+    typedef typename vector1<T0>::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1\r
+    >\r
+struct vector<\r
+          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : vector2< T0,T1 >\r
+{\r
+    typedef typename vector2< T0,T1 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2\r
+    >\r
+struct vector<\r
+          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : vector3< T0,T1,T2 >\r
+{\r
+    typedef typename vector3< T0,T1,T2 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3\r
+    >\r
+struct vector<\r
+          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : vector4< T0,T1,T2,T3 >\r
+{\r
+    typedef typename vector4< T0,T1,T2,T3 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    >\r
+struct vector<\r
+          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : vector5< T0,T1,T2,T3,T4 >\r
+{\r
+    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5\r
+    >\r
+struct vector<\r
+          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : vector6< T0,T1,T2,T3,T4,T5 >\r
+{\r
+    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6\r
+    >\r
+struct vector<\r
+          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : vector7< T0,T1,T2,T3,T4,T5,T6 >\r
+{\r
+    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7\r
+    >\r
+struct vector<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >\r
+{\r
+    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8\r
+    >\r
+struct vector<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >\r
+{\r
+    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    >\r
+struct vector<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >\r
+{\r
+    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10\r
+    >\r
+struct vector<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na\r
+        , na, na, na\r
+        >\r
+    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >\r
+{\r
+    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11\r
+    >\r
+struct vector<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na\r
+        , na, na, na, na\r
+        >\r
+    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >\r
+{\r
+    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12\r
+    >\r
+struct vector<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na\r
+        , na, na, na, na\r
+        >\r
+    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >\r
+{\r
+    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13\r
+    >\r
+struct vector<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na\r
+        , na, na, na, na\r
+        >\r
+    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >\r
+{\r
+    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    >\r
+struct vector<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na\r
+        , na, na, na, na\r
+        >\r
+    : vector15<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        >\r
+{\r
+    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    , typename T15\r
+    >\r
+struct vector<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, na, na, na, na\r
+        >\r
+    : vector16<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15\r
+        >\r
+{\r
+    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    , typename T15, typename T16\r
+    >\r
+struct vector<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, na, na, na\r
+        >\r
+    : vector17<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16\r
+        >\r
+{\r
+    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    , typename T15, typename T16, typename T17\r
+    >\r
+struct vector<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, T17, na, na\r
+        >\r
+    : vector18<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, T17\r
+        >\r
+{\r
+    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;\r
+};\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    , typename T15, typename T16, typename T17, typename T18\r
+    >\r
+struct vector<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, T17, T18, na\r
+        >\r
+    : vector19<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, T17, T18\r
+        >\r
+{\r
+    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;\r
+};\r
+\r
+/// primary template (not a specialization!)\r
+\r
+template<\r
+      typename T0, typename T1, typename T2, typename T3, typename T4\r
+    , typename T5, typename T6, typename T7, typename T8, typename T9\r
+    , typename T10, typename T11, typename T12, typename T13, typename T14\r
+    , typename T15, typename T16, typename T17, typename T18, typename T19\r
+    >\r
+struct vector\r
+    : vector20<\r
+          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14\r
+        , T15, T16, T17, T18, T19\r
+        >\r
+{\r
+    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;\r
+};\r
+\r
+}}\r
+\r
diff --git a/boost/boost/mpl/aux_/preprocessed/bcc_pre590/vector_c.hpp b/boost/boost/mpl/aux_/preprocessed/bcc_pre590/vector_c.hpp
new file mode 100644 (file)
index 0000000..d568ac9
--- /dev/null
@@ -0,0 +1,309 @@
+\r
+// Copyright Aleksey Gurtovoy 2000-2008\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. \r
+// (See accompanying file LICENSE_1_0.txt or copy at \r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+// *Preprocessed* version of the main "vector_c.hpp" header\r
+// -- DO NOT modify by hand!\r
+\r
+namespace boost { namespace mpl {\r
+\r
+template<\r
+      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX\r
+    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX\r
+    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX\r
+    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX\r
+    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX\r
+    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX\r
+    , long C18 = LONG_MAX, long C19 = LONG_MAX\r
+    >\r
+struct vector_c;\r
+\r
+template<\r
+      typename T\r
+    >\r
+struct vector_c<\r
+          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : vector0_c<T>\r
+{\r
+    typedef typename vector0_c<T>::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0\r
+    >\r
+struct vector_c<\r
+          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : vector1_c< T, T(C0) >\r
+{\r
+    typedef typename vector1_c< T, T(C0) >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1\r
+    >\r
+struct vector_c<\r
+          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : vector2_c< T, T(C0), T(C1) >\r
+{\r
+    typedef typename vector2_c< T, T(C0), T(C1) >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2\r
+    >\r
+struct vector_c<\r
+          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : vector3_c< T, T(C0), T(C1), T(C2) >\r
+{\r
+    typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3\r
+    >\r
+struct vector_c<\r
+          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : vector4_c< T, T(C0), T(C1), T(C2), T(C3) >\r
+{\r
+    typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4\r
+    >\r
+struct vector_c<\r
+          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >\r
+{\r
+    typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    >\r
+struct vector_c<\r
+          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >\r
+{\r
+    typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6\r
+    >\r
+struct vector_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >\r
+{\r
+    typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7\r
+    >\r
+struct vector_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX\r
+        >\r
+    : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >\r
+{\r
+    typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8\r
+    >\r
+struct vector_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX\r
+        >\r
+    : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >\r
+{\r
+    typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9\r
+    >\r
+struct vector_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        , LONG_MAX\r
+        >\r
+    : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >\r
+{\r
+    typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10\r
+    >\r
+struct vector_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >\r
+{\r
+    typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11\r
+    >\r
+struct vector_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : vector12_c< 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) >\r
+{\r
+    typedef typename vector12_c< 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) >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
+    >\r
+struct vector_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : vector13_c< 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) >\r
+{\r
+    typedef typename vector13_c< 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) >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
+    , long C13\r
+    >\r
+struct vector_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : vector14_c< 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) >\r
+{\r
+    typedef typename vector14_c< 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) >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
+    , long C13, long C14\r
+    >\r
+struct vector_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : vector15_c< 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) >\r
+{\r
+    typedef typename vector15_c< 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) >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
+    , long C13, long C14, long C15\r
+    >\r
+struct vector_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : vector16_c< 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) >\r
+{\r
+    typedef typename vector16_c< 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) >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
+    , long C13, long C14, long C15, long C16\r
+    >\r
+struct vector_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX\r
+        >\r
+    : vector17_c< 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) >\r
+{\r
+    typedef typename vector17_c< 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) >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
+    , long C13, long C14, long C15, long C16, long C17\r
+    >\r
+struct vector_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        , C15, C16, C17, LONG_MAX, LONG_MAX\r
+        >\r
+    : vector18_c< 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) >\r
+{\r
+    typedef typename vector18_c< 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) >::type type;\r
+};\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
+    , long C13, long C14, long C15, long C16, long C17, long C18\r
+    >\r
+struct vector_c<\r
+          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14\r
+        , C15, C16, C17, C18, LONG_MAX\r
+        >\r
+    : vector19_c< 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) >\r
+{\r
+    typedef typename vector19_c< 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) >::type type;\r
+};\r
+\r
+/// primary template (not a specialization!)\r
+\r
+template<\r
+      typename T, long C0, long C1, long C2, long C3, long C4, long C5\r
+    , long C6, long C7, long C8, long C9, long C10, long C11, long C12\r
+    , long C13, long C14, long C15, long C16, long C17, long C18, long C19\r
+    >\r
+struct vector_c\r
+    : vector20_c< 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) >\r
+{\r
+    typedef typename vector20_c< 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) >::type type;\r
+};\r
+\r
+}}\r
+\r
diff --git a/boost/boost/optional/optional_io.hpp b/boost/boost/optional/optional_io.hpp
new file mode 100644 (file)
index 0000000..7c59737
--- /dev/null
@@ -0,0 +1,84 @@
+// Copyright (C) 2005, Fernando Luis Cacciola Carballal.\r
+//\r
+// Use, modification, and distribution is subject to the Boost Software\r
+// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+// See http://www.boost.org/lib/optional for documentation.\r
+//\r
+// You are welcome to contact the author at:\r
+//  fernando_cacciola@hotmail.com\r
+//\r
+#ifndef BOOST_OPTIONAL_OPTIONAL_IO_FLC_19NOV2002_HPP\r
+#define BOOST_OPTIONAL_OPTIONAL_IO_FLC_19NOV2002_HPP\r
+\r
+#if defined __GNUC__\r
+#  if (__GNUC__ == 2 && __GNUC_MINOR__ <= 97) \r
+#    define BOOST_OPTIONAL_NO_TEMPLATED_STREAMS\r
+#  endif\r
+#endif // __GNUC__\r
+\r
+#if defined BOOST_OPTIONAL_NO_TEMPLATED_STREAMS\r
+#  include <iostream>\r
+#else \r
+#  include <istream>\r
+#  include <ostream>\r
+#endif  \r
+\r
+\r
+#include "boost/optional/optional.hpp"\r
+#include "boost/utility/value_init.hpp"\r
+\r
+namespace boost\r
+{\r
+\r
+#if defined (BOOST_NO_TEMPLATED_STREAMS)\r
+template<class T>\r
+inline std::ostream& operator<<(std::ostream& out, optional<T> const& v)\r
+#else\r
+template<class CharType, class CharTrait, class T>\r
+inline\r
+std::basic_ostream<CharType, CharTrait>&\r
+operator<<(std::basic_ostream<CharType, CharTrait>& out, optional<T> const& v)\r
+#endif\r
+{\r
+  if ( out.good() )\r
+  {\r
+    if ( !v )\r
+         out << "--" ;\r
+    else out << ' ' << *v ;\r
+  }\r
+\r
+  return out;\r
+}\r
+\r
+#if defined (BOOST_NO_TEMPLATED_STREAMS)\r
+template<class T>\r
+inline std::istream& operator>>(std::istream& in, optional<T>& v)\r
+#else\r
+template<class CharType, class CharTrait, class T>\r
+inline\r
+std::basic_istream<CharType, CharTrait>&\r
+operator>>(std::basic_istream<CharType, CharTrait>& in, optional<T>& v)\r
+#endif\r
+{\r
+  if ( in.good() )\r
+  {\r
+    int d = in.get();\r
+    if ( d == ' ' )\r
+    {\r
+      T x ;\r
+      in >> x;\r
+      v = x ;\r
+    }\r
+    else\r
+      v = optional<T>() ;\r
+  }\r
+\r
+  return in;\r
+}\r
+\r
+} // namespace boost\r
+\r
+#endif\r
+\r
diff --git a/boost/boost/preprocessor/arithmetic/detail/div_base.hpp b/boost/boost/preprocessor/arithmetic/detail/div_base.hpp
new file mode 100644 (file)
index 0000000..8b4de25
--- /dev/null
@@ -0,0 +1,61 @@
+# /* Copyright (C) 2001\r
+#  * Housemarque Oy\r
+#  * http://www.housemarque.com\r
+#  *\r
+#  * Distributed under the Boost Software License, Version 1.0. (See\r
+#  * accompanying file LICENSE_1_0.txt or copy at\r
+#  * http://www.boost.org/LICENSE_1_0.txt)\r
+#  */\r
+#\r
+# /* Revised by Paul Mensonides (2002) */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_DIV_BASE_HPP\r
+# define BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_DIV_BASE_HPP\r
+#\r
+# include <boost/preprocessor/arithmetic/inc.hpp>\r
+# include <boost/preprocessor/arithmetic/sub.hpp>\r
+# include <boost/preprocessor/comparison/less_equal.hpp>\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/control/while.hpp>\r
+# include <boost/preprocessor/tuple/elem.hpp>\r
+# include <boost/preprocessor/tuple/rem.hpp>\r
+#\r
+# /* BOOST_PP_DIV_BASE */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_DIV_BASE(x, y) BOOST_PP_WHILE(BOOST_PP_DIV_BASE_P, BOOST_PP_DIV_BASE_O, (0, x, y))\r
+# else\r
+#    define BOOST_PP_DIV_BASE(x, y) BOOST_PP_DIV_BASE_I(x, y)\r
+#    define BOOST_PP_DIV_BASE_I(x, y) BOOST_PP_WHILE(BOOST_PP_DIV_BASE_P, BOOST_PP_DIV_BASE_O, (0, x, y))\r
+# endif\r
+#\r
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
+#    define BOOST_PP_DIV_BASE_P(d, rxy) BOOST_PP_DIV_BASE_P_IM(d, BOOST_PP_TUPLE_REM_3 rxy)\r
+#    define BOOST_PP_DIV_BASE_P_IM(d, im) BOOST_PP_DIV_BASE_P_I(d, im)\r
+# else\r
+#    define BOOST_PP_DIV_BASE_P(d, rxy) BOOST_PP_DIV_BASE_P_I(d, BOOST_PP_TUPLE_ELEM(3, 0, rxy), BOOST_PP_TUPLE_ELEM(3, 1, rxy), BOOST_PP_TUPLE_ELEM(3, 2, rxy))\r
+# endif\r
+#\r
+# define BOOST_PP_DIV_BASE_P_I(d, r, x, y) BOOST_PP_LESS_EQUAL_D(d, y, x)\r
+#\r
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
+#    define BOOST_PP_DIV_BASE_O(d, rxy) BOOST_PP_DIV_BASE_O_IM(d, BOOST_PP_TUPLE_REM_3 rxy)\r
+#    define BOOST_PP_DIV_BASE_O_IM(d, im) BOOST_PP_DIV_BASE_O_I(d, im)\r
+# else\r
+#    define BOOST_PP_DIV_BASE_O(d, rxy) BOOST_PP_DIV_BASE_O_I(d, BOOST_PP_TUPLE_ELEM(3, 0, rxy), BOOST_PP_TUPLE_ELEM(3, 1, rxy), BOOST_PP_TUPLE_ELEM(3, 2, rxy))\r
+# endif\r
+#\r
+# define BOOST_PP_DIV_BASE_O_I(d, r, x, y) (BOOST_PP_INC(r), BOOST_PP_SUB_D(d, x, y), y)\r
+#\r
+# /* BOOST_PP_DIV_BASE_D */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_DIV_BASE_D(d, x, y) BOOST_PP_WHILE_ ## d(BOOST_PP_DIV_BASE_P, BOOST_PP_DIV_BASE_O, (0, x, y))\r
+# else\r
+#    define BOOST_PP_DIV_BASE_D(d, x, y) BOOST_PP_DIV_BASE_D_I(d, x, y)\r
+#    define BOOST_PP_DIV_BASE_D_I(d, x, y) BOOST_PP_WHILE_ ## d(BOOST_PP_DIV_BASE_P, BOOST_PP_DIV_BASE_O, (0, x, y))\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/array/insert.hpp b/boost/boost/preprocessor/array/insert.hpp
new file mode 100644 (file)
index 0000000..289db40
--- /dev/null
@@ -0,0 +1,55 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_ARRAY_INSERT_HPP\r
+# define BOOST_PREPROCESSOR_ARRAY_INSERT_HPP\r
+#\r
+# include <boost/preprocessor/arithmetic/inc.hpp>\r
+# include <boost/preprocessor/array/elem.hpp>\r
+# include <boost/preprocessor/array/push_back.hpp>\r
+# include <boost/preprocessor/array/size.hpp>\r
+# include <boost/preprocessor/comparison/not_equal.hpp>\r
+# include <boost/preprocessor/control/deduce_d.hpp>\r
+# include <boost/preprocessor/control/iif.hpp>\r
+# include <boost/preprocessor/control/while.hpp>\r
+# include <boost/preprocessor/tuple/elem.hpp>\r
+#\r
+# /* BOOST_PP_ARRAY_INSERT */\r
+#\r
+# define BOOST_PP_ARRAY_INSERT(array, i, elem) BOOST_PP_ARRAY_INSERT_I(BOOST_PP_DEDUCE_D(), array, i, elem)\r
+# define BOOST_PP_ARRAY_INSERT_I(d, array, i, elem) BOOST_PP_ARRAY_INSERT_D(d, array, i, elem)\r
+#\r
+# /* BOOST_PP_ARRAY_INSERT_D */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_ARRAY_INSERT_D(d, array, i, elem) BOOST_PP_TUPLE_ELEM(5, 3, BOOST_PP_WHILE_ ## d(BOOST_PP_ARRAY_INSERT_P, BOOST_PP_ARRAY_INSERT_O, (0, i, elem, (0, ()), array)))\r
+# else\r
+#    define BOOST_PP_ARRAY_INSERT_D(d, array, i, elem) BOOST_PP_ARRAY_INSERT_D_I(d, array, i, elem)\r
+#    define BOOST_PP_ARRAY_INSERT_D_I(d, array, i, elem) BOOST_PP_TUPLE_ELEM(5, 3, BOOST_PP_WHILE_ ## d(BOOST_PP_ARRAY_INSERT_P, BOOST_PP_ARRAY_INSERT_O, (0, i, elem, (0, ()), array)))\r
+# endif\r
+#\r
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
+#    define BOOST_PP_ARRAY_INSERT_P(d, state) BOOST_PP_ARRAY_INSERT_P_I state\r
+# else\r
+#    define BOOST_PP_ARRAY_INSERT_P(d, state) BOOST_PP_ARRAY_INSERT_P_I(nil, nil, nil, BOOST_PP_TUPLE_ELEM(5, 3, state), BOOST_PP_TUPLE_ELEM(5, 4, state))\r
+# endif\r
+#\r
+# define BOOST_PP_ARRAY_INSERT_P_I(_i, _ii, _iii, res, arr) BOOST_PP_NOT_EQUAL(BOOST_PP_ARRAY_SIZE(res), BOOST_PP_INC(BOOST_PP_ARRAY_SIZE(arr)))\r
+#\r
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
+#    define BOOST_PP_ARRAY_INSERT_O(d, state) BOOST_PP_ARRAY_INSERT_O_I state\r
+# else\r
+#    define BOOST_PP_ARRAY_INSERT_O(d, state) BOOST_PP_ARRAY_INSERT_O_I(BOOST_PP_TUPLE_ELEM(5, 0, state), BOOST_PP_TUPLE_ELEM(5, 1, state), BOOST_PP_TUPLE_ELEM(5, 2, state), BOOST_PP_TUPLE_ELEM(5, 3, state), BOOST_PP_TUPLE_ELEM(5, 4, state))\r
+# endif\r
+#\r
+# define BOOST_PP_ARRAY_INSERT_O_I(n, i, elem, res, arr) (BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(BOOST_PP_ARRAY_SIZE(res), i), BOOST_PP_INC(n), n), i, elem, BOOST_PP_ARRAY_PUSH_BACK(res, BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(BOOST_PP_ARRAY_SIZE(res), i), BOOST_PP_ARRAY_ELEM(n, arr), elem)), arr)\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/array/pop_back.hpp b/boost/boost/preprocessor/array/pop_back.hpp
new file mode 100644 (file)
index 0000000..81cd1e0
--- /dev/null
@@ -0,0 +1,37 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_ARRAY_POP_BACK_HPP\r
+# define BOOST_PREPROCESSOR_ARRAY_POP_BACK_HPP\r
+#\r
+# include <boost/preprocessor/arithmetic/dec.hpp>\r
+# include <boost/preprocessor/array/elem.hpp>\r
+# include <boost/preprocessor/array/size.hpp>\r
+# include <boost/preprocessor/repetition/enum.hpp>\r
+# include <boost/preprocessor/repetition/deduce_z.hpp>\r
+#\r
+# /* BOOST_PP_ARRAY_POP_BACK */\r
+#\r
+# define BOOST_PP_ARRAY_POP_BACK(array) BOOST_PP_ARRAY_POP_BACK_Z(BOOST_PP_DEDUCE_Z(), array)\r
+#\r
+# /* BOOST_PP_ARRAY_POP_BACK_Z */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_ARRAY_POP_BACK_Z(z, array) BOOST_PP_ARRAY_POP_BACK_I(z, BOOST_PP_ARRAY_SIZE(array), array)\r
+# else\r
+#    define BOOST_PP_ARRAY_POP_BACK_Z(z, array) BOOST_PP_ARRAY_POP_BACK_Z_D(z, array)\r
+#    define BOOST_PP_ARRAY_POP_BACK_Z_D(z, array) BOOST_PP_ARRAY_POP_BACK_I(z, BOOST_PP_ARRAY_SIZE(array), array)\r
+# endif\r
+#\r
+# define BOOST_PP_ARRAY_POP_BACK_I(z, size, array) (BOOST_PP_DEC(size), (BOOST_PP_ENUM_ ## z(BOOST_PP_DEC(size), BOOST_PP_ARRAY_POP_BACK_M, array)))\r
+# define BOOST_PP_ARRAY_POP_BACK_M(z, n, data) BOOST_PP_ARRAY_ELEM(n, data)\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/array/pop_front.hpp b/boost/boost/preprocessor/array/pop_front.hpp
new file mode 100644 (file)
index 0000000..2c38ce6
--- /dev/null
@@ -0,0 +1,38 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_ARRAY_POP_FRONT_HPP\r
+# define BOOST_PREPROCESSOR_ARRAY_POP_FRONT_HPP\r
+#\r
+# include <boost/preprocessor/arithmetic/dec.hpp>\r
+# include <boost/preprocessor/arithmetic/inc.hpp>\r
+# include <boost/preprocessor/array/elem.hpp>\r
+# include <boost/preprocessor/array/size.hpp>\r
+# include <boost/preprocessor/repetition/enum.hpp>\r
+# include <boost/preprocessor/repetition/deduce_z.hpp>\r
+#\r
+# /* BOOST_PP_ARRAY_POP_FRONT */\r
+#\r
+# define BOOST_PP_ARRAY_POP_FRONT(array) BOOST_PP_ARRAY_POP_FRONT_Z(BOOST_PP_DEDUCE_Z(), array)\r
+#\r
+# /* BOOST_PP_ARRAY_POP_FRONT_Z */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_ARRAY_POP_FRONT_Z(z, array) BOOST_PP_ARRAY_POP_FRONT_I(z, BOOST_PP_ARRAY_SIZE(array), array)\r
+# else\r
+#    define BOOST_PP_ARRAY_POP_FRONT_Z(z, array) BOOST_PP_ARRAY_POP_FRONT_Z_D(z, array)\r
+#    define BOOST_PP_ARRAY_POP_FRONT_Z_D(z, array) BOOST_PP_ARRAY_POP_FRONT_I(z, BOOST_PP_ARRAY_SIZE(array), array)\r
+# endif\r
+#\r
+# define BOOST_PP_ARRAY_POP_FRONT_I(z, size, array) (BOOST_PP_DEC(size), (BOOST_PP_ENUM_ ## z(BOOST_PP_DEC(size), BOOST_PP_ARRAY_POP_FRONT_M, array)))\r
+# define BOOST_PP_ARRAY_POP_FRONT_M(z, n, data) BOOST_PP_ARRAY_ELEM(BOOST_PP_INC(n), data)\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/array/push_back.hpp b/boost/boost/preprocessor/array/push_back.hpp
new file mode 100644 (file)
index 0000000..78dfea6
--- /dev/null
@@ -0,0 +1,33 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_ARRAY_PUSH_BACK_HPP\r
+# define BOOST_PREPROCESSOR_ARRAY_PUSH_BACK_HPP\r
+#\r
+# include <boost/preprocessor/arithmetic/inc.hpp>\r
+# include <boost/preprocessor/array/data.hpp>\r
+# include <boost/preprocessor/array/size.hpp>\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/punctuation/comma_if.hpp>\r
+# include <boost/preprocessor/tuple/rem.hpp>\r
+#\r
+# /* BOOST_PP_ARRAY_PUSH_BACK */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_ARRAY_PUSH_BACK(array, elem) BOOST_PP_ARRAY_PUSH_BACK_I(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array), elem)\r
+# else\r
+#    define BOOST_PP_ARRAY_PUSH_BACK(array, elem) BOOST_PP_ARRAY_PUSH_BACK_D(array, elem)\r
+#    define BOOST_PP_ARRAY_PUSH_BACK_D(array, elem) BOOST_PP_ARRAY_PUSH_BACK_I(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array), elem)\r
+# endif\r
+#\r
+# define BOOST_PP_ARRAY_PUSH_BACK_I(size, data, elem) (BOOST_PP_INC(size), (BOOST_PP_TUPLE_REM(size) data BOOST_PP_COMMA_IF(size) elem))\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/array/push_front.hpp b/boost/boost/preprocessor/array/push_front.hpp
new file mode 100644 (file)
index 0000000..8493bcc
--- /dev/null
@@ -0,0 +1,33 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_ARRAY_PUSH_FRONT_HPP\r
+# define BOOST_PREPROCESSOR_ARRAY_PUSH_FRONT_HPP\r
+#\r
+# include <boost/preprocessor/arithmetic/inc.hpp>\r
+# include <boost/preprocessor/array/data.hpp>\r
+# include <boost/preprocessor/array/size.hpp>\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/punctuation/comma_if.hpp>\r
+# include <boost/preprocessor/tuple/rem.hpp>\r
+#\r
+# /* BOOST_PP_ARRAY_PUSH_FRONT */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_ARRAY_PUSH_FRONT(array, elem) BOOST_PP_ARRAY_PUSH_FRONT_I(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array), elem)\r
+# else\r
+#    define BOOST_PP_ARRAY_PUSH_FRONT(array, elem) BOOST_PP_ARRAY_PUSH_FRONT_D(array, elem)\r
+#    define BOOST_PP_ARRAY_PUSH_FRONT_D(array, elem) BOOST_PP_ARRAY_PUSH_FRONT_I(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array), elem)\r
+# endif\r
+#\r
+# define BOOST_PP_ARRAY_PUSH_FRONT_I(size, data, elem) (BOOST_PP_INC(size), (elem BOOST_PP_COMMA_IF(size) BOOST_PP_TUPLE_REM(size) data))\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/array/remove.hpp b/boost/boost/preprocessor/array/remove.hpp
new file mode 100644 (file)
index 0000000..a7ae78d
--- /dev/null
@@ -0,0 +1,54 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_ARRAY_REMOVE_HPP\r
+# define BOOST_PREPROCESSOR_ARRAY_REMOVE_HPP\r
+#\r
+# include <boost/preprocessor/arithmetic/inc.hpp>\r
+# include <boost/preprocessor/array/elem.hpp>\r
+# include <boost/preprocessor/array/push_back.hpp>\r
+# include <boost/preprocessor/array/size.hpp>\r
+# include <boost/preprocessor/comparison/not_equal.hpp>\r
+# include <boost/preprocessor/control/deduce_d.hpp>\r
+# include <boost/preprocessor/control/iif.hpp>\r
+# include <boost/preprocessor/control/while.hpp>\r
+# include <boost/preprocessor/tuple/eat.hpp>\r
+# include <boost/preprocessor/tuple/elem.hpp>\r
+#\r
+# /* BOOST_PP_ARRAY_REMOVE */\r
+#\r
+# define BOOST_PP_ARRAY_REMOVE(array, i) BOOST_PP_ARRAY_REMOVE_I(BOOST_PP_DEDUCE_D(), array, i)\r
+# define BOOST_PP_ARRAY_REMOVE_I(d, array, i) BOOST_PP_ARRAY_REMOVE_D(d, array, i)\r
+#\r
+# /* BOOST_PP_ARRAY_REMOVE_D */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_ARRAY_REMOVE_D(d, array, i) BOOST_PP_TUPLE_ELEM(4, 2, BOOST_PP_WHILE_ ## d(BOOST_PP_ARRAY_REMOVE_P, BOOST_PP_ARRAY_REMOVE_O, (0, i, (0, ()), array)))\r
+# else\r
+#    define BOOST_PP_ARRAY_REMOVE_D(d, array, i) BOOST_PP_ARRAY_REMOVE_D_I(d, array, i)\r
+#    define BOOST_PP_ARRAY_REMOVE_D_I(d, array, i) BOOST_PP_TUPLE_ELEM(4, 2, BOOST_PP_WHILE_ ## d(BOOST_PP_ARRAY_REMOVE_P, BOOST_PP_ARRAY_REMOVE_O, (0, i, (0, ()), array)))\r
+# endif\r
+#\r
+# define BOOST_PP_ARRAY_REMOVE_P(d, st) BOOST_PP_NOT_EQUAL(BOOST_PP_TUPLE_ELEM(4, 0, st), BOOST_PP_ARRAY_SIZE(BOOST_PP_TUPLE_ELEM(4, 3, st)))\r
+#\r
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
+#    define BOOST_PP_ARRAY_REMOVE_O(d, st) BOOST_PP_ARRAY_REMOVE_O_I st\r
+# else\r
+#    define BOOST_PP_ARRAY_REMOVE_O(d, st) BOOST_PP_ARRAY_REMOVE_O_I(BOOST_PP_TUPLE_ELEM(4, 0, st), BOOST_PP_TUPLE_ELEM(4, 1, st), BOOST_PP_TUPLE_ELEM(4, 2, st), BOOST_PP_TUPLE_ELEM(4, 3, st))\r
+# endif\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()\r
+#    define BOOST_PP_ARRAY_REMOVE_O_I(n, i, res, arr) (BOOST_PP_INC(n), i, BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(n, i), BOOST_PP_ARRAY_PUSH_BACK, res BOOST_PP_TUPLE_EAT_2)(res, BOOST_PP_ARRAY_ELEM(n, arr)), arr)\r
+# else\r
+#    define BOOST_PP_ARRAY_REMOVE_O_I(n, i, res, arr) (BOOST_PP_INC(n), i, BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(n, i), BOOST_PP_ARRAY_PUSH_BACK, BOOST_PP_TUPLE_ELEM_2_0)(res, BOOST_PP_ARRAY_ELEM(n, arr)), arr)\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/array/replace.hpp b/boost/boost/preprocessor/array/replace.hpp
new file mode 100644 (file)
index 0000000..b969113
--- /dev/null
@@ -0,0 +1,49 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_ARRAY_REPLACE_HPP\r
+# define BOOST_PREPROCESSOR_ARRAY_REPLACE_HPP\r
+#\r
+# include <boost/preprocessor/arithmetic/inc.hpp>\r
+# include <boost/preprocessor/array/elem.hpp>\r
+# include <boost/preprocessor/array/push_back.hpp>\r
+# include <boost/preprocessor/comparison/not_equal.hpp>\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/control/deduce_d.hpp>\r
+# include <boost/preprocessor/control/iif.hpp>\r
+# include <boost/preprocessor/control/while.hpp>\r
+# include <boost/preprocessor/tuple/elem.hpp>\r
+#\r
+# /* BOOST_PP_ARRAY_REPLACE */\r
+#\r
+# define BOOST_PP_ARRAY_REPLACE(array, i, elem) BOOST_PP_ARRAY_REPLACE_I(BOOST_PP_DEDUCE_D(), array, i, elem)\r
+# define BOOST_PP_ARRAY_REPLACE_I(d, array, i, elem) BOOST_PP_ARRAY_REPLACE_D(d, array, i, elem)\r
+#\r
+# /* BOOST_PP_ARRAY_REPLACE_D */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_ARRAY_REPLACE_D(d, array, i, elem) BOOST_PP_TUPLE_ELEM(5, 3, BOOST_PP_WHILE_ ## d(BOOST_PP_ARRAY_REPLACE_P, BOOST_PP_ARRAY_REPLACE_O, (0, i, elem, (0, ()), array)))\r
+# else\r
+#    define BOOST_PP_ARRAY_REPLACE_D(d, array, i, elem) BOOST_PP_ARRAY_REPLACE_D_I(d, array, i, elem)\r
+#    define BOOST_PP_ARRAY_REPLACE_D_I(d, array, i, elem) BOOST_PP_TUPLE_ELEM(5, 3, BOOST_PP_WHILE_ ## d(BOOST_PP_ARRAY_REPLACE_P, BOOST_PP_ARRAY_REPLACE_O, (0, i, elem, (0, ()), array)))\r
+# endif\r
+#\r
+# define BOOST_PP_ARRAY_REPLACE_P(d, state) BOOST_PP_NOT_EQUAL(BOOST_PP_TUPLE_ELEM(5, 0, state), BOOST_PP_ARRAY_SIZE(BOOST_PP_TUPLE_ELEM(5, 4, state)))\r
+#\r
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
+#    define BOOST_PP_ARRAY_REPLACE_O(d, state) BOOST_PP_ARRAY_REPLACE_O_I state\r
+# else\r
+#    define BOOST_PP_ARRAY_REPLACE_O(d, state) BOOST_PP_ARRAY_REPLACE_O_I(BOOST_PP_TUPLE_ELEM(5, 0, state), BOOST_PP_TUPLE_ELEM(5, 1, state), BOOST_PP_TUPLE_ELEM(5, 2, state), BOOST_PP_TUPLE_ELEM(5, 3, state), BOOST_PP_TUPLE_ELEM(5, 4, state))\r
+# endif\r
+#\r
+# define BOOST_PP_ARRAY_REPLACE_O_I(n, i, elem, res, arr) (BOOST_PP_INC(n), i, elem, BOOST_PP_ARRAY_PUSH_BACK(res, BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(n, i), BOOST_PP_ARRAY_ELEM(n, arr), elem)), arr)\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/array/reverse.hpp b/boost/boost/preprocessor/array/reverse.hpp
new file mode 100644 (file)
index 0000000..3c24ce3
--- /dev/null
@@ -0,0 +1,29 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_ARRAY_REVERSE_HPP\r
+# define BOOST_PREPROCESSOR_ARRAY_REVERSE_HPP\r
+#\r
+# include <boost/preprocessor/array/data.hpp>\r
+# include <boost/preprocessor/array/size.hpp>\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/tuple/reverse.hpp>\r
+#\r
+# /* BOOST_PP_ARRAY_REVERSE */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_ARRAY_REVERSE(array) (BOOST_PP_ARRAY_SIZE(array), BOOST_PP_TUPLE_REVERSE(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array)))\r
+# else\r
+#    define BOOST_PP_ARRAY_REVERSE(array) BOOST_PP_ARRAY_REVERSE_I(array)\r
+#    define BOOST_PP_ARRAY_REVERSE_I(array) (BOOST_PP_ARRAY_SIZE(array), BOOST_PP_TUPLE_REVERSE(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array)))\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/config/limits.hpp b/boost/boost/preprocessor/config/limits.hpp
new file mode 100644 (file)
index 0000000..db790fa
--- /dev/null
@@ -0,0 +1,29 @@
+# /* Copyright (C) 2001\r
+#  * Housemarque Oy\r
+#  * http://www.housemarque.com\r
+#  *\r
+#  * Distributed under the Boost Software License, Version 1.0. (See\r
+#  * accompanying file LICENSE_1_0.txt or copy at\r
+#  * http://www.boost.org/LICENSE_1_0.txt)\r
+#  */\r
+#\r
+# /* Revised by Paul Mensonides (2002) */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_CONFIG_LIMITS_HPP\r
+# define BOOST_PREPROCESSOR_CONFIG_LIMITS_HPP\r
+#\r
+# define BOOST_PP_LIMIT_MAG 256\r
+# define BOOST_PP_LIMIT_TUPLE 25\r
+# define BOOST_PP_LIMIT_DIM 3\r
+# define BOOST_PP_LIMIT_REPEAT 256\r
+# define BOOST_PP_LIMIT_WHILE 256\r
+# define BOOST_PP_LIMIT_FOR 256\r
+# define BOOST_PP_LIMIT_ITERATION 256\r
+# define BOOST_PP_LIMIT_ITERATION_DIM 3\r
+# define BOOST_PP_LIMIT_SEQ 256\r
+# define BOOST_PP_LIMIT_SLOT_SIG 10\r
+# define BOOST_PP_LIMIT_SLOT_COUNT 5\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/control.hpp b/boost/boost/preprocessor/control.hpp
new file mode 100644 (file)
index 0000000..8070bff
--- /dev/null
@@ -0,0 +1,22 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_CONTROL_HPP\r
+# define BOOST_PREPROCESSOR_CONTROL_HPP\r
+#\r
+# include <boost/preprocessor/control/deduce_d.hpp>\r
+# include <boost/preprocessor/control/expr_if.hpp>\r
+# include <boost/preprocessor/control/expr_iif.hpp>\r
+# include <boost/preprocessor/control/if.hpp>\r
+# include <boost/preprocessor/control/iif.hpp>\r
+# include <boost/preprocessor/control/while.hpp>\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/control/deduce_d.hpp b/boost/boost/preprocessor/control/deduce_d.hpp
new file mode 100644 (file)
index 0000000..0a8ada9
--- /dev/null
@@ -0,0 +1,22 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_CONTROL_DEDUCE_D_HPP\r
+# define BOOST_PREPROCESSOR_CONTROL_DEDUCE_D_HPP\r
+#\r
+# include <boost/preprocessor/control/while.hpp>\r
+# include <boost/preprocessor/detail/auto_rec.hpp>\r
+#\r
+# /* BOOST_PP_DEDUCE_D */\r
+#\r
+# define BOOST_PP_DEDUCE_D() BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256)\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/control/detail/dmc/while.hpp b/boost/boost/preprocessor/control/detail/dmc/while.hpp
new file mode 100644 (file)
index 0000000..8ed571a
--- /dev/null
@@ -0,0 +1,536 @@
+# /* Copyright (C) 2001\r
+#  * Housemarque Oy\r
+#  * http://www.housemarque.com\r
+#  *\r
+#  * Distributed under the Boost Software License, Version 1.0. (See\r
+#  * accompanying file LICENSE_1_0.txt or copy at\r
+#  * http://www.boost.org/LICENSE_1_0.txt)\r
+#  */\r
+#\r
+# /* Revised by Paul Mensonides (2002) */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP\r
+# define BOOST_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP\r
+#\r
+# include <boost/preprocessor/control/iif.hpp>\r
+# include <boost/preprocessor/logical/bool.hpp>\r
+# include <boost/preprocessor/tuple/eat.hpp>\r
+#\r
+# define BOOST_PP_WHILE_1(p, o, s) BOOST_PP_WHILE_1_C(BOOST_PP_BOOL(p##(2, s)), p, o, s)\r
+# define BOOST_PP_WHILE_2(p, o, s) BOOST_PP_WHILE_2_C(BOOST_PP_BOOL(p##(3, s)), p, o, s)\r
+# define BOOST_PP_WHILE_3(p, o, s) BOOST_PP_WHILE_3_C(BOOST_PP_BOOL(p##(4, s)), p, o, s)\r
+# define BOOST_PP_WHILE_4(p, o, s) BOOST_PP_WHILE_4_C(BOOST_PP_BOOL(p##(5, s)), p, o, s)\r
+# define BOOST_PP_WHILE_5(p, o, s) BOOST_PP_WHILE_5_C(BOOST_PP_BOOL(p##(6, s)), p, o, s)\r
+# define BOOST_PP_WHILE_6(p, o, s) BOOST_PP_WHILE_6_C(BOOST_PP_BOOL(p##(7, s)), p, o, s)\r
+# define BOOST_PP_WHILE_7(p, o, s) BOOST_PP_WHILE_7_C(BOOST_PP_BOOL(p##(8, s)), p, o, s)\r
+# define BOOST_PP_WHILE_8(p, o, s) BOOST_PP_WHILE_8_C(BOOST_PP_BOOL(p##(9, s)), p, o, s)\r
+# define BOOST_PP_WHILE_9(p, o, s) BOOST_PP_WHILE_9_C(BOOST_PP_BOOL(p##(10, s)), p, o, s)\r
+# define BOOST_PP_WHILE_10(p, o, s) BOOST_PP_WHILE_10_C(BOOST_PP_BOOL(p##(11, s)), p, o, s)\r
+# define BOOST_PP_WHILE_11(p, o, s) BOOST_PP_WHILE_11_C(BOOST_PP_BOOL(p##(12, s)), p, o, s)\r
+# define BOOST_PP_WHILE_12(p, o, s) BOOST_PP_WHILE_12_C(BOOST_PP_BOOL(p##(13, s)), p, o, s)\r
+# define BOOST_PP_WHILE_13(p, o, s) BOOST_PP_WHILE_13_C(BOOST_PP_BOOL(p##(14, s)), p, o, s)\r
+# define BOOST_PP_WHILE_14(p, o, s) BOOST_PP_WHILE_14_C(BOOST_PP_BOOL(p##(15, s)), p, o, s)\r
+# define BOOST_PP_WHILE_15(p, o, s) BOOST_PP_WHILE_15_C(BOOST_PP_BOOL(p##(16, s)), p, o, s)\r
+# define BOOST_PP_WHILE_16(p, o, s) BOOST_PP_WHILE_16_C(BOOST_PP_BOOL(p##(17, s)), p, o, s)\r
+# define BOOST_PP_WHILE_17(p, o, s) BOOST_PP_WHILE_17_C(BOOST_PP_BOOL(p##(18, s)), p, o, s)\r
+# define BOOST_PP_WHILE_18(p, o, s) BOOST_PP_WHILE_18_C(BOOST_PP_BOOL(p##(19, s)), p, o, s)\r
+# define BOOST_PP_WHILE_19(p, o, s) BOOST_PP_WHILE_19_C(BOOST_PP_BOOL(p##(20, s)), p, o, s)\r
+# define BOOST_PP_WHILE_20(p, o, s) BOOST_PP_WHILE_20_C(BOOST_PP_BOOL(p##(21, s)), p, o, s)\r
+# define BOOST_PP_WHILE_21(p, o, s) BOOST_PP_WHILE_21_C(BOOST_PP_BOOL(p##(22, s)), p, o, s)\r
+# define BOOST_PP_WHILE_22(p, o, s) BOOST_PP_WHILE_22_C(BOOST_PP_BOOL(p##(23, s)), p, o, s)\r
+# define BOOST_PP_WHILE_23(p, o, s) BOOST_PP_WHILE_23_C(BOOST_PP_BOOL(p##(24, s)), p, o, s)\r
+# define BOOST_PP_WHILE_24(p, o, s) BOOST_PP_WHILE_24_C(BOOST_PP_BOOL(p##(25, s)), p, o, s)\r
+# define BOOST_PP_WHILE_25(p, o, s) BOOST_PP_WHILE_25_C(BOOST_PP_BOOL(p##(26, s)), p, o, s)\r
+# define BOOST_PP_WHILE_26(p, o, s) BOOST_PP_WHILE_26_C(BOOST_PP_BOOL(p##(27, s)), p, o, s)\r
+# define BOOST_PP_WHILE_27(p, o, s) BOOST_PP_WHILE_27_C(BOOST_PP_BOOL(p##(28, s)), p, o, s)\r
+# define BOOST_PP_WHILE_28(p, o, s) BOOST_PP_WHILE_28_C(BOOST_PP_BOOL(p##(29, s)), p, o, s)\r
+# define BOOST_PP_WHILE_29(p, o, s) BOOST_PP_WHILE_29_C(BOOST_PP_BOOL(p##(30, s)), p, o, s)\r
+# define BOOST_PP_WHILE_30(p, o, s) BOOST_PP_WHILE_30_C(BOOST_PP_BOOL(p##(31, s)), p, o, s)\r
+# define BOOST_PP_WHILE_31(p, o, s) BOOST_PP_WHILE_31_C(BOOST_PP_BOOL(p##(32, s)), p, o, s)\r
+# define BOOST_PP_WHILE_32(p, o, s) BOOST_PP_WHILE_32_C(BOOST_PP_BOOL(p##(33, s)), p, o, s)\r
+# define BOOST_PP_WHILE_33(p, o, s) BOOST_PP_WHILE_33_C(BOOST_PP_BOOL(p##(34, s)), p, o, s)\r
+# define BOOST_PP_WHILE_34(p, o, s) BOOST_PP_WHILE_34_C(BOOST_PP_BOOL(p##(35, s)), p, o, s)\r
+# define BOOST_PP_WHILE_35(p, o, s) BOOST_PP_WHILE_35_C(BOOST_PP_BOOL(p##(36, s)), p, o, s)\r
+# define BOOST_PP_WHILE_36(p, o, s) BOOST_PP_WHILE_36_C(BOOST_PP_BOOL(p##(37, s)), p, o, s)\r
+# define BOOST_PP_WHILE_37(p, o, s) BOOST_PP_WHILE_37_C(BOOST_PP_BOOL(p##(38, s)), p, o, s)\r
+# define BOOST_PP_WHILE_38(p, o, s) BOOST_PP_WHILE_38_C(BOOST_PP_BOOL(p##(39, s)), p, o, s)\r
+# define BOOST_PP_WHILE_39(p, o, s) BOOST_PP_WHILE_39_C(BOOST_PP_BOOL(p##(40, s)), p, o, s)\r
+# define BOOST_PP_WHILE_40(p, o, s) BOOST_PP_WHILE_40_C(BOOST_PP_BOOL(p##(41, s)), p, o, s)\r
+# define BOOST_PP_WHILE_41(p, o, s) BOOST_PP_WHILE_41_C(BOOST_PP_BOOL(p##(42, s)), p, o, s)\r
+# define BOOST_PP_WHILE_42(p, o, s) BOOST_PP_WHILE_42_C(BOOST_PP_BOOL(p##(43, s)), p, o, s)\r
+# define BOOST_PP_WHILE_43(p, o, s) BOOST_PP_WHILE_43_C(BOOST_PP_BOOL(p##(44, s)), p, o, s)\r
+# define BOOST_PP_WHILE_44(p, o, s) BOOST_PP_WHILE_44_C(BOOST_PP_BOOL(p##(45, s)), p, o, s)\r
+# define BOOST_PP_WHILE_45(p, o, s) BOOST_PP_WHILE_45_C(BOOST_PP_BOOL(p##(46, s)), p, o, s)\r
+# define BOOST_PP_WHILE_46(p, o, s) BOOST_PP_WHILE_46_C(BOOST_PP_BOOL(p##(47, s)), p, o, s)\r
+# define BOOST_PP_WHILE_47(p, o, s) BOOST_PP_WHILE_47_C(BOOST_PP_BOOL(p##(48, s)), p, o, s)\r
+# define BOOST_PP_WHILE_48(p, o, s) BOOST_PP_WHILE_48_C(BOOST_PP_BOOL(p##(49, s)), p, o, s)\r
+# define BOOST_PP_WHILE_49(p, o, s) BOOST_PP_WHILE_49_C(BOOST_PP_BOOL(p##(50, s)), p, o, s)\r
+# define BOOST_PP_WHILE_50(p, o, s) BOOST_PP_WHILE_50_C(BOOST_PP_BOOL(p##(51, s)), p, o, s)\r
+# define BOOST_PP_WHILE_51(p, o, s) BOOST_PP_WHILE_51_C(BOOST_PP_BOOL(p##(52, s)), p, o, s)\r
+# define BOOST_PP_WHILE_52(p, o, s) BOOST_PP_WHILE_52_C(BOOST_PP_BOOL(p##(53, s)), p, o, s)\r
+# define BOOST_PP_WHILE_53(p, o, s) BOOST_PP_WHILE_53_C(BOOST_PP_BOOL(p##(54, s)), p, o, s)\r
+# define BOOST_PP_WHILE_54(p, o, s) BOOST_PP_WHILE_54_C(BOOST_PP_BOOL(p##(55, s)), p, o, s)\r
+# define BOOST_PP_WHILE_55(p, o, s) BOOST_PP_WHILE_55_C(BOOST_PP_BOOL(p##(56, s)), p, o, s)\r
+# define BOOST_PP_WHILE_56(p, o, s) BOOST_PP_WHILE_56_C(BOOST_PP_BOOL(p##(57, s)), p, o, s)\r
+# define BOOST_PP_WHILE_57(p, o, s) BOOST_PP_WHILE_57_C(BOOST_PP_BOOL(p##(58, s)), p, o, s)\r
+# define BOOST_PP_WHILE_58(p, o, s) BOOST_PP_WHILE_58_C(BOOST_PP_BOOL(p##(59, s)), p, o, s)\r
+# define BOOST_PP_WHILE_59(p, o, s) BOOST_PP_WHILE_59_C(BOOST_PP_BOOL(p##(60, s)), p, o, s)\r
+# define BOOST_PP_WHILE_60(p, o, s) BOOST_PP_WHILE_60_C(BOOST_PP_BOOL(p##(61, s)), p, o, s)\r
+# define BOOST_PP_WHILE_61(p, o, s) BOOST_PP_WHILE_61_C(BOOST_PP_BOOL(p##(62, s)), p, o, s)\r
+# define BOOST_PP_WHILE_62(p, o, s) BOOST_PP_WHILE_62_C(BOOST_PP_BOOL(p##(63, s)), p, o, s)\r
+# define BOOST_PP_WHILE_63(p, o, s) BOOST_PP_WHILE_63_C(BOOST_PP_BOOL(p##(64, s)), p, o, s)\r
+# define BOOST_PP_WHILE_64(p, o, s) BOOST_PP_WHILE_64_C(BOOST_PP_BOOL(p##(65, s)), p, o, s)\r
+# define BOOST_PP_WHILE_65(p, o, s) BOOST_PP_WHILE_65_C(BOOST_PP_BOOL(p##(66, s)), p, o, s)\r
+# define BOOST_PP_WHILE_66(p, o, s) BOOST_PP_WHILE_66_C(BOOST_PP_BOOL(p##(67, s)), p, o, s)\r
+# define BOOST_PP_WHILE_67(p, o, s) BOOST_PP_WHILE_67_C(BOOST_PP_BOOL(p##(68, s)), p, o, s)\r
+# define BOOST_PP_WHILE_68(p, o, s) BOOST_PP_WHILE_68_C(BOOST_PP_BOOL(p##(69, s)), p, o, s)\r
+# define BOOST_PP_WHILE_69(p, o, s) BOOST_PP_WHILE_69_C(BOOST_PP_BOOL(p##(70, s)), p, o, s)\r
+# define BOOST_PP_WHILE_70(p, o, s) BOOST_PP_WHILE_70_C(BOOST_PP_BOOL(p##(71, s)), p, o, s)\r
+# define BOOST_PP_WHILE_71(p, o, s) BOOST_PP_WHILE_71_C(BOOST_PP_BOOL(p##(72, s)), p, o, s)\r
+# define BOOST_PP_WHILE_72(p, o, s) BOOST_PP_WHILE_72_C(BOOST_PP_BOOL(p##(73, s)), p, o, s)\r
+# define BOOST_PP_WHILE_73(p, o, s) BOOST_PP_WHILE_73_C(BOOST_PP_BOOL(p##(74, s)), p, o, s)\r
+# define BOOST_PP_WHILE_74(p, o, s) BOOST_PP_WHILE_74_C(BOOST_PP_BOOL(p##(75, s)), p, o, s)\r
+# define BOOST_PP_WHILE_75(p, o, s) BOOST_PP_WHILE_75_C(BOOST_PP_BOOL(p##(76, s)), p, o, s)\r
+# define BOOST_PP_WHILE_76(p, o, s) BOOST_PP_WHILE_76_C(BOOST_PP_BOOL(p##(77, s)), p, o, s)\r
+# define BOOST_PP_WHILE_77(p, o, s) BOOST_PP_WHILE_77_C(BOOST_PP_BOOL(p##(78, s)), p, o, s)\r
+# define BOOST_PP_WHILE_78(p, o, s) BOOST_PP_WHILE_78_C(BOOST_PP_BOOL(p##(79, s)), p, o, s)\r
+# define BOOST_PP_WHILE_79(p, o, s) BOOST_PP_WHILE_79_C(BOOST_PP_BOOL(p##(80, s)), p, o, s)\r
+# define BOOST_PP_WHILE_80(p, o, s) BOOST_PP_WHILE_80_C(BOOST_PP_BOOL(p##(81, s)), p, o, s)\r
+# define BOOST_PP_WHILE_81(p, o, s) BOOST_PP_WHILE_81_C(BOOST_PP_BOOL(p##(82, s)), p, o, s)\r
+# define BOOST_PP_WHILE_82(p, o, s) BOOST_PP_WHILE_82_C(BOOST_PP_BOOL(p##(83, s)), p, o, s)\r
+# define BOOST_PP_WHILE_83(p, o, s) BOOST_PP_WHILE_83_C(BOOST_PP_BOOL(p##(84, s)), p, o, s)\r
+# define BOOST_PP_WHILE_84(p, o, s) BOOST_PP_WHILE_84_C(BOOST_PP_BOOL(p##(85, s)), p, o, s)\r
+# define BOOST_PP_WHILE_85(p, o, s) BOOST_PP_WHILE_85_C(BOOST_PP_BOOL(p##(86, s)), p, o, s)\r
+# define BOOST_PP_WHILE_86(p, o, s) BOOST_PP_WHILE_86_C(BOOST_PP_BOOL(p##(87, s)), p, o, s)\r
+# define BOOST_PP_WHILE_87(p, o, s) BOOST_PP_WHILE_87_C(BOOST_PP_BOOL(p##(88, s)), p, o, s)\r
+# define BOOST_PP_WHILE_88(p, o, s) BOOST_PP_WHILE_88_C(BOOST_PP_BOOL(p##(89, s)), p, o, s)\r
+# define BOOST_PP_WHILE_89(p, o, s) BOOST_PP_WHILE_89_C(BOOST_PP_BOOL(p##(90, s)), p, o, s)\r
+# define BOOST_PP_WHILE_90(p, o, s) BOOST_PP_WHILE_90_C(BOOST_PP_BOOL(p##(91, s)), p, o, s)\r
+# define BOOST_PP_WHILE_91(p, o, s) BOOST_PP_WHILE_91_C(BOOST_PP_BOOL(p##(92, s)), p, o, s)\r
+# define BOOST_PP_WHILE_92(p, o, s) BOOST_PP_WHILE_92_C(BOOST_PP_BOOL(p##(93, s)), p, o, s)\r
+# define BOOST_PP_WHILE_93(p, o, s) BOOST_PP_WHILE_93_C(BOOST_PP_BOOL(p##(94, s)), p, o, s)\r
+# define BOOST_PP_WHILE_94(p, o, s) BOOST_PP_WHILE_94_C(BOOST_PP_BOOL(p##(95, s)), p, o, s)\r
+# define BOOST_PP_WHILE_95(p, o, s) BOOST_PP_WHILE_95_C(BOOST_PP_BOOL(p##(96, s)), p, o, s)\r
+# define BOOST_PP_WHILE_96(p, o, s) BOOST_PP_WHILE_96_C(BOOST_PP_BOOL(p##(97, s)), p, o, s)\r
+# define BOOST_PP_WHILE_97(p, o, s) BOOST_PP_WHILE_97_C(BOOST_PP_BOOL(p##(98, s)), p, o, s)\r
+# define BOOST_PP_WHILE_98(p, o, s) BOOST_PP_WHILE_98_C(BOOST_PP_BOOL(p##(99, s)), p, o, s)\r
+# define BOOST_PP_WHILE_99(p, o, s) BOOST_PP_WHILE_99_C(BOOST_PP_BOOL(p##(100, s)), p, o, s)\r
+# define BOOST_PP_WHILE_100(p, o, s) BOOST_PP_WHILE_100_C(BOOST_PP_BOOL(p##(101, s)), p, o, s)\r
+# define BOOST_PP_WHILE_101(p, o, s) BOOST_PP_WHILE_101_C(BOOST_PP_BOOL(p##(102, s)), p, o, s)\r
+# define BOOST_PP_WHILE_102(p, o, s) BOOST_PP_WHILE_102_C(BOOST_PP_BOOL(p##(103, s)), p, o, s)\r
+# define BOOST_PP_WHILE_103(p, o, s) BOOST_PP_WHILE_103_C(BOOST_PP_BOOL(p##(104, s)), p, o, s)\r
+# define BOOST_PP_WHILE_104(p, o, s) BOOST_PP_WHILE_104_C(BOOST_PP_BOOL(p##(105, s)), p, o, s)\r
+# define BOOST_PP_WHILE_105(p, o, s) BOOST_PP_WHILE_105_C(BOOST_PP_BOOL(p##(106, s)), p, o, s)\r
+# define BOOST_PP_WHILE_106(p, o, s) BOOST_PP_WHILE_106_C(BOOST_PP_BOOL(p##(107, s)), p, o, s)\r
+# define BOOST_PP_WHILE_107(p, o, s) BOOST_PP_WHILE_107_C(BOOST_PP_BOOL(p##(108, s)), p, o, s)\r
+# define BOOST_PP_WHILE_108(p, o, s) BOOST_PP_WHILE_108_C(BOOST_PP_BOOL(p##(109, s)), p, o, s)\r
+# define BOOST_PP_WHILE_109(p, o, s) BOOST_PP_WHILE_109_C(BOOST_PP_BOOL(p##(110, s)), p, o, s)\r
+# define BOOST_PP_WHILE_110(p, o, s) BOOST_PP_WHILE_110_C(BOOST_PP_BOOL(p##(111, s)), p, o, s)\r
+# define BOOST_PP_WHILE_111(p, o, s) BOOST_PP_WHILE_111_C(BOOST_PP_BOOL(p##(112, s)), p, o, s)\r
+# define BOOST_PP_WHILE_112(p, o, s) BOOST_PP_WHILE_112_C(BOOST_PP_BOOL(p##(113, s)), p, o, s)\r
+# define BOOST_PP_WHILE_113(p, o, s) BOOST_PP_WHILE_113_C(BOOST_PP_BOOL(p##(114, s)), p, o, s)\r
+# define BOOST_PP_WHILE_114(p, o, s) BOOST_PP_WHILE_114_C(BOOST_PP_BOOL(p##(115, s)), p, o, s)\r
+# define BOOST_PP_WHILE_115(p, o, s) BOOST_PP_WHILE_115_C(BOOST_PP_BOOL(p##(116, s)), p, o, s)\r
+# define BOOST_PP_WHILE_116(p, o, s) BOOST_PP_WHILE_116_C(BOOST_PP_BOOL(p##(117, s)), p, o, s)\r
+# define BOOST_PP_WHILE_117(p, o, s) BOOST_PP_WHILE_117_C(BOOST_PP_BOOL(p##(118, s)), p, o, s)\r
+# define BOOST_PP_WHILE_118(p, o, s) BOOST_PP_WHILE_118_C(BOOST_PP_BOOL(p##(119, s)), p, o, s)\r
+# define BOOST_PP_WHILE_119(p, o, s) BOOST_PP_WHILE_119_C(BOOST_PP_BOOL(p##(120, s)), p, o, s)\r
+# define BOOST_PP_WHILE_120(p, o, s) BOOST_PP_WHILE_120_C(BOOST_PP_BOOL(p##(121, s)), p, o, s)\r
+# define BOOST_PP_WHILE_121(p, o, s) BOOST_PP_WHILE_121_C(BOOST_PP_BOOL(p##(122, s)), p, o, s)\r
+# define BOOST_PP_WHILE_122(p, o, s) BOOST_PP_WHILE_122_C(BOOST_PP_BOOL(p##(123, s)), p, o, s)\r
+# define BOOST_PP_WHILE_123(p, o, s) BOOST_PP_WHILE_123_C(BOOST_PP_BOOL(p##(124, s)), p, o, s)\r
+# define BOOST_PP_WHILE_124(p, o, s) BOOST_PP_WHILE_124_C(BOOST_PP_BOOL(p##(125, s)), p, o, s)\r
+# define BOOST_PP_WHILE_125(p, o, s) BOOST_PP_WHILE_125_C(BOOST_PP_BOOL(p##(126, s)), p, o, s)\r
+# define BOOST_PP_WHILE_126(p, o, s) BOOST_PP_WHILE_126_C(BOOST_PP_BOOL(p##(127, s)), p, o, s)\r
+# define BOOST_PP_WHILE_127(p, o, s) BOOST_PP_WHILE_127_C(BOOST_PP_BOOL(p##(128, s)), p, o, s)\r
+# define BOOST_PP_WHILE_128(p, o, s) BOOST_PP_WHILE_128_C(BOOST_PP_BOOL(p##(129, s)), p, o, s)\r
+# define BOOST_PP_WHILE_129(p, o, s) BOOST_PP_WHILE_129_C(BOOST_PP_BOOL(p##(130, s)), p, o, s)\r
+# define BOOST_PP_WHILE_130(p, o, s) BOOST_PP_WHILE_130_C(BOOST_PP_BOOL(p##(131, s)), p, o, s)\r
+# define BOOST_PP_WHILE_131(p, o, s) BOOST_PP_WHILE_131_C(BOOST_PP_BOOL(p##(132, s)), p, o, s)\r
+# define BOOST_PP_WHILE_132(p, o, s) BOOST_PP_WHILE_132_C(BOOST_PP_BOOL(p##(133, s)), p, o, s)\r
+# define BOOST_PP_WHILE_133(p, o, s) BOOST_PP_WHILE_133_C(BOOST_PP_BOOL(p##(134, s)), p, o, s)\r
+# define BOOST_PP_WHILE_134(p, o, s) BOOST_PP_WHILE_134_C(BOOST_PP_BOOL(p##(135, s)), p, o, s)\r
+# define BOOST_PP_WHILE_135(p, o, s) BOOST_PP_WHILE_135_C(BOOST_PP_BOOL(p##(136, s)), p, o, s)\r
+# define BOOST_PP_WHILE_136(p, o, s) BOOST_PP_WHILE_136_C(BOOST_PP_BOOL(p##(137, s)), p, o, s)\r
+# define BOOST_PP_WHILE_137(p, o, s) BOOST_PP_WHILE_137_C(BOOST_PP_BOOL(p##(138, s)), p, o, s)\r
+# define BOOST_PP_WHILE_138(p, o, s) BOOST_PP_WHILE_138_C(BOOST_PP_BOOL(p##(139, s)), p, o, s)\r
+# define BOOST_PP_WHILE_139(p, o, s) BOOST_PP_WHILE_139_C(BOOST_PP_BOOL(p##(140, s)), p, o, s)\r
+# define BOOST_PP_WHILE_140(p, o, s) BOOST_PP_WHILE_140_C(BOOST_PP_BOOL(p##(141, s)), p, o, s)\r
+# define BOOST_PP_WHILE_141(p, o, s) BOOST_PP_WHILE_141_C(BOOST_PP_BOOL(p##(142, s)), p, o, s)\r
+# define BOOST_PP_WHILE_142(p, o, s) BOOST_PP_WHILE_142_C(BOOST_PP_BOOL(p##(143, s)), p, o, s)\r
+# define BOOST_PP_WHILE_143(p, o, s) BOOST_PP_WHILE_143_C(BOOST_PP_BOOL(p##(144, s)), p, o, s)\r
+# define BOOST_PP_WHILE_144(p, o, s) BOOST_PP_WHILE_144_C(BOOST_PP_BOOL(p##(145, s)), p, o, s)\r
+# define BOOST_PP_WHILE_145(p, o, s) BOOST_PP_WHILE_145_C(BOOST_PP_BOOL(p##(146, s)), p, o, s)\r
+# define BOOST_PP_WHILE_146(p, o, s) BOOST_PP_WHILE_146_C(BOOST_PP_BOOL(p##(147, s)), p, o, s)\r
+# define BOOST_PP_WHILE_147(p, o, s) BOOST_PP_WHILE_147_C(BOOST_PP_BOOL(p##(148, s)), p, o, s)\r
+# define BOOST_PP_WHILE_148(p, o, s) BOOST_PP_WHILE_148_C(BOOST_PP_BOOL(p##(149, s)), p, o, s)\r
+# define BOOST_PP_WHILE_149(p, o, s) BOOST_PP_WHILE_149_C(BOOST_PP_BOOL(p##(150, s)), p, o, s)\r
+# define BOOST_PP_WHILE_150(p, o, s) BOOST_PP_WHILE_150_C(BOOST_PP_BOOL(p##(151, s)), p, o, s)\r
+# define BOOST_PP_WHILE_151(p, o, s) BOOST_PP_WHILE_151_C(BOOST_PP_BOOL(p##(152, s)), p, o, s)\r
+# define BOOST_PP_WHILE_152(p, o, s) BOOST_PP_WHILE_152_C(BOOST_PP_BOOL(p##(153, s)), p, o, s)\r
+# define BOOST_PP_WHILE_153(p, o, s) BOOST_PP_WHILE_153_C(BOOST_PP_BOOL(p##(154, s)), p, o, s)\r
+# define BOOST_PP_WHILE_154(p, o, s) BOOST_PP_WHILE_154_C(BOOST_PP_BOOL(p##(155, s)), p, o, s)\r
+# define BOOST_PP_WHILE_155(p, o, s) BOOST_PP_WHILE_155_C(BOOST_PP_BOOL(p##(156, s)), p, o, s)\r
+# define BOOST_PP_WHILE_156(p, o, s) BOOST_PP_WHILE_156_C(BOOST_PP_BOOL(p##(157, s)), p, o, s)\r
+# define BOOST_PP_WHILE_157(p, o, s) BOOST_PP_WHILE_157_C(BOOST_PP_BOOL(p##(158, s)), p, o, s)\r
+# define BOOST_PP_WHILE_158(p, o, s) BOOST_PP_WHILE_158_C(BOOST_PP_BOOL(p##(159, s)), p, o, s)\r
+# define BOOST_PP_WHILE_159(p, o, s) BOOST_PP_WHILE_159_C(BOOST_PP_BOOL(p##(160, s)), p, o, s)\r
+# define BOOST_PP_WHILE_160(p, o, s) BOOST_PP_WHILE_160_C(BOOST_PP_BOOL(p##(161, s)), p, o, s)\r
+# define BOOST_PP_WHILE_161(p, o, s) BOOST_PP_WHILE_161_C(BOOST_PP_BOOL(p##(162, s)), p, o, s)\r
+# define BOOST_PP_WHILE_162(p, o, s) BOOST_PP_WHILE_162_C(BOOST_PP_BOOL(p##(163, s)), p, o, s)\r
+# define BOOST_PP_WHILE_163(p, o, s) BOOST_PP_WHILE_163_C(BOOST_PP_BOOL(p##(164, s)), p, o, s)\r
+# define BOOST_PP_WHILE_164(p, o, s) BOOST_PP_WHILE_164_C(BOOST_PP_BOOL(p##(165, s)), p, o, s)\r
+# define BOOST_PP_WHILE_165(p, o, s) BOOST_PP_WHILE_165_C(BOOST_PP_BOOL(p##(166, s)), p, o, s)\r
+# define BOOST_PP_WHILE_166(p, o, s) BOOST_PP_WHILE_166_C(BOOST_PP_BOOL(p##(167, s)), p, o, s)\r
+# define BOOST_PP_WHILE_167(p, o, s) BOOST_PP_WHILE_167_C(BOOST_PP_BOOL(p##(168, s)), p, o, s)\r
+# define BOOST_PP_WHILE_168(p, o, s) BOOST_PP_WHILE_168_C(BOOST_PP_BOOL(p##(169, s)), p, o, s)\r
+# define BOOST_PP_WHILE_169(p, o, s) BOOST_PP_WHILE_169_C(BOOST_PP_BOOL(p##(170, s)), p, o, s)\r
+# define BOOST_PP_WHILE_170(p, o, s) BOOST_PP_WHILE_170_C(BOOST_PP_BOOL(p##(171, s)), p, o, s)\r
+# define BOOST_PP_WHILE_171(p, o, s) BOOST_PP_WHILE_171_C(BOOST_PP_BOOL(p##(172, s)), p, o, s)\r
+# define BOOST_PP_WHILE_172(p, o, s) BOOST_PP_WHILE_172_C(BOOST_PP_BOOL(p##(173, s)), p, o, s)\r
+# define BOOST_PP_WHILE_173(p, o, s) BOOST_PP_WHILE_173_C(BOOST_PP_BOOL(p##(174, s)), p, o, s)\r
+# define BOOST_PP_WHILE_174(p, o, s) BOOST_PP_WHILE_174_C(BOOST_PP_BOOL(p##(175, s)), p, o, s)\r
+# define BOOST_PP_WHILE_175(p, o, s) BOOST_PP_WHILE_175_C(BOOST_PP_BOOL(p##(176, s)), p, o, s)\r
+# define BOOST_PP_WHILE_176(p, o, s) BOOST_PP_WHILE_176_C(BOOST_PP_BOOL(p##(177, s)), p, o, s)\r
+# define BOOST_PP_WHILE_177(p, o, s) BOOST_PP_WHILE_177_C(BOOST_PP_BOOL(p##(178, s)), p, o, s)\r
+# define BOOST_PP_WHILE_178(p, o, s) BOOST_PP_WHILE_178_C(BOOST_PP_BOOL(p##(179, s)), p, o, s)\r
+# define BOOST_PP_WHILE_179(p, o, s) BOOST_PP_WHILE_179_C(BOOST_PP_BOOL(p##(180, s)), p, o, s)\r
+# define BOOST_PP_WHILE_180(p, o, s) BOOST_PP_WHILE_180_C(BOOST_PP_BOOL(p##(181, s)), p, o, s)\r
+# define BOOST_PP_WHILE_181(p, o, s) BOOST_PP_WHILE_181_C(BOOST_PP_BOOL(p##(182, s)), p, o, s)\r
+# define BOOST_PP_WHILE_182(p, o, s) BOOST_PP_WHILE_182_C(BOOST_PP_BOOL(p##(183, s)), p, o, s)\r
+# define BOOST_PP_WHILE_183(p, o, s) BOOST_PP_WHILE_183_C(BOOST_PP_BOOL(p##(184, s)), p, o, s)\r
+# define BOOST_PP_WHILE_184(p, o, s) BOOST_PP_WHILE_184_C(BOOST_PP_BOOL(p##(185, s)), p, o, s)\r
+# define BOOST_PP_WHILE_185(p, o, s) BOOST_PP_WHILE_185_C(BOOST_PP_BOOL(p##(186, s)), p, o, s)\r
+# define BOOST_PP_WHILE_186(p, o, s) BOOST_PP_WHILE_186_C(BOOST_PP_BOOL(p##(187, s)), p, o, s)\r
+# define BOOST_PP_WHILE_187(p, o, s) BOOST_PP_WHILE_187_C(BOOST_PP_BOOL(p##(188, s)), p, o, s)\r
+# define BOOST_PP_WHILE_188(p, o, s) BOOST_PP_WHILE_188_C(BOOST_PP_BOOL(p##(189, s)), p, o, s)\r
+# define BOOST_PP_WHILE_189(p, o, s) BOOST_PP_WHILE_189_C(BOOST_PP_BOOL(p##(190, s)), p, o, s)\r
+# define BOOST_PP_WHILE_190(p, o, s) BOOST_PP_WHILE_190_C(BOOST_PP_BOOL(p##(191, s)), p, o, s)\r
+# define BOOST_PP_WHILE_191(p, o, s) BOOST_PP_WHILE_191_C(BOOST_PP_BOOL(p##(192, s)), p, o, s)\r
+# define BOOST_PP_WHILE_192(p, o, s) BOOST_PP_WHILE_192_C(BOOST_PP_BOOL(p##(193, s)), p, o, s)\r
+# define BOOST_PP_WHILE_193(p, o, s) BOOST_PP_WHILE_193_C(BOOST_PP_BOOL(p##(194, s)), p, o, s)\r
+# define BOOST_PP_WHILE_194(p, o, s) BOOST_PP_WHILE_194_C(BOOST_PP_BOOL(p##(195, s)), p, o, s)\r
+# define BOOST_PP_WHILE_195(p, o, s) BOOST_PP_WHILE_195_C(BOOST_PP_BOOL(p##(196, s)), p, o, s)\r
+# define BOOST_PP_WHILE_196(p, o, s) BOOST_PP_WHILE_196_C(BOOST_PP_BOOL(p##(197, s)), p, o, s)\r
+# define BOOST_PP_WHILE_197(p, o, s) BOOST_PP_WHILE_197_C(BOOST_PP_BOOL(p##(198, s)), p, o, s)\r
+# define BOOST_PP_WHILE_198(p, o, s) BOOST_PP_WHILE_198_C(BOOST_PP_BOOL(p##(199, s)), p, o, s)\r
+# define BOOST_PP_WHILE_199(p, o, s) BOOST_PP_WHILE_199_C(BOOST_PP_BOOL(p##(200, s)), p, o, s)\r
+# define BOOST_PP_WHILE_200(p, o, s) BOOST_PP_WHILE_200_C(BOOST_PP_BOOL(p##(201, s)), p, o, s)\r
+# define BOOST_PP_WHILE_201(p, o, s) BOOST_PP_WHILE_201_C(BOOST_PP_BOOL(p##(202, s)), p, o, s)\r
+# define BOOST_PP_WHILE_202(p, o, s) BOOST_PP_WHILE_202_C(BOOST_PP_BOOL(p##(203, s)), p, o, s)\r
+# define BOOST_PP_WHILE_203(p, o, s) BOOST_PP_WHILE_203_C(BOOST_PP_BOOL(p##(204, s)), p, o, s)\r
+# define BOOST_PP_WHILE_204(p, o, s) BOOST_PP_WHILE_204_C(BOOST_PP_BOOL(p##(205, s)), p, o, s)\r
+# define BOOST_PP_WHILE_205(p, o, s) BOOST_PP_WHILE_205_C(BOOST_PP_BOOL(p##(206, s)), p, o, s)\r
+# define BOOST_PP_WHILE_206(p, o, s) BOOST_PP_WHILE_206_C(BOOST_PP_BOOL(p##(207, s)), p, o, s)\r
+# define BOOST_PP_WHILE_207(p, o, s) BOOST_PP_WHILE_207_C(BOOST_PP_BOOL(p##(208, s)), p, o, s)\r
+# define BOOST_PP_WHILE_208(p, o, s) BOOST_PP_WHILE_208_C(BOOST_PP_BOOL(p##(209, s)), p, o, s)\r
+# define BOOST_PP_WHILE_209(p, o, s) BOOST_PP_WHILE_209_C(BOOST_PP_BOOL(p##(210, s)), p, o, s)\r
+# define BOOST_PP_WHILE_210(p, o, s) BOOST_PP_WHILE_210_C(BOOST_PP_BOOL(p##(211, s)), p, o, s)\r
+# define BOOST_PP_WHILE_211(p, o, s) BOOST_PP_WHILE_211_C(BOOST_PP_BOOL(p##(212, s)), p, o, s)\r
+# define BOOST_PP_WHILE_212(p, o, s) BOOST_PP_WHILE_212_C(BOOST_PP_BOOL(p##(213, s)), p, o, s)\r
+# define BOOST_PP_WHILE_213(p, o, s) BOOST_PP_WHILE_213_C(BOOST_PP_BOOL(p##(214, s)), p, o, s)\r
+# define BOOST_PP_WHILE_214(p, o, s) BOOST_PP_WHILE_214_C(BOOST_PP_BOOL(p##(215, s)), p, o, s)\r
+# define BOOST_PP_WHILE_215(p, o, s) BOOST_PP_WHILE_215_C(BOOST_PP_BOOL(p##(216, s)), p, o, s)\r
+# define BOOST_PP_WHILE_216(p, o, s) BOOST_PP_WHILE_216_C(BOOST_PP_BOOL(p##(217, s)), p, o, s)\r
+# define BOOST_PP_WHILE_217(p, o, s) BOOST_PP_WHILE_217_C(BOOST_PP_BOOL(p##(218, s)), p, o, s)\r
+# define BOOST_PP_WHILE_218(p, o, s) BOOST_PP_WHILE_218_C(BOOST_PP_BOOL(p##(219, s)), p, o, s)\r
+# define BOOST_PP_WHILE_219(p, o, s) BOOST_PP_WHILE_219_C(BOOST_PP_BOOL(p##(220, s)), p, o, s)\r
+# define BOOST_PP_WHILE_220(p, o, s) BOOST_PP_WHILE_220_C(BOOST_PP_BOOL(p##(221, s)), p, o, s)\r
+# define BOOST_PP_WHILE_221(p, o, s) BOOST_PP_WHILE_221_C(BOOST_PP_BOOL(p##(222, s)), p, o, s)\r
+# define BOOST_PP_WHILE_222(p, o, s) BOOST_PP_WHILE_222_C(BOOST_PP_BOOL(p##(223, s)), p, o, s)\r
+# define BOOST_PP_WHILE_223(p, o, s) BOOST_PP_WHILE_223_C(BOOST_PP_BOOL(p##(224, s)), p, o, s)\r
+# define BOOST_PP_WHILE_224(p, o, s) BOOST_PP_WHILE_224_C(BOOST_PP_BOOL(p##(225, s)), p, o, s)\r
+# define BOOST_PP_WHILE_225(p, o, s) BOOST_PP_WHILE_225_C(BOOST_PP_BOOL(p##(226, s)), p, o, s)\r
+# define BOOST_PP_WHILE_226(p, o, s) BOOST_PP_WHILE_226_C(BOOST_PP_BOOL(p##(227, s)), p, o, s)\r
+# define BOOST_PP_WHILE_227(p, o, s) BOOST_PP_WHILE_227_C(BOOST_PP_BOOL(p##(228, s)), p, o, s)\r
+# define BOOST_PP_WHILE_228(p, o, s) BOOST_PP_WHILE_228_C(BOOST_PP_BOOL(p##(229, s)), p, o, s)\r
+# define BOOST_PP_WHILE_229(p, o, s) BOOST_PP_WHILE_229_C(BOOST_PP_BOOL(p##(230, s)), p, o, s)\r
+# define BOOST_PP_WHILE_230(p, o, s) BOOST_PP_WHILE_230_C(BOOST_PP_BOOL(p##(231, s)), p, o, s)\r
+# define BOOST_PP_WHILE_231(p, o, s) BOOST_PP_WHILE_231_C(BOOST_PP_BOOL(p##(232, s)), p, o, s)\r
+# define BOOST_PP_WHILE_232(p, o, s) BOOST_PP_WHILE_232_C(BOOST_PP_BOOL(p##(233, s)), p, o, s)\r
+# define BOOST_PP_WHILE_233(p, o, s) BOOST_PP_WHILE_233_C(BOOST_PP_BOOL(p##(234, s)), p, o, s)\r
+# define BOOST_PP_WHILE_234(p, o, s) BOOST_PP_WHILE_234_C(BOOST_PP_BOOL(p##(235, s)), p, o, s)\r
+# define BOOST_PP_WHILE_235(p, o, s) BOOST_PP_WHILE_235_C(BOOST_PP_BOOL(p##(236, s)), p, o, s)\r
+# define BOOST_PP_WHILE_236(p, o, s) BOOST_PP_WHILE_236_C(BOOST_PP_BOOL(p##(237, s)), p, o, s)\r
+# define BOOST_PP_WHILE_237(p, o, s) BOOST_PP_WHILE_237_C(BOOST_PP_BOOL(p##(238, s)), p, o, s)\r
+# define BOOST_PP_WHILE_238(p, o, s) BOOST_PP_WHILE_238_C(BOOST_PP_BOOL(p##(239, s)), p, o, s)\r
+# define BOOST_PP_WHILE_239(p, o, s) BOOST_PP_WHILE_239_C(BOOST_PP_BOOL(p##(240, s)), p, o, s)\r
+# define BOOST_PP_WHILE_240(p, o, s) BOOST_PP_WHILE_240_C(BOOST_PP_BOOL(p##(241, s)), p, o, s)\r
+# define BOOST_PP_WHILE_241(p, o, s) BOOST_PP_WHILE_241_C(BOOST_PP_BOOL(p##(242, s)), p, o, s)\r
+# define BOOST_PP_WHILE_242(p, o, s) BOOST_PP_WHILE_242_C(BOOST_PP_BOOL(p##(243, s)), p, o, s)\r
+# define BOOST_PP_WHILE_243(p, o, s) BOOST_PP_WHILE_243_C(BOOST_PP_BOOL(p##(244, s)), p, o, s)\r
+# define BOOST_PP_WHILE_244(p, o, s) BOOST_PP_WHILE_244_C(BOOST_PP_BOOL(p##(245, s)), p, o, s)\r
+# define BOOST_PP_WHILE_245(p, o, s) BOOST_PP_WHILE_245_C(BOOST_PP_BOOL(p##(246, s)), p, o, s)\r
+# define BOOST_PP_WHILE_246(p, o, s) BOOST_PP_WHILE_246_C(BOOST_PP_BOOL(p##(247, s)), p, o, s)\r
+# define BOOST_PP_WHILE_247(p, o, s) BOOST_PP_WHILE_247_C(BOOST_PP_BOOL(p##(248, s)), p, o, s)\r
+# define BOOST_PP_WHILE_248(p, o, s) BOOST_PP_WHILE_248_C(BOOST_PP_BOOL(p##(249, s)), p, o, s)\r
+# define BOOST_PP_WHILE_249(p, o, s) BOOST_PP_WHILE_249_C(BOOST_PP_BOOL(p##(250, s)), p, o, s)\r
+# define BOOST_PP_WHILE_250(p, o, s) BOOST_PP_WHILE_250_C(BOOST_PP_BOOL(p##(251, s)), p, o, s)\r
+# define BOOST_PP_WHILE_251(p, o, s) BOOST_PP_WHILE_251_C(BOOST_PP_BOOL(p##(252, s)), p, o, s)\r
+# define BOOST_PP_WHILE_252(p, o, s) BOOST_PP_WHILE_252_C(BOOST_PP_BOOL(p##(253, s)), p, o, s)\r
+# define BOOST_PP_WHILE_253(p, o, s) BOOST_PP_WHILE_253_C(BOOST_PP_BOOL(p##(254, s)), p, o, s)\r
+# define BOOST_PP_WHILE_254(p, o, s) BOOST_PP_WHILE_254_C(BOOST_PP_BOOL(p##(255, s)), p, o, s)\r
+# define BOOST_PP_WHILE_255(p, o, s) BOOST_PP_WHILE_255_C(BOOST_PP_BOOL(p##(256, s)), p, o, s)\r
+# define BOOST_PP_WHILE_256(p, o, s) BOOST_PP_WHILE_256_C(BOOST_PP_BOOL(p##(257, s)), p, o, s)\r
+#\r
+# define BOOST_PP_WHILE_1_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_2, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(2, s))\r
+# define BOOST_PP_WHILE_2_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_3, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(3, s))\r
+# define BOOST_PP_WHILE_3_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_4, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(4, s))\r
+# define BOOST_PP_WHILE_4_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_5, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(5, s))\r
+# define BOOST_PP_WHILE_5_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_6, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(6, s))\r
+# define BOOST_PP_WHILE_6_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_7, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(7, s))\r
+# define BOOST_PP_WHILE_7_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_8, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(8, s))\r
+# define BOOST_PP_WHILE_8_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_9, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(9, s))\r
+# define BOOST_PP_WHILE_9_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_10, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(10, s))\r
+# define BOOST_PP_WHILE_10_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_11, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(11, s))\r
+# define BOOST_PP_WHILE_11_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_12, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(12, s))\r
+# define BOOST_PP_WHILE_12_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_13, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(13, s))\r
+# define BOOST_PP_WHILE_13_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_14, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(14, s))\r
+# define BOOST_PP_WHILE_14_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_15, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(15, s))\r
+# define BOOST_PP_WHILE_15_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_16, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(16, s))\r
+# define BOOST_PP_WHILE_16_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_17, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(17, s))\r
+# define BOOST_PP_WHILE_17_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_18, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(18, s))\r
+# define BOOST_PP_WHILE_18_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_19, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(19, s))\r
+# define BOOST_PP_WHILE_19_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_20, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(20, s))\r
+# define BOOST_PP_WHILE_20_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_21, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(21, s))\r
+# define BOOST_PP_WHILE_21_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_22, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(22, s))\r
+# define BOOST_PP_WHILE_22_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_23, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(23, s))\r
+# define BOOST_PP_WHILE_23_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_24, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(24, s))\r
+# define BOOST_PP_WHILE_24_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_25, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(25, s))\r
+# define BOOST_PP_WHILE_25_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_26, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(26, s))\r
+# define BOOST_PP_WHILE_26_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_27, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(27, s))\r
+# define BOOST_PP_WHILE_27_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_28, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(28, s))\r
+# define BOOST_PP_WHILE_28_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_29, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(29, s))\r
+# define BOOST_PP_WHILE_29_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_30, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(30, s))\r
+# define BOOST_PP_WHILE_30_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_31, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(31, s))\r
+# define BOOST_PP_WHILE_31_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_32, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(32, s))\r
+# define BOOST_PP_WHILE_32_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_33, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(33, s))\r
+# define BOOST_PP_WHILE_33_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_34, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(34, s))\r
+# define BOOST_PP_WHILE_34_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_35, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(35, s))\r
+# define BOOST_PP_WHILE_35_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_36, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(36, s))\r
+# define BOOST_PP_WHILE_36_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_37, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(37, s))\r
+# define BOOST_PP_WHILE_37_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_38, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(38, s))\r
+# define BOOST_PP_WHILE_38_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_39, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(39, s))\r
+# define BOOST_PP_WHILE_39_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_40, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(40, s))\r
+# define BOOST_PP_WHILE_40_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_41, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(41, s))\r
+# define BOOST_PP_WHILE_41_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_42, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(42, s))\r
+# define BOOST_PP_WHILE_42_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_43, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(43, s))\r
+# define BOOST_PP_WHILE_43_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_44, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(44, s))\r
+# define BOOST_PP_WHILE_44_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_45, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(45, s))\r
+# define BOOST_PP_WHILE_45_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_46, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(46, s))\r
+# define BOOST_PP_WHILE_46_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_47, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(47, s))\r
+# define BOOST_PP_WHILE_47_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_48, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(48, s))\r
+# define BOOST_PP_WHILE_48_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_49, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(49, s))\r
+# define BOOST_PP_WHILE_49_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_50, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(50, s))\r
+# define BOOST_PP_WHILE_50_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_51, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(51, s))\r
+# define BOOST_PP_WHILE_51_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_52, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(52, s))\r
+# define BOOST_PP_WHILE_52_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_53, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(53, s))\r
+# define BOOST_PP_WHILE_53_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_54, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(54, s))\r
+# define BOOST_PP_WHILE_54_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_55, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(55, s))\r
+# define BOOST_PP_WHILE_55_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_56, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(56, s))\r
+# define BOOST_PP_WHILE_56_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_57, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(57, s))\r
+# define BOOST_PP_WHILE_57_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_58, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(58, s))\r
+# define BOOST_PP_WHILE_58_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_59, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(59, s))\r
+# define BOOST_PP_WHILE_59_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_60, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(60, s))\r
+# define BOOST_PP_WHILE_60_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_61, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(61, s))\r
+# define BOOST_PP_WHILE_61_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_62, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(62, s))\r
+# define BOOST_PP_WHILE_62_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_63, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(63, s))\r
+# define BOOST_PP_WHILE_63_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_64, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(64, s))\r
+# define BOOST_PP_WHILE_64_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_65, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(65, s))\r
+# define BOOST_PP_WHILE_65_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_66, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(66, s))\r
+# define BOOST_PP_WHILE_66_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_67, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(67, s))\r
+# define BOOST_PP_WHILE_67_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_68, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(68, s))\r
+# define BOOST_PP_WHILE_68_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_69, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(69, s))\r
+# define BOOST_PP_WHILE_69_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_70, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(70, s))\r
+# define BOOST_PP_WHILE_70_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_71, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(71, s))\r
+# define BOOST_PP_WHILE_71_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_72, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(72, s))\r
+# define BOOST_PP_WHILE_72_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_73, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(73, s))\r
+# define BOOST_PP_WHILE_73_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_74, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(74, s))\r
+# define BOOST_PP_WHILE_74_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_75, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(75, s))\r
+# define BOOST_PP_WHILE_75_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_76, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(76, s))\r
+# define BOOST_PP_WHILE_76_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_77, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(77, s))\r
+# define BOOST_PP_WHILE_77_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_78, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(78, s))\r
+# define BOOST_PP_WHILE_78_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_79, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(79, s))\r
+# define BOOST_PP_WHILE_79_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_80, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(80, s))\r
+# define BOOST_PP_WHILE_80_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_81, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(81, s))\r
+# define BOOST_PP_WHILE_81_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_82, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(82, s))\r
+# define BOOST_PP_WHILE_82_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_83, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(83, s))\r
+# define BOOST_PP_WHILE_83_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_84, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(84, s))\r
+# define BOOST_PP_WHILE_84_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_85, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(85, s))\r
+# define BOOST_PP_WHILE_85_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_86, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(86, s))\r
+# define BOOST_PP_WHILE_86_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_87, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(87, s))\r
+# define BOOST_PP_WHILE_87_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_88, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(88, s))\r
+# define BOOST_PP_WHILE_88_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_89, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(89, s))\r
+# define BOOST_PP_WHILE_89_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_90, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(90, s))\r
+# define BOOST_PP_WHILE_90_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_91, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(91, s))\r
+# define BOOST_PP_WHILE_91_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_92, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(92, s))\r
+# define BOOST_PP_WHILE_92_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_93, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(93, s))\r
+# define BOOST_PP_WHILE_93_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_94, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(94, s))\r
+# define BOOST_PP_WHILE_94_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_95, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(95, s))\r
+# define BOOST_PP_WHILE_95_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_96, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(96, s))\r
+# define BOOST_PP_WHILE_96_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_97, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(97, s))\r
+# define BOOST_PP_WHILE_97_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_98, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(98, s))\r
+# define BOOST_PP_WHILE_98_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_99, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(99, s))\r
+# define BOOST_PP_WHILE_99_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_100, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(100, s))\r
+# define BOOST_PP_WHILE_100_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_101, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(101, s))\r
+# define BOOST_PP_WHILE_101_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_102, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(102, s))\r
+# define BOOST_PP_WHILE_102_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_103, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(103, s))\r
+# define BOOST_PP_WHILE_103_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_104, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(104, s))\r
+# define BOOST_PP_WHILE_104_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_105, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(105, s))\r
+# define BOOST_PP_WHILE_105_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_106, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(106, s))\r
+# define BOOST_PP_WHILE_106_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_107, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(107, s))\r
+# define BOOST_PP_WHILE_107_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_108, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(108, s))\r
+# define BOOST_PP_WHILE_108_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_109, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(109, s))\r
+# define BOOST_PP_WHILE_109_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_110, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(110, s))\r
+# define BOOST_PP_WHILE_110_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_111, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(111, s))\r
+# define BOOST_PP_WHILE_111_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_112, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(112, s))\r
+# define BOOST_PP_WHILE_112_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_113, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(113, s))\r
+# define BOOST_PP_WHILE_113_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_114, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(114, s))\r
+# define BOOST_PP_WHILE_114_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_115, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(115, s))\r
+# define BOOST_PP_WHILE_115_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_116, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(116, s))\r
+# define BOOST_PP_WHILE_116_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_117, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(117, s))\r
+# define BOOST_PP_WHILE_117_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_118, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(118, s))\r
+# define BOOST_PP_WHILE_118_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_119, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(119, s))\r
+# define BOOST_PP_WHILE_119_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_120, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(120, s))\r
+# define BOOST_PP_WHILE_120_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_121, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(121, s))\r
+# define BOOST_PP_WHILE_121_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_122, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(122, s))\r
+# define BOOST_PP_WHILE_122_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_123, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(123, s))\r
+# define BOOST_PP_WHILE_123_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_124, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(124, s))\r
+# define BOOST_PP_WHILE_124_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_125, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(125, s))\r
+# define BOOST_PP_WHILE_125_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_126, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(126, s))\r
+# define BOOST_PP_WHILE_126_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_127, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(127, s))\r
+# define BOOST_PP_WHILE_127_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_128, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(128, s))\r
+# define BOOST_PP_WHILE_128_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_129, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(129, s))\r
+# define BOOST_PP_WHILE_129_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_130, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(130, s))\r
+# define BOOST_PP_WHILE_130_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_131, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(131, s))\r
+# define BOOST_PP_WHILE_131_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_132, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(132, s))\r
+# define BOOST_PP_WHILE_132_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_133, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(133, s))\r
+# define BOOST_PP_WHILE_133_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_134, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(134, s))\r
+# define BOOST_PP_WHILE_134_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_135, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(135, s))\r
+# define BOOST_PP_WHILE_135_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_136, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(136, s))\r
+# define BOOST_PP_WHILE_136_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_137, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(137, s))\r
+# define BOOST_PP_WHILE_137_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_138, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(138, s))\r
+# define BOOST_PP_WHILE_138_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_139, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(139, s))\r
+# define BOOST_PP_WHILE_139_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_140, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(140, s))\r
+# define BOOST_PP_WHILE_140_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_141, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(141, s))\r
+# define BOOST_PP_WHILE_141_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_142, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(142, s))\r
+# define BOOST_PP_WHILE_142_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_143, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(143, s))\r
+# define BOOST_PP_WHILE_143_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_144, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(144, s))\r
+# define BOOST_PP_WHILE_144_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_145, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(145, s))\r
+# define BOOST_PP_WHILE_145_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_146, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(146, s))\r
+# define BOOST_PP_WHILE_146_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_147, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(147, s))\r
+# define BOOST_PP_WHILE_147_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_148, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(148, s))\r
+# define BOOST_PP_WHILE_148_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_149, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(149, s))\r
+# define BOOST_PP_WHILE_149_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_150, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(150, s))\r
+# define BOOST_PP_WHILE_150_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_151, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(151, s))\r
+# define BOOST_PP_WHILE_151_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_152, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(152, s))\r
+# define BOOST_PP_WHILE_152_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_153, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(153, s))\r
+# define BOOST_PP_WHILE_153_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_154, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(154, s))\r
+# define BOOST_PP_WHILE_154_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_155, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(155, s))\r
+# define BOOST_PP_WHILE_155_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_156, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(156, s))\r
+# define BOOST_PP_WHILE_156_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_157, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(157, s))\r
+# define BOOST_PP_WHILE_157_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_158, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(158, s))\r
+# define BOOST_PP_WHILE_158_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_159, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(159, s))\r
+# define BOOST_PP_WHILE_159_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_160, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(160, s))\r
+# define BOOST_PP_WHILE_160_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_161, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(161, s))\r
+# define BOOST_PP_WHILE_161_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_162, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(162, s))\r
+# define BOOST_PP_WHILE_162_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_163, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(163, s))\r
+# define BOOST_PP_WHILE_163_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_164, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(164, s))\r
+# define BOOST_PP_WHILE_164_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_165, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(165, s))\r
+# define BOOST_PP_WHILE_165_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_166, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(166, s))\r
+# define BOOST_PP_WHILE_166_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_167, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(167, s))\r
+# define BOOST_PP_WHILE_167_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_168, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(168, s))\r
+# define BOOST_PP_WHILE_168_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_169, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(169, s))\r
+# define BOOST_PP_WHILE_169_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_170, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(170, s))\r
+# define BOOST_PP_WHILE_170_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_171, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(171, s))\r
+# define BOOST_PP_WHILE_171_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_172, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(172, s))\r
+# define BOOST_PP_WHILE_172_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_173, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(173, s))\r
+# define BOOST_PP_WHILE_173_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_174, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(174, s))\r
+# define BOOST_PP_WHILE_174_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_175, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(175, s))\r
+# define BOOST_PP_WHILE_175_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_176, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(176, s))\r
+# define BOOST_PP_WHILE_176_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_177, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(177, s))\r
+# define BOOST_PP_WHILE_177_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_178, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(178, s))\r
+# define BOOST_PP_WHILE_178_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_179, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(179, s))\r
+# define BOOST_PP_WHILE_179_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_180, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(180, s))\r
+# define BOOST_PP_WHILE_180_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_181, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(181, s))\r
+# define BOOST_PP_WHILE_181_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_182, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(182, s))\r
+# define BOOST_PP_WHILE_182_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_183, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(183, s))\r
+# define BOOST_PP_WHILE_183_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_184, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(184, s))\r
+# define BOOST_PP_WHILE_184_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_185, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(185, s))\r
+# define BOOST_PP_WHILE_185_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_186, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(186, s))\r
+# define BOOST_PP_WHILE_186_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_187, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(187, s))\r
+# define BOOST_PP_WHILE_187_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_188, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(188, s))\r
+# define BOOST_PP_WHILE_188_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_189, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(189, s))\r
+# define BOOST_PP_WHILE_189_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_190, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(190, s))\r
+# define BOOST_PP_WHILE_190_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_191, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(191, s))\r
+# define BOOST_PP_WHILE_191_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_192, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(192, s))\r
+# define BOOST_PP_WHILE_192_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_193, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(193, s))\r
+# define BOOST_PP_WHILE_193_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_194, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(194, s))\r
+# define BOOST_PP_WHILE_194_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_195, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(195, s))\r
+# define BOOST_PP_WHILE_195_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_196, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(196, s))\r
+# define BOOST_PP_WHILE_196_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_197, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(197, s))\r
+# define BOOST_PP_WHILE_197_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_198, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(198, s))\r
+# define BOOST_PP_WHILE_198_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_199, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(199, s))\r
+# define BOOST_PP_WHILE_199_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_200, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(200, s))\r
+# define BOOST_PP_WHILE_200_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_201, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(201, s))\r
+# define BOOST_PP_WHILE_201_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_202, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(202, s))\r
+# define BOOST_PP_WHILE_202_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_203, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(203, s))\r
+# define BOOST_PP_WHILE_203_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_204, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(204, s))\r
+# define BOOST_PP_WHILE_204_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_205, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(205, s))\r
+# define BOOST_PP_WHILE_205_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_206, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(206, s))\r
+# define BOOST_PP_WHILE_206_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_207, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(207, s))\r
+# define BOOST_PP_WHILE_207_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_208, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(208, s))\r
+# define BOOST_PP_WHILE_208_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_209, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(209, s))\r
+# define BOOST_PP_WHILE_209_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_210, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(210, s))\r
+# define BOOST_PP_WHILE_210_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_211, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(211, s))\r
+# define BOOST_PP_WHILE_211_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_212, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(212, s))\r
+# define BOOST_PP_WHILE_212_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_213, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(213, s))\r
+# define BOOST_PP_WHILE_213_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_214, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(214, s))\r
+# define BOOST_PP_WHILE_214_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_215, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(215, s))\r
+# define BOOST_PP_WHILE_215_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_216, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(216, s))\r
+# define BOOST_PP_WHILE_216_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_217, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(217, s))\r
+# define BOOST_PP_WHILE_217_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_218, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(218, s))\r
+# define BOOST_PP_WHILE_218_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_219, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(219, s))\r
+# define BOOST_PP_WHILE_219_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_220, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(220, s))\r
+# define BOOST_PP_WHILE_220_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_221, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(221, s))\r
+# define BOOST_PP_WHILE_221_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_222, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(222, s))\r
+# define BOOST_PP_WHILE_222_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_223, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(223, s))\r
+# define BOOST_PP_WHILE_223_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_224, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(224, s))\r
+# define BOOST_PP_WHILE_224_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_225, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(225, s))\r
+# define BOOST_PP_WHILE_225_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_226, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(226, s))\r
+# define BOOST_PP_WHILE_226_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_227, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(227, s))\r
+# define BOOST_PP_WHILE_227_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_228, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(228, s))\r
+# define BOOST_PP_WHILE_228_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_229, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(229, s))\r
+# define BOOST_PP_WHILE_229_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_230, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(230, s))\r
+# define BOOST_PP_WHILE_230_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_231, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(231, s))\r
+# define BOOST_PP_WHILE_231_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_232, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(232, s))\r
+# define BOOST_PP_WHILE_232_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_233, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(233, s))\r
+# define BOOST_PP_WHILE_233_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_234, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(234, s))\r
+# define BOOST_PP_WHILE_234_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_235, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(235, s))\r
+# define BOOST_PP_WHILE_235_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_236, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(236, s))\r
+# define BOOST_PP_WHILE_236_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_237, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(237, s))\r
+# define BOOST_PP_WHILE_237_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_238, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(238, s))\r
+# define BOOST_PP_WHILE_238_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_239, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(239, s))\r
+# define BOOST_PP_WHILE_239_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_240, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(240, s))\r
+# define BOOST_PP_WHILE_240_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_241, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(241, s))\r
+# define BOOST_PP_WHILE_241_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_242, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(242, s))\r
+# define BOOST_PP_WHILE_242_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_243, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(243, s))\r
+# define BOOST_PP_WHILE_243_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_244, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(244, s))\r
+# define BOOST_PP_WHILE_244_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_245, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(245, s))\r
+# define BOOST_PP_WHILE_245_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_246, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(246, s))\r
+# define BOOST_PP_WHILE_246_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_247, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(247, s))\r
+# define BOOST_PP_WHILE_247_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_248, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(248, s))\r
+# define BOOST_PP_WHILE_248_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_249, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(249, s))\r
+# define BOOST_PP_WHILE_249_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_250, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(250, s))\r
+# define BOOST_PP_WHILE_250_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_251, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(251, s))\r
+# define BOOST_PP_WHILE_251_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_252, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(252, s))\r
+# define BOOST_PP_WHILE_252_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_253, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(253, s))\r
+# define BOOST_PP_WHILE_253_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_254, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(254, s))\r
+# define BOOST_PP_WHILE_254_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_255, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(255, s))\r
+# define BOOST_PP_WHILE_255_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_256, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(256, s))\r
+# define BOOST_PP_WHILE_256_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_257, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(257, s))\r
+#\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/control/detail/edg/while.hpp b/boost/boost/preprocessor/control/detail/edg/while.hpp
new file mode 100644 (file)
index 0000000..ea10ecc
--- /dev/null
@@ -0,0 +1,534 @@
+# /* Copyright (C) 2001\r
+#  * Housemarque Oy\r
+#  * http://www.housemarque.com\r
+#  *\r
+#  * Distributed under the Boost Software License, Version 1.0. (See\r
+#  * accompanying file LICENSE_1_0.txt or copy at\r
+#  * http://www.boost.org/LICENSE_1_0.txt)\r
+#  */\r
+#\r
+# /* Revised by Paul Mensonides (2002) */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_CONTROL_DETAIL_EDG_WHILE_HPP\r
+# define BOOST_PREPROCESSOR_CONTROL_DETAIL_EDG_WHILE_HPP\r
+#\r
+# include <boost/preprocessor/control/if.hpp>\r
+# include <boost/preprocessor/tuple/eat.hpp>\r
+#\r
+# define BOOST_PP_WHILE_1(p, o, s) BOOST_PP_WHILE_1_I(p, o, s)\r
+# define BOOST_PP_WHILE_2(p, o, s) BOOST_PP_WHILE_2_I(p, o, s)\r
+# define BOOST_PP_WHILE_3(p, o, s) BOOST_PP_WHILE_3_I(p, o, s)\r
+# define BOOST_PP_WHILE_4(p, o, s) BOOST_PP_WHILE_4_I(p, o, s)\r
+# define BOOST_PP_WHILE_5(p, o, s) BOOST_PP_WHILE_5_I(p, o, s)\r
+# define BOOST_PP_WHILE_6(p, o, s) BOOST_PP_WHILE_6_I(p, o, s)\r
+# define BOOST_PP_WHILE_7(p, o, s) BOOST_PP_WHILE_7_I(p, o, s)\r
+# define BOOST_PP_WHILE_8(p, o, s) BOOST_PP_WHILE_8_I(p, o, s)\r
+# define BOOST_PP_WHILE_9(p, o, s) BOOST_PP_WHILE_9_I(p, o, s)\r
+# define BOOST_PP_WHILE_10(p, o, s) BOOST_PP_WHILE_10_I(p, o, s)\r
+# define BOOST_PP_WHILE_11(p, o, s) BOOST_PP_WHILE_11_I(p, o, s)\r
+# define BOOST_PP_WHILE_12(p, o, s) BOOST_PP_WHILE_12_I(p, o, s)\r
+# define BOOST_PP_WHILE_13(p, o, s) BOOST_PP_WHILE_13_I(p, o, s)\r
+# define BOOST_PP_WHILE_14(p, o, s) BOOST_PP_WHILE_14_I(p, o, s)\r
+# define BOOST_PP_WHILE_15(p, o, s) BOOST_PP_WHILE_15_I(p, o, s)\r
+# define BOOST_PP_WHILE_16(p, o, s) BOOST_PP_WHILE_16_I(p, o, s)\r
+# define BOOST_PP_WHILE_17(p, o, s) BOOST_PP_WHILE_17_I(p, o, s)\r
+# define BOOST_PP_WHILE_18(p, o, s) BOOST_PP_WHILE_18_I(p, o, s)\r
+# define BOOST_PP_WHILE_19(p, o, s) BOOST_PP_WHILE_19_I(p, o, s)\r
+# define BOOST_PP_WHILE_20(p, o, s) BOOST_PP_WHILE_20_I(p, o, s)\r
+# define BOOST_PP_WHILE_21(p, o, s) BOOST_PP_WHILE_21_I(p, o, s)\r
+# define BOOST_PP_WHILE_22(p, o, s) BOOST_PP_WHILE_22_I(p, o, s)\r
+# define BOOST_PP_WHILE_23(p, o, s) BOOST_PP_WHILE_23_I(p, o, s)\r
+# define BOOST_PP_WHILE_24(p, o, s) BOOST_PP_WHILE_24_I(p, o, s)\r
+# define BOOST_PP_WHILE_25(p, o, s) BOOST_PP_WHILE_25_I(p, o, s)\r
+# define BOOST_PP_WHILE_26(p, o, s) BOOST_PP_WHILE_26_I(p, o, s)\r
+# define BOOST_PP_WHILE_27(p, o, s) BOOST_PP_WHILE_27_I(p, o, s)\r
+# define BOOST_PP_WHILE_28(p, o, s) BOOST_PP_WHILE_28_I(p, o, s)\r
+# define BOOST_PP_WHILE_29(p, o, s) BOOST_PP_WHILE_29_I(p, o, s)\r
+# define BOOST_PP_WHILE_30(p, o, s) BOOST_PP_WHILE_30_I(p, o, s)\r
+# define BOOST_PP_WHILE_31(p, o, s) BOOST_PP_WHILE_31_I(p, o, s)\r
+# define BOOST_PP_WHILE_32(p, o, s) BOOST_PP_WHILE_32_I(p, o, s)\r
+# define BOOST_PP_WHILE_33(p, o, s) BOOST_PP_WHILE_33_I(p, o, s)\r
+# define BOOST_PP_WHILE_34(p, o, s) BOOST_PP_WHILE_34_I(p, o, s)\r
+# define BOOST_PP_WHILE_35(p, o, s) BOOST_PP_WHILE_35_I(p, o, s)\r
+# define BOOST_PP_WHILE_36(p, o, s) BOOST_PP_WHILE_36_I(p, o, s)\r
+# define BOOST_PP_WHILE_37(p, o, s) BOOST_PP_WHILE_37_I(p, o, s)\r
+# define BOOST_PP_WHILE_38(p, o, s) BOOST_PP_WHILE_38_I(p, o, s)\r
+# define BOOST_PP_WHILE_39(p, o, s) BOOST_PP_WHILE_39_I(p, o, s)\r
+# define BOOST_PP_WHILE_40(p, o, s) BOOST_PP_WHILE_40_I(p, o, s)\r
+# define BOOST_PP_WHILE_41(p, o, s) BOOST_PP_WHILE_41_I(p, o, s)\r
+# define BOOST_PP_WHILE_42(p, o, s) BOOST_PP_WHILE_42_I(p, o, s)\r
+# define BOOST_PP_WHILE_43(p, o, s) BOOST_PP_WHILE_43_I(p, o, s)\r
+# define BOOST_PP_WHILE_44(p, o, s) BOOST_PP_WHILE_44_I(p, o, s)\r
+# define BOOST_PP_WHILE_45(p, o, s) BOOST_PP_WHILE_45_I(p, o, s)\r
+# define BOOST_PP_WHILE_46(p, o, s) BOOST_PP_WHILE_46_I(p, o, s)\r
+# define BOOST_PP_WHILE_47(p, o, s) BOOST_PP_WHILE_47_I(p, o, s)\r
+# define BOOST_PP_WHILE_48(p, o, s) BOOST_PP_WHILE_48_I(p, o, s)\r
+# define BOOST_PP_WHILE_49(p, o, s) BOOST_PP_WHILE_49_I(p, o, s)\r
+# define BOOST_PP_WHILE_50(p, o, s) BOOST_PP_WHILE_50_I(p, o, s)\r
+# define BOOST_PP_WHILE_51(p, o, s) BOOST_PP_WHILE_51_I(p, o, s)\r
+# define BOOST_PP_WHILE_52(p, o, s) BOOST_PP_WHILE_52_I(p, o, s)\r
+# define BOOST_PP_WHILE_53(p, o, s) BOOST_PP_WHILE_53_I(p, o, s)\r
+# define BOOST_PP_WHILE_54(p, o, s) BOOST_PP_WHILE_54_I(p, o, s)\r
+# define BOOST_PP_WHILE_55(p, o, s) BOOST_PP_WHILE_55_I(p, o, s)\r
+# define BOOST_PP_WHILE_56(p, o, s) BOOST_PP_WHILE_56_I(p, o, s)\r
+# define BOOST_PP_WHILE_57(p, o, s) BOOST_PP_WHILE_57_I(p, o, s)\r
+# define BOOST_PP_WHILE_58(p, o, s) BOOST_PP_WHILE_58_I(p, o, s)\r
+# define BOOST_PP_WHILE_59(p, o, s) BOOST_PP_WHILE_59_I(p, o, s)\r
+# define BOOST_PP_WHILE_60(p, o, s) BOOST_PP_WHILE_60_I(p, o, s)\r
+# define BOOST_PP_WHILE_61(p, o, s) BOOST_PP_WHILE_61_I(p, o, s)\r
+# define BOOST_PP_WHILE_62(p, o, s) BOOST_PP_WHILE_62_I(p, o, s)\r
+# define BOOST_PP_WHILE_63(p, o, s) BOOST_PP_WHILE_63_I(p, o, s)\r
+# define BOOST_PP_WHILE_64(p, o, s) BOOST_PP_WHILE_64_I(p, o, s)\r
+# define BOOST_PP_WHILE_65(p, o, s) BOOST_PP_WHILE_65_I(p, o, s)\r
+# define BOOST_PP_WHILE_66(p, o, s) BOOST_PP_WHILE_66_I(p, o, s)\r
+# define BOOST_PP_WHILE_67(p, o, s) BOOST_PP_WHILE_67_I(p, o, s)\r
+# define BOOST_PP_WHILE_68(p, o, s) BOOST_PP_WHILE_68_I(p, o, s)\r
+# define BOOST_PP_WHILE_69(p, o, s) BOOST_PP_WHILE_69_I(p, o, s)\r
+# define BOOST_PP_WHILE_70(p, o, s) BOOST_PP_WHILE_70_I(p, o, s)\r
+# define BOOST_PP_WHILE_71(p, o, s) BOOST_PP_WHILE_71_I(p, o, s)\r
+# define BOOST_PP_WHILE_72(p, o, s) BOOST_PP_WHILE_72_I(p, o, s)\r
+# define BOOST_PP_WHILE_73(p, o, s) BOOST_PP_WHILE_73_I(p, o, s)\r
+# define BOOST_PP_WHILE_74(p, o, s) BOOST_PP_WHILE_74_I(p, o, s)\r
+# define BOOST_PP_WHILE_75(p, o, s) BOOST_PP_WHILE_75_I(p, o, s)\r
+# define BOOST_PP_WHILE_76(p, o, s) BOOST_PP_WHILE_76_I(p, o, s)\r
+# define BOOST_PP_WHILE_77(p, o, s) BOOST_PP_WHILE_77_I(p, o, s)\r
+# define BOOST_PP_WHILE_78(p, o, s) BOOST_PP_WHILE_78_I(p, o, s)\r
+# define BOOST_PP_WHILE_79(p, o, s) BOOST_PP_WHILE_79_I(p, o, s)\r
+# define BOOST_PP_WHILE_80(p, o, s) BOOST_PP_WHILE_80_I(p, o, s)\r
+# define BOOST_PP_WHILE_81(p, o, s) BOOST_PP_WHILE_81_I(p, o, s)\r
+# define BOOST_PP_WHILE_82(p, o, s) BOOST_PP_WHILE_82_I(p, o, s)\r
+# define BOOST_PP_WHILE_83(p, o, s) BOOST_PP_WHILE_83_I(p, o, s)\r
+# define BOOST_PP_WHILE_84(p, o, s) BOOST_PP_WHILE_84_I(p, o, s)\r
+# define BOOST_PP_WHILE_85(p, o, s) BOOST_PP_WHILE_85_I(p, o, s)\r
+# define BOOST_PP_WHILE_86(p, o, s) BOOST_PP_WHILE_86_I(p, o, s)\r
+# define BOOST_PP_WHILE_87(p, o, s) BOOST_PP_WHILE_87_I(p, o, s)\r
+# define BOOST_PP_WHILE_88(p, o, s) BOOST_PP_WHILE_88_I(p, o, s)\r
+# define BOOST_PP_WHILE_89(p, o, s) BOOST_PP_WHILE_89_I(p, o, s)\r
+# define BOOST_PP_WHILE_90(p, o, s) BOOST_PP_WHILE_90_I(p, o, s)\r
+# define BOOST_PP_WHILE_91(p, o, s) BOOST_PP_WHILE_91_I(p, o, s)\r
+# define BOOST_PP_WHILE_92(p, o, s) BOOST_PP_WHILE_92_I(p, o, s)\r
+# define BOOST_PP_WHILE_93(p, o, s) BOOST_PP_WHILE_93_I(p, o, s)\r
+# define BOOST_PP_WHILE_94(p, o, s) BOOST_PP_WHILE_94_I(p, o, s)\r
+# define BOOST_PP_WHILE_95(p, o, s) BOOST_PP_WHILE_95_I(p, o, s)\r
+# define BOOST_PP_WHILE_96(p, o, s) BOOST_PP_WHILE_96_I(p, o, s)\r
+# define BOOST_PP_WHILE_97(p, o, s) BOOST_PP_WHILE_97_I(p, o, s)\r
+# define BOOST_PP_WHILE_98(p, o, s) BOOST_PP_WHILE_98_I(p, o, s)\r
+# define BOOST_PP_WHILE_99(p, o, s) BOOST_PP_WHILE_99_I(p, o, s)\r
+# define BOOST_PP_WHILE_100(p, o, s) BOOST_PP_WHILE_100_I(p, o, s)\r
+# define BOOST_PP_WHILE_101(p, o, s) BOOST_PP_WHILE_101_I(p, o, s)\r
+# define BOOST_PP_WHILE_102(p, o, s) BOOST_PP_WHILE_102_I(p, o, s)\r
+# define BOOST_PP_WHILE_103(p, o, s) BOOST_PP_WHILE_103_I(p, o, s)\r
+# define BOOST_PP_WHILE_104(p, o, s) BOOST_PP_WHILE_104_I(p, o, s)\r
+# define BOOST_PP_WHILE_105(p, o, s) BOOST_PP_WHILE_105_I(p, o, s)\r
+# define BOOST_PP_WHILE_106(p, o, s) BOOST_PP_WHILE_106_I(p, o, s)\r
+# define BOOST_PP_WHILE_107(p, o, s) BOOST_PP_WHILE_107_I(p, o, s)\r
+# define BOOST_PP_WHILE_108(p, o, s) BOOST_PP_WHILE_108_I(p, o, s)\r
+# define BOOST_PP_WHILE_109(p, o, s) BOOST_PP_WHILE_109_I(p, o, s)\r
+# define BOOST_PP_WHILE_110(p, o, s) BOOST_PP_WHILE_110_I(p, o, s)\r
+# define BOOST_PP_WHILE_111(p, o, s) BOOST_PP_WHILE_111_I(p, o, s)\r
+# define BOOST_PP_WHILE_112(p, o, s) BOOST_PP_WHILE_112_I(p, o, s)\r
+# define BOOST_PP_WHILE_113(p, o, s) BOOST_PP_WHILE_113_I(p, o, s)\r
+# define BOOST_PP_WHILE_114(p, o, s) BOOST_PP_WHILE_114_I(p, o, s)\r
+# define BOOST_PP_WHILE_115(p, o, s) BOOST_PP_WHILE_115_I(p, o, s)\r
+# define BOOST_PP_WHILE_116(p, o, s) BOOST_PP_WHILE_116_I(p, o, s)\r
+# define BOOST_PP_WHILE_117(p, o, s) BOOST_PP_WHILE_117_I(p, o, s)\r
+# define BOOST_PP_WHILE_118(p, o, s) BOOST_PP_WHILE_118_I(p, o, s)\r
+# define BOOST_PP_WHILE_119(p, o, s) BOOST_PP_WHILE_119_I(p, o, s)\r
+# define BOOST_PP_WHILE_120(p, o, s) BOOST_PP_WHILE_120_I(p, o, s)\r
+# define BOOST_PP_WHILE_121(p, o, s) BOOST_PP_WHILE_121_I(p, o, s)\r
+# define BOOST_PP_WHILE_122(p, o, s) BOOST_PP_WHILE_122_I(p, o, s)\r
+# define BOOST_PP_WHILE_123(p, o, s) BOOST_PP_WHILE_123_I(p, o, s)\r
+# define BOOST_PP_WHILE_124(p, o, s) BOOST_PP_WHILE_124_I(p, o, s)\r
+# define BOOST_PP_WHILE_125(p, o, s) BOOST_PP_WHILE_125_I(p, o, s)\r
+# define BOOST_PP_WHILE_126(p, o, s) BOOST_PP_WHILE_126_I(p, o, s)\r
+# define BOOST_PP_WHILE_127(p, o, s) BOOST_PP_WHILE_127_I(p, o, s)\r
+# define BOOST_PP_WHILE_128(p, o, s) BOOST_PP_WHILE_128_I(p, o, s)\r
+# define BOOST_PP_WHILE_129(p, o, s) BOOST_PP_WHILE_129_I(p, o, s)\r
+# define BOOST_PP_WHILE_130(p, o, s) BOOST_PP_WHILE_130_I(p, o, s)\r
+# define BOOST_PP_WHILE_131(p, o, s) BOOST_PP_WHILE_131_I(p, o, s)\r
+# define BOOST_PP_WHILE_132(p, o, s) BOOST_PP_WHILE_132_I(p, o, s)\r
+# define BOOST_PP_WHILE_133(p, o, s) BOOST_PP_WHILE_133_I(p, o, s)\r
+# define BOOST_PP_WHILE_134(p, o, s) BOOST_PP_WHILE_134_I(p, o, s)\r
+# define BOOST_PP_WHILE_135(p, o, s) BOOST_PP_WHILE_135_I(p, o, s)\r
+# define BOOST_PP_WHILE_136(p, o, s) BOOST_PP_WHILE_136_I(p, o, s)\r
+# define BOOST_PP_WHILE_137(p, o, s) BOOST_PP_WHILE_137_I(p, o, s)\r
+# define BOOST_PP_WHILE_138(p, o, s) BOOST_PP_WHILE_138_I(p, o, s)\r
+# define BOOST_PP_WHILE_139(p, o, s) BOOST_PP_WHILE_139_I(p, o, s)\r
+# define BOOST_PP_WHILE_140(p, o, s) BOOST_PP_WHILE_140_I(p, o, s)\r
+# define BOOST_PP_WHILE_141(p, o, s) BOOST_PP_WHILE_141_I(p, o, s)\r
+# define BOOST_PP_WHILE_142(p, o, s) BOOST_PP_WHILE_142_I(p, o, s)\r
+# define BOOST_PP_WHILE_143(p, o, s) BOOST_PP_WHILE_143_I(p, o, s)\r
+# define BOOST_PP_WHILE_144(p, o, s) BOOST_PP_WHILE_144_I(p, o, s)\r
+# define BOOST_PP_WHILE_145(p, o, s) BOOST_PP_WHILE_145_I(p, o, s)\r
+# define BOOST_PP_WHILE_146(p, o, s) BOOST_PP_WHILE_146_I(p, o, s)\r
+# define BOOST_PP_WHILE_147(p, o, s) BOOST_PP_WHILE_147_I(p, o, s)\r
+# define BOOST_PP_WHILE_148(p, o, s) BOOST_PP_WHILE_148_I(p, o, s)\r
+# define BOOST_PP_WHILE_149(p, o, s) BOOST_PP_WHILE_149_I(p, o, s)\r
+# define BOOST_PP_WHILE_150(p, o, s) BOOST_PP_WHILE_150_I(p, o, s)\r
+# define BOOST_PP_WHILE_151(p, o, s) BOOST_PP_WHILE_151_I(p, o, s)\r
+# define BOOST_PP_WHILE_152(p, o, s) BOOST_PP_WHILE_152_I(p, o, s)\r
+# define BOOST_PP_WHILE_153(p, o, s) BOOST_PP_WHILE_153_I(p, o, s)\r
+# define BOOST_PP_WHILE_154(p, o, s) BOOST_PP_WHILE_154_I(p, o, s)\r
+# define BOOST_PP_WHILE_155(p, o, s) BOOST_PP_WHILE_155_I(p, o, s)\r
+# define BOOST_PP_WHILE_156(p, o, s) BOOST_PP_WHILE_156_I(p, o, s)\r
+# define BOOST_PP_WHILE_157(p, o, s) BOOST_PP_WHILE_157_I(p, o, s)\r
+# define BOOST_PP_WHILE_158(p, o, s) BOOST_PP_WHILE_158_I(p, o, s)\r
+# define BOOST_PP_WHILE_159(p, o, s) BOOST_PP_WHILE_159_I(p, o, s)\r
+# define BOOST_PP_WHILE_160(p, o, s) BOOST_PP_WHILE_160_I(p, o, s)\r
+# define BOOST_PP_WHILE_161(p, o, s) BOOST_PP_WHILE_161_I(p, o, s)\r
+# define BOOST_PP_WHILE_162(p, o, s) BOOST_PP_WHILE_162_I(p, o, s)\r
+# define BOOST_PP_WHILE_163(p, o, s) BOOST_PP_WHILE_163_I(p, o, s)\r
+# define BOOST_PP_WHILE_164(p, o, s) BOOST_PP_WHILE_164_I(p, o, s)\r
+# define BOOST_PP_WHILE_165(p, o, s) BOOST_PP_WHILE_165_I(p, o, s)\r
+# define BOOST_PP_WHILE_166(p, o, s) BOOST_PP_WHILE_166_I(p, o, s)\r
+# define BOOST_PP_WHILE_167(p, o, s) BOOST_PP_WHILE_167_I(p, o, s)\r
+# define BOOST_PP_WHILE_168(p, o, s) BOOST_PP_WHILE_168_I(p, o, s)\r
+# define BOOST_PP_WHILE_169(p, o, s) BOOST_PP_WHILE_169_I(p, o, s)\r
+# define BOOST_PP_WHILE_170(p, o, s) BOOST_PP_WHILE_170_I(p, o, s)\r
+# define BOOST_PP_WHILE_171(p, o, s) BOOST_PP_WHILE_171_I(p, o, s)\r
+# define BOOST_PP_WHILE_172(p, o, s) BOOST_PP_WHILE_172_I(p, o, s)\r
+# define BOOST_PP_WHILE_173(p, o, s) BOOST_PP_WHILE_173_I(p, o, s)\r
+# define BOOST_PP_WHILE_174(p, o, s) BOOST_PP_WHILE_174_I(p, o, s)\r
+# define BOOST_PP_WHILE_175(p, o, s) BOOST_PP_WHILE_175_I(p, o, s)\r
+# define BOOST_PP_WHILE_176(p, o, s) BOOST_PP_WHILE_176_I(p, o, s)\r
+# define BOOST_PP_WHILE_177(p, o, s) BOOST_PP_WHILE_177_I(p, o, s)\r
+# define BOOST_PP_WHILE_178(p, o, s) BOOST_PP_WHILE_178_I(p, o, s)\r
+# define BOOST_PP_WHILE_179(p, o, s) BOOST_PP_WHILE_179_I(p, o, s)\r
+# define BOOST_PP_WHILE_180(p, o, s) BOOST_PP_WHILE_180_I(p, o, s)\r
+# define BOOST_PP_WHILE_181(p, o, s) BOOST_PP_WHILE_181_I(p, o, s)\r
+# define BOOST_PP_WHILE_182(p, o, s) BOOST_PP_WHILE_182_I(p, o, s)\r
+# define BOOST_PP_WHILE_183(p, o, s) BOOST_PP_WHILE_183_I(p, o, s)\r
+# define BOOST_PP_WHILE_184(p, o, s) BOOST_PP_WHILE_184_I(p, o, s)\r
+# define BOOST_PP_WHILE_185(p, o, s) BOOST_PP_WHILE_185_I(p, o, s)\r
+# define BOOST_PP_WHILE_186(p, o, s) BOOST_PP_WHILE_186_I(p, o, s)\r
+# define BOOST_PP_WHILE_187(p, o, s) BOOST_PP_WHILE_187_I(p, o, s)\r
+# define BOOST_PP_WHILE_188(p, o, s) BOOST_PP_WHILE_188_I(p, o, s)\r
+# define BOOST_PP_WHILE_189(p, o, s) BOOST_PP_WHILE_189_I(p, o, s)\r
+# define BOOST_PP_WHILE_190(p, o, s) BOOST_PP_WHILE_190_I(p, o, s)\r
+# define BOOST_PP_WHILE_191(p, o, s) BOOST_PP_WHILE_191_I(p, o, s)\r
+# define BOOST_PP_WHILE_192(p, o, s) BOOST_PP_WHILE_192_I(p, o, s)\r
+# define BOOST_PP_WHILE_193(p, o, s) BOOST_PP_WHILE_193_I(p, o, s)\r
+# define BOOST_PP_WHILE_194(p, o, s) BOOST_PP_WHILE_194_I(p, o, s)\r
+# define BOOST_PP_WHILE_195(p, o, s) BOOST_PP_WHILE_195_I(p, o, s)\r
+# define BOOST_PP_WHILE_196(p, o, s) BOOST_PP_WHILE_196_I(p, o, s)\r
+# define BOOST_PP_WHILE_197(p, o, s) BOOST_PP_WHILE_197_I(p, o, s)\r
+# define BOOST_PP_WHILE_198(p, o, s) BOOST_PP_WHILE_198_I(p, o, s)\r
+# define BOOST_PP_WHILE_199(p, o, s) BOOST_PP_WHILE_199_I(p, o, s)\r
+# define BOOST_PP_WHILE_200(p, o, s) BOOST_PP_WHILE_200_I(p, o, s)\r
+# define BOOST_PP_WHILE_201(p, o, s) BOOST_PP_WHILE_201_I(p, o, s)\r
+# define BOOST_PP_WHILE_202(p, o, s) BOOST_PP_WHILE_202_I(p, o, s)\r
+# define BOOST_PP_WHILE_203(p, o, s) BOOST_PP_WHILE_203_I(p, o, s)\r
+# define BOOST_PP_WHILE_204(p, o, s) BOOST_PP_WHILE_204_I(p, o, s)\r
+# define BOOST_PP_WHILE_205(p, o, s) BOOST_PP_WHILE_205_I(p, o, s)\r
+# define BOOST_PP_WHILE_206(p, o, s) BOOST_PP_WHILE_206_I(p, o, s)\r
+# define BOOST_PP_WHILE_207(p, o, s) BOOST_PP_WHILE_207_I(p, o, s)\r
+# define BOOST_PP_WHILE_208(p, o, s) BOOST_PP_WHILE_208_I(p, o, s)\r
+# define BOOST_PP_WHILE_209(p, o, s) BOOST_PP_WHILE_209_I(p, o, s)\r
+# define BOOST_PP_WHILE_210(p, o, s) BOOST_PP_WHILE_210_I(p, o, s)\r
+# define BOOST_PP_WHILE_211(p, o, s) BOOST_PP_WHILE_211_I(p, o, s)\r
+# define BOOST_PP_WHILE_212(p, o, s) BOOST_PP_WHILE_212_I(p, o, s)\r
+# define BOOST_PP_WHILE_213(p, o, s) BOOST_PP_WHILE_213_I(p, o, s)\r
+# define BOOST_PP_WHILE_214(p, o, s) BOOST_PP_WHILE_214_I(p, o, s)\r
+# define BOOST_PP_WHILE_215(p, o, s) BOOST_PP_WHILE_215_I(p, o, s)\r
+# define BOOST_PP_WHILE_216(p, o, s) BOOST_PP_WHILE_216_I(p, o, s)\r
+# define BOOST_PP_WHILE_217(p, o, s) BOOST_PP_WHILE_217_I(p, o, s)\r
+# define BOOST_PP_WHILE_218(p, o, s) BOOST_PP_WHILE_218_I(p, o, s)\r
+# define BOOST_PP_WHILE_219(p, o, s) BOOST_PP_WHILE_219_I(p, o, s)\r
+# define BOOST_PP_WHILE_220(p, o, s) BOOST_PP_WHILE_220_I(p, o, s)\r
+# define BOOST_PP_WHILE_221(p, o, s) BOOST_PP_WHILE_221_I(p, o, s)\r
+# define BOOST_PP_WHILE_222(p, o, s) BOOST_PP_WHILE_222_I(p, o, s)\r
+# define BOOST_PP_WHILE_223(p, o, s) BOOST_PP_WHILE_223_I(p, o, s)\r
+# define BOOST_PP_WHILE_224(p, o, s) BOOST_PP_WHILE_224_I(p, o, s)\r
+# define BOOST_PP_WHILE_225(p, o, s) BOOST_PP_WHILE_225_I(p, o, s)\r
+# define BOOST_PP_WHILE_226(p, o, s) BOOST_PP_WHILE_226_I(p, o, s)\r
+# define BOOST_PP_WHILE_227(p, o, s) BOOST_PP_WHILE_227_I(p, o, s)\r
+# define BOOST_PP_WHILE_228(p, o, s) BOOST_PP_WHILE_228_I(p, o, s)\r
+# define BOOST_PP_WHILE_229(p, o, s) BOOST_PP_WHILE_229_I(p, o, s)\r
+# define BOOST_PP_WHILE_230(p, o, s) BOOST_PP_WHILE_230_I(p, o, s)\r
+# define BOOST_PP_WHILE_231(p, o, s) BOOST_PP_WHILE_231_I(p, o, s)\r
+# define BOOST_PP_WHILE_232(p, o, s) BOOST_PP_WHILE_232_I(p, o, s)\r
+# define BOOST_PP_WHILE_233(p, o, s) BOOST_PP_WHILE_233_I(p, o, s)\r
+# define BOOST_PP_WHILE_234(p, o, s) BOOST_PP_WHILE_234_I(p, o, s)\r
+# define BOOST_PP_WHILE_235(p, o, s) BOOST_PP_WHILE_235_I(p, o, s)\r
+# define BOOST_PP_WHILE_236(p, o, s) BOOST_PP_WHILE_236_I(p, o, s)\r
+# define BOOST_PP_WHILE_237(p, o, s) BOOST_PP_WHILE_237_I(p, o, s)\r
+# define BOOST_PP_WHILE_238(p, o, s) BOOST_PP_WHILE_238_I(p, o, s)\r
+# define BOOST_PP_WHILE_239(p, o, s) BOOST_PP_WHILE_239_I(p, o, s)\r
+# define BOOST_PP_WHILE_240(p, o, s) BOOST_PP_WHILE_240_I(p, o, s)\r
+# define BOOST_PP_WHILE_241(p, o, s) BOOST_PP_WHILE_241_I(p, o, s)\r
+# define BOOST_PP_WHILE_242(p, o, s) BOOST_PP_WHILE_242_I(p, o, s)\r
+# define BOOST_PP_WHILE_243(p, o, s) BOOST_PP_WHILE_243_I(p, o, s)\r
+# define BOOST_PP_WHILE_244(p, o, s) BOOST_PP_WHILE_244_I(p, o, s)\r
+# define BOOST_PP_WHILE_245(p, o, s) BOOST_PP_WHILE_245_I(p, o, s)\r
+# define BOOST_PP_WHILE_246(p, o, s) BOOST_PP_WHILE_246_I(p, o, s)\r
+# define BOOST_PP_WHILE_247(p, o, s) BOOST_PP_WHILE_247_I(p, o, s)\r
+# define BOOST_PP_WHILE_248(p, o, s) BOOST_PP_WHILE_248_I(p, o, s)\r
+# define BOOST_PP_WHILE_249(p, o, s) BOOST_PP_WHILE_249_I(p, o, s)\r
+# define BOOST_PP_WHILE_250(p, o, s) BOOST_PP_WHILE_250_I(p, o, s)\r
+# define BOOST_PP_WHILE_251(p, o, s) BOOST_PP_WHILE_251_I(p, o, s)\r
+# define BOOST_PP_WHILE_252(p, o, s) BOOST_PP_WHILE_252_I(p, o, s)\r
+# define BOOST_PP_WHILE_253(p, o, s) BOOST_PP_WHILE_253_I(p, o, s)\r
+# define BOOST_PP_WHILE_254(p, o, s) BOOST_PP_WHILE_254_I(p, o, s)\r
+# define BOOST_PP_WHILE_255(p, o, s) BOOST_PP_WHILE_255_I(p, o, s)\r
+# define BOOST_PP_WHILE_256(p, o, s) BOOST_PP_WHILE_256_I(p, o, s)\r
+#\r
+# define BOOST_PP_WHILE_1_I(p, o, s) BOOST_PP_IF(p(2, s), BOOST_PP_WHILE_2, s BOOST_PP_TUPLE_EAT_3)(p, o, o(2, s))\r
+# define BOOST_PP_WHILE_2_I(p, o, s) BOOST_PP_IF(p(3, s), BOOST_PP_WHILE_3, s BOOST_PP_TUPLE_EAT_3)(p, o, o(3, s))\r
+# define BOOST_PP_WHILE_3_I(p, o, s) BOOST_PP_IF(p(4, s), BOOST_PP_WHILE_4, s BOOST_PP_TUPLE_EAT_3)(p, o, o(4, s))\r
+# define BOOST_PP_WHILE_4_I(p, o, s) BOOST_PP_IF(p(5, s), BOOST_PP_WHILE_5, s BOOST_PP_TUPLE_EAT_3)(p, o, o(5, s))\r
+# define BOOST_PP_WHILE_5_I(p, o, s) BOOST_PP_IF(p(6, s), BOOST_PP_WHILE_6, s BOOST_PP_TUPLE_EAT_3)(p, o, o(6, s))\r
+# define BOOST_PP_WHILE_6_I(p, o, s) BOOST_PP_IF(p(7, s), BOOST_PP_WHILE_7, s BOOST_PP_TUPLE_EAT_3)(p, o, o(7, s))\r
+# define BOOST_PP_WHILE_7_I(p, o, s) BOOST_PP_IF(p(8, s), BOOST_PP_WHILE_8, s BOOST_PP_TUPLE_EAT_3)(p, o, o(8, s))\r
+# define BOOST_PP_WHILE_8_I(p, o, s) BOOST_PP_IF(p(9, s), BOOST_PP_WHILE_9, s BOOST_PP_TUPLE_EAT_3)(p, o, o(9, s))\r
+# define BOOST_PP_WHILE_9_I(p, o, s) BOOST_PP_IF(p(10, s), BOOST_PP_WHILE_10, s BOOST_PP_TUPLE_EAT_3)(p, o, o(10, s))\r
+# define BOOST_PP_WHILE_10_I(p, o, s) BOOST_PP_IF(p(11, s), BOOST_PP_WHILE_11, s BOOST_PP_TUPLE_EAT_3)(p, o, o(11, s))\r
+# define BOOST_PP_WHILE_11_I(p, o, s) BOOST_PP_IF(p(12, s), BOOST_PP_WHILE_12, s BOOST_PP_TUPLE_EAT_3)(p, o, o(12, s))\r
+# define BOOST_PP_WHILE_12_I(p, o, s) BOOST_PP_IF(p(13, s), BOOST_PP_WHILE_13, s BOOST_PP_TUPLE_EAT_3)(p, o, o(13, s))\r
+# define BOOST_PP_WHILE_13_I(p, o, s) BOOST_PP_IF(p(14, s), BOOST_PP_WHILE_14, s BOOST_PP_TUPLE_EAT_3)(p, o, o(14, s))\r
+# define BOOST_PP_WHILE_14_I(p, o, s) BOOST_PP_IF(p(15, s), BOOST_PP_WHILE_15, s BOOST_PP_TUPLE_EAT_3)(p, o, o(15, s))\r
+# define BOOST_PP_WHILE_15_I(p, o, s) BOOST_PP_IF(p(16, s), BOOST_PP_WHILE_16, s BOOST_PP_TUPLE_EAT_3)(p, o, o(16, s))\r
+# define BOOST_PP_WHILE_16_I(p, o, s) BOOST_PP_IF(p(17, s), BOOST_PP_WHILE_17, s BOOST_PP_TUPLE_EAT_3)(p, o, o(17, s))\r
+# define BOOST_PP_WHILE_17_I(p, o, s) BOOST_PP_IF(p(18, s), BOOST_PP_WHILE_18, s BOOST_PP_TUPLE_EAT_3)(p, o, o(18, s))\r
+# define BOOST_PP_WHILE_18_I(p, o, s) BOOST_PP_IF(p(19, s), BOOST_PP_WHILE_19, s BOOST_PP_TUPLE_EAT_3)(p, o, o(19, s))\r
+# define BOOST_PP_WHILE_19_I(p, o, s) BOOST_PP_IF(p(20, s), BOOST_PP_WHILE_20, s BOOST_PP_TUPLE_EAT_3)(p, o, o(20, s))\r
+# define BOOST_PP_WHILE_20_I(p, o, s) BOOST_PP_IF(p(21, s), BOOST_PP_WHILE_21, s BOOST_PP_TUPLE_EAT_3)(p, o, o(21, s))\r
+# define BOOST_PP_WHILE_21_I(p, o, s) BOOST_PP_IF(p(22, s), BOOST_PP_WHILE_22, s BOOST_PP_TUPLE_EAT_3)(p, o, o(22, s))\r
+# define BOOST_PP_WHILE_22_I(p, o, s) BOOST_PP_IF(p(23, s), BOOST_PP_WHILE_23, s BOOST_PP_TUPLE_EAT_3)(p, o, o(23, s))\r
+# define BOOST_PP_WHILE_23_I(p, o, s) BOOST_PP_IF(p(24, s), BOOST_PP_WHILE_24, s BOOST_PP_TUPLE_EAT_3)(p, o, o(24, s))\r
+# define BOOST_PP_WHILE_24_I(p, o, s) BOOST_PP_IF(p(25, s), BOOST_PP_WHILE_25, s BOOST_PP_TUPLE_EAT_3)(p, o, o(25, s))\r
+# define BOOST_PP_WHILE_25_I(p, o, s) BOOST_PP_IF(p(26, s), BOOST_PP_WHILE_26, s BOOST_PP_TUPLE_EAT_3)(p, o, o(26, s))\r
+# define BOOST_PP_WHILE_26_I(p, o, s) BOOST_PP_IF(p(27, s), BOOST_PP_WHILE_27, s BOOST_PP_TUPLE_EAT_3)(p, o, o(27, s))\r
+# define BOOST_PP_WHILE_27_I(p, o, s) BOOST_PP_IF(p(28, s), BOOST_PP_WHILE_28, s BOOST_PP_TUPLE_EAT_3)(p, o, o(28, s))\r
+# define BOOST_PP_WHILE_28_I(p, o, s) BOOST_PP_IF(p(29, s), BOOST_PP_WHILE_29, s BOOST_PP_TUPLE_EAT_3)(p, o, o(29, s))\r
+# define BOOST_PP_WHILE_29_I(p, o, s) BOOST_PP_IF(p(30, s), BOOST_PP_WHILE_30, s BOOST_PP_TUPLE_EAT_3)(p, o, o(30, s))\r
+# define BOOST_PP_WHILE_30_I(p, o, s) BOOST_PP_IF(p(31, s), BOOST_PP_WHILE_31, s BOOST_PP_TUPLE_EAT_3)(p, o, o(31, s))\r
+# define BOOST_PP_WHILE_31_I(p, o, s) BOOST_PP_IF(p(32, s), BOOST_PP_WHILE_32, s BOOST_PP_TUPLE_EAT_3)(p, o, o(32, s))\r
+# define BOOST_PP_WHILE_32_I(p, o, s) BOOST_PP_IF(p(33, s), BOOST_PP_WHILE_33, s BOOST_PP_TUPLE_EAT_3)(p, o, o(33, s))\r
+# define BOOST_PP_WHILE_33_I(p, o, s) BOOST_PP_IF(p(34, s), BOOST_PP_WHILE_34, s BOOST_PP_TUPLE_EAT_3)(p, o, o(34, s))\r
+# define BOOST_PP_WHILE_34_I(p, o, s) BOOST_PP_IF(p(35, s), BOOST_PP_WHILE_35, s BOOST_PP_TUPLE_EAT_3)(p, o, o(35, s))\r
+# define BOOST_PP_WHILE_35_I(p, o, s) BOOST_PP_IF(p(36, s), BOOST_PP_WHILE_36, s BOOST_PP_TUPLE_EAT_3)(p, o, o(36, s))\r
+# define BOOST_PP_WHILE_36_I(p, o, s) BOOST_PP_IF(p(37, s), BOOST_PP_WHILE_37, s BOOST_PP_TUPLE_EAT_3)(p, o, o(37, s))\r
+# define BOOST_PP_WHILE_37_I(p, o, s) BOOST_PP_IF(p(38, s), BOOST_PP_WHILE_38, s BOOST_PP_TUPLE_EAT_3)(p, o, o(38, s))\r
+# define BOOST_PP_WHILE_38_I(p, o, s) BOOST_PP_IF(p(39, s), BOOST_PP_WHILE_39, s BOOST_PP_TUPLE_EAT_3)(p, o, o(39, s))\r
+# define BOOST_PP_WHILE_39_I(p, o, s) BOOST_PP_IF(p(40, s), BOOST_PP_WHILE_40, s BOOST_PP_TUPLE_EAT_3)(p, o, o(40, s))\r
+# define BOOST_PP_WHILE_40_I(p, o, s) BOOST_PP_IF(p(41, s), BOOST_PP_WHILE_41, s BOOST_PP_TUPLE_EAT_3)(p, o, o(41, s))\r
+# define BOOST_PP_WHILE_41_I(p, o, s) BOOST_PP_IF(p(42, s), BOOST_PP_WHILE_42, s BOOST_PP_TUPLE_EAT_3)(p, o, o(42, s))\r
+# define BOOST_PP_WHILE_42_I(p, o, s) BOOST_PP_IF(p(43, s), BOOST_PP_WHILE_43, s BOOST_PP_TUPLE_EAT_3)(p, o, o(43, s))\r
+# define BOOST_PP_WHILE_43_I(p, o, s) BOOST_PP_IF(p(44, s), BOOST_PP_WHILE_44, s BOOST_PP_TUPLE_EAT_3)(p, o, o(44, s))\r
+# define BOOST_PP_WHILE_44_I(p, o, s) BOOST_PP_IF(p(45, s), BOOST_PP_WHILE_45, s BOOST_PP_TUPLE_EAT_3)(p, o, o(45, s))\r
+# define BOOST_PP_WHILE_45_I(p, o, s) BOOST_PP_IF(p(46, s), BOOST_PP_WHILE_46, s BOOST_PP_TUPLE_EAT_3)(p, o, o(46, s))\r
+# define BOOST_PP_WHILE_46_I(p, o, s) BOOST_PP_IF(p(47, s), BOOST_PP_WHILE_47, s BOOST_PP_TUPLE_EAT_3)(p, o, o(47, s))\r
+# define BOOST_PP_WHILE_47_I(p, o, s) BOOST_PP_IF(p(48, s), BOOST_PP_WHILE_48, s BOOST_PP_TUPLE_EAT_3)(p, o, o(48, s))\r
+# define BOOST_PP_WHILE_48_I(p, o, s) BOOST_PP_IF(p(49, s), BOOST_PP_WHILE_49, s BOOST_PP_TUPLE_EAT_3)(p, o, o(49, s))\r
+# define BOOST_PP_WHILE_49_I(p, o, s) BOOST_PP_IF(p(50, s), BOOST_PP_WHILE_50, s BOOST_PP_TUPLE_EAT_3)(p, o, o(50, s))\r
+# define BOOST_PP_WHILE_50_I(p, o, s) BOOST_PP_IF(p(51, s), BOOST_PP_WHILE_51, s BOOST_PP_TUPLE_EAT_3)(p, o, o(51, s))\r
+# define BOOST_PP_WHILE_51_I(p, o, s) BOOST_PP_IF(p(52, s), BOOST_PP_WHILE_52, s BOOST_PP_TUPLE_EAT_3)(p, o, o(52, s))\r
+# define BOOST_PP_WHILE_52_I(p, o, s) BOOST_PP_IF(p(53, s), BOOST_PP_WHILE_53, s BOOST_PP_TUPLE_EAT_3)(p, o, o(53, s))\r
+# define BOOST_PP_WHILE_53_I(p, o, s) BOOST_PP_IF(p(54, s), BOOST_PP_WHILE_54, s BOOST_PP_TUPLE_EAT_3)(p, o, o(54, s))\r
+# define BOOST_PP_WHILE_54_I(p, o, s) BOOST_PP_IF(p(55, s), BOOST_PP_WHILE_55, s BOOST_PP_TUPLE_EAT_3)(p, o, o(55, s))\r
+# define BOOST_PP_WHILE_55_I(p, o, s) BOOST_PP_IF(p(56, s), BOOST_PP_WHILE_56, s BOOST_PP_TUPLE_EAT_3)(p, o, o(56, s))\r
+# define BOOST_PP_WHILE_56_I(p, o, s) BOOST_PP_IF(p(57, s), BOOST_PP_WHILE_57, s BOOST_PP_TUPLE_EAT_3)(p, o, o(57, s))\r
+# define BOOST_PP_WHILE_57_I(p, o, s) BOOST_PP_IF(p(58, s), BOOST_PP_WHILE_58, s BOOST_PP_TUPLE_EAT_3)(p, o, o(58, s))\r
+# define BOOST_PP_WHILE_58_I(p, o, s) BOOST_PP_IF(p(59, s), BOOST_PP_WHILE_59, s BOOST_PP_TUPLE_EAT_3)(p, o, o(59, s))\r
+# define BOOST_PP_WHILE_59_I(p, o, s) BOOST_PP_IF(p(60, s), BOOST_PP_WHILE_60, s BOOST_PP_TUPLE_EAT_3)(p, o, o(60, s))\r
+# define BOOST_PP_WHILE_60_I(p, o, s) BOOST_PP_IF(p(61, s), BOOST_PP_WHILE_61, s BOOST_PP_TUPLE_EAT_3)(p, o, o(61, s))\r
+# define BOOST_PP_WHILE_61_I(p, o, s) BOOST_PP_IF(p(62, s), BOOST_PP_WHILE_62, s BOOST_PP_TUPLE_EAT_3)(p, o, o(62, s))\r
+# define BOOST_PP_WHILE_62_I(p, o, s) BOOST_PP_IF(p(63, s), BOOST_PP_WHILE_63, s BOOST_PP_TUPLE_EAT_3)(p, o, o(63, s))\r
+# define BOOST_PP_WHILE_63_I(p, o, s) BOOST_PP_IF(p(64, s), BOOST_PP_WHILE_64, s BOOST_PP_TUPLE_EAT_3)(p, o, o(64, s))\r
+# define BOOST_PP_WHILE_64_I(p, o, s) BOOST_PP_IF(p(65, s), BOOST_PP_WHILE_65, s BOOST_PP_TUPLE_EAT_3)(p, o, o(65, s))\r
+# define BOOST_PP_WHILE_65_I(p, o, s) BOOST_PP_IF(p(66, s), BOOST_PP_WHILE_66, s BOOST_PP_TUPLE_EAT_3)(p, o, o(66, s))\r
+# define BOOST_PP_WHILE_66_I(p, o, s) BOOST_PP_IF(p(67, s), BOOST_PP_WHILE_67, s BOOST_PP_TUPLE_EAT_3)(p, o, o(67, s))\r
+# define BOOST_PP_WHILE_67_I(p, o, s) BOOST_PP_IF(p(68, s), BOOST_PP_WHILE_68, s BOOST_PP_TUPLE_EAT_3)(p, o, o(68, s))\r
+# define BOOST_PP_WHILE_68_I(p, o, s) BOOST_PP_IF(p(69, s), BOOST_PP_WHILE_69, s BOOST_PP_TUPLE_EAT_3)(p, o, o(69, s))\r
+# define BOOST_PP_WHILE_69_I(p, o, s) BOOST_PP_IF(p(70, s), BOOST_PP_WHILE_70, s BOOST_PP_TUPLE_EAT_3)(p, o, o(70, s))\r
+# define BOOST_PP_WHILE_70_I(p, o, s) BOOST_PP_IF(p(71, s), BOOST_PP_WHILE_71, s BOOST_PP_TUPLE_EAT_3)(p, o, o(71, s))\r
+# define BOOST_PP_WHILE_71_I(p, o, s) BOOST_PP_IF(p(72, s), BOOST_PP_WHILE_72, s BOOST_PP_TUPLE_EAT_3)(p, o, o(72, s))\r
+# define BOOST_PP_WHILE_72_I(p, o, s) BOOST_PP_IF(p(73, s), BOOST_PP_WHILE_73, s BOOST_PP_TUPLE_EAT_3)(p, o, o(73, s))\r
+# define BOOST_PP_WHILE_73_I(p, o, s) BOOST_PP_IF(p(74, s), BOOST_PP_WHILE_74, s BOOST_PP_TUPLE_EAT_3)(p, o, o(74, s))\r
+# define BOOST_PP_WHILE_74_I(p, o, s) BOOST_PP_IF(p(75, s), BOOST_PP_WHILE_75, s BOOST_PP_TUPLE_EAT_3)(p, o, o(75, s))\r
+# define BOOST_PP_WHILE_75_I(p, o, s) BOOST_PP_IF(p(76, s), BOOST_PP_WHILE_76, s BOOST_PP_TUPLE_EAT_3)(p, o, o(76, s))\r
+# define BOOST_PP_WHILE_76_I(p, o, s) BOOST_PP_IF(p(77, s), BOOST_PP_WHILE_77, s BOOST_PP_TUPLE_EAT_3)(p, o, o(77, s))\r
+# define BOOST_PP_WHILE_77_I(p, o, s) BOOST_PP_IF(p(78, s), BOOST_PP_WHILE_78, s BOOST_PP_TUPLE_EAT_3)(p, o, o(78, s))\r
+# define BOOST_PP_WHILE_78_I(p, o, s) BOOST_PP_IF(p(79, s), BOOST_PP_WHILE_79, s BOOST_PP_TUPLE_EAT_3)(p, o, o(79, s))\r
+# define BOOST_PP_WHILE_79_I(p, o, s) BOOST_PP_IF(p(80, s), BOOST_PP_WHILE_80, s BOOST_PP_TUPLE_EAT_3)(p, o, o(80, s))\r
+# define BOOST_PP_WHILE_80_I(p, o, s) BOOST_PP_IF(p(81, s), BOOST_PP_WHILE_81, s BOOST_PP_TUPLE_EAT_3)(p, o, o(81, s))\r
+# define BOOST_PP_WHILE_81_I(p, o, s) BOOST_PP_IF(p(82, s), BOOST_PP_WHILE_82, s BOOST_PP_TUPLE_EAT_3)(p, o, o(82, s))\r
+# define BOOST_PP_WHILE_82_I(p, o, s) BOOST_PP_IF(p(83, s), BOOST_PP_WHILE_83, s BOOST_PP_TUPLE_EAT_3)(p, o, o(83, s))\r
+# define BOOST_PP_WHILE_83_I(p, o, s) BOOST_PP_IF(p(84, s), BOOST_PP_WHILE_84, s BOOST_PP_TUPLE_EAT_3)(p, o, o(84, s))\r
+# define BOOST_PP_WHILE_84_I(p, o, s) BOOST_PP_IF(p(85, s), BOOST_PP_WHILE_85, s BOOST_PP_TUPLE_EAT_3)(p, o, o(85, s))\r
+# define BOOST_PP_WHILE_85_I(p, o, s) BOOST_PP_IF(p(86, s), BOOST_PP_WHILE_86, s BOOST_PP_TUPLE_EAT_3)(p, o, o(86, s))\r
+# define BOOST_PP_WHILE_86_I(p, o, s) BOOST_PP_IF(p(87, s), BOOST_PP_WHILE_87, s BOOST_PP_TUPLE_EAT_3)(p, o, o(87, s))\r
+# define BOOST_PP_WHILE_87_I(p, o, s) BOOST_PP_IF(p(88, s), BOOST_PP_WHILE_88, s BOOST_PP_TUPLE_EAT_3)(p, o, o(88, s))\r
+# define BOOST_PP_WHILE_88_I(p, o, s) BOOST_PP_IF(p(89, s), BOOST_PP_WHILE_89, s BOOST_PP_TUPLE_EAT_3)(p, o, o(89, s))\r
+# define BOOST_PP_WHILE_89_I(p, o, s) BOOST_PP_IF(p(90, s), BOOST_PP_WHILE_90, s BOOST_PP_TUPLE_EAT_3)(p, o, o(90, s))\r
+# define BOOST_PP_WHILE_90_I(p, o, s) BOOST_PP_IF(p(91, s), BOOST_PP_WHILE_91, s BOOST_PP_TUPLE_EAT_3)(p, o, o(91, s))\r
+# define BOOST_PP_WHILE_91_I(p, o, s) BOOST_PP_IF(p(92, s), BOOST_PP_WHILE_92, s BOOST_PP_TUPLE_EAT_3)(p, o, o(92, s))\r
+# define BOOST_PP_WHILE_92_I(p, o, s) BOOST_PP_IF(p(93, s), BOOST_PP_WHILE_93, s BOOST_PP_TUPLE_EAT_3)(p, o, o(93, s))\r
+# define BOOST_PP_WHILE_93_I(p, o, s) BOOST_PP_IF(p(94, s), BOOST_PP_WHILE_94, s BOOST_PP_TUPLE_EAT_3)(p, o, o(94, s))\r
+# define BOOST_PP_WHILE_94_I(p, o, s) BOOST_PP_IF(p(95, s), BOOST_PP_WHILE_95, s BOOST_PP_TUPLE_EAT_3)(p, o, o(95, s))\r
+# define BOOST_PP_WHILE_95_I(p, o, s) BOOST_PP_IF(p(96, s), BOOST_PP_WHILE_96, s BOOST_PP_TUPLE_EAT_3)(p, o, o(96, s))\r
+# define BOOST_PP_WHILE_96_I(p, o, s) BOOST_PP_IF(p(97, s), BOOST_PP_WHILE_97, s BOOST_PP_TUPLE_EAT_3)(p, o, o(97, s))\r
+# define BOOST_PP_WHILE_97_I(p, o, s) BOOST_PP_IF(p(98, s), BOOST_PP_WHILE_98, s BOOST_PP_TUPLE_EAT_3)(p, o, o(98, s))\r
+# define BOOST_PP_WHILE_98_I(p, o, s) BOOST_PP_IF(p(99, s), BOOST_PP_WHILE_99, s BOOST_PP_TUPLE_EAT_3)(p, o, o(99, s))\r
+# define BOOST_PP_WHILE_99_I(p, o, s) BOOST_PP_IF(p(100, s), BOOST_PP_WHILE_100, s BOOST_PP_TUPLE_EAT_3)(p, o, o(100, s))\r
+# define BOOST_PP_WHILE_100_I(p, o, s) BOOST_PP_IF(p(101, s), BOOST_PP_WHILE_101, s BOOST_PP_TUPLE_EAT_3)(p, o, o(101, s))\r
+# define BOOST_PP_WHILE_101_I(p, o, s) BOOST_PP_IF(p(102, s), BOOST_PP_WHILE_102, s BOOST_PP_TUPLE_EAT_3)(p, o, o(102, s))\r
+# define BOOST_PP_WHILE_102_I(p, o, s) BOOST_PP_IF(p(103, s), BOOST_PP_WHILE_103, s BOOST_PP_TUPLE_EAT_3)(p, o, o(103, s))\r
+# define BOOST_PP_WHILE_103_I(p, o, s) BOOST_PP_IF(p(104, s), BOOST_PP_WHILE_104, s BOOST_PP_TUPLE_EAT_3)(p, o, o(104, s))\r
+# define BOOST_PP_WHILE_104_I(p, o, s) BOOST_PP_IF(p(105, s), BOOST_PP_WHILE_105, s BOOST_PP_TUPLE_EAT_3)(p, o, o(105, s))\r
+# define BOOST_PP_WHILE_105_I(p, o, s) BOOST_PP_IF(p(106, s), BOOST_PP_WHILE_106, s BOOST_PP_TUPLE_EAT_3)(p, o, o(106, s))\r
+# define BOOST_PP_WHILE_106_I(p, o, s) BOOST_PP_IF(p(107, s), BOOST_PP_WHILE_107, s BOOST_PP_TUPLE_EAT_3)(p, o, o(107, s))\r
+# define BOOST_PP_WHILE_107_I(p, o, s) BOOST_PP_IF(p(108, s), BOOST_PP_WHILE_108, s BOOST_PP_TUPLE_EAT_3)(p, o, o(108, s))\r
+# define BOOST_PP_WHILE_108_I(p, o, s) BOOST_PP_IF(p(109, s), BOOST_PP_WHILE_109, s BOOST_PP_TUPLE_EAT_3)(p, o, o(109, s))\r
+# define BOOST_PP_WHILE_109_I(p, o, s) BOOST_PP_IF(p(110, s), BOOST_PP_WHILE_110, s BOOST_PP_TUPLE_EAT_3)(p, o, o(110, s))\r
+# define BOOST_PP_WHILE_110_I(p, o, s) BOOST_PP_IF(p(111, s), BOOST_PP_WHILE_111, s BOOST_PP_TUPLE_EAT_3)(p, o, o(111, s))\r
+# define BOOST_PP_WHILE_111_I(p, o, s) BOOST_PP_IF(p(112, s), BOOST_PP_WHILE_112, s BOOST_PP_TUPLE_EAT_3)(p, o, o(112, s))\r
+# define BOOST_PP_WHILE_112_I(p, o, s) BOOST_PP_IF(p(113, s), BOOST_PP_WHILE_113, s BOOST_PP_TUPLE_EAT_3)(p, o, o(113, s))\r
+# define BOOST_PP_WHILE_113_I(p, o, s) BOOST_PP_IF(p(114, s), BOOST_PP_WHILE_114, s BOOST_PP_TUPLE_EAT_3)(p, o, o(114, s))\r
+# define BOOST_PP_WHILE_114_I(p, o, s) BOOST_PP_IF(p(115, s), BOOST_PP_WHILE_115, s BOOST_PP_TUPLE_EAT_3)(p, o, o(115, s))\r
+# define BOOST_PP_WHILE_115_I(p, o, s) BOOST_PP_IF(p(116, s), BOOST_PP_WHILE_116, s BOOST_PP_TUPLE_EAT_3)(p, o, o(116, s))\r
+# define BOOST_PP_WHILE_116_I(p, o, s) BOOST_PP_IF(p(117, s), BOOST_PP_WHILE_117, s BOOST_PP_TUPLE_EAT_3)(p, o, o(117, s))\r
+# define BOOST_PP_WHILE_117_I(p, o, s) BOOST_PP_IF(p(118, s), BOOST_PP_WHILE_118, s BOOST_PP_TUPLE_EAT_3)(p, o, o(118, s))\r
+# define BOOST_PP_WHILE_118_I(p, o, s) BOOST_PP_IF(p(119, s), BOOST_PP_WHILE_119, s BOOST_PP_TUPLE_EAT_3)(p, o, o(119, s))\r
+# define BOOST_PP_WHILE_119_I(p, o, s) BOOST_PP_IF(p(120, s), BOOST_PP_WHILE_120, s BOOST_PP_TUPLE_EAT_3)(p, o, o(120, s))\r
+# define BOOST_PP_WHILE_120_I(p, o, s) BOOST_PP_IF(p(121, s), BOOST_PP_WHILE_121, s BOOST_PP_TUPLE_EAT_3)(p, o, o(121, s))\r
+# define BOOST_PP_WHILE_121_I(p, o, s) BOOST_PP_IF(p(122, s), BOOST_PP_WHILE_122, s BOOST_PP_TUPLE_EAT_3)(p, o, o(122, s))\r
+# define BOOST_PP_WHILE_122_I(p, o, s) BOOST_PP_IF(p(123, s), BOOST_PP_WHILE_123, s BOOST_PP_TUPLE_EAT_3)(p, o, o(123, s))\r
+# define BOOST_PP_WHILE_123_I(p, o, s) BOOST_PP_IF(p(124, s), BOOST_PP_WHILE_124, s BOOST_PP_TUPLE_EAT_3)(p, o, o(124, s))\r
+# define BOOST_PP_WHILE_124_I(p, o, s) BOOST_PP_IF(p(125, s), BOOST_PP_WHILE_125, s BOOST_PP_TUPLE_EAT_3)(p, o, o(125, s))\r
+# define BOOST_PP_WHILE_125_I(p, o, s) BOOST_PP_IF(p(126, s), BOOST_PP_WHILE_126, s BOOST_PP_TUPLE_EAT_3)(p, o, o(126, s))\r
+# define BOOST_PP_WHILE_126_I(p, o, s) BOOST_PP_IF(p(127, s), BOOST_PP_WHILE_127, s BOOST_PP_TUPLE_EAT_3)(p, o, o(127, s))\r
+# define BOOST_PP_WHILE_127_I(p, o, s) BOOST_PP_IF(p(128, s), BOOST_PP_WHILE_128, s BOOST_PP_TUPLE_EAT_3)(p, o, o(128, s))\r
+# define BOOST_PP_WHILE_128_I(p, o, s) BOOST_PP_IF(p(129, s), BOOST_PP_WHILE_129, s BOOST_PP_TUPLE_EAT_3)(p, o, o(129, s))\r
+# define BOOST_PP_WHILE_129_I(p, o, s) BOOST_PP_IF(p(130, s), BOOST_PP_WHILE_130, s BOOST_PP_TUPLE_EAT_3)(p, o, o(130, s))\r
+# define BOOST_PP_WHILE_130_I(p, o, s) BOOST_PP_IF(p(131, s), BOOST_PP_WHILE_131, s BOOST_PP_TUPLE_EAT_3)(p, o, o(131, s))\r
+# define BOOST_PP_WHILE_131_I(p, o, s) BOOST_PP_IF(p(132, s), BOOST_PP_WHILE_132, s BOOST_PP_TUPLE_EAT_3)(p, o, o(132, s))\r
+# define BOOST_PP_WHILE_132_I(p, o, s) BOOST_PP_IF(p(133, s), BOOST_PP_WHILE_133, s BOOST_PP_TUPLE_EAT_3)(p, o, o(133, s))\r
+# define BOOST_PP_WHILE_133_I(p, o, s) BOOST_PP_IF(p(134, s), BOOST_PP_WHILE_134, s BOOST_PP_TUPLE_EAT_3)(p, o, o(134, s))\r
+# define BOOST_PP_WHILE_134_I(p, o, s) BOOST_PP_IF(p(135, s), BOOST_PP_WHILE_135, s BOOST_PP_TUPLE_EAT_3)(p, o, o(135, s))\r
+# define BOOST_PP_WHILE_135_I(p, o, s) BOOST_PP_IF(p(136, s), BOOST_PP_WHILE_136, s BOOST_PP_TUPLE_EAT_3)(p, o, o(136, s))\r
+# define BOOST_PP_WHILE_136_I(p, o, s) BOOST_PP_IF(p(137, s), BOOST_PP_WHILE_137, s BOOST_PP_TUPLE_EAT_3)(p, o, o(137, s))\r
+# define BOOST_PP_WHILE_137_I(p, o, s) BOOST_PP_IF(p(138, s), BOOST_PP_WHILE_138, s BOOST_PP_TUPLE_EAT_3)(p, o, o(138, s))\r
+# define BOOST_PP_WHILE_138_I(p, o, s) BOOST_PP_IF(p(139, s), BOOST_PP_WHILE_139, s BOOST_PP_TUPLE_EAT_3)(p, o, o(139, s))\r
+# define BOOST_PP_WHILE_139_I(p, o, s) BOOST_PP_IF(p(140, s), BOOST_PP_WHILE_140, s BOOST_PP_TUPLE_EAT_3)(p, o, o(140, s))\r
+# define BOOST_PP_WHILE_140_I(p, o, s) BOOST_PP_IF(p(141, s), BOOST_PP_WHILE_141, s BOOST_PP_TUPLE_EAT_3)(p, o, o(141, s))\r
+# define BOOST_PP_WHILE_141_I(p, o, s) BOOST_PP_IF(p(142, s), BOOST_PP_WHILE_142, s BOOST_PP_TUPLE_EAT_3)(p, o, o(142, s))\r
+# define BOOST_PP_WHILE_142_I(p, o, s) BOOST_PP_IF(p(143, s), BOOST_PP_WHILE_143, s BOOST_PP_TUPLE_EAT_3)(p, o, o(143, s))\r
+# define BOOST_PP_WHILE_143_I(p, o, s) BOOST_PP_IF(p(144, s), BOOST_PP_WHILE_144, s BOOST_PP_TUPLE_EAT_3)(p, o, o(144, s))\r
+# define BOOST_PP_WHILE_144_I(p, o, s) BOOST_PP_IF(p(145, s), BOOST_PP_WHILE_145, s BOOST_PP_TUPLE_EAT_3)(p, o, o(145, s))\r
+# define BOOST_PP_WHILE_145_I(p, o, s) BOOST_PP_IF(p(146, s), BOOST_PP_WHILE_146, s BOOST_PP_TUPLE_EAT_3)(p, o, o(146, s))\r
+# define BOOST_PP_WHILE_146_I(p, o, s) BOOST_PP_IF(p(147, s), BOOST_PP_WHILE_147, s BOOST_PP_TUPLE_EAT_3)(p, o, o(147, s))\r
+# define BOOST_PP_WHILE_147_I(p, o, s) BOOST_PP_IF(p(148, s), BOOST_PP_WHILE_148, s BOOST_PP_TUPLE_EAT_3)(p, o, o(148, s))\r
+# define BOOST_PP_WHILE_148_I(p, o, s) BOOST_PP_IF(p(149, s), BOOST_PP_WHILE_149, s BOOST_PP_TUPLE_EAT_3)(p, o, o(149, s))\r
+# define BOOST_PP_WHILE_149_I(p, o, s) BOOST_PP_IF(p(150, s), BOOST_PP_WHILE_150, s BOOST_PP_TUPLE_EAT_3)(p, o, o(150, s))\r
+# define BOOST_PP_WHILE_150_I(p, o, s) BOOST_PP_IF(p(151, s), BOOST_PP_WHILE_151, s BOOST_PP_TUPLE_EAT_3)(p, o, o(151, s))\r
+# define BOOST_PP_WHILE_151_I(p, o, s) BOOST_PP_IF(p(152, s), BOOST_PP_WHILE_152, s BOOST_PP_TUPLE_EAT_3)(p, o, o(152, s))\r
+# define BOOST_PP_WHILE_152_I(p, o, s) BOOST_PP_IF(p(153, s), BOOST_PP_WHILE_153, s BOOST_PP_TUPLE_EAT_3)(p, o, o(153, s))\r
+# define BOOST_PP_WHILE_153_I(p, o, s) BOOST_PP_IF(p(154, s), BOOST_PP_WHILE_154, s BOOST_PP_TUPLE_EAT_3)(p, o, o(154, s))\r
+# define BOOST_PP_WHILE_154_I(p, o, s) BOOST_PP_IF(p(155, s), BOOST_PP_WHILE_155, s BOOST_PP_TUPLE_EAT_3)(p, o, o(155, s))\r
+# define BOOST_PP_WHILE_155_I(p, o, s) BOOST_PP_IF(p(156, s), BOOST_PP_WHILE_156, s BOOST_PP_TUPLE_EAT_3)(p, o, o(156, s))\r
+# define BOOST_PP_WHILE_156_I(p, o, s) BOOST_PP_IF(p(157, s), BOOST_PP_WHILE_157, s BOOST_PP_TUPLE_EAT_3)(p, o, o(157, s))\r
+# define BOOST_PP_WHILE_157_I(p, o, s) BOOST_PP_IF(p(158, s), BOOST_PP_WHILE_158, s BOOST_PP_TUPLE_EAT_3)(p, o, o(158, s))\r
+# define BOOST_PP_WHILE_158_I(p, o, s) BOOST_PP_IF(p(159, s), BOOST_PP_WHILE_159, s BOOST_PP_TUPLE_EAT_3)(p, o, o(159, s))\r
+# define BOOST_PP_WHILE_159_I(p, o, s) BOOST_PP_IF(p(160, s), BOOST_PP_WHILE_160, s BOOST_PP_TUPLE_EAT_3)(p, o, o(160, s))\r
+# define BOOST_PP_WHILE_160_I(p, o, s) BOOST_PP_IF(p(161, s), BOOST_PP_WHILE_161, s BOOST_PP_TUPLE_EAT_3)(p, o, o(161, s))\r
+# define BOOST_PP_WHILE_161_I(p, o, s) BOOST_PP_IF(p(162, s), BOOST_PP_WHILE_162, s BOOST_PP_TUPLE_EAT_3)(p, o, o(162, s))\r
+# define BOOST_PP_WHILE_162_I(p, o, s) BOOST_PP_IF(p(163, s), BOOST_PP_WHILE_163, s BOOST_PP_TUPLE_EAT_3)(p, o, o(163, s))\r
+# define BOOST_PP_WHILE_163_I(p, o, s) BOOST_PP_IF(p(164, s), BOOST_PP_WHILE_164, s BOOST_PP_TUPLE_EAT_3)(p, o, o(164, s))\r
+# define BOOST_PP_WHILE_164_I(p, o, s) BOOST_PP_IF(p(165, s), BOOST_PP_WHILE_165, s BOOST_PP_TUPLE_EAT_3)(p, o, o(165, s))\r
+# define BOOST_PP_WHILE_165_I(p, o, s) BOOST_PP_IF(p(166, s), BOOST_PP_WHILE_166, s BOOST_PP_TUPLE_EAT_3)(p, o, o(166, s))\r
+# define BOOST_PP_WHILE_166_I(p, o, s) BOOST_PP_IF(p(167, s), BOOST_PP_WHILE_167, s BOOST_PP_TUPLE_EAT_3)(p, o, o(167, s))\r
+# define BOOST_PP_WHILE_167_I(p, o, s) BOOST_PP_IF(p(168, s), BOOST_PP_WHILE_168, s BOOST_PP_TUPLE_EAT_3)(p, o, o(168, s))\r
+# define BOOST_PP_WHILE_168_I(p, o, s) BOOST_PP_IF(p(169, s), BOOST_PP_WHILE_169, s BOOST_PP_TUPLE_EAT_3)(p, o, o(169, s))\r
+# define BOOST_PP_WHILE_169_I(p, o, s) BOOST_PP_IF(p(170, s), BOOST_PP_WHILE_170, s BOOST_PP_TUPLE_EAT_3)(p, o, o(170, s))\r
+# define BOOST_PP_WHILE_170_I(p, o, s) BOOST_PP_IF(p(171, s), BOOST_PP_WHILE_171, s BOOST_PP_TUPLE_EAT_3)(p, o, o(171, s))\r
+# define BOOST_PP_WHILE_171_I(p, o, s) BOOST_PP_IF(p(172, s), BOOST_PP_WHILE_172, s BOOST_PP_TUPLE_EAT_3)(p, o, o(172, s))\r
+# define BOOST_PP_WHILE_172_I(p, o, s) BOOST_PP_IF(p(173, s), BOOST_PP_WHILE_173, s BOOST_PP_TUPLE_EAT_3)(p, o, o(173, s))\r
+# define BOOST_PP_WHILE_173_I(p, o, s) BOOST_PP_IF(p(174, s), BOOST_PP_WHILE_174, s BOOST_PP_TUPLE_EAT_3)(p, o, o(174, s))\r
+# define BOOST_PP_WHILE_174_I(p, o, s) BOOST_PP_IF(p(175, s), BOOST_PP_WHILE_175, s BOOST_PP_TUPLE_EAT_3)(p, o, o(175, s))\r
+# define BOOST_PP_WHILE_175_I(p, o, s) BOOST_PP_IF(p(176, s), BOOST_PP_WHILE_176, s BOOST_PP_TUPLE_EAT_3)(p, o, o(176, s))\r
+# define BOOST_PP_WHILE_176_I(p, o, s) BOOST_PP_IF(p(177, s), BOOST_PP_WHILE_177, s BOOST_PP_TUPLE_EAT_3)(p, o, o(177, s))\r
+# define BOOST_PP_WHILE_177_I(p, o, s) BOOST_PP_IF(p(178, s), BOOST_PP_WHILE_178, s BOOST_PP_TUPLE_EAT_3)(p, o, o(178, s))\r
+# define BOOST_PP_WHILE_178_I(p, o, s) BOOST_PP_IF(p(179, s), BOOST_PP_WHILE_179, s BOOST_PP_TUPLE_EAT_3)(p, o, o(179, s))\r
+# define BOOST_PP_WHILE_179_I(p, o, s) BOOST_PP_IF(p(180, s), BOOST_PP_WHILE_180, s BOOST_PP_TUPLE_EAT_3)(p, o, o(180, s))\r
+# define BOOST_PP_WHILE_180_I(p, o, s) BOOST_PP_IF(p(181, s), BOOST_PP_WHILE_181, s BOOST_PP_TUPLE_EAT_3)(p, o, o(181, s))\r
+# define BOOST_PP_WHILE_181_I(p, o, s) BOOST_PP_IF(p(182, s), BOOST_PP_WHILE_182, s BOOST_PP_TUPLE_EAT_3)(p, o, o(182, s))\r
+# define BOOST_PP_WHILE_182_I(p, o, s) BOOST_PP_IF(p(183, s), BOOST_PP_WHILE_183, s BOOST_PP_TUPLE_EAT_3)(p, o, o(183, s))\r
+# define BOOST_PP_WHILE_183_I(p, o, s) BOOST_PP_IF(p(184, s), BOOST_PP_WHILE_184, s BOOST_PP_TUPLE_EAT_3)(p, o, o(184, s))\r
+# define BOOST_PP_WHILE_184_I(p, o, s) BOOST_PP_IF(p(185, s), BOOST_PP_WHILE_185, s BOOST_PP_TUPLE_EAT_3)(p, o, o(185, s))\r
+# define BOOST_PP_WHILE_185_I(p, o, s) BOOST_PP_IF(p(186, s), BOOST_PP_WHILE_186, s BOOST_PP_TUPLE_EAT_3)(p, o, o(186, s))\r
+# define BOOST_PP_WHILE_186_I(p, o, s) BOOST_PP_IF(p(187, s), BOOST_PP_WHILE_187, s BOOST_PP_TUPLE_EAT_3)(p, o, o(187, s))\r
+# define BOOST_PP_WHILE_187_I(p, o, s) BOOST_PP_IF(p(188, s), BOOST_PP_WHILE_188, s BOOST_PP_TUPLE_EAT_3)(p, o, o(188, s))\r
+# define BOOST_PP_WHILE_188_I(p, o, s) BOOST_PP_IF(p(189, s), BOOST_PP_WHILE_189, s BOOST_PP_TUPLE_EAT_3)(p, o, o(189, s))\r
+# define BOOST_PP_WHILE_189_I(p, o, s) BOOST_PP_IF(p(190, s), BOOST_PP_WHILE_190, s BOOST_PP_TUPLE_EAT_3)(p, o, o(190, s))\r
+# define BOOST_PP_WHILE_190_I(p, o, s) BOOST_PP_IF(p(191, s), BOOST_PP_WHILE_191, s BOOST_PP_TUPLE_EAT_3)(p, o, o(191, s))\r
+# define BOOST_PP_WHILE_191_I(p, o, s) BOOST_PP_IF(p(192, s), BOOST_PP_WHILE_192, s BOOST_PP_TUPLE_EAT_3)(p, o, o(192, s))\r
+# define BOOST_PP_WHILE_192_I(p, o, s) BOOST_PP_IF(p(193, s), BOOST_PP_WHILE_193, s BOOST_PP_TUPLE_EAT_3)(p, o, o(193, s))\r
+# define BOOST_PP_WHILE_193_I(p, o, s) BOOST_PP_IF(p(194, s), BOOST_PP_WHILE_194, s BOOST_PP_TUPLE_EAT_3)(p, o, o(194, s))\r
+# define BOOST_PP_WHILE_194_I(p, o, s) BOOST_PP_IF(p(195, s), BOOST_PP_WHILE_195, s BOOST_PP_TUPLE_EAT_3)(p, o, o(195, s))\r
+# define BOOST_PP_WHILE_195_I(p, o, s) BOOST_PP_IF(p(196, s), BOOST_PP_WHILE_196, s BOOST_PP_TUPLE_EAT_3)(p, o, o(196, s))\r
+# define BOOST_PP_WHILE_196_I(p, o, s) BOOST_PP_IF(p(197, s), BOOST_PP_WHILE_197, s BOOST_PP_TUPLE_EAT_3)(p, o, o(197, s))\r
+# define BOOST_PP_WHILE_197_I(p, o, s) BOOST_PP_IF(p(198, s), BOOST_PP_WHILE_198, s BOOST_PP_TUPLE_EAT_3)(p, o, o(198, s))\r
+# define BOOST_PP_WHILE_198_I(p, o, s) BOOST_PP_IF(p(199, s), BOOST_PP_WHILE_199, s BOOST_PP_TUPLE_EAT_3)(p, o, o(199, s))\r
+# define BOOST_PP_WHILE_199_I(p, o, s) BOOST_PP_IF(p(200, s), BOOST_PP_WHILE_200, s BOOST_PP_TUPLE_EAT_3)(p, o, o(200, s))\r
+# define BOOST_PP_WHILE_200_I(p, o, s) BOOST_PP_IF(p(201, s), BOOST_PP_WHILE_201, s BOOST_PP_TUPLE_EAT_3)(p, o, o(201, s))\r
+# define BOOST_PP_WHILE_201_I(p, o, s) BOOST_PP_IF(p(202, s), BOOST_PP_WHILE_202, s BOOST_PP_TUPLE_EAT_3)(p, o, o(202, s))\r
+# define BOOST_PP_WHILE_202_I(p, o, s) BOOST_PP_IF(p(203, s), BOOST_PP_WHILE_203, s BOOST_PP_TUPLE_EAT_3)(p, o, o(203, s))\r
+# define BOOST_PP_WHILE_203_I(p, o, s) BOOST_PP_IF(p(204, s), BOOST_PP_WHILE_204, s BOOST_PP_TUPLE_EAT_3)(p, o, o(204, s))\r
+# define BOOST_PP_WHILE_204_I(p, o, s) BOOST_PP_IF(p(205, s), BOOST_PP_WHILE_205, s BOOST_PP_TUPLE_EAT_3)(p, o, o(205, s))\r
+# define BOOST_PP_WHILE_205_I(p, o, s) BOOST_PP_IF(p(206, s), BOOST_PP_WHILE_206, s BOOST_PP_TUPLE_EAT_3)(p, o, o(206, s))\r
+# define BOOST_PP_WHILE_206_I(p, o, s) BOOST_PP_IF(p(207, s), BOOST_PP_WHILE_207, s BOOST_PP_TUPLE_EAT_3)(p, o, o(207, s))\r
+# define BOOST_PP_WHILE_207_I(p, o, s) BOOST_PP_IF(p(208, s), BOOST_PP_WHILE_208, s BOOST_PP_TUPLE_EAT_3)(p, o, o(208, s))\r
+# define BOOST_PP_WHILE_208_I(p, o, s) BOOST_PP_IF(p(209, s), BOOST_PP_WHILE_209, s BOOST_PP_TUPLE_EAT_3)(p, o, o(209, s))\r
+# define BOOST_PP_WHILE_209_I(p, o, s) BOOST_PP_IF(p(210, s), BOOST_PP_WHILE_210, s BOOST_PP_TUPLE_EAT_3)(p, o, o(210, s))\r
+# define BOOST_PP_WHILE_210_I(p, o, s) BOOST_PP_IF(p(211, s), BOOST_PP_WHILE_211, s BOOST_PP_TUPLE_EAT_3)(p, o, o(211, s))\r
+# define BOOST_PP_WHILE_211_I(p, o, s) BOOST_PP_IF(p(212, s), BOOST_PP_WHILE_212, s BOOST_PP_TUPLE_EAT_3)(p, o, o(212, s))\r
+# define BOOST_PP_WHILE_212_I(p, o, s) BOOST_PP_IF(p(213, s), BOOST_PP_WHILE_213, s BOOST_PP_TUPLE_EAT_3)(p, o, o(213, s))\r
+# define BOOST_PP_WHILE_213_I(p, o, s) BOOST_PP_IF(p(214, s), BOOST_PP_WHILE_214, s BOOST_PP_TUPLE_EAT_3)(p, o, o(214, s))\r
+# define BOOST_PP_WHILE_214_I(p, o, s) BOOST_PP_IF(p(215, s), BOOST_PP_WHILE_215, s BOOST_PP_TUPLE_EAT_3)(p, o, o(215, s))\r
+# define BOOST_PP_WHILE_215_I(p, o, s) BOOST_PP_IF(p(216, s), BOOST_PP_WHILE_216, s BOOST_PP_TUPLE_EAT_3)(p, o, o(216, s))\r
+# define BOOST_PP_WHILE_216_I(p, o, s) BOOST_PP_IF(p(217, s), BOOST_PP_WHILE_217, s BOOST_PP_TUPLE_EAT_3)(p, o, o(217, s))\r
+# define BOOST_PP_WHILE_217_I(p, o, s) BOOST_PP_IF(p(218, s), BOOST_PP_WHILE_218, s BOOST_PP_TUPLE_EAT_3)(p, o, o(218, s))\r
+# define BOOST_PP_WHILE_218_I(p, o, s) BOOST_PP_IF(p(219, s), BOOST_PP_WHILE_219, s BOOST_PP_TUPLE_EAT_3)(p, o, o(219, s))\r
+# define BOOST_PP_WHILE_219_I(p, o, s) BOOST_PP_IF(p(220, s), BOOST_PP_WHILE_220, s BOOST_PP_TUPLE_EAT_3)(p, o, o(220, s))\r
+# define BOOST_PP_WHILE_220_I(p, o, s) BOOST_PP_IF(p(221, s), BOOST_PP_WHILE_221, s BOOST_PP_TUPLE_EAT_3)(p, o, o(221, s))\r
+# define BOOST_PP_WHILE_221_I(p, o, s) BOOST_PP_IF(p(222, s), BOOST_PP_WHILE_222, s BOOST_PP_TUPLE_EAT_3)(p, o, o(222, s))\r
+# define BOOST_PP_WHILE_222_I(p, o, s) BOOST_PP_IF(p(223, s), BOOST_PP_WHILE_223, s BOOST_PP_TUPLE_EAT_3)(p, o, o(223, s))\r
+# define BOOST_PP_WHILE_223_I(p, o, s) BOOST_PP_IF(p(224, s), BOOST_PP_WHILE_224, s BOOST_PP_TUPLE_EAT_3)(p, o, o(224, s))\r
+# define BOOST_PP_WHILE_224_I(p, o, s) BOOST_PP_IF(p(225, s), BOOST_PP_WHILE_225, s BOOST_PP_TUPLE_EAT_3)(p, o, o(225, s))\r
+# define BOOST_PP_WHILE_225_I(p, o, s) BOOST_PP_IF(p(226, s), BOOST_PP_WHILE_226, s BOOST_PP_TUPLE_EAT_3)(p, o, o(226, s))\r
+# define BOOST_PP_WHILE_226_I(p, o, s) BOOST_PP_IF(p(227, s), BOOST_PP_WHILE_227, s BOOST_PP_TUPLE_EAT_3)(p, o, o(227, s))\r
+# define BOOST_PP_WHILE_227_I(p, o, s) BOOST_PP_IF(p(228, s), BOOST_PP_WHILE_228, s BOOST_PP_TUPLE_EAT_3)(p, o, o(228, s))\r
+# define BOOST_PP_WHILE_228_I(p, o, s) BOOST_PP_IF(p(229, s), BOOST_PP_WHILE_229, s BOOST_PP_TUPLE_EAT_3)(p, o, o(229, s))\r
+# define BOOST_PP_WHILE_229_I(p, o, s) BOOST_PP_IF(p(230, s), BOOST_PP_WHILE_230, s BOOST_PP_TUPLE_EAT_3)(p, o, o(230, s))\r
+# define BOOST_PP_WHILE_230_I(p, o, s) BOOST_PP_IF(p(231, s), BOOST_PP_WHILE_231, s BOOST_PP_TUPLE_EAT_3)(p, o, o(231, s))\r
+# define BOOST_PP_WHILE_231_I(p, o, s) BOOST_PP_IF(p(232, s), BOOST_PP_WHILE_232, s BOOST_PP_TUPLE_EAT_3)(p, o, o(232, s))\r
+# define BOOST_PP_WHILE_232_I(p, o, s) BOOST_PP_IF(p(233, s), BOOST_PP_WHILE_233, s BOOST_PP_TUPLE_EAT_3)(p, o, o(233, s))\r
+# define BOOST_PP_WHILE_233_I(p, o, s) BOOST_PP_IF(p(234, s), BOOST_PP_WHILE_234, s BOOST_PP_TUPLE_EAT_3)(p, o, o(234, s))\r
+# define BOOST_PP_WHILE_234_I(p, o, s) BOOST_PP_IF(p(235, s), BOOST_PP_WHILE_235, s BOOST_PP_TUPLE_EAT_3)(p, o, o(235, s))\r
+# define BOOST_PP_WHILE_235_I(p, o, s) BOOST_PP_IF(p(236, s), BOOST_PP_WHILE_236, s BOOST_PP_TUPLE_EAT_3)(p, o, o(236, s))\r
+# define BOOST_PP_WHILE_236_I(p, o, s) BOOST_PP_IF(p(237, s), BOOST_PP_WHILE_237, s BOOST_PP_TUPLE_EAT_3)(p, o, o(237, s))\r
+# define BOOST_PP_WHILE_237_I(p, o, s) BOOST_PP_IF(p(238, s), BOOST_PP_WHILE_238, s BOOST_PP_TUPLE_EAT_3)(p, o, o(238, s))\r
+# define BOOST_PP_WHILE_238_I(p, o, s) BOOST_PP_IF(p(239, s), BOOST_PP_WHILE_239, s BOOST_PP_TUPLE_EAT_3)(p, o, o(239, s))\r
+# define BOOST_PP_WHILE_239_I(p, o, s) BOOST_PP_IF(p(240, s), BOOST_PP_WHILE_240, s BOOST_PP_TUPLE_EAT_3)(p, o, o(240, s))\r
+# define BOOST_PP_WHILE_240_I(p, o, s) BOOST_PP_IF(p(241, s), BOOST_PP_WHILE_241, s BOOST_PP_TUPLE_EAT_3)(p, o, o(241, s))\r
+# define BOOST_PP_WHILE_241_I(p, o, s) BOOST_PP_IF(p(242, s), BOOST_PP_WHILE_242, s BOOST_PP_TUPLE_EAT_3)(p, o, o(242, s))\r
+# define BOOST_PP_WHILE_242_I(p, o, s) BOOST_PP_IF(p(243, s), BOOST_PP_WHILE_243, s BOOST_PP_TUPLE_EAT_3)(p, o, o(243, s))\r
+# define BOOST_PP_WHILE_243_I(p, o, s) BOOST_PP_IF(p(244, s), BOOST_PP_WHILE_244, s BOOST_PP_TUPLE_EAT_3)(p, o, o(244, s))\r
+# define BOOST_PP_WHILE_244_I(p, o, s) BOOST_PP_IF(p(245, s), BOOST_PP_WHILE_245, s BOOST_PP_TUPLE_EAT_3)(p, o, o(245, s))\r
+# define BOOST_PP_WHILE_245_I(p, o, s) BOOST_PP_IF(p(246, s), BOOST_PP_WHILE_246, s BOOST_PP_TUPLE_EAT_3)(p, o, o(246, s))\r
+# define BOOST_PP_WHILE_246_I(p, o, s) BOOST_PP_IF(p(247, s), BOOST_PP_WHILE_247, s BOOST_PP_TUPLE_EAT_3)(p, o, o(247, s))\r
+# define BOOST_PP_WHILE_247_I(p, o, s) BOOST_PP_IF(p(248, s), BOOST_PP_WHILE_248, s BOOST_PP_TUPLE_EAT_3)(p, o, o(248, s))\r
+# define BOOST_PP_WHILE_248_I(p, o, s) BOOST_PP_IF(p(249, s), BOOST_PP_WHILE_249, s BOOST_PP_TUPLE_EAT_3)(p, o, o(249, s))\r
+# define BOOST_PP_WHILE_249_I(p, o, s) BOOST_PP_IF(p(250, s), BOOST_PP_WHILE_250, s BOOST_PP_TUPLE_EAT_3)(p, o, o(250, s))\r
+# define BOOST_PP_WHILE_250_I(p, o, s) BOOST_PP_IF(p(251, s), BOOST_PP_WHILE_251, s BOOST_PP_TUPLE_EAT_3)(p, o, o(251, s))\r
+# define BOOST_PP_WHILE_251_I(p, o, s) BOOST_PP_IF(p(252, s), BOOST_PP_WHILE_252, s BOOST_PP_TUPLE_EAT_3)(p, o, o(252, s))\r
+# define BOOST_PP_WHILE_252_I(p, o, s) BOOST_PP_IF(p(253, s), BOOST_PP_WHILE_253, s BOOST_PP_TUPLE_EAT_3)(p, o, o(253, s))\r
+# define BOOST_PP_WHILE_253_I(p, o, s) BOOST_PP_IF(p(254, s), BOOST_PP_WHILE_254, s BOOST_PP_TUPLE_EAT_3)(p, o, o(254, s))\r
+# define BOOST_PP_WHILE_254_I(p, o, s) BOOST_PP_IF(p(255, s), BOOST_PP_WHILE_255, s BOOST_PP_TUPLE_EAT_3)(p, o, o(255, s))\r
+# define BOOST_PP_WHILE_255_I(p, o, s) BOOST_PP_IF(p(256, s), BOOST_PP_WHILE_256, s BOOST_PP_TUPLE_EAT_3)(p, o, o(256, s))\r
+# define BOOST_PP_WHILE_256_I(p, o, s) BOOST_PP_IF(p(257, s), BOOST_PP_WHILE_257, s BOOST_PP_TUPLE_EAT_3)(p, o, o(257, s))\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/debug.hpp b/boost/boost/preprocessor/debug.hpp
new file mode 100644 (file)
index 0000000..ad6f6f6
--- /dev/null
@@ -0,0 +1,18 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_DEBUG_HPP\r
+# define BOOST_PREPROCESSOR_DEBUG_HPP\r
+#\r
+# include <boost/preprocessor/debug/assert.hpp>\r
+# include <boost/preprocessor/debug/line.hpp>\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/debug/assert.hpp b/boost/boost/preprocessor/debug/assert.hpp
new file mode 100644 (file)
index 0000000..66e333e
--- /dev/null
@@ -0,0 +1,44 @@
+# /* Copyright (C) 2001\r
+#  * Housemarque Oy\r
+#  * http://www.housemarque.com\r
+#  *\r
+#  * Distributed under the Boost Software License, Version 1.0. (See\r
+#  * accompanying file LICENSE_1_0.txt or copy at\r
+#  * http://www.boost.org/LICENSE_1_0.txt)\r
+#  */\r
+#\r
+# /* Revised by Paul Mensonides (2002) */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_DEBUG_ASSERT_HPP\r
+# define BOOST_PREPROCESSOR_DEBUG_ASSERT_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/control/expr_iif.hpp>\r
+# include <boost/preprocessor/control/iif.hpp>\r
+# include <boost/preprocessor/logical/not.hpp>\r
+# include <boost/preprocessor/tuple/eat.hpp>\r
+#\r
+# /* BOOST_PP_ASSERT */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_ASSERT BOOST_PP_ASSERT_D\r
+# else\r
+#    define BOOST_PP_ASSERT(cond) BOOST_PP_ASSERT_D(cond)\r
+# endif\r
+#\r
+# define BOOST_PP_ASSERT_D(cond) BOOST_PP_IIF(BOOST_PP_NOT(cond), BOOST_PP_ASSERT_ERROR, BOOST_PP_TUPLE_EAT_1)(...)\r
+# define BOOST_PP_ASSERT_ERROR(x, y, z)\r
+#\r
+# /* BOOST_PP_ASSERT_MSG */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_ASSERT_MSG BOOST_PP_ASSERT_MSG_D\r
+# else\r
+#    define BOOST_PP_ASSERT_MSG(cond, msg) BOOST_PP_ASSERT_MSG_D(cond, msg)\r
+# endif\r
+#\r
+# define BOOST_PP_ASSERT_MSG_D(cond, msg) BOOST_PP_EXPR_IIF(BOOST_PP_NOT(cond), msg)\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/debug/line.hpp b/boost/boost/preprocessor/debug/line.hpp
new file mode 100644 (file)
index 0000000..ac96c2c
--- /dev/null
@@ -0,0 +1,35 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_DEBUG_LINE_HPP\r
+# define BOOST_PREPROCESSOR_DEBUG_LINE_HPP\r
+#\r
+# include <boost/preprocessor/cat.hpp>\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/iteration/iterate.hpp>\r
+# include <boost/preprocessor/stringize.hpp>\r
+#\r
+# /* BOOST_PP_LINE */\r
+#\r
+# if BOOST_PP_CONFIG_EXTENDED_LINE_INFO\r
+#    define BOOST_PP_LINE(line, file) line BOOST_PP_CAT(BOOST_PP_LINE_, BOOST_PP_IS_ITERATING)(file)\r
+#    define BOOST_PP_LINE_BOOST_PP_IS_ITERATING(file) #file\r
+#    define BOOST_PP_LINE_1(file) BOOST_PP_STRINGIZE(file BOOST_PP_CAT(BOOST_PP_LINE_I_, BOOST_PP_ITERATION_DEPTH())())\r
+#    define BOOST_PP_LINE_I_1() [BOOST_PP_FRAME_ITERATION(1)]\r
+#    define BOOST_PP_LINE_I_2() BOOST_PP_LINE_I_1()[BOOST_PP_FRAME_ITERATION(2)]\r
+#    define BOOST_PP_LINE_I_3() BOOST_PP_LINE_I_2()[BOOST_PP_FRAME_ITERATION(3)]\r
+#    define BOOST_PP_LINE_I_4() BOOST_PP_LINE_I_3()[BOOST_PP_FRAME_ITERATION(4)]\r
+#    define BOOST_PP_LINE_I_5() BOOST_PP_LINE_I_4()[BOOST_PP_FRAME_ITERATION(5)]\r
+# else\r
+#    define BOOST_PP_LINE(line, file) line __FILE__\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/detail/dmc/auto_rec.hpp b/boost/boost/preprocessor/detail/dmc/auto_rec.hpp
new file mode 100644 (file)
index 0000000..dda0ba9
--- /dev/null
@@ -0,0 +1,286 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP\r
+# define BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP\r
+#\r
+# include <boost/preprocessor/control/iif.hpp>\r
+#\r
+# /* BOOST_PP_AUTO_REC */\r
+#\r
+# define BOOST_PP_AUTO_REC(pred, n) BOOST_PP_NODE_ENTRY_ ## n(pred)\r
+#\r
+# define BOOST_PP_NODE_ENTRY_256(p) BOOST_PP_NODE_128(p)(p)(p)(p)(p)(p)(p)(p)\r
+# define BOOST_PP_NODE_ENTRY_128(p) BOOST_PP_NODE_64(p)(p)(p)(p)(p)(p)(p)\r
+# define BOOST_PP_NODE_ENTRY_64(p) BOOST_PP_NODE_32(p)(p)(p)(p)(p)(p)\r
+# define BOOST_PP_NODE_ENTRY_32(p) BOOST_PP_NODE_16(p)(p)(p)(p)(p)\r
+# define BOOST_PP_NODE_ENTRY_16(p) BOOST_PP_NODE_8(p)(p)(p)(p)\r
+# define BOOST_PP_NODE_ENTRY_8(p) BOOST_PP_NODE_4(p)(p)(p)\r
+# define BOOST_PP_NODE_ENTRY_4(p) BOOST_PP_NODE_2(p)(p)\r
+# define BOOST_PP_NODE_ENTRY_2(p) BOOST_PP_NODE_1(p)\r
+#\r
+# define BOOST_PP_NODE_128(p) BOOST_PP_IIF(p##(128), BOOST_PP_NODE_64, BOOST_PP_NODE_192)\r
+#    define BOOST_PP_NODE_64(p) BOOST_PP_IIF(p##(64), BOOST_PP_NODE_32, BOOST_PP_NODE_96)\r
+#        define BOOST_PP_NODE_32(p) BOOST_PP_IIF(p##(32), BOOST_PP_NODE_16, BOOST_PP_NODE_48)\r
+#            define BOOST_PP_NODE_16(p) BOOST_PP_IIF(p##(16), BOOST_PP_NODE_8, BOOST_PP_NODE_24)\r
+#                define BOOST_PP_NODE_8(p) BOOST_PP_IIF(p##(8), BOOST_PP_NODE_4, BOOST_PP_NODE_12)\r
+#                    define BOOST_PP_NODE_4(p) BOOST_PP_IIF(p##(4), BOOST_PP_NODE_2, BOOST_PP_NODE_6)\r
+#                        define BOOST_PP_NODE_2(p) BOOST_PP_IIF(p##(2), BOOST_PP_NODE_1, BOOST_PP_NODE_3)\r
+#                            define BOOST_PP_NODE_1(p) BOOST_PP_IIF(p##(1), 1, 2)\r
+#                            define BOOST_PP_NODE_3(p) BOOST_PP_IIF(p##(3), 3, 4)\r
+#                        define BOOST_PP_NODE_6(p) BOOST_PP_IIF(p##(6), BOOST_PP_NODE_5, BOOST_PP_NODE_7)\r
+#                            define BOOST_PP_NODE_5(p) BOOST_PP_IIF(p##(5), 5, 6)\r
+#                            define BOOST_PP_NODE_7(p) BOOST_PP_IIF(p##(7), 7, 8)\r
+#                    define BOOST_PP_NODE_12(p) BOOST_PP_IIF(p##(12), BOOST_PP_NODE_10, BOOST_PP_NODE_14)\r
+#                        define BOOST_PP_NODE_10(p) BOOST_PP_IIF(p##(10), BOOST_PP_NODE_9, BOOST_PP_NODE_11)\r
+#                            define BOOST_PP_NODE_9(p) BOOST_PP_IIF(p##(9), 9, 10)\r
+#                            define BOOST_PP_NODE_11(p) BOOST_PP_IIF(p##(11), 11, 12)\r
+#                        define BOOST_PP_NODE_14(p) BOOST_PP_IIF(p##(14), BOOST_PP_NODE_13, BOOST_PP_NODE_15)\r
+#                            define BOOST_PP_NODE_13(p) BOOST_PP_IIF(p##(13), 13, 14)\r
+#                            define BOOST_PP_NODE_15(p) BOOST_PP_IIF(p##(15), 15, 16)\r
+#                define BOOST_PP_NODE_24(p) BOOST_PP_IIF(p##(24), BOOST_PP_NODE_20, BOOST_PP_NODE_28)\r
+#                    define BOOST_PP_NODE_20(p) BOOST_PP_IIF(p##(20), BOOST_PP_NODE_18, BOOST_PP_NODE_22)\r
+#                        define BOOST_PP_NODE_18(p) BOOST_PP_IIF(p##(18), BOOST_PP_NODE_17, BOOST_PP_NODE_19)\r
+#                            define BOOST_PP_NODE_17(p) BOOST_PP_IIF(p##(17), 17, 18)\r
+#                            define BOOST_PP_NODE_19(p) BOOST_PP_IIF(p##(19), 19, 20)\r
+#                        define BOOST_PP_NODE_22(p) BOOST_PP_IIF(p##(22), BOOST_PP_NODE_21, BOOST_PP_NODE_23)\r
+#                            define BOOST_PP_NODE_21(p) BOOST_PP_IIF(p##(21), 21, 22)\r
+#                            define BOOST_PP_NODE_23(p) BOOST_PP_IIF(p##(23), 23, 24)\r
+#                    define BOOST_PP_NODE_28(p) BOOST_PP_IIF(p##(28), BOOST_PP_NODE_26, BOOST_PP_NODE_30)\r
+#                        define BOOST_PP_NODE_26(p) BOOST_PP_IIF(p##(26), BOOST_PP_NODE_25, BOOST_PP_NODE_27)\r
+#                            define BOOST_PP_NODE_25(p) BOOST_PP_IIF(p##(25), 25, 26)\r
+#                            define BOOST_PP_NODE_27(p) BOOST_PP_IIF(p##(27), 27, 28)\r
+#                        define BOOST_PP_NODE_30(p) BOOST_PP_IIF(p##(30), BOOST_PP_NODE_29, BOOST_PP_NODE_31)\r
+#                            define BOOST_PP_NODE_29(p) BOOST_PP_IIF(p##(29), 29, 30)\r
+#                            define BOOST_PP_NODE_31(p) BOOST_PP_IIF(p##(31), 31, 32)\r
+#            define BOOST_PP_NODE_48(p) BOOST_PP_IIF(p##(48), BOOST_PP_NODE_40, BOOST_PP_NODE_56)\r
+#                define BOOST_PP_NODE_40(p) BOOST_PP_IIF(p##(40), BOOST_PP_NODE_36, BOOST_PP_NODE_44)\r
+#                    define BOOST_PP_NODE_36(p) BOOST_PP_IIF(p##(36), BOOST_PP_NODE_34, BOOST_PP_NODE_38)\r
+#                        define BOOST_PP_NODE_34(p) BOOST_PP_IIF(p##(34), BOOST_PP_NODE_33, BOOST_PP_NODE_35)\r
+#                            define BOOST_PP_NODE_33(p) BOOST_PP_IIF(p##(33), 33, 34)\r
+#                            define BOOST_PP_NODE_35(p) BOOST_PP_IIF(p##(35), 35, 36)\r
+#                        define BOOST_PP_NODE_38(p) BOOST_PP_IIF(p##(38), BOOST_PP_NODE_37, BOOST_PP_NODE_39)\r
+#                            define BOOST_PP_NODE_37(p) BOOST_PP_IIF(p##(37), 37, 38)\r
+#                            define BOOST_PP_NODE_39(p) BOOST_PP_IIF(p##(39), 39, 40)\r
+#                    define BOOST_PP_NODE_44(p) BOOST_PP_IIF(p##(44), BOOST_PP_NODE_42, BOOST_PP_NODE_46)\r
+#                        define BOOST_PP_NODE_42(p) BOOST_PP_IIF(p##(42), BOOST_PP_NODE_41, BOOST_PP_NODE_43)\r
+#                            define BOOST_PP_NODE_41(p) BOOST_PP_IIF(p##(41), 41, 42)\r
+#                            define BOOST_PP_NODE_43(p) BOOST_PP_IIF(p##(43), 43, 44)\r
+#                        define BOOST_PP_NODE_46(p) BOOST_PP_IIF(p##(46), BOOST_PP_NODE_45, BOOST_PP_NODE_47)\r
+#                            define BOOST_PP_NODE_45(p) BOOST_PP_IIF(p##(45), 45, 46)\r
+#                            define BOOST_PP_NODE_47(p) BOOST_PP_IIF(p##(47), 47, 48)\r
+#                define BOOST_PP_NODE_56(p) BOOST_PP_IIF(p##(56), BOOST_PP_NODE_52, BOOST_PP_NODE_60)\r
+#                    define BOOST_PP_NODE_52(p) BOOST_PP_IIF(p##(52), BOOST_PP_NODE_50, BOOST_PP_NODE_54)\r
+#                        define BOOST_PP_NODE_50(p) BOOST_PP_IIF(p##(50), BOOST_PP_NODE_49, BOOST_PP_NODE_51)\r
+#                            define BOOST_PP_NODE_49(p) BOOST_PP_IIF(p##(49), 49, 50)\r
+#                            define BOOST_PP_NODE_51(p) BOOST_PP_IIF(p##(51), 51, 52)\r
+#                        define BOOST_PP_NODE_54(p) BOOST_PP_IIF(p##(54), BOOST_PP_NODE_53, BOOST_PP_NODE_55)\r
+#                            define BOOST_PP_NODE_53(p) BOOST_PP_IIF(p##(53), 53, 54)\r
+#                            define BOOST_PP_NODE_55(p) BOOST_PP_IIF(p##(55), 55, 56)\r
+#                    define BOOST_PP_NODE_60(p) BOOST_PP_IIF(p##(60), BOOST_PP_NODE_58, BOOST_PP_NODE_62)\r
+#                        define BOOST_PP_NODE_58(p) BOOST_PP_IIF(p##(58), BOOST_PP_NODE_57, BOOST_PP_NODE_59)\r
+#                            define BOOST_PP_NODE_57(p) BOOST_PP_IIF(p##(57), 57, 58)\r
+#                            define BOOST_PP_NODE_59(p) BOOST_PP_IIF(p##(59), 59, 60)\r
+#                        define BOOST_PP_NODE_62(p) BOOST_PP_IIF(p##(62), BOOST_PP_NODE_61, BOOST_PP_NODE_63)\r
+#                            define BOOST_PP_NODE_61(p) BOOST_PP_IIF(p##(61), 61, 62)\r
+#                            define BOOST_PP_NODE_63(p) BOOST_PP_IIF(p##(63), 63, 64)\r
+#        define BOOST_PP_NODE_96(p) BOOST_PP_IIF(p##(96), BOOST_PP_NODE_80, BOOST_PP_NODE_112)\r
+#            define BOOST_PP_NODE_80(p) BOOST_PP_IIF(p##(80), BOOST_PP_NODE_72, BOOST_PP_NODE_88)\r
+#                define BOOST_PP_NODE_72(p) BOOST_PP_IIF(p##(72), BOOST_PP_NODE_68, BOOST_PP_NODE_76)\r
+#                    define BOOST_PP_NODE_68(p) BOOST_PP_IIF(p##(68), BOOST_PP_NODE_66, BOOST_PP_NODE_70)\r
+#                        define BOOST_PP_NODE_66(p) BOOST_PP_IIF(p##(66), BOOST_PP_NODE_65, BOOST_PP_NODE_67)\r
+#                            define BOOST_PP_NODE_65(p) BOOST_PP_IIF(p##(65), 65, 66)\r
+#                            define BOOST_PP_NODE_67(p) BOOST_PP_IIF(p##(67), 67, 68)\r
+#                        define BOOST_PP_NODE_70(p) BOOST_PP_IIF(p##(70), BOOST_PP_NODE_69, BOOST_PP_NODE_71)\r
+#                            define BOOST_PP_NODE_69(p) BOOST_PP_IIF(p##(69), 69, 70)\r
+#                            define BOOST_PP_NODE_71(p) BOOST_PP_IIF(p##(71), 71, 72)\r
+#                    define BOOST_PP_NODE_76(p) BOOST_PP_IIF(p##(76), BOOST_PP_NODE_74, BOOST_PP_NODE_78)\r
+#                        define BOOST_PP_NODE_74(p) BOOST_PP_IIF(p##(74), BOOST_PP_NODE_73, BOOST_PP_NODE_75)\r
+#                            define BOOST_PP_NODE_73(p) BOOST_PP_IIF(p##(73), 73, 74)\r
+#                            define BOOST_PP_NODE_75(p) BOOST_PP_IIF(p##(75), 75, 76)\r
+#                        define BOOST_PP_NODE_78(p) BOOST_PP_IIF(p##(78), BOOST_PP_NODE_77, BOOST_PP_NODE_79)\r
+#                            define BOOST_PP_NODE_77(p) BOOST_PP_IIF(p##(77), 77, 78)\r
+#                            define BOOST_PP_NODE_79(p) BOOST_PP_IIF(p##(79), 79, 80)\r
+#                define BOOST_PP_NODE_88(p) BOOST_PP_IIF(p##(88), BOOST_PP_NODE_84, BOOST_PP_NODE_92)\r
+#                    define BOOST_PP_NODE_84(p) BOOST_PP_IIF(p##(84), BOOST_PP_NODE_82, BOOST_PP_NODE_86)\r
+#                        define BOOST_PP_NODE_82(p) BOOST_PP_IIF(p##(82), BOOST_PP_NODE_81, BOOST_PP_NODE_83)\r
+#                            define BOOST_PP_NODE_81(p) BOOST_PP_IIF(p##(81), 81, 82)\r
+#                            define BOOST_PP_NODE_83(p) BOOST_PP_IIF(p##(83), 83, 84)\r
+#                        define BOOST_PP_NODE_86(p) BOOST_PP_IIF(p##(86), BOOST_PP_NODE_85, BOOST_PP_NODE_87)\r
+#                            define BOOST_PP_NODE_85(p) BOOST_PP_IIF(p##(85), 85, 86)\r
+#                            define BOOST_PP_NODE_87(p) BOOST_PP_IIF(p##(87), 87, 88)\r
+#                    define BOOST_PP_NODE_92(p) BOOST_PP_IIF(p##(92), BOOST_PP_NODE_90, BOOST_PP_NODE_94)\r
+#                        define BOOST_PP_NODE_90(p) BOOST_PP_IIF(p##(90), BOOST_PP_NODE_89, BOOST_PP_NODE_91)\r
+#                            define BOOST_PP_NODE_89(p) BOOST_PP_IIF(p##(89), 89, 90)\r
+#                            define BOOST_PP_NODE_91(p) BOOST_PP_IIF(p##(91), 91, 92)\r
+#                        define BOOST_PP_NODE_94(p) BOOST_PP_IIF(p##(94), BOOST_PP_NODE_93, BOOST_PP_NODE_95)\r
+#                            define BOOST_PP_NODE_93(p) BOOST_PP_IIF(p##(93), 93, 94)\r
+#                            define BOOST_PP_NODE_95(p) BOOST_PP_IIF(p##(95), 95, 96)\r
+#            define BOOST_PP_NODE_112(p) BOOST_PP_IIF(p##(112), BOOST_PP_NODE_104, BOOST_PP_NODE_120)\r
+#                define BOOST_PP_NODE_104(p) BOOST_PP_IIF(p##(104), BOOST_PP_NODE_100, BOOST_PP_NODE_108)\r
+#                    define BOOST_PP_NODE_100(p) BOOST_PP_IIF(p##(100), BOOST_PP_NODE_98, BOOST_PP_NODE_102)\r
+#                        define BOOST_PP_NODE_98(p) BOOST_PP_IIF(p##(98), BOOST_PP_NODE_97, BOOST_PP_NODE_99)\r
+#                            define BOOST_PP_NODE_97(p) BOOST_PP_IIF(p##(97), 97, 98)\r
+#                            define BOOST_PP_NODE_99(p) BOOST_PP_IIF(p##(99), 99, 100)\r
+#                        define BOOST_PP_NODE_102(p) BOOST_PP_IIF(p##(102), BOOST_PP_NODE_101, BOOST_PP_NODE_103)\r
+#                            define BOOST_PP_NODE_101(p) BOOST_PP_IIF(p##(101), 101, 102)\r
+#                            define BOOST_PP_NODE_103(p) BOOST_PP_IIF(p##(103), 103, 104)\r
+#                    define BOOST_PP_NODE_108(p) BOOST_PP_IIF(p##(108), BOOST_PP_NODE_106, BOOST_PP_NODE_110)\r
+#                        define BOOST_PP_NODE_106(p) BOOST_PP_IIF(p##(106), BOOST_PP_NODE_105, BOOST_PP_NODE_107)\r
+#                            define BOOST_PP_NODE_105(p) BOOST_PP_IIF(p##(105), 105, 106)\r
+#                            define BOOST_PP_NODE_107(p) BOOST_PP_IIF(p##(107), 107, 108)\r
+#                        define BOOST_PP_NODE_110(p) BOOST_PP_IIF(p##(110), BOOST_PP_NODE_109, BOOST_PP_NODE_111)\r
+#                            define BOOST_PP_NODE_109(p) BOOST_PP_IIF(p##(109), 109, 110)\r
+#                            define BOOST_PP_NODE_111(p) BOOST_PP_IIF(p##(111), 111, 112)\r
+#                define BOOST_PP_NODE_120(p) BOOST_PP_IIF(p##(120), BOOST_PP_NODE_116, BOOST_PP_NODE_124)\r
+#                    define BOOST_PP_NODE_116(p) BOOST_PP_IIF(p##(116), BOOST_PP_NODE_114, BOOST_PP_NODE_118)\r
+#                        define BOOST_PP_NODE_114(p) BOOST_PP_IIF(p##(114), BOOST_PP_NODE_113, BOOST_PP_NODE_115)\r
+#                            define BOOST_PP_NODE_113(p) BOOST_PP_IIF(p##(113), 113, 114)\r
+#                            define BOOST_PP_NODE_115(p) BOOST_PP_IIF(p##(115), 115, 116)\r
+#                        define BOOST_PP_NODE_118(p) BOOST_PP_IIF(p##(118), BOOST_PP_NODE_117, BOOST_PP_NODE_119)\r
+#                            define BOOST_PP_NODE_117(p) BOOST_PP_IIF(p##(117), 117, 118)\r
+#                            define BOOST_PP_NODE_119(p) BOOST_PP_IIF(p##(119), 119, 120)\r
+#                    define BOOST_PP_NODE_124(p) BOOST_PP_IIF(p##(124), BOOST_PP_NODE_122, BOOST_PP_NODE_126)\r
+#                        define BOOST_PP_NODE_122(p) BOOST_PP_IIF(p##(122), BOOST_PP_NODE_121, BOOST_PP_NODE_123)\r
+#                            define BOOST_PP_NODE_121(p) BOOST_PP_IIF(p##(121), 121, 122)\r
+#                            define BOOST_PP_NODE_123(p) BOOST_PP_IIF(p##(123), 123, 124)\r
+#                        define BOOST_PP_NODE_126(p) BOOST_PP_IIF(p##(126), BOOST_PP_NODE_125, BOOST_PP_NODE_127)\r
+#                            define BOOST_PP_NODE_125(p) BOOST_PP_IIF(p##(125), 125, 126)\r
+#                            define BOOST_PP_NODE_127(p) BOOST_PP_IIF(p##(127), 127, 128)\r
+#    define BOOST_PP_NODE_192(p) BOOST_PP_IIF(p##(192), BOOST_PP_NODE_160, BOOST_PP_NODE_224)\r
+#        define BOOST_PP_NODE_160(p) BOOST_PP_IIF(p##(160), BOOST_PP_NODE_144, BOOST_PP_NODE_176)\r
+#            define BOOST_PP_NODE_144(p) BOOST_PP_IIF(p##(144), BOOST_PP_NODE_136, BOOST_PP_NODE_152)\r
+#                define BOOST_PP_NODE_136(p) BOOST_PP_IIF(p##(136), BOOST_PP_NODE_132, BOOST_PP_NODE_140)\r
+#                    define BOOST_PP_NODE_132(p) BOOST_PP_IIF(p##(132), BOOST_PP_NODE_130, BOOST_PP_NODE_134)\r
+#                        define BOOST_PP_NODE_130(p) BOOST_PP_IIF(p##(130), BOOST_PP_NODE_129, BOOST_PP_NODE_131)\r
+#                            define BOOST_PP_NODE_129(p) BOOST_PP_IIF(p##(129), 129, 130)\r
+#                            define BOOST_PP_NODE_131(p) BOOST_PP_IIF(p##(131), 131, 132)\r
+#                        define BOOST_PP_NODE_134(p) BOOST_PP_IIF(p##(134), BOOST_PP_NODE_133, BOOST_PP_NODE_135)\r
+#                            define BOOST_PP_NODE_133(p) BOOST_PP_IIF(p##(133), 133, 134)\r
+#                            define BOOST_PP_NODE_135(p) BOOST_PP_IIF(p##(135), 135, 136)\r
+#                    define BOOST_PP_NODE_140(p) BOOST_PP_IIF(p##(140), BOOST_PP_NODE_138, BOOST_PP_NODE_142)\r
+#                        define BOOST_PP_NODE_138(p) BOOST_PP_IIF(p##(138), BOOST_PP_NODE_137, BOOST_PP_NODE_139)\r
+#                            define BOOST_PP_NODE_137(p) BOOST_PP_IIF(p##(137), 137, 138)\r
+#                            define BOOST_PP_NODE_139(p) BOOST_PP_IIF(p##(139), 139, 140)\r
+#                        define BOOST_PP_NODE_142(p) BOOST_PP_IIF(p##(142), BOOST_PP_NODE_141, BOOST_PP_NODE_143)\r
+#                            define BOOST_PP_NODE_141(p) BOOST_PP_IIF(p##(141), 141, 142)\r
+#                            define BOOST_PP_NODE_143(p) BOOST_PP_IIF(p##(143), 143, 144)\r
+#                define BOOST_PP_NODE_152(p) BOOST_PP_IIF(p##(152), BOOST_PP_NODE_148, BOOST_PP_NODE_156)\r
+#                    define BOOST_PP_NODE_148(p) BOOST_PP_IIF(p##(148), BOOST_PP_NODE_146, BOOST_PP_NODE_150)\r
+#                        define BOOST_PP_NODE_146(p) BOOST_PP_IIF(p##(146), BOOST_PP_NODE_145, BOOST_PP_NODE_147)\r
+#                            define BOOST_PP_NODE_145(p) BOOST_PP_IIF(p##(145), 145, 146)\r
+#                            define BOOST_PP_NODE_147(p) BOOST_PP_IIF(p##(147), 147, 148)\r
+#                        define BOOST_PP_NODE_150(p) BOOST_PP_IIF(p##(150), BOOST_PP_NODE_149, BOOST_PP_NODE_151)\r
+#                            define BOOST_PP_NODE_149(p) BOOST_PP_IIF(p##(149), 149, 150)\r
+#                            define BOOST_PP_NODE_151(p) BOOST_PP_IIF(p##(151), 151, 152)\r
+#                    define BOOST_PP_NODE_156(p) BOOST_PP_IIF(p##(156), BOOST_PP_NODE_154, BOOST_PP_NODE_158)\r
+#                        define BOOST_PP_NODE_154(p) BOOST_PP_IIF(p##(154), BOOST_PP_NODE_153, BOOST_PP_NODE_155)\r
+#                            define BOOST_PP_NODE_153(p) BOOST_PP_IIF(p##(153), 153, 154)\r
+#                            define BOOST_PP_NODE_155(p) BOOST_PP_IIF(p##(155), 155, 156)\r
+#                        define BOOST_PP_NODE_158(p) BOOST_PP_IIF(p##(158), BOOST_PP_NODE_157, BOOST_PP_NODE_159)\r
+#                            define BOOST_PP_NODE_157(p) BOOST_PP_IIF(p##(157), 157, 158)\r
+#                            define BOOST_PP_NODE_159(p) BOOST_PP_IIF(p##(159), 159, 160)\r
+#            define BOOST_PP_NODE_176(p) BOOST_PP_IIF(p##(176), BOOST_PP_NODE_168, BOOST_PP_NODE_184)\r
+#                define BOOST_PP_NODE_168(p) BOOST_PP_IIF(p##(168), BOOST_PP_NODE_164, BOOST_PP_NODE_172)\r
+#                    define BOOST_PP_NODE_164(p) BOOST_PP_IIF(p##(164), BOOST_PP_NODE_162, BOOST_PP_NODE_166)\r
+#                        define BOOST_PP_NODE_162(p) BOOST_PP_IIF(p##(162), BOOST_PP_NODE_161, BOOST_PP_NODE_163)\r
+#                            define BOOST_PP_NODE_161(p) BOOST_PP_IIF(p##(161), 161, 162)\r
+#                            define BOOST_PP_NODE_163(p) BOOST_PP_IIF(p##(163), 163, 164)\r
+#                        define BOOST_PP_NODE_166(p) BOOST_PP_IIF(p##(166), BOOST_PP_NODE_165, BOOST_PP_NODE_167)\r
+#                            define BOOST_PP_NODE_165(p) BOOST_PP_IIF(p##(165), 165, 166)\r
+#                            define BOOST_PP_NODE_167(p) BOOST_PP_IIF(p##(167), 167, 168)\r
+#                    define BOOST_PP_NODE_172(p) BOOST_PP_IIF(p##(172), BOOST_PP_NODE_170, BOOST_PP_NODE_174)\r
+#                        define BOOST_PP_NODE_170(p) BOOST_PP_IIF(p##(170), BOOST_PP_NODE_169, BOOST_PP_NODE_171)\r
+#                            define BOOST_PP_NODE_169(p) BOOST_PP_IIF(p##(169), 169, 170)\r
+#                            define BOOST_PP_NODE_171(p) BOOST_PP_IIF(p##(171), 171, 172)\r
+#                        define BOOST_PP_NODE_174(p) BOOST_PP_IIF(p##(174), BOOST_PP_NODE_173, BOOST_PP_NODE_175)\r
+#                            define BOOST_PP_NODE_173(p) BOOST_PP_IIF(p##(173), 173, 174)\r
+#                            define BOOST_PP_NODE_175(p) BOOST_PP_IIF(p##(175), 175, 176)\r
+#                define BOOST_PP_NODE_184(p) BOOST_PP_IIF(p##(184), BOOST_PP_NODE_180, BOOST_PP_NODE_188)\r
+#                    define BOOST_PP_NODE_180(p) BOOST_PP_IIF(p##(180), BOOST_PP_NODE_178, BOOST_PP_NODE_182)\r
+#                        define BOOST_PP_NODE_178(p) BOOST_PP_IIF(p##(178), BOOST_PP_NODE_177, BOOST_PP_NODE_179)\r
+#                            define BOOST_PP_NODE_177(p) BOOST_PP_IIF(p##(177), 177, 178)\r
+#                            define BOOST_PP_NODE_179(p) BOOST_PP_IIF(p##(179), 179, 180)\r
+#                        define BOOST_PP_NODE_182(p) BOOST_PP_IIF(p##(182), BOOST_PP_NODE_181, BOOST_PP_NODE_183)\r
+#                            define BOOST_PP_NODE_181(p) BOOST_PP_IIF(p##(181), 181, 182)\r
+#                            define BOOST_PP_NODE_183(p) BOOST_PP_IIF(p##(183), 183, 184)\r
+#                    define BOOST_PP_NODE_188(p) BOOST_PP_IIF(p##(188), BOOST_PP_NODE_186, BOOST_PP_NODE_190)\r
+#                        define BOOST_PP_NODE_186(p) BOOST_PP_IIF(p##(186), BOOST_PP_NODE_185, BOOST_PP_NODE_187)\r
+#                            define BOOST_PP_NODE_185(p) BOOST_PP_IIF(p##(185), 185, 186)\r
+#                            define BOOST_PP_NODE_187(p) BOOST_PP_IIF(p##(187), 187, 188)\r
+#                        define BOOST_PP_NODE_190(p) BOOST_PP_IIF(p##(190), BOOST_PP_NODE_189, BOOST_PP_NODE_191)\r
+#                            define BOOST_PP_NODE_189(p) BOOST_PP_IIF(p##(189), 189, 190)\r
+#                            define BOOST_PP_NODE_191(p) BOOST_PP_IIF(p##(191), 191, 192)\r
+#        define BOOST_PP_NODE_224(p) BOOST_PP_IIF(p##(224), BOOST_PP_NODE_208, BOOST_PP_NODE_240)\r
+#            define BOOST_PP_NODE_208(p) BOOST_PP_IIF(p##(208), BOOST_PP_NODE_200, BOOST_PP_NODE_216)\r
+#                define BOOST_PP_NODE_200(p) BOOST_PP_IIF(p##(200), BOOST_PP_NODE_196, BOOST_PP_NODE_204)\r
+#                    define BOOST_PP_NODE_196(p) BOOST_PP_IIF(p##(196), BOOST_PP_NODE_194, BOOST_PP_NODE_198)\r
+#                        define BOOST_PP_NODE_194(p) BOOST_PP_IIF(p##(194), BOOST_PP_NODE_193, BOOST_PP_NODE_195)\r
+#                            define BOOST_PP_NODE_193(p) BOOST_PP_IIF(p##(193), 193, 194)\r
+#                            define BOOST_PP_NODE_195(p) BOOST_PP_IIF(p##(195), 195, 196)\r
+#                        define BOOST_PP_NODE_198(p) BOOST_PP_IIF(p##(198), BOOST_PP_NODE_197, BOOST_PP_NODE_199)\r
+#                            define BOOST_PP_NODE_197(p) BOOST_PP_IIF(p##(197), 197, 198)\r
+#                            define BOOST_PP_NODE_199(p) BOOST_PP_IIF(p##(199), 199, 200)\r
+#                    define BOOST_PP_NODE_204(p) BOOST_PP_IIF(p##(204), BOOST_PP_NODE_202, BOOST_PP_NODE_206)\r
+#                        define BOOST_PP_NODE_202(p) BOOST_PP_IIF(p##(202), BOOST_PP_NODE_201, BOOST_PP_NODE_203)\r
+#                            define BOOST_PP_NODE_201(p) BOOST_PP_IIF(p##(201), 201, 202)\r
+#                            define BOOST_PP_NODE_203(p) BOOST_PP_IIF(p##(203), 203, 204)\r
+#                        define BOOST_PP_NODE_206(p) BOOST_PP_IIF(p##(206), BOOST_PP_NODE_205, BOOST_PP_NODE_207)\r
+#                            define BOOST_PP_NODE_205(p) BOOST_PP_IIF(p##(205), 205, 206)\r
+#                            define BOOST_PP_NODE_207(p) BOOST_PP_IIF(p##(207), 207, 208)\r
+#                define BOOST_PP_NODE_216(p) BOOST_PP_IIF(p##(216), BOOST_PP_NODE_212, BOOST_PP_NODE_220)\r
+#                    define BOOST_PP_NODE_212(p) BOOST_PP_IIF(p##(212), BOOST_PP_NODE_210, BOOST_PP_NODE_214)\r
+#                        define BOOST_PP_NODE_210(p) BOOST_PP_IIF(p##(210), BOOST_PP_NODE_209, BOOST_PP_NODE_211)\r
+#                            define BOOST_PP_NODE_209(p) BOOST_PP_IIF(p##(209), 209, 210)\r
+#                            define BOOST_PP_NODE_211(p) BOOST_PP_IIF(p##(211), 211, 212)\r
+#                        define BOOST_PP_NODE_214(p) BOOST_PP_IIF(p##(214), BOOST_PP_NODE_213, BOOST_PP_NODE_215)\r
+#                            define BOOST_PP_NODE_213(p) BOOST_PP_IIF(p##(213), 213, 214)\r
+#                            define BOOST_PP_NODE_215(p) BOOST_PP_IIF(p##(215), 215, 216)\r
+#                    define BOOST_PP_NODE_220(p) BOOST_PP_IIF(p##(220), BOOST_PP_NODE_218, BOOST_PP_NODE_222)\r
+#                        define BOOST_PP_NODE_218(p) BOOST_PP_IIF(p##(218), BOOST_PP_NODE_217, BOOST_PP_NODE_219)\r
+#                            define BOOST_PP_NODE_217(p) BOOST_PP_IIF(p##(217), 217, 218)\r
+#                            define BOOST_PP_NODE_219(p) BOOST_PP_IIF(p##(219), 219, 220)\r
+#                        define BOOST_PP_NODE_222(p) BOOST_PP_IIF(p##(222), BOOST_PP_NODE_221, BOOST_PP_NODE_223)\r
+#                            define BOOST_PP_NODE_221(p) BOOST_PP_IIF(p##(221), 221, 222)\r
+#                            define BOOST_PP_NODE_223(p) BOOST_PP_IIF(p##(223), 223, 224)\r
+#            define BOOST_PP_NODE_240(p) BOOST_PP_IIF(p##(240), BOOST_PP_NODE_232, BOOST_PP_NODE_248)\r
+#                define BOOST_PP_NODE_232(p) BOOST_PP_IIF(p##(232), BOOST_PP_NODE_228, BOOST_PP_NODE_236)\r
+#                    define BOOST_PP_NODE_228(p) BOOST_PP_IIF(p##(228), BOOST_PP_NODE_226, BOOST_PP_NODE_230)\r
+#                        define BOOST_PP_NODE_226(p) BOOST_PP_IIF(p##(226), BOOST_PP_NODE_225, BOOST_PP_NODE_227)\r
+#                            define BOOST_PP_NODE_225(p) BOOST_PP_IIF(p##(225), 225, 226)\r
+#                            define BOOST_PP_NODE_227(p) BOOST_PP_IIF(p##(227), 227, 228)\r
+#                        define BOOST_PP_NODE_230(p) BOOST_PP_IIF(p##(230), BOOST_PP_NODE_229, BOOST_PP_NODE_231)\r
+#                            define BOOST_PP_NODE_229(p) BOOST_PP_IIF(p##(229), 229, 230)\r
+#                            define BOOST_PP_NODE_231(p) BOOST_PP_IIF(p##(231), 231, 232)\r
+#                    define BOOST_PP_NODE_236(p) BOOST_PP_IIF(p##(236), BOOST_PP_NODE_234, BOOST_PP_NODE_238)\r
+#                        define BOOST_PP_NODE_234(p) BOOST_PP_IIF(p##(234), BOOST_PP_NODE_233, BOOST_PP_NODE_235)\r
+#                            define BOOST_PP_NODE_233(p) BOOST_PP_IIF(p##(233), 233, 234)\r
+#                            define BOOST_PP_NODE_235(p) BOOST_PP_IIF(p##(235), 235, 236)\r
+#                        define BOOST_PP_NODE_238(p) BOOST_PP_IIF(p##(238), BOOST_PP_NODE_237, BOOST_PP_NODE_239)\r
+#                            define BOOST_PP_NODE_237(p) BOOST_PP_IIF(p##(237), 237, 238)\r
+#                            define BOOST_PP_NODE_239(p) BOOST_PP_IIF(p##(239), 239, 240)\r
+#                define BOOST_PP_NODE_248(p) BOOST_PP_IIF(p##(248), BOOST_PP_NODE_244, BOOST_PP_NODE_252)\r
+#                    define BOOST_PP_NODE_244(p) BOOST_PP_IIF(p##(244), BOOST_PP_NODE_242, BOOST_PP_NODE_246)\r
+#                        define BOOST_PP_NODE_242(p) BOOST_PP_IIF(p##(242), BOOST_PP_NODE_241, BOOST_PP_NODE_243)\r
+#                            define BOOST_PP_NODE_241(p) BOOST_PP_IIF(p##(241), 241, 242)\r
+#                            define BOOST_PP_NODE_243(p) BOOST_PP_IIF(p##(243), 243, 244)\r
+#                        define BOOST_PP_NODE_246(p) BOOST_PP_IIF(p##(246), BOOST_PP_NODE_245, BOOST_PP_NODE_247)\r
+#                            define BOOST_PP_NODE_245(p) BOOST_PP_IIF(p##(245), 245, 246)\r
+#                            define BOOST_PP_NODE_247(p) BOOST_PP_IIF(p##(247), 247, 248)\r
+#                    define BOOST_PP_NODE_252(p) BOOST_PP_IIF(p##(252), BOOST_PP_NODE_250, BOOST_PP_NODE_254)\r
+#                        define BOOST_PP_NODE_250(p) BOOST_PP_IIF(p##(250), BOOST_PP_NODE_249, BOOST_PP_NODE_251)\r
+#                            define BOOST_PP_NODE_249(p) BOOST_PP_IIF(p##(249), 249, 250)\r
+#                            define BOOST_PP_NODE_251(p) BOOST_PP_IIF(p##(251), 251, 252)\r
+#                        define BOOST_PP_NODE_254(p) BOOST_PP_IIF(p##(254), BOOST_PP_NODE_253, BOOST_PP_NODE_255)\r
+#                            define BOOST_PP_NODE_253(p) BOOST_PP_IIF(p##(253), 253, 254)\r
+#                            define BOOST_PP_NODE_255(p) BOOST_PP_IIF(p##(255), 255, 256)\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/detail/is_nullary.hpp b/boost/boost/preprocessor/detail/is_nullary.hpp
new file mode 100644 (file)
index 0000000..a99822d
--- /dev/null
@@ -0,0 +1,30 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_DETAIL_IS_NULLARY_HPP\r
+# define BOOST_PREPROCESSOR_DETAIL_IS_NULLARY_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/detail/check.hpp>\r
+#\r
+# /* BOOST_PP_IS_NULLARY */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_IS_NULLARY(x) BOOST_PP_CHECK(x, BOOST_PP_IS_NULLARY_CHECK)\r
+# else\r
+#    define BOOST_PP_IS_NULLARY(x) BOOST_PP_IS_NULLARY_I(x)\r
+#    define BOOST_PP_IS_NULLARY_I(x) BOOST_PP_CHECK(x, BOOST_PP_IS_NULLARY_CHECK)\r
+# endif\r
+#\r
+# define BOOST_PP_IS_NULLARY_CHECK() 1\r
+# define BOOST_PP_CHECK_RESULT_BOOST_PP_IS_NULLARY_CHECK 0, BOOST_PP_NIL\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/detail/is_unary.hpp b/boost/boost/preprocessor/detail/is_unary.hpp
new file mode 100644 (file)
index 0000000..72486c5
--- /dev/null
@@ -0,0 +1,30 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_DETAIL_IS_UNARY_HPP\r
+# define BOOST_PREPROCESSOR_DETAIL_IS_UNARY_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/detail/check.hpp>\r
+#\r
+# /* BOOST_PP_IS_UNARY */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_IS_UNARY(x) BOOST_PP_CHECK(x, BOOST_PP_IS_UNARY_CHECK)\r
+# else\r
+#    define BOOST_PP_IS_UNARY(x) BOOST_PP_IS_UNARY_I(x)\r
+#    define BOOST_PP_IS_UNARY_I(x) BOOST_PP_CHECK(x, BOOST_PP_IS_UNARY_CHECK)\r
+# endif\r
+#\r
+# define BOOST_PP_IS_UNARY_CHECK(a) 1\r
+# define BOOST_PP_CHECK_RESULT_BOOST_PP_IS_UNARY_CHECK 0, BOOST_PP_NIL\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/detail/null.hpp b/boost/boost/preprocessor/detail/null.hpp
new file mode 100644 (file)
index 0000000..eaec7ba
--- /dev/null
@@ -0,0 +1,17 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_DETAIL_NULL_HPP\r
+# define BOOST_PREPROCESSOR_DETAIL_NULL_HPP\r
+#\r
+# /* empty file */\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/detail/split.hpp b/boost/boost/preprocessor/detail/split.hpp
new file mode 100644 (file)
index 0000000..99d9183
--- /dev/null
@@ -0,0 +1,35 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_DETAIL_SPLIT_HPP\r
+# define BOOST_PREPROCESSOR_DETAIL_SPLIT_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+#\r
+# /* BOOST_PP_SPLIT */\r
+#\r
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
+#    define BOOST_PP_SPLIT(n, im) BOOST_PP_SPLIT_I((n, im))\r
+#    define BOOST_PP_SPLIT_I(par) BOOST_PP_SPLIT_II ## par\r
+#    define BOOST_PP_SPLIT_II(n, a, b) BOOST_PP_SPLIT_ ## n(a, b)\r
+# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()\r
+#    define BOOST_PP_SPLIT(n, im) BOOST_PP_SPLIT_I(n((im)))\r
+#    define BOOST_PP_SPLIT_I(n) BOOST_PP_SPLIT_ID(BOOST_PP_SPLIT_II_ ## n)\r
+#    define BOOST_PP_SPLIT_II_0(s) BOOST_PP_SPLIT_ID(BOOST_PP_SPLIT_0 s)\r
+#    define BOOST_PP_SPLIT_II_1(s) BOOST_PP_SPLIT_ID(BOOST_PP_SPLIT_1 s)\r
+#    define BOOST_PP_SPLIT_ID(id) id\r
+# else\r
+#    define BOOST_PP_SPLIT(n, im) BOOST_PP_SPLIT_I(n)(im)\r
+#    define BOOST_PP_SPLIT_I(n) BOOST_PP_SPLIT_ ## n\r
+# endif\r
+#\r
+# define BOOST_PP_SPLIT_0(a, b) a\r
+# define BOOST_PP_SPLIT_1(a, b) b\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/facilities.hpp b/boost/boost/preprocessor/facilities.hpp
new file mode 100644 (file)
index 0000000..af8eb07
--- /dev/null
@@ -0,0 +1,21 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_FACILITIES_HPP\r
+# define BOOST_PREPROCESSOR_FACILITIES_HPP\r
+#\r
+# include <boost/preprocessor/facilities/apply.hpp>\r
+# include <boost/preprocessor/facilities/empty.hpp>\r
+# include <boost/preprocessor/facilities/expand.hpp>\r
+# include <boost/preprocessor/facilities/identity.hpp>\r
+# include <boost/preprocessor/facilities/intercept.hpp>\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/facilities/apply.hpp b/boost/boost/preprocessor/facilities/apply.hpp
new file mode 100644 (file)
index 0000000..360bb50
--- /dev/null
@@ -0,0 +1,34 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_FACILITIES_APPLY_HPP\r
+# define BOOST_PREPROCESSOR_FACILITIES_APPLY_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/control/expr_iif.hpp>\r
+# include <boost/preprocessor/detail/is_unary.hpp>\r
+# include <boost/preprocessor/tuple/rem.hpp>\r
+#\r
+# /* BOOST_PP_APPLY */\r
+#\r
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_APPLY(x) BOOST_PP_APPLY_I(x)\r
+#    define BOOST_PP_APPLY_I(x) BOOST_PP_EXPR_IIF(BOOST_PP_IS_UNARY(x), BOOST_PP_TUPLE_REM_1 x)\r
+# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_BCC()\r
+#    define BOOST_PP_APPLY(x) BOOST_PP_APPLY_I(x)\r
+#    define BOOST_PP_APPLY_I(x) BOOST_PP_APPLY_ ## x\r
+#    define BOOST_PP_APPLY_(x) x\r
+#    define BOOST_PP_APPLY_BOOST_PP_NIL\r
+# else\r
+#    define BOOST_PP_APPLY(x) BOOST_PP_EXPR_IIF(BOOST_PP_IS_UNARY(x), BOOST_PP_TUPLE_REM_1 x)\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/facilities/expand.hpp b/boost/boost/preprocessor/facilities/expand.hpp
new file mode 100644 (file)
index 0000000..562d5fd
--- /dev/null
@@ -0,0 +1,28 @@
+# /* Copyright (C) 2001\r
+#  * Housemarque Oy\r
+#  * http://www.housemarque.com\r
+#  *\r
+#  * Distributed under the Boost Software License, Version 1.0. (See\r
+#  * accompanying file LICENSE_1_0.txt or copy at\r
+#  * http://www.boost.org/LICENSE_1_0.txt)\r
+#  */\r
+#\r
+# /* Revised by Paul Mensonides (2002) */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_FACILITIES_EXPAND_HPP\r
+# define BOOST_PREPROCESSOR_FACILITIES_EXPAND_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() && ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()\r
+#    define BOOST_PP_EXPAND(x) BOOST_PP_EXPAND_I(x)\r
+# else\r
+#    define BOOST_PP_EXPAND(x) BOOST_PP_EXPAND_OO((x))\r
+#    define BOOST_PP_EXPAND_OO(par) BOOST_PP_EXPAND_I ## par\r
+# endif\r
+#\r
+# define BOOST_PP_EXPAND_I(x) x\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/facilities/intercept.hpp b/boost/boost/preprocessor/facilities/intercept.hpp
new file mode 100644 (file)
index 0000000..3cbaa67
--- /dev/null
@@ -0,0 +1,277 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_FACILITIES_INTERCEPT_HPP\r
+# define BOOST_PREPROCESSOR_FACILITIES_INTERCEPT_HPP\r
+#\r
+# /* BOOST_PP_INTERCEPT */\r
+#\r
+# define BOOST_PP_INTERCEPT BOOST_PP_INTERCEPT_\r
+#\r
+# define BOOST_PP_INTERCEPT_0\r
+# define BOOST_PP_INTERCEPT_1\r
+# define BOOST_PP_INTERCEPT_2\r
+# define BOOST_PP_INTERCEPT_3\r
+# define BOOST_PP_INTERCEPT_4\r
+# define BOOST_PP_INTERCEPT_5\r
+# define BOOST_PP_INTERCEPT_6\r
+# define BOOST_PP_INTERCEPT_7\r
+# define BOOST_PP_INTERCEPT_8\r
+# define BOOST_PP_INTERCEPT_9\r
+# define BOOST_PP_INTERCEPT_10\r
+# define BOOST_PP_INTERCEPT_11\r
+# define BOOST_PP_INTERCEPT_12\r
+# define BOOST_PP_INTERCEPT_13\r
+# define BOOST_PP_INTERCEPT_14\r
+# define BOOST_PP_INTERCEPT_15\r
+# define BOOST_PP_INTERCEPT_16\r
+# define BOOST_PP_INTERCEPT_17\r
+# define BOOST_PP_INTERCEPT_18\r
+# define BOOST_PP_INTERCEPT_19\r
+# define BOOST_PP_INTERCEPT_20\r
+# define BOOST_PP_INTERCEPT_21\r
+# define BOOST_PP_INTERCEPT_22\r
+# define BOOST_PP_INTERCEPT_23\r
+# define BOOST_PP_INTERCEPT_24\r
+# define BOOST_PP_INTERCEPT_25\r
+# define BOOST_PP_INTERCEPT_26\r
+# define BOOST_PP_INTERCEPT_27\r
+# define BOOST_PP_INTERCEPT_28\r
+# define BOOST_PP_INTERCEPT_29\r
+# define BOOST_PP_INTERCEPT_30\r
+# define BOOST_PP_INTERCEPT_31\r
+# define BOOST_PP_INTERCEPT_32\r
+# define BOOST_PP_INTERCEPT_33\r
+# define BOOST_PP_INTERCEPT_34\r
+# define BOOST_PP_INTERCEPT_35\r
+# define BOOST_PP_INTERCEPT_36\r
+# define BOOST_PP_INTERCEPT_37\r
+# define BOOST_PP_INTERCEPT_38\r
+# define BOOST_PP_INTERCEPT_39\r
+# define BOOST_PP_INTERCEPT_40\r
+# define BOOST_PP_INTERCEPT_41\r
+# define BOOST_PP_INTERCEPT_42\r
+# define BOOST_PP_INTERCEPT_43\r
+# define BOOST_PP_INTERCEPT_44\r
+# define BOOST_PP_INTERCEPT_45\r
+# define BOOST_PP_INTERCEPT_46\r
+# define BOOST_PP_INTERCEPT_47\r
+# define BOOST_PP_INTERCEPT_48\r
+# define BOOST_PP_INTERCEPT_49\r
+# define BOOST_PP_INTERCEPT_50\r
+# define BOOST_PP_INTERCEPT_51\r
+# define BOOST_PP_INTERCEPT_52\r
+# define BOOST_PP_INTERCEPT_53\r
+# define BOOST_PP_INTERCEPT_54\r
+# define BOOST_PP_INTERCEPT_55\r
+# define BOOST_PP_INTERCEPT_56\r
+# define BOOST_PP_INTERCEPT_57\r
+# define BOOST_PP_INTERCEPT_58\r
+# define BOOST_PP_INTERCEPT_59\r
+# define BOOST_PP_INTERCEPT_60\r
+# define BOOST_PP_INTERCEPT_61\r
+# define BOOST_PP_INTERCEPT_62\r
+# define BOOST_PP_INTERCEPT_63\r
+# define BOOST_PP_INTERCEPT_64\r
+# define BOOST_PP_INTERCEPT_65\r
+# define BOOST_PP_INTERCEPT_66\r
+# define BOOST_PP_INTERCEPT_67\r
+# define BOOST_PP_INTERCEPT_68\r
+# define BOOST_PP_INTERCEPT_69\r
+# define BOOST_PP_INTERCEPT_70\r
+# define BOOST_PP_INTERCEPT_71\r
+# define BOOST_PP_INTERCEPT_72\r
+# define BOOST_PP_INTERCEPT_73\r
+# define BOOST_PP_INTERCEPT_74\r
+# define BOOST_PP_INTERCEPT_75\r
+# define BOOST_PP_INTERCEPT_76\r
+# define BOOST_PP_INTERCEPT_77\r
+# define BOOST_PP_INTERCEPT_78\r
+# define BOOST_PP_INTERCEPT_79\r
+# define BOOST_PP_INTERCEPT_80\r
+# define BOOST_PP_INTERCEPT_81\r
+# define BOOST_PP_INTERCEPT_82\r
+# define BOOST_PP_INTERCEPT_83\r
+# define BOOST_PP_INTERCEPT_84\r
+# define BOOST_PP_INTERCEPT_85\r
+# define BOOST_PP_INTERCEPT_86\r
+# define BOOST_PP_INTERCEPT_87\r
+# define BOOST_PP_INTERCEPT_88\r
+# define BOOST_PP_INTERCEPT_89\r
+# define BOOST_PP_INTERCEPT_90\r
+# define BOOST_PP_INTERCEPT_91\r
+# define BOOST_PP_INTERCEPT_92\r
+# define BOOST_PP_INTERCEPT_93\r
+# define BOOST_PP_INTERCEPT_94\r
+# define BOOST_PP_INTERCEPT_95\r
+# define BOOST_PP_INTERCEPT_96\r
+# define BOOST_PP_INTERCEPT_97\r
+# define BOOST_PP_INTERCEPT_98\r
+# define BOOST_PP_INTERCEPT_99\r
+# define BOOST_PP_INTERCEPT_100\r
+# define BOOST_PP_INTERCEPT_101\r
+# define BOOST_PP_INTERCEPT_102\r
+# define BOOST_PP_INTERCEPT_103\r
+# define BOOST_PP_INTERCEPT_104\r
+# define BOOST_PP_INTERCEPT_105\r
+# define BOOST_PP_INTERCEPT_106\r
+# define BOOST_PP_INTERCEPT_107\r
+# define BOOST_PP_INTERCEPT_108\r
+# define BOOST_PP_INTERCEPT_109\r
+# define BOOST_PP_INTERCEPT_110\r
+# define BOOST_PP_INTERCEPT_111\r
+# define BOOST_PP_INTERCEPT_112\r
+# define BOOST_PP_INTERCEPT_113\r
+# define BOOST_PP_INTERCEPT_114\r
+# define BOOST_PP_INTERCEPT_115\r
+# define BOOST_PP_INTERCEPT_116\r
+# define BOOST_PP_INTERCEPT_117\r
+# define BOOST_PP_INTERCEPT_118\r
+# define BOOST_PP_INTERCEPT_119\r
+# define BOOST_PP_INTERCEPT_120\r
+# define BOOST_PP_INTERCEPT_121\r
+# define BOOST_PP_INTERCEPT_122\r
+# define BOOST_PP_INTERCEPT_123\r
+# define BOOST_PP_INTERCEPT_124\r
+# define BOOST_PP_INTERCEPT_125\r
+# define BOOST_PP_INTERCEPT_126\r
+# define BOOST_PP_INTERCEPT_127\r
+# define BOOST_PP_INTERCEPT_128\r
+# define BOOST_PP_INTERCEPT_129\r
+# define BOOST_PP_INTERCEPT_130\r
+# define BOOST_PP_INTERCEPT_131\r
+# define BOOST_PP_INTERCEPT_132\r
+# define BOOST_PP_INTERCEPT_133\r
+# define BOOST_PP_INTERCEPT_134\r
+# define BOOST_PP_INTERCEPT_135\r
+# define BOOST_PP_INTERCEPT_136\r
+# define BOOST_PP_INTERCEPT_137\r
+# define BOOST_PP_INTERCEPT_138\r
+# define BOOST_PP_INTERCEPT_139\r
+# define BOOST_PP_INTERCEPT_140\r
+# define BOOST_PP_INTERCEPT_141\r
+# define BOOST_PP_INTERCEPT_142\r
+# define BOOST_PP_INTERCEPT_143\r
+# define BOOST_PP_INTERCEPT_144\r
+# define BOOST_PP_INTERCEPT_145\r
+# define BOOST_PP_INTERCEPT_146\r
+# define BOOST_PP_INTERCEPT_147\r
+# define BOOST_PP_INTERCEPT_148\r
+# define BOOST_PP_INTERCEPT_149\r
+# define BOOST_PP_INTERCEPT_150\r
+# define BOOST_PP_INTERCEPT_151\r
+# define BOOST_PP_INTERCEPT_152\r
+# define BOOST_PP_INTERCEPT_153\r
+# define BOOST_PP_INTERCEPT_154\r
+# define BOOST_PP_INTERCEPT_155\r
+# define BOOST_PP_INTERCEPT_156\r
+# define BOOST_PP_INTERCEPT_157\r
+# define BOOST_PP_INTERCEPT_158\r
+# define BOOST_PP_INTERCEPT_159\r
+# define BOOST_PP_INTERCEPT_160\r
+# define BOOST_PP_INTERCEPT_161\r
+# define BOOST_PP_INTERCEPT_162\r
+# define BOOST_PP_INTERCEPT_163\r
+# define BOOST_PP_INTERCEPT_164\r
+# define BOOST_PP_INTERCEPT_165\r
+# define BOOST_PP_INTERCEPT_166\r
+# define BOOST_PP_INTERCEPT_167\r
+# define BOOST_PP_INTERCEPT_168\r
+# define BOOST_PP_INTERCEPT_169\r
+# define BOOST_PP_INTERCEPT_170\r
+# define BOOST_PP_INTERCEPT_171\r
+# define BOOST_PP_INTERCEPT_172\r
+# define BOOST_PP_INTERCEPT_173\r
+# define BOOST_PP_INTERCEPT_174\r
+# define BOOST_PP_INTERCEPT_175\r
+# define BOOST_PP_INTERCEPT_176\r
+# define BOOST_PP_INTERCEPT_177\r
+# define BOOST_PP_INTERCEPT_178\r
+# define BOOST_PP_INTERCEPT_179\r
+# define BOOST_PP_INTERCEPT_180\r
+# define BOOST_PP_INTERCEPT_181\r
+# define BOOST_PP_INTERCEPT_182\r
+# define BOOST_PP_INTERCEPT_183\r
+# define BOOST_PP_INTERCEPT_184\r
+# define BOOST_PP_INTERCEPT_185\r
+# define BOOST_PP_INTERCEPT_186\r
+# define BOOST_PP_INTERCEPT_187\r
+# define BOOST_PP_INTERCEPT_188\r
+# define BOOST_PP_INTERCEPT_189\r
+# define BOOST_PP_INTERCEPT_190\r
+# define BOOST_PP_INTERCEPT_191\r
+# define BOOST_PP_INTERCEPT_192\r
+# define BOOST_PP_INTERCEPT_193\r
+# define BOOST_PP_INTERCEPT_194\r
+# define BOOST_PP_INTERCEPT_195\r
+# define BOOST_PP_INTERCEPT_196\r
+# define BOOST_PP_INTERCEPT_197\r
+# define BOOST_PP_INTERCEPT_198\r
+# define BOOST_PP_INTERCEPT_199\r
+# define BOOST_PP_INTERCEPT_200\r
+# define BOOST_PP_INTERCEPT_201\r
+# define BOOST_PP_INTERCEPT_202\r
+# define BOOST_PP_INTERCEPT_203\r
+# define BOOST_PP_INTERCEPT_204\r
+# define BOOST_PP_INTERCEPT_205\r
+# define BOOST_PP_INTERCEPT_206\r
+# define BOOST_PP_INTERCEPT_207\r
+# define BOOST_PP_INTERCEPT_208\r
+# define BOOST_PP_INTERCEPT_209\r
+# define BOOST_PP_INTERCEPT_210\r
+# define BOOST_PP_INTERCEPT_211\r
+# define BOOST_PP_INTERCEPT_212\r
+# define BOOST_PP_INTERCEPT_213\r
+# define BOOST_PP_INTERCEPT_214\r
+# define BOOST_PP_INTERCEPT_215\r
+# define BOOST_PP_INTERCEPT_216\r
+# define BOOST_PP_INTERCEPT_217\r
+# define BOOST_PP_INTERCEPT_218\r
+# define BOOST_PP_INTERCEPT_219\r
+# define BOOST_PP_INTERCEPT_220\r
+# define BOOST_PP_INTERCEPT_221\r
+# define BOOST_PP_INTERCEPT_222\r
+# define BOOST_PP_INTERCEPT_223\r
+# define BOOST_PP_INTERCEPT_224\r
+# define BOOST_PP_INTERCEPT_225\r
+# define BOOST_PP_INTERCEPT_226\r
+# define BOOST_PP_INTERCEPT_227\r
+# define BOOST_PP_INTERCEPT_228\r
+# define BOOST_PP_INTERCEPT_229\r
+# define BOOST_PP_INTERCEPT_230\r
+# define BOOST_PP_INTERCEPT_231\r
+# define BOOST_PP_INTERCEPT_232\r
+# define BOOST_PP_INTERCEPT_233\r
+# define BOOST_PP_INTERCEPT_234\r
+# define BOOST_PP_INTERCEPT_235\r
+# define BOOST_PP_INTERCEPT_236\r
+# define BOOST_PP_INTERCEPT_237\r
+# define BOOST_PP_INTERCEPT_238\r
+# define BOOST_PP_INTERCEPT_239\r
+# define BOOST_PP_INTERCEPT_240\r
+# define BOOST_PP_INTERCEPT_241\r
+# define BOOST_PP_INTERCEPT_242\r
+# define BOOST_PP_INTERCEPT_243\r
+# define BOOST_PP_INTERCEPT_244\r
+# define BOOST_PP_INTERCEPT_245\r
+# define BOOST_PP_INTERCEPT_246\r
+# define BOOST_PP_INTERCEPT_247\r
+# define BOOST_PP_INTERCEPT_248\r
+# define BOOST_PP_INTERCEPT_249\r
+# define BOOST_PP_INTERCEPT_250\r
+# define BOOST_PP_INTERCEPT_251\r
+# define BOOST_PP_INTERCEPT_252\r
+# define BOOST_PP_INTERCEPT_253\r
+# define BOOST_PP_INTERCEPT_254\r
+# define BOOST_PP_INTERCEPT_255\r
+# define BOOST_PP_INTERCEPT_256\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/facilities/is_1.hpp b/boost/boost/preprocessor/facilities/is_1.hpp
new file mode 100644 (file)
index 0000000..b3dba6d
--- /dev/null
@@ -0,0 +1,23 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2003.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_FACILITIES_IS_1_HPP\r
+# define BOOST_PREPROCESSOR_FACILITIES_IS_1_HPP\r
+#\r
+# include <boost/preprocessor/cat.hpp>\r
+# include <boost/preprocessor/facilities/is_empty.hpp>\r
+#\r
+# /* BOOST_PP_IS_1 */\r
+#\r
+# define BOOST_PP_IS_1(x) BOOST_PP_IS_EMPTY(BOOST_PP_CAT(BOOST_PP_IS_1_HELPER_, x))\r
+# define BOOST_PP_IS_1_HELPER_1\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/facilities/is_empty.hpp b/boost/boost/preprocessor/facilities/is_empty.hpp
new file mode 100644 (file)
index 0000000..3f6eeba
--- /dev/null
@@ -0,0 +1,43 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2003.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP\r
+# define BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/cat.hpp>\r
+# include <boost/preprocessor/tuple/elem.hpp>\r
+# include <boost/preprocessor/facilities/empty.hpp>\r
+# include <boost/preprocessor/detail/split.hpp>\r
+#\r
+# /* BOOST_PP_IS_EMPTY */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() && ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
+#    define BOOST_PP_IS_EMPTY(x) BOOST_PP_IS_EMPTY_I(x BOOST_PP_IS_EMPTY_HELPER)\r
+#    define BOOST_PP_IS_EMPTY_I(contents) BOOST_PP_TUPLE_ELEM(2, 1, (BOOST_PP_IS_EMPTY_DEF_ ## contents()))\r
+#    define BOOST_PP_IS_EMPTY_DEF_BOOST_PP_IS_EMPTY_HELPER 1, 1 BOOST_PP_EMPTY\r
+#    define BOOST_PP_IS_EMPTY_HELPER() , 0\r
+# else\r
+#    if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()\r
+#        define BOOST_PP_IS_EMPTY(x) BOOST_PP_IS_EMPTY_I(BOOST_PP_IS_EMPTY_HELPER x ())\r
+#        define BOOST_PP_IS_EMPTY_I(test) BOOST_PP_IS_EMPTY_II(BOOST_PP_SPLIT(0, BOOST_PP_CAT(BOOST_PP_IS_EMPTY_DEF_, test)))\r
+#        define BOOST_PP_IS_EMPTY_II(id) id\r
+#    else\r
+#        define BOOST_PP_IS_EMPTY(x) BOOST_PP_IS_EMPTY_I((BOOST_PP_IS_EMPTY_HELPER x ()))\r
+#        define BOOST_PP_IS_EMPTY_I(par) BOOST_PP_IS_EMPTY_II ## par\r
+#        define BOOST_PP_IS_EMPTY_II(test) BOOST_PP_SPLIT(0, BOOST_PP_CAT(BOOST_PP_IS_EMPTY_DEF_, test))\r
+#    endif\r
+#    define BOOST_PP_IS_EMPTY_HELPER() 1\r
+#    define BOOST_PP_IS_EMPTY_DEF_1 1, BOOST_PP_NIL\r
+#    define BOOST_PP_IS_EMPTY_DEF_BOOST_PP_IS_EMPTY_HELPER 0, BOOST_PP_NIL\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/facilities/is_empty_or_1.hpp b/boost/boost/preprocessor/facilities/is_empty_or_1.hpp
new file mode 100644 (file)
index 0000000..b437d1e
--- /dev/null
@@ -0,0 +1,30 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2003.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_OR_1_HPP\r
+# define BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_OR_1_HPP\r
+#\r
+# include <boost/preprocessor/control/iif.hpp>\r
+# include <boost/preprocessor/facilities/empty.hpp>\r
+# include <boost/preprocessor/facilities/is_1.hpp>\r
+# include <boost/preprocessor/facilities/is_empty.hpp>\r
+#\r
+# /* BOOST_PP_IS_EMPTY_OR_1 */\r
+#\r
+# define BOOST_PP_IS_EMPTY_OR_1(x) \\r
+    BOOST_PP_IIF( \\r
+        BOOST_PP_IS_EMPTY(x BOOST_PP_EMPTY()), \\r
+        1 BOOST_PP_EMPTY, \\r
+        BOOST_PP_IS_1 \\r
+    )(x) \\r
+    /**/\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/iteration.hpp b/boost/boost/preprocessor/iteration.hpp
new file mode 100644 (file)
index 0000000..bd2541e
--- /dev/null
@@ -0,0 +1,19 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_ITERATION_HPP\r
+# define BOOST_PREPROCESSOR_ITERATION_HPP\r
+#\r
+# include <boost/preprocessor/iteration/iterate.hpp>\r
+# include <boost/preprocessor/iteration/local.hpp>\r
+# include <boost/preprocessor/iteration/self.hpp>\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/iteration/detail/bounds/lower2.hpp b/boost/boost/preprocessor/iteration/detail/bounds/lower2.hpp
new file mode 100644 (file)
index 0000000..29cf19d
--- /dev/null
@@ -0,0 +1,99 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# include <boost/preprocessor/slot/detail/shared.hpp>\r
+#\r
+# undef BOOST_PP_ITERATION_START_2\r
+#\r
+# undef BOOST_PP_ITERATION_START_2_DIGIT_1\r
+# undef BOOST_PP_ITERATION_START_2_DIGIT_2\r
+# undef BOOST_PP_ITERATION_START_2_DIGIT_3\r
+# undef BOOST_PP_ITERATION_START_2_DIGIT_4\r
+# undef BOOST_PP_ITERATION_START_2_DIGIT_5\r
+# undef BOOST_PP_ITERATION_START_2_DIGIT_6\r
+# undef BOOST_PP_ITERATION_START_2_DIGIT_7\r
+# undef BOOST_PP_ITERATION_START_2_DIGIT_8\r
+# undef BOOST_PP_ITERATION_START_2_DIGIT_9\r
+# undef BOOST_PP_ITERATION_START_2_DIGIT_10\r
+#\r
+# if BOOST_PP_SLOT_TEMP_3 == 0\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_3 0\r
+# elif BOOST_PP_SLOT_TEMP_3 == 1\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_3 1\r
+# elif BOOST_PP_SLOT_TEMP_3 == 2\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_3 2\r
+# elif BOOST_PP_SLOT_TEMP_3 == 3\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_3 3\r
+# elif BOOST_PP_SLOT_TEMP_3 == 4\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_3 4\r
+# elif BOOST_PP_SLOT_TEMP_3 == 5\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_3 5\r
+# elif BOOST_PP_SLOT_TEMP_3 == 6\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_3 6\r
+# elif BOOST_PP_SLOT_TEMP_3 == 7\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_3 7\r
+# elif BOOST_PP_SLOT_TEMP_3 == 8\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_3 8\r
+# elif BOOST_PP_SLOT_TEMP_3 == 9\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_3 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_2 == 0\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_2 0\r
+# elif BOOST_PP_SLOT_TEMP_2 == 1\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_2 1\r
+# elif BOOST_PP_SLOT_TEMP_2 == 2\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_2 2\r
+# elif BOOST_PP_SLOT_TEMP_2 == 3\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_2 3\r
+# elif BOOST_PP_SLOT_TEMP_2 == 4\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_2 4\r
+# elif BOOST_PP_SLOT_TEMP_2 == 5\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_2 5\r
+# elif BOOST_PP_SLOT_TEMP_2 == 6\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_2 6\r
+# elif BOOST_PP_SLOT_TEMP_2 == 7\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_2 7\r
+# elif BOOST_PP_SLOT_TEMP_2 == 8\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_2 8\r
+# elif BOOST_PP_SLOT_TEMP_2 == 9\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_2 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_1 == 0\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_1 0\r
+# elif BOOST_PP_SLOT_TEMP_1 == 1\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_1 1\r
+# elif BOOST_PP_SLOT_TEMP_1 == 2\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_1 2\r
+# elif BOOST_PP_SLOT_TEMP_1 == 3\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_1 3\r
+# elif BOOST_PP_SLOT_TEMP_1 == 4\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_1 4\r
+# elif BOOST_PP_SLOT_TEMP_1 == 5\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_1 5\r
+# elif BOOST_PP_SLOT_TEMP_1 == 6\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_1 6\r
+# elif BOOST_PP_SLOT_TEMP_1 == 7\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_1 7\r
+# elif BOOST_PP_SLOT_TEMP_1 == 8\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_1 8\r
+# elif BOOST_PP_SLOT_TEMP_1 == 9\r
+#    define BOOST_PP_ITERATION_START_2_DIGIT_1 9\r
+# endif\r
+#\r
+# if BOOST_PP_ITERATION_START_2_DIGIT_3\r
+#    define BOOST_PP_ITERATION_START_2 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_2_DIGIT_3, BOOST_PP_ITERATION_START_2_DIGIT_2, BOOST_PP_ITERATION_START_2_DIGIT_1)\r
+# elif BOOST_PP_ITERATION_START_2_DIGIT_2\r
+#    define BOOST_PP_ITERATION_START_2 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_2_DIGIT_2, BOOST_PP_ITERATION_START_2_DIGIT_1)\r
+# else\r
+#    define BOOST_PP_ITERATION_START_2 BOOST_PP_ITERATION_START_2_DIGIT_1\r
+# endif\r
diff --git a/boost/boost/preprocessor/iteration/detail/bounds/lower3.hpp b/boost/boost/preprocessor/iteration/detail/bounds/lower3.hpp
new file mode 100644 (file)
index 0000000..fe5f658
--- /dev/null
@@ -0,0 +1,99 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# include <boost/preprocessor/slot/detail/shared.hpp>\r
+#\r
+# undef BOOST_PP_ITERATION_START_3\r
+#\r
+# undef BOOST_PP_ITERATION_START_3_DIGIT_1\r
+# undef BOOST_PP_ITERATION_START_3_DIGIT_2\r
+# undef BOOST_PP_ITERATION_START_3_DIGIT_3\r
+# undef BOOST_PP_ITERATION_START_3_DIGIT_4\r
+# undef BOOST_PP_ITERATION_START_3_DIGIT_5\r
+# undef BOOST_PP_ITERATION_START_3_DIGIT_6\r
+# undef BOOST_PP_ITERATION_START_3_DIGIT_7\r
+# undef BOOST_PP_ITERATION_START_3_DIGIT_8\r
+# undef BOOST_PP_ITERATION_START_3_DIGIT_9\r
+# undef BOOST_PP_ITERATION_START_3_DIGIT_10\r
+#\r
+# if BOOST_PP_SLOT_TEMP_3 == 0\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_3 0\r
+# elif BOOST_PP_SLOT_TEMP_3 == 1\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_3 1\r
+# elif BOOST_PP_SLOT_TEMP_3 == 2\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_3 2\r
+# elif BOOST_PP_SLOT_TEMP_3 == 3\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_3 3\r
+# elif BOOST_PP_SLOT_TEMP_3 == 4\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_3 4\r
+# elif BOOST_PP_SLOT_TEMP_3 == 5\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_3 5\r
+# elif BOOST_PP_SLOT_TEMP_3 == 6\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_3 6\r
+# elif BOOST_PP_SLOT_TEMP_3 == 7\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_3 7\r
+# elif BOOST_PP_SLOT_TEMP_3 == 8\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_3 8\r
+# elif BOOST_PP_SLOT_TEMP_3 == 9\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_3 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_2 == 0\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_2 0\r
+# elif BOOST_PP_SLOT_TEMP_2 == 1\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_2 1\r
+# elif BOOST_PP_SLOT_TEMP_2 == 2\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_2 2\r
+# elif BOOST_PP_SLOT_TEMP_2 == 3\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_2 3\r
+# elif BOOST_PP_SLOT_TEMP_2 == 4\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_2 4\r
+# elif BOOST_PP_SLOT_TEMP_2 == 5\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_2 5\r
+# elif BOOST_PP_SLOT_TEMP_2 == 6\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_2 6\r
+# elif BOOST_PP_SLOT_TEMP_2 == 7\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_2 7\r
+# elif BOOST_PP_SLOT_TEMP_2 == 8\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_2 8\r
+# elif BOOST_PP_SLOT_TEMP_2 == 9\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_2 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_1 == 0\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_1 0\r
+# elif BOOST_PP_SLOT_TEMP_1 == 1\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_1 1\r
+# elif BOOST_PP_SLOT_TEMP_1 == 2\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_1 2\r
+# elif BOOST_PP_SLOT_TEMP_1 == 3\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_1 3\r
+# elif BOOST_PP_SLOT_TEMP_1 == 4\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_1 4\r
+# elif BOOST_PP_SLOT_TEMP_1 == 5\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_1 5\r
+# elif BOOST_PP_SLOT_TEMP_1 == 6\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_1 6\r
+# elif BOOST_PP_SLOT_TEMP_1 == 7\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_1 7\r
+# elif BOOST_PP_SLOT_TEMP_1 == 8\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_1 8\r
+# elif BOOST_PP_SLOT_TEMP_1 == 9\r
+#    define BOOST_PP_ITERATION_START_3_DIGIT_1 9\r
+# endif\r
+#\r
+# if BOOST_PP_ITERATION_START_3_DIGIT_3\r
+#    define BOOST_PP_ITERATION_START_3 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_3_DIGIT_3, BOOST_PP_ITERATION_START_3_DIGIT_2, BOOST_PP_ITERATION_START_3_DIGIT_1)\r
+# elif BOOST_PP_ITERATION_START_3_DIGIT_2\r
+#    define BOOST_PP_ITERATION_START_3 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_3_DIGIT_2, BOOST_PP_ITERATION_START_3_DIGIT_1)\r
+# else\r
+#    define BOOST_PP_ITERATION_START_3 BOOST_PP_ITERATION_START_3_DIGIT_1\r
+# endif\r
diff --git a/boost/boost/preprocessor/iteration/detail/bounds/lower4.hpp b/boost/boost/preprocessor/iteration/detail/bounds/lower4.hpp
new file mode 100644 (file)
index 0000000..0a5a398
--- /dev/null
@@ -0,0 +1,99 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# include <boost/preprocessor/slot/detail/shared.hpp>\r
+#\r
+# undef BOOST_PP_ITERATION_START_4\r
+#\r
+# undef BOOST_PP_ITERATION_START_4_DIGIT_1\r
+# undef BOOST_PP_ITERATION_START_4_DIGIT_2\r
+# undef BOOST_PP_ITERATION_START_4_DIGIT_3\r
+# undef BOOST_PP_ITERATION_START_4_DIGIT_4\r
+# undef BOOST_PP_ITERATION_START_4_DIGIT_5\r
+# undef BOOST_PP_ITERATION_START_4_DIGIT_6\r
+# undef BOOST_PP_ITERATION_START_4_DIGIT_7\r
+# undef BOOST_PP_ITERATION_START_4_DIGIT_8\r
+# undef BOOST_PP_ITERATION_START_4_DIGIT_9\r
+# undef BOOST_PP_ITERATION_START_4_DIGIT_10\r
+#\r
+# if BOOST_PP_SLOT_TEMP_3 == 0\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_3 0\r
+# elif BOOST_PP_SLOT_TEMP_3 == 1\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_3 1\r
+# elif BOOST_PP_SLOT_TEMP_3 == 2\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_3 2\r
+# elif BOOST_PP_SLOT_TEMP_3 == 3\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_3 3\r
+# elif BOOST_PP_SLOT_TEMP_3 == 4\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_3 4\r
+# elif BOOST_PP_SLOT_TEMP_3 == 5\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_3 5\r
+# elif BOOST_PP_SLOT_TEMP_3 == 6\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_3 6\r
+# elif BOOST_PP_SLOT_TEMP_3 == 7\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_3 7\r
+# elif BOOST_PP_SLOT_TEMP_3 == 8\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_3 8\r
+# elif BOOST_PP_SLOT_TEMP_3 == 9\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_3 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_2 == 0\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_2 0\r
+# elif BOOST_PP_SLOT_TEMP_2 == 1\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_2 1\r
+# elif BOOST_PP_SLOT_TEMP_2 == 2\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_2 2\r
+# elif BOOST_PP_SLOT_TEMP_2 == 3\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_2 3\r
+# elif BOOST_PP_SLOT_TEMP_2 == 4\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_2 4\r
+# elif BOOST_PP_SLOT_TEMP_2 == 5\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_2 5\r
+# elif BOOST_PP_SLOT_TEMP_2 == 6\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_2 6\r
+# elif BOOST_PP_SLOT_TEMP_2 == 7\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_2 7\r
+# elif BOOST_PP_SLOT_TEMP_2 == 8\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_2 8\r
+# elif BOOST_PP_SLOT_TEMP_2 == 9\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_2 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_1 == 0\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_1 0\r
+# elif BOOST_PP_SLOT_TEMP_1 == 1\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_1 1\r
+# elif BOOST_PP_SLOT_TEMP_1 == 2\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_1 2\r
+# elif BOOST_PP_SLOT_TEMP_1 == 3\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_1 3\r
+# elif BOOST_PP_SLOT_TEMP_1 == 4\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_1 4\r
+# elif BOOST_PP_SLOT_TEMP_1 == 5\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_1 5\r
+# elif BOOST_PP_SLOT_TEMP_1 == 6\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_1 6\r
+# elif BOOST_PP_SLOT_TEMP_1 == 7\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_1 7\r
+# elif BOOST_PP_SLOT_TEMP_1 == 8\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_1 8\r
+# elif BOOST_PP_SLOT_TEMP_1 == 9\r
+#    define BOOST_PP_ITERATION_START_4_DIGIT_1 9\r
+# endif\r
+#\r
+# if BOOST_PP_ITERATION_START_4_DIGIT_3\r
+#    define BOOST_PP_ITERATION_START_4 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_4_DIGIT_3, BOOST_PP_ITERATION_START_4_DIGIT_2, BOOST_PP_ITERATION_START_4_DIGIT_1)\r
+# elif BOOST_PP_ITERATION_START_4_DIGIT_2\r
+#    define BOOST_PP_ITERATION_START_4 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_4_DIGIT_2, BOOST_PP_ITERATION_START_4_DIGIT_1)\r
+# else\r
+#    define BOOST_PP_ITERATION_START_4 BOOST_PP_ITERATION_START_4_DIGIT_1\r
+# endif\r
diff --git a/boost/boost/preprocessor/iteration/detail/bounds/lower5.hpp b/boost/boost/preprocessor/iteration/detail/bounds/lower5.hpp
new file mode 100644 (file)
index 0000000..227efde
--- /dev/null
@@ -0,0 +1,99 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# include <boost/preprocessor/slot/detail/shared.hpp>\r
+#\r
+# undef BOOST_PP_ITERATION_START_5\r
+#\r
+# undef BOOST_PP_ITERATION_START_5_DIGIT_1\r
+# undef BOOST_PP_ITERATION_START_5_DIGIT_2\r
+# undef BOOST_PP_ITERATION_START_5_DIGIT_3\r
+# undef BOOST_PP_ITERATION_START_5_DIGIT_4\r
+# undef BOOST_PP_ITERATION_START_5_DIGIT_5\r
+# undef BOOST_PP_ITERATION_START_5_DIGIT_6\r
+# undef BOOST_PP_ITERATION_START_5_DIGIT_7\r
+# undef BOOST_PP_ITERATION_START_5_DIGIT_8\r
+# undef BOOST_PP_ITERATION_START_5_DIGIT_9\r
+# undef BOOST_PP_ITERATION_START_5_DIGIT_10\r
+#\r
+# if BOOST_PP_SLOT_TEMP_3 == 0\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_3 0\r
+# elif BOOST_PP_SLOT_TEMP_3 == 1\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_3 1\r
+# elif BOOST_PP_SLOT_TEMP_3 == 2\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_3 2\r
+# elif BOOST_PP_SLOT_TEMP_3 == 3\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_3 3\r
+# elif BOOST_PP_SLOT_TEMP_3 == 4\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_3 4\r
+# elif BOOST_PP_SLOT_TEMP_3 == 5\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_3 5\r
+# elif BOOST_PP_SLOT_TEMP_3 == 6\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_3 6\r
+# elif BOOST_PP_SLOT_TEMP_3 == 7\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_3 7\r
+# elif BOOST_PP_SLOT_TEMP_3 == 8\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_3 8\r
+# elif BOOST_PP_SLOT_TEMP_3 == 9\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_3 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_2 == 0\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_2 0\r
+# elif BOOST_PP_SLOT_TEMP_2 == 1\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_2 1\r
+# elif BOOST_PP_SLOT_TEMP_2 == 2\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_2 2\r
+# elif BOOST_PP_SLOT_TEMP_2 == 3\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_2 3\r
+# elif BOOST_PP_SLOT_TEMP_2 == 4\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_2 4\r
+# elif BOOST_PP_SLOT_TEMP_2 == 5\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_2 5\r
+# elif BOOST_PP_SLOT_TEMP_2 == 6\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_2 6\r
+# elif BOOST_PP_SLOT_TEMP_2 == 7\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_2 7\r
+# elif BOOST_PP_SLOT_TEMP_2 == 8\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_2 8\r
+# elif BOOST_PP_SLOT_TEMP_2 == 9\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_2 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_1 == 0\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_1 0\r
+# elif BOOST_PP_SLOT_TEMP_1 == 1\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_1 1\r
+# elif BOOST_PP_SLOT_TEMP_1 == 2\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_1 2\r
+# elif BOOST_PP_SLOT_TEMP_1 == 3\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_1 3\r
+# elif BOOST_PP_SLOT_TEMP_1 == 4\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_1 4\r
+# elif BOOST_PP_SLOT_TEMP_1 == 5\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_1 5\r
+# elif BOOST_PP_SLOT_TEMP_1 == 6\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_1 6\r
+# elif BOOST_PP_SLOT_TEMP_1 == 7\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_1 7\r
+# elif BOOST_PP_SLOT_TEMP_1 == 8\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_1 8\r
+# elif BOOST_PP_SLOT_TEMP_1 == 9\r
+#    define BOOST_PP_ITERATION_START_5_DIGIT_1 9\r
+# endif\r
+#\r
+# if BOOST_PP_ITERATION_START_5_DIGIT_3\r
+#    define BOOST_PP_ITERATION_START_5 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_5_DIGIT_3, BOOST_PP_ITERATION_START_5_DIGIT_2, BOOST_PP_ITERATION_START_5_DIGIT_1)\r
+# elif BOOST_PP_ITERATION_START_5_DIGIT_2\r
+#    define BOOST_PP_ITERATION_START_5 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_5_DIGIT_2, BOOST_PP_ITERATION_START_5_DIGIT_1)\r
+# else\r
+#    define BOOST_PP_ITERATION_START_5 BOOST_PP_ITERATION_START_5_DIGIT_1\r
+# endif\r
diff --git a/boost/boost/preprocessor/iteration/detail/bounds/upper2.hpp b/boost/boost/preprocessor/iteration/detail/bounds/upper2.hpp
new file mode 100644 (file)
index 0000000..fd053c0
--- /dev/null
@@ -0,0 +1,99 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# include <boost/preprocessor/slot/detail/shared.hpp>\r
+#\r
+# undef BOOST_PP_ITERATION_FINISH_2\r
+#\r
+# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_1\r
+# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_2\r
+# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_3\r
+# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_4\r
+# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_5\r
+# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_6\r
+# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_7\r
+# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_8\r
+# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_9\r
+# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_10\r
+#\r
+# if BOOST_PP_SLOT_TEMP_3 == 0\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 0\r
+# elif BOOST_PP_SLOT_TEMP_3 == 1\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 1\r
+# elif BOOST_PP_SLOT_TEMP_3 == 2\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 2\r
+# elif BOOST_PP_SLOT_TEMP_3 == 3\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 3\r
+# elif BOOST_PP_SLOT_TEMP_3 == 4\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 4\r
+# elif BOOST_PP_SLOT_TEMP_3 == 5\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 5\r
+# elif BOOST_PP_SLOT_TEMP_3 == 6\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 6\r
+# elif BOOST_PP_SLOT_TEMP_3 == 7\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 7\r
+# elif BOOST_PP_SLOT_TEMP_3 == 8\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 8\r
+# elif BOOST_PP_SLOT_TEMP_3 == 9\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_2 == 0\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 0\r
+# elif BOOST_PP_SLOT_TEMP_2 == 1\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 1\r
+# elif BOOST_PP_SLOT_TEMP_2 == 2\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 2\r
+# elif BOOST_PP_SLOT_TEMP_2 == 3\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 3\r
+# elif BOOST_PP_SLOT_TEMP_2 == 4\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 4\r
+# elif BOOST_PP_SLOT_TEMP_2 == 5\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 5\r
+# elif BOOST_PP_SLOT_TEMP_2 == 6\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 6\r
+# elif BOOST_PP_SLOT_TEMP_2 == 7\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 7\r
+# elif BOOST_PP_SLOT_TEMP_2 == 8\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 8\r
+# elif BOOST_PP_SLOT_TEMP_2 == 9\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_1 == 0\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 0\r
+# elif BOOST_PP_SLOT_TEMP_1 == 1\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 1\r
+# elif BOOST_PP_SLOT_TEMP_1 == 2\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 2\r
+# elif BOOST_PP_SLOT_TEMP_1 == 3\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 3\r
+# elif BOOST_PP_SLOT_TEMP_1 == 4\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 4\r
+# elif BOOST_PP_SLOT_TEMP_1 == 5\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 5\r
+# elif BOOST_PP_SLOT_TEMP_1 == 6\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 6\r
+# elif BOOST_PP_SLOT_TEMP_1 == 7\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 7\r
+# elif BOOST_PP_SLOT_TEMP_1 == 8\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 8\r
+# elif BOOST_PP_SLOT_TEMP_1 == 9\r
+#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 9\r
+# endif\r
+#\r
+# if BOOST_PP_ITERATION_FINISH_2_DIGIT_3\r
+#    define BOOST_PP_ITERATION_FINISH_2 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_2_DIGIT_3, BOOST_PP_ITERATION_FINISH_2_DIGIT_2, BOOST_PP_ITERATION_FINISH_2_DIGIT_1)\r
+# elif BOOST_PP_ITERATION_FINISH_2_DIGIT_2\r
+#    define BOOST_PP_ITERATION_FINISH_2 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_2_DIGIT_2, BOOST_PP_ITERATION_FINISH_2_DIGIT_1)\r
+# else\r
+#    define BOOST_PP_ITERATION_FINISH_2 BOOST_PP_ITERATION_FINISH_2_DIGIT_1\r
+# endif\r
diff --git a/boost/boost/preprocessor/iteration/detail/bounds/upper3.hpp b/boost/boost/preprocessor/iteration/detail/bounds/upper3.hpp
new file mode 100644 (file)
index 0000000..f6838f0
--- /dev/null
@@ -0,0 +1,99 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# include <boost/preprocessor/slot/detail/shared.hpp>\r
+#\r
+# undef BOOST_PP_ITERATION_FINISH_3\r
+#\r
+# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_1\r
+# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_2\r
+# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_3\r
+# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_4\r
+# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_5\r
+# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_6\r
+# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_7\r
+# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_8\r
+# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_9\r
+# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_10\r
+#\r
+# if BOOST_PP_SLOT_TEMP_3 == 0\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 0\r
+# elif BOOST_PP_SLOT_TEMP_3 == 1\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 1\r
+# elif BOOST_PP_SLOT_TEMP_3 == 2\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 2\r
+# elif BOOST_PP_SLOT_TEMP_3 == 3\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 3\r
+# elif BOOST_PP_SLOT_TEMP_3 == 4\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 4\r
+# elif BOOST_PP_SLOT_TEMP_3 == 5\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 5\r
+# elif BOOST_PP_SLOT_TEMP_3 == 6\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 6\r
+# elif BOOST_PP_SLOT_TEMP_3 == 7\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 7\r
+# elif BOOST_PP_SLOT_TEMP_3 == 8\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 8\r
+# elif BOOST_PP_SLOT_TEMP_3 == 9\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_2 == 0\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 0\r
+# elif BOOST_PP_SLOT_TEMP_2 == 1\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 1\r
+# elif BOOST_PP_SLOT_TEMP_2 == 2\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 2\r
+# elif BOOST_PP_SLOT_TEMP_2 == 3\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 3\r
+# elif BOOST_PP_SLOT_TEMP_2 == 4\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 4\r
+# elif BOOST_PP_SLOT_TEMP_2 == 5\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 5\r
+# elif BOOST_PP_SLOT_TEMP_2 == 6\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 6\r
+# elif BOOST_PP_SLOT_TEMP_2 == 7\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 7\r
+# elif BOOST_PP_SLOT_TEMP_2 == 8\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 8\r
+# elif BOOST_PP_SLOT_TEMP_2 == 9\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_1 == 0\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 0\r
+# elif BOOST_PP_SLOT_TEMP_1 == 1\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 1\r
+# elif BOOST_PP_SLOT_TEMP_1 == 2\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 2\r
+# elif BOOST_PP_SLOT_TEMP_1 == 3\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 3\r
+# elif BOOST_PP_SLOT_TEMP_1 == 4\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 4\r
+# elif BOOST_PP_SLOT_TEMP_1 == 5\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 5\r
+# elif BOOST_PP_SLOT_TEMP_1 == 6\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 6\r
+# elif BOOST_PP_SLOT_TEMP_1 == 7\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 7\r
+# elif BOOST_PP_SLOT_TEMP_1 == 8\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 8\r
+# elif BOOST_PP_SLOT_TEMP_1 == 9\r
+#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 9\r
+# endif\r
+#\r
+# if BOOST_PP_ITERATION_FINISH_3_DIGIT_3\r
+#    define BOOST_PP_ITERATION_FINISH_3 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_3_DIGIT_3, BOOST_PP_ITERATION_FINISH_3_DIGIT_2, BOOST_PP_ITERATION_FINISH_3_DIGIT_1)\r
+# elif BOOST_PP_ITERATION_FINISH_3_DIGIT_2\r
+#    define BOOST_PP_ITERATION_FINISH_3 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_3_DIGIT_2, BOOST_PP_ITERATION_FINISH_3_DIGIT_1)\r
+# else\r
+#    define BOOST_PP_ITERATION_FINISH_3 BOOST_PP_ITERATION_FINISH_3_DIGIT_1\r
+# endif\r
diff --git a/boost/boost/preprocessor/iteration/detail/bounds/upper4.hpp b/boost/boost/preprocessor/iteration/detail/bounds/upper4.hpp
new file mode 100644 (file)
index 0000000..9049732
--- /dev/null
@@ -0,0 +1,99 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# include <boost/preprocessor/slot/detail/shared.hpp>\r
+#\r
+# undef BOOST_PP_ITERATION_FINISH_4\r
+#\r
+# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_1\r
+# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_2\r
+# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_3\r
+# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_4\r
+# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_5\r
+# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_6\r
+# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_7\r
+# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_8\r
+# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_9\r
+# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_10\r
+#\r
+# if BOOST_PP_SLOT_TEMP_3 == 0\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 0\r
+# elif BOOST_PP_SLOT_TEMP_3 == 1\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 1\r
+# elif BOOST_PP_SLOT_TEMP_3 == 2\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 2\r
+# elif BOOST_PP_SLOT_TEMP_3 == 3\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 3\r
+# elif BOOST_PP_SLOT_TEMP_3 == 4\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 4\r
+# elif BOOST_PP_SLOT_TEMP_3 == 5\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 5\r
+# elif BOOST_PP_SLOT_TEMP_3 == 6\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 6\r
+# elif BOOST_PP_SLOT_TEMP_3 == 7\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 7\r
+# elif BOOST_PP_SLOT_TEMP_3 == 8\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 8\r
+# elif BOOST_PP_SLOT_TEMP_3 == 9\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_2 == 0\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 0\r
+# elif BOOST_PP_SLOT_TEMP_2 == 1\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 1\r
+# elif BOOST_PP_SLOT_TEMP_2 == 2\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 2\r
+# elif BOOST_PP_SLOT_TEMP_2 == 3\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 3\r
+# elif BOOST_PP_SLOT_TEMP_2 == 4\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 4\r
+# elif BOOST_PP_SLOT_TEMP_2 == 5\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 5\r
+# elif BOOST_PP_SLOT_TEMP_2 == 6\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 6\r
+# elif BOOST_PP_SLOT_TEMP_2 == 7\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 7\r
+# elif BOOST_PP_SLOT_TEMP_2 == 8\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 8\r
+# elif BOOST_PP_SLOT_TEMP_2 == 9\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_1 == 0\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 0\r
+# elif BOOST_PP_SLOT_TEMP_1 == 1\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 1\r
+# elif BOOST_PP_SLOT_TEMP_1 == 2\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 2\r
+# elif BOOST_PP_SLOT_TEMP_1 == 3\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 3\r
+# elif BOOST_PP_SLOT_TEMP_1 == 4\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 4\r
+# elif BOOST_PP_SLOT_TEMP_1 == 5\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 5\r
+# elif BOOST_PP_SLOT_TEMP_1 == 6\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 6\r
+# elif BOOST_PP_SLOT_TEMP_1 == 7\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 7\r
+# elif BOOST_PP_SLOT_TEMP_1 == 8\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 8\r
+# elif BOOST_PP_SLOT_TEMP_1 == 9\r
+#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 9\r
+# endif\r
+#\r
+# if BOOST_PP_ITERATION_FINISH_4_DIGIT_3\r
+#    define BOOST_PP_ITERATION_FINISH_4 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_4_DIGIT_3, BOOST_PP_ITERATION_FINISH_4_DIGIT_2, BOOST_PP_ITERATION_FINISH_4_DIGIT_1)\r
+# elif BOOST_PP_ITERATION_FINISH_4_DIGIT_2\r
+#    define BOOST_PP_ITERATION_FINISH_4 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_4_DIGIT_2, BOOST_PP_ITERATION_FINISH_4_DIGIT_1)\r
+# else\r
+#    define BOOST_PP_ITERATION_FINISH_4 BOOST_PP_ITERATION_FINISH_4_DIGIT_1\r
+# endif\r
diff --git a/boost/boost/preprocessor/iteration/detail/bounds/upper5.hpp b/boost/boost/preprocessor/iteration/detail/bounds/upper5.hpp
new file mode 100644 (file)
index 0000000..3fddffd
--- /dev/null
@@ -0,0 +1,99 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# include <boost/preprocessor/slot/detail/shared.hpp>\r
+#\r
+# undef BOOST_PP_ITERATION_FINISH_5\r
+#\r
+# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_1\r
+# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_2\r
+# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_3\r
+# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_4\r
+# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_5\r
+# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_6\r
+# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_7\r
+# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_8\r
+# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_9\r
+# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_10\r
+#\r
+# if BOOST_PP_SLOT_TEMP_3 == 0\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 0\r
+# elif BOOST_PP_SLOT_TEMP_3 == 1\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 1\r
+# elif BOOST_PP_SLOT_TEMP_3 == 2\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 2\r
+# elif BOOST_PP_SLOT_TEMP_3 == 3\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 3\r
+# elif BOOST_PP_SLOT_TEMP_3 == 4\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 4\r
+# elif BOOST_PP_SLOT_TEMP_3 == 5\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 5\r
+# elif BOOST_PP_SLOT_TEMP_3 == 6\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 6\r
+# elif BOOST_PP_SLOT_TEMP_3 == 7\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 7\r
+# elif BOOST_PP_SLOT_TEMP_3 == 8\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 8\r
+# elif BOOST_PP_SLOT_TEMP_3 == 9\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_2 == 0\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 0\r
+# elif BOOST_PP_SLOT_TEMP_2 == 1\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 1\r
+# elif BOOST_PP_SLOT_TEMP_2 == 2\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 2\r
+# elif BOOST_PP_SLOT_TEMP_2 == 3\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 3\r
+# elif BOOST_PP_SLOT_TEMP_2 == 4\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 4\r
+# elif BOOST_PP_SLOT_TEMP_2 == 5\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 5\r
+# elif BOOST_PP_SLOT_TEMP_2 == 6\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 6\r
+# elif BOOST_PP_SLOT_TEMP_2 == 7\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 7\r
+# elif BOOST_PP_SLOT_TEMP_2 == 8\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 8\r
+# elif BOOST_PP_SLOT_TEMP_2 == 9\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_1 == 0\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 0\r
+# elif BOOST_PP_SLOT_TEMP_1 == 1\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 1\r
+# elif BOOST_PP_SLOT_TEMP_1 == 2\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 2\r
+# elif BOOST_PP_SLOT_TEMP_1 == 3\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 3\r
+# elif BOOST_PP_SLOT_TEMP_1 == 4\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 4\r
+# elif BOOST_PP_SLOT_TEMP_1 == 5\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 5\r
+# elif BOOST_PP_SLOT_TEMP_1 == 6\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 6\r
+# elif BOOST_PP_SLOT_TEMP_1 == 7\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 7\r
+# elif BOOST_PP_SLOT_TEMP_1 == 8\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 8\r
+# elif BOOST_PP_SLOT_TEMP_1 == 9\r
+#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 9\r
+# endif\r
+#\r
+# if BOOST_PP_ITERATION_FINISH_5_DIGIT_3\r
+#    define BOOST_PP_ITERATION_FINISH_5 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_5_DIGIT_3, BOOST_PP_ITERATION_FINISH_5_DIGIT_2, BOOST_PP_ITERATION_FINISH_5_DIGIT_1)\r
+# elif BOOST_PP_ITERATION_FINISH_5_DIGIT_2\r
+#    define BOOST_PP_ITERATION_FINISH_5 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_5_DIGIT_2, BOOST_PP_ITERATION_FINISH_5_DIGIT_1)\r
+# else\r
+#    define BOOST_PP_ITERATION_FINISH_5 BOOST_PP_ITERATION_FINISH_5_DIGIT_1\r
+# endif\r
diff --git a/boost/boost/preprocessor/iteration/detail/finish.hpp b/boost/boost/preprocessor/iteration/detail/finish.hpp
new file mode 100644 (file)
index 0000000..7fbd1ff
--- /dev/null
@@ -0,0 +1,99 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# include <boost/preprocessor/slot/detail/shared.hpp>\r
+#\r
+# undef BOOST_PP_LOCAL_FE\r
+#\r
+# undef BOOST_PP_LOCAL_FE_DIGIT_1\r
+# undef BOOST_PP_LOCAL_FE_DIGIT_2\r
+# undef BOOST_PP_LOCAL_FE_DIGIT_3\r
+# undef BOOST_PP_LOCAL_FE_DIGIT_4\r
+# undef BOOST_PP_LOCAL_FE_DIGIT_5\r
+# undef BOOST_PP_LOCAL_FE_DIGIT_6\r
+# undef BOOST_PP_LOCAL_FE_DIGIT_7\r
+# undef BOOST_PP_LOCAL_FE_DIGIT_8\r
+# undef BOOST_PP_LOCAL_FE_DIGIT_9\r
+# undef BOOST_PP_LOCAL_FE_DIGIT_10\r
+#\r
+# if BOOST_PP_SLOT_TEMP_3 == 0\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_3 0\r
+# elif BOOST_PP_SLOT_TEMP_3 == 1\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_3 1\r
+# elif BOOST_PP_SLOT_TEMP_3 == 2\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_3 2\r
+# elif BOOST_PP_SLOT_TEMP_3 == 3\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_3 3\r
+# elif BOOST_PP_SLOT_TEMP_3 == 4\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_3 4\r
+# elif BOOST_PP_SLOT_TEMP_3 == 5\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_3 5\r
+# elif BOOST_PP_SLOT_TEMP_3 == 6\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_3 6\r
+# elif BOOST_PP_SLOT_TEMP_3 == 7\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_3 7\r
+# elif BOOST_PP_SLOT_TEMP_3 == 8\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_3 8\r
+# elif BOOST_PP_SLOT_TEMP_3 == 9\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_3 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_2 == 0\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_2 0\r
+# elif BOOST_PP_SLOT_TEMP_2 == 1\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_2 1\r
+# elif BOOST_PP_SLOT_TEMP_2 == 2\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_2 2\r
+# elif BOOST_PP_SLOT_TEMP_2 == 3\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_2 3\r
+# elif BOOST_PP_SLOT_TEMP_2 == 4\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_2 4\r
+# elif BOOST_PP_SLOT_TEMP_2 == 5\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_2 5\r
+# elif BOOST_PP_SLOT_TEMP_2 == 6\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_2 6\r
+# elif BOOST_PP_SLOT_TEMP_2 == 7\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_2 7\r
+# elif BOOST_PP_SLOT_TEMP_2 == 8\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_2 8\r
+# elif BOOST_PP_SLOT_TEMP_2 == 9\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_2 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_1 == 0\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_1 0\r
+# elif BOOST_PP_SLOT_TEMP_1 == 1\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_1 1\r
+# elif BOOST_PP_SLOT_TEMP_1 == 2\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_1 2\r
+# elif BOOST_PP_SLOT_TEMP_1 == 3\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_1 3\r
+# elif BOOST_PP_SLOT_TEMP_1 == 4\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_1 4\r
+# elif BOOST_PP_SLOT_TEMP_1 == 5\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_1 5\r
+# elif BOOST_PP_SLOT_TEMP_1 == 6\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_1 6\r
+# elif BOOST_PP_SLOT_TEMP_1 == 7\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_1 7\r
+# elif BOOST_PP_SLOT_TEMP_1 == 8\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_1 8\r
+# elif BOOST_PP_SLOT_TEMP_1 == 9\r
+#    define BOOST_PP_LOCAL_FE_DIGIT_1 9\r
+# endif\r
+#\r
+# if BOOST_PP_LOCAL_FE_DIGIT_3\r
+#    define BOOST_PP_LOCAL_FE() BOOST_PP_SLOT_CC_3(BOOST_PP_LOCAL_FE_DIGIT_3, BOOST_PP_LOCAL_FE_DIGIT_2, BOOST_PP_LOCAL_FE_DIGIT_1)\r
+# elif BOOST_PP_LOCAL_FE_DIGIT_2\r
+#    define BOOST_PP_LOCAL_FE() BOOST_PP_SLOT_CC_2(BOOST_PP_LOCAL_FE_DIGIT_2, BOOST_PP_LOCAL_FE_DIGIT_1)\r
+# else\r
+#    define BOOST_PP_LOCAL_FE() BOOST_PP_LOCAL_FE_DIGIT_1\r
+# endif\r
diff --git a/boost/boost/preprocessor/iteration/detail/iter/forward2.hpp b/boost/boost/preprocessor/iteration/detail/iter/forward2.hpp
new file mode 100644 (file)
index 0000000..33e2dda
--- /dev/null
@@ -0,0 +1,1338 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# if defined(BOOST_PP_ITERATION_LIMITS)\r
+#    if !defined(BOOST_PP_FILENAME_2)\r
+#        error BOOST_PP_ERROR:  depth #2 filename is not defined\r
+#    endif\r
+#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS)\r
+#    include <boost/preprocessor/iteration/detail/bounds/lower2.hpp>\r
+#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)\r
+#    include <boost/preprocessor/iteration/detail/bounds/upper2.hpp>\r
+#    define BOOST_PP_ITERATION_FLAGS_2 0\r
+#    undef BOOST_PP_ITERATION_LIMITS\r
+# elif defined(BOOST_PP_ITERATION_PARAMS_2)\r
+#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_2)\r
+#    include <boost/preprocessor/iteration/detail/bounds/lower2.hpp>\r
+#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_2)\r
+#    include <boost/preprocessor/iteration/detail/bounds/upper2.hpp>\r
+#    define BOOST_PP_FILENAME_2 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_2)\r
+#    if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_2) >= 4\r
+#        define BOOST_PP_ITERATION_FLAGS_2 BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_2)\r
+#    else\r
+#        define BOOST_PP_ITERATION_FLAGS_2 0\r
+#    endif\r
+# else\r
+#    error BOOST_PP_ERROR:  depth #2 iteration boundaries or filename not defined\r
+# endif\r
+#\r
+# undef BOOST_PP_ITERATION_DEPTH\r
+# define BOOST_PP_ITERATION_DEPTH() 2\r
+#\r
+# if (BOOST_PP_ITERATION_START_2) > (BOOST_PP_ITERATION_FINISH_2)\r
+#    include <boost/preprocessor/iteration/detail/iter/reverse2.hpp>\r
+# else\r
+#    if BOOST_PP_ITERATION_START_2 <= 0 && BOOST_PP_ITERATION_FINISH_2 >= 0\r
+#        define BOOST_PP_ITERATION_2 0\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 1 && BOOST_PP_ITERATION_FINISH_2 >= 1\r
+#        define BOOST_PP_ITERATION_2 1\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 2 && BOOST_PP_ITERATION_FINISH_2 >= 2\r
+#        define BOOST_PP_ITERATION_2 2\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 3 && BOOST_PP_ITERATION_FINISH_2 >= 3\r
+#        define BOOST_PP_ITERATION_2 3\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 4 && BOOST_PP_ITERATION_FINISH_2 >= 4\r
+#        define BOOST_PP_ITERATION_2 4\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 5 && BOOST_PP_ITERATION_FINISH_2 >= 5\r
+#        define BOOST_PP_ITERATION_2 5\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 6 && BOOST_PP_ITERATION_FINISH_2 >= 6\r
+#        define BOOST_PP_ITERATION_2 6\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 7 && BOOST_PP_ITERATION_FINISH_2 >= 7\r
+#        define BOOST_PP_ITERATION_2 7\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 8 && BOOST_PP_ITERATION_FINISH_2 >= 8\r
+#        define BOOST_PP_ITERATION_2 8\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 9 && BOOST_PP_ITERATION_FINISH_2 >= 9\r
+#        define BOOST_PP_ITERATION_2 9\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 10 && BOOST_PP_ITERATION_FINISH_2 >= 10\r
+#        define BOOST_PP_ITERATION_2 10\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 11 && BOOST_PP_ITERATION_FINISH_2 >= 11\r
+#        define BOOST_PP_ITERATION_2 11\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 12 && BOOST_PP_ITERATION_FINISH_2 >= 12\r
+#        define BOOST_PP_ITERATION_2 12\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 13 && BOOST_PP_ITERATION_FINISH_2 >= 13\r
+#        define BOOST_PP_ITERATION_2 13\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 14 && BOOST_PP_ITERATION_FINISH_2 >= 14\r
+#        define BOOST_PP_ITERATION_2 14\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 15 && BOOST_PP_ITERATION_FINISH_2 >= 15\r
+#        define BOOST_PP_ITERATION_2 15\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 16 && BOOST_PP_ITERATION_FINISH_2 >= 16\r
+#        define BOOST_PP_ITERATION_2 16\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 17 && BOOST_PP_ITERATION_FINISH_2 >= 17\r
+#        define BOOST_PP_ITERATION_2 17\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 18 && BOOST_PP_ITERATION_FINISH_2 >= 18\r
+#        define BOOST_PP_ITERATION_2 18\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 19 && BOOST_PP_ITERATION_FINISH_2 >= 19\r
+#        define BOOST_PP_ITERATION_2 19\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 20 && BOOST_PP_ITERATION_FINISH_2 >= 20\r
+#        define BOOST_PP_ITERATION_2 20\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 21 && BOOST_PP_ITERATION_FINISH_2 >= 21\r
+#        define BOOST_PP_ITERATION_2 21\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 22 && BOOST_PP_ITERATION_FINISH_2 >= 22\r
+#        define BOOST_PP_ITERATION_2 22\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 23 && BOOST_PP_ITERATION_FINISH_2 >= 23\r
+#        define BOOST_PP_ITERATION_2 23\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 24 && BOOST_PP_ITERATION_FINISH_2 >= 24\r
+#        define BOOST_PP_ITERATION_2 24\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 25 && BOOST_PP_ITERATION_FINISH_2 >= 25\r
+#        define BOOST_PP_ITERATION_2 25\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 26 && BOOST_PP_ITERATION_FINISH_2 >= 26\r
+#        define BOOST_PP_ITERATION_2 26\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 27 && BOOST_PP_ITERATION_FINISH_2 >= 27\r
+#        define BOOST_PP_ITERATION_2 27\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 28 && BOOST_PP_ITERATION_FINISH_2 >= 28\r
+#        define BOOST_PP_ITERATION_2 28\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 29 && BOOST_PP_ITERATION_FINISH_2 >= 29\r
+#        define BOOST_PP_ITERATION_2 29\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 30 && BOOST_PP_ITERATION_FINISH_2 >= 30\r
+#        define BOOST_PP_ITERATION_2 30\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 31 && BOOST_PP_ITERATION_FINISH_2 >= 31\r
+#        define BOOST_PP_ITERATION_2 31\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 32 && BOOST_PP_ITERATION_FINISH_2 >= 32\r
+#        define BOOST_PP_ITERATION_2 32\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 33 && BOOST_PP_ITERATION_FINISH_2 >= 33\r
+#        define BOOST_PP_ITERATION_2 33\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 34 && BOOST_PP_ITERATION_FINISH_2 >= 34\r
+#        define BOOST_PP_ITERATION_2 34\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 35 && BOOST_PP_ITERATION_FINISH_2 >= 35\r
+#        define BOOST_PP_ITERATION_2 35\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 36 && BOOST_PP_ITERATION_FINISH_2 >= 36\r
+#        define BOOST_PP_ITERATION_2 36\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 37 && BOOST_PP_ITERATION_FINISH_2 >= 37\r
+#        define BOOST_PP_ITERATION_2 37\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 38 && BOOST_PP_ITERATION_FINISH_2 >= 38\r
+#        define BOOST_PP_ITERATION_2 38\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 39 && BOOST_PP_ITERATION_FINISH_2 >= 39\r
+#        define BOOST_PP_ITERATION_2 39\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 40 && BOOST_PP_ITERATION_FINISH_2 >= 40\r
+#        define BOOST_PP_ITERATION_2 40\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 41 && BOOST_PP_ITERATION_FINISH_2 >= 41\r
+#        define BOOST_PP_ITERATION_2 41\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 42 && BOOST_PP_ITERATION_FINISH_2 >= 42\r
+#        define BOOST_PP_ITERATION_2 42\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 43 && BOOST_PP_ITERATION_FINISH_2 >= 43\r
+#        define BOOST_PP_ITERATION_2 43\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 44 && BOOST_PP_ITERATION_FINISH_2 >= 44\r
+#        define BOOST_PP_ITERATION_2 44\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 45 && BOOST_PP_ITERATION_FINISH_2 >= 45\r
+#        define BOOST_PP_ITERATION_2 45\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 46 && BOOST_PP_ITERATION_FINISH_2 >= 46\r
+#        define BOOST_PP_ITERATION_2 46\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 47 && BOOST_PP_ITERATION_FINISH_2 >= 47\r
+#        define BOOST_PP_ITERATION_2 47\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 48 && BOOST_PP_ITERATION_FINISH_2 >= 48\r
+#        define BOOST_PP_ITERATION_2 48\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 49 && BOOST_PP_ITERATION_FINISH_2 >= 49\r
+#        define BOOST_PP_ITERATION_2 49\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 50 && BOOST_PP_ITERATION_FINISH_2 >= 50\r
+#        define BOOST_PP_ITERATION_2 50\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 51 && BOOST_PP_ITERATION_FINISH_2 >= 51\r
+#        define BOOST_PP_ITERATION_2 51\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 52 && BOOST_PP_ITERATION_FINISH_2 >= 52\r
+#        define BOOST_PP_ITERATION_2 52\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 53 && BOOST_PP_ITERATION_FINISH_2 >= 53\r
+#        define BOOST_PP_ITERATION_2 53\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 54 && BOOST_PP_ITERATION_FINISH_2 >= 54\r
+#        define BOOST_PP_ITERATION_2 54\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 55 && BOOST_PP_ITERATION_FINISH_2 >= 55\r
+#        define BOOST_PP_ITERATION_2 55\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 56 && BOOST_PP_ITERATION_FINISH_2 >= 56\r
+#        define BOOST_PP_ITERATION_2 56\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 57 && BOOST_PP_ITERATION_FINISH_2 >= 57\r
+#        define BOOST_PP_ITERATION_2 57\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 58 && BOOST_PP_ITERATION_FINISH_2 >= 58\r
+#        define BOOST_PP_ITERATION_2 58\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 59 && BOOST_PP_ITERATION_FINISH_2 >= 59\r
+#        define BOOST_PP_ITERATION_2 59\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 60 && BOOST_PP_ITERATION_FINISH_2 >= 60\r
+#        define BOOST_PP_ITERATION_2 60\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 61 && BOOST_PP_ITERATION_FINISH_2 >= 61\r
+#        define BOOST_PP_ITERATION_2 61\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 62 && BOOST_PP_ITERATION_FINISH_2 >= 62\r
+#        define BOOST_PP_ITERATION_2 62\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 63 && BOOST_PP_ITERATION_FINISH_2 >= 63\r
+#        define BOOST_PP_ITERATION_2 63\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 64 && BOOST_PP_ITERATION_FINISH_2 >= 64\r
+#        define BOOST_PP_ITERATION_2 64\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 65 && BOOST_PP_ITERATION_FINISH_2 >= 65\r
+#        define BOOST_PP_ITERATION_2 65\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 66 && BOOST_PP_ITERATION_FINISH_2 >= 66\r
+#        define BOOST_PP_ITERATION_2 66\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 67 && BOOST_PP_ITERATION_FINISH_2 >= 67\r
+#        define BOOST_PP_ITERATION_2 67\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 68 && BOOST_PP_ITERATION_FINISH_2 >= 68\r
+#        define BOOST_PP_ITERATION_2 68\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 69 && BOOST_PP_ITERATION_FINISH_2 >= 69\r
+#        define BOOST_PP_ITERATION_2 69\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 70 && BOOST_PP_ITERATION_FINISH_2 >= 70\r
+#        define BOOST_PP_ITERATION_2 70\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 71 && BOOST_PP_ITERATION_FINISH_2 >= 71\r
+#        define BOOST_PP_ITERATION_2 71\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 72 && BOOST_PP_ITERATION_FINISH_2 >= 72\r
+#        define BOOST_PP_ITERATION_2 72\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 73 && BOOST_PP_ITERATION_FINISH_2 >= 73\r
+#        define BOOST_PP_ITERATION_2 73\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 74 && BOOST_PP_ITERATION_FINISH_2 >= 74\r
+#        define BOOST_PP_ITERATION_2 74\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 75 && BOOST_PP_ITERATION_FINISH_2 >= 75\r
+#        define BOOST_PP_ITERATION_2 75\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 76 && BOOST_PP_ITERATION_FINISH_2 >= 76\r
+#        define BOOST_PP_ITERATION_2 76\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 77 && BOOST_PP_ITERATION_FINISH_2 >= 77\r
+#        define BOOST_PP_ITERATION_2 77\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 78 && BOOST_PP_ITERATION_FINISH_2 >= 78\r
+#        define BOOST_PP_ITERATION_2 78\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 79 && BOOST_PP_ITERATION_FINISH_2 >= 79\r
+#        define BOOST_PP_ITERATION_2 79\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 80 && BOOST_PP_ITERATION_FINISH_2 >= 80\r
+#        define BOOST_PP_ITERATION_2 80\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 81 && BOOST_PP_ITERATION_FINISH_2 >= 81\r
+#        define BOOST_PP_ITERATION_2 81\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 82 && BOOST_PP_ITERATION_FINISH_2 >= 82\r
+#        define BOOST_PP_ITERATION_2 82\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 83 && BOOST_PP_ITERATION_FINISH_2 >= 83\r
+#        define BOOST_PP_ITERATION_2 83\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 84 && BOOST_PP_ITERATION_FINISH_2 >= 84\r
+#        define BOOST_PP_ITERATION_2 84\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 85 && BOOST_PP_ITERATION_FINISH_2 >= 85\r
+#        define BOOST_PP_ITERATION_2 85\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 86 && BOOST_PP_ITERATION_FINISH_2 >= 86\r
+#        define BOOST_PP_ITERATION_2 86\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 87 && BOOST_PP_ITERATION_FINISH_2 >= 87\r
+#        define BOOST_PP_ITERATION_2 87\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 88 && BOOST_PP_ITERATION_FINISH_2 >= 88\r
+#        define BOOST_PP_ITERATION_2 88\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 89 && BOOST_PP_ITERATION_FINISH_2 >= 89\r
+#        define BOOST_PP_ITERATION_2 89\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 90 && BOOST_PP_ITERATION_FINISH_2 >= 90\r
+#        define BOOST_PP_ITERATION_2 90\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 91 && BOOST_PP_ITERATION_FINISH_2 >= 91\r
+#        define BOOST_PP_ITERATION_2 91\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 92 && BOOST_PP_ITERATION_FINISH_2 >= 92\r
+#        define BOOST_PP_ITERATION_2 92\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 93 && BOOST_PP_ITERATION_FINISH_2 >= 93\r
+#        define BOOST_PP_ITERATION_2 93\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 94 && BOOST_PP_ITERATION_FINISH_2 >= 94\r
+#        define BOOST_PP_ITERATION_2 94\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 95 && BOOST_PP_ITERATION_FINISH_2 >= 95\r
+#        define BOOST_PP_ITERATION_2 95\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 96 && BOOST_PP_ITERATION_FINISH_2 >= 96\r
+#        define BOOST_PP_ITERATION_2 96\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 97 && BOOST_PP_ITERATION_FINISH_2 >= 97\r
+#        define BOOST_PP_ITERATION_2 97\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 98 && BOOST_PP_ITERATION_FINISH_2 >= 98\r
+#        define BOOST_PP_ITERATION_2 98\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 99 && BOOST_PP_ITERATION_FINISH_2 >= 99\r
+#        define BOOST_PP_ITERATION_2 99\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 100 && BOOST_PP_ITERATION_FINISH_2 >= 100\r
+#        define BOOST_PP_ITERATION_2 100\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 101 && BOOST_PP_ITERATION_FINISH_2 >= 101\r
+#        define BOOST_PP_ITERATION_2 101\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 102 && BOOST_PP_ITERATION_FINISH_2 >= 102\r
+#        define BOOST_PP_ITERATION_2 102\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 103 && BOOST_PP_ITERATION_FINISH_2 >= 103\r
+#        define BOOST_PP_ITERATION_2 103\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 104 && BOOST_PP_ITERATION_FINISH_2 >= 104\r
+#        define BOOST_PP_ITERATION_2 104\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 105 && BOOST_PP_ITERATION_FINISH_2 >= 105\r
+#        define BOOST_PP_ITERATION_2 105\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 106 && BOOST_PP_ITERATION_FINISH_2 >= 106\r
+#        define BOOST_PP_ITERATION_2 106\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 107 && BOOST_PP_ITERATION_FINISH_2 >= 107\r
+#        define BOOST_PP_ITERATION_2 107\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 108 && BOOST_PP_ITERATION_FINISH_2 >= 108\r
+#        define BOOST_PP_ITERATION_2 108\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 109 && BOOST_PP_ITERATION_FINISH_2 >= 109\r
+#        define BOOST_PP_ITERATION_2 109\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 110 && BOOST_PP_ITERATION_FINISH_2 >= 110\r
+#        define BOOST_PP_ITERATION_2 110\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 111 && BOOST_PP_ITERATION_FINISH_2 >= 111\r
+#        define BOOST_PP_ITERATION_2 111\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 112 && BOOST_PP_ITERATION_FINISH_2 >= 112\r
+#        define BOOST_PP_ITERATION_2 112\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 113 && BOOST_PP_ITERATION_FINISH_2 >= 113\r
+#        define BOOST_PP_ITERATION_2 113\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 114 && BOOST_PP_ITERATION_FINISH_2 >= 114\r
+#        define BOOST_PP_ITERATION_2 114\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 115 && BOOST_PP_ITERATION_FINISH_2 >= 115\r
+#        define BOOST_PP_ITERATION_2 115\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 116 && BOOST_PP_ITERATION_FINISH_2 >= 116\r
+#        define BOOST_PP_ITERATION_2 116\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 117 && BOOST_PP_ITERATION_FINISH_2 >= 117\r
+#        define BOOST_PP_ITERATION_2 117\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 118 && BOOST_PP_ITERATION_FINISH_2 >= 118\r
+#        define BOOST_PP_ITERATION_2 118\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 119 && BOOST_PP_ITERATION_FINISH_2 >= 119\r
+#        define BOOST_PP_ITERATION_2 119\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 120 && BOOST_PP_ITERATION_FINISH_2 >= 120\r
+#        define BOOST_PP_ITERATION_2 120\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 121 && BOOST_PP_ITERATION_FINISH_2 >= 121\r
+#        define BOOST_PP_ITERATION_2 121\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 122 && BOOST_PP_ITERATION_FINISH_2 >= 122\r
+#        define BOOST_PP_ITERATION_2 122\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 123 && BOOST_PP_ITERATION_FINISH_2 >= 123\r
+#        define BOOST_PP_ITERATION_2 123\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 124 && BOOST_PP_ITERATION_FINISH_2 >= 124\r
+#        define BOOST_PP_ITERATION_2 124\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 125 && BOOST_PP_ITERATION_FINISH_2 >= 125\r
+#        define BOOST_PP_ITERATION_2 125\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 126 && BOOST_PP_ITERATION_FINISH_2 >= 126\r
+#        define BOOST_PP_ITERATION_2 126\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 127 && BOOST_PP_ITERATION_FINISH_2 >= 127\r
+#        define BOOST_PP_ITERATION_2 127\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 128 && BOOST_PP_ITERATION_FINISH_2 >= 128\r
+#        define BOOST_PP_ITERATION_2 128\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 129 && BOOST_PP_ITERATION_FINISH_2 >= 129\r
+#        define BOOST_PP_ITERATION_2 129\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 130 && BOOST_PP_ITERATION_FINISH_2 >= 130\r
+#        define BOOST_PP_ITERATION_2 130\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 131 && BOOST_PP_ITERATION_FINISH_2 >= 131\r
+#        define BOOST_PP_ITERATION_2 131\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 132 && BOOST_PP_ITERATION_FINISH_2 >= 132\r
+#        define BOOST_PP_ITERATION_2 132\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 133 && BOOST_PP_ITERATION_FINISH_2 >= 133\r
+#        define BOOST_PP_ITERATION_2 133\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 134 && BOOST_PP_ITERATION_FINISH_2 >= 134\r
+#        define BOOST_PP_ITERATION_2 134\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 135 && BOOST_PP_ITERATION_FINISH_2 >= 135\r
+#        define BOOST_PP_ITERATION_2 135\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 136 && BOOST_PP_ITERATION_FINISH_2 >= 136\r
+#        define BOOST_PP_ITERATION_2 136\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 137 && BOOST_PP_ITERATION_FINISH_2 >= 137\r
+#        define BOOST_PP_ITERATION_2 137\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 138 && BOOST_PP_ITERATION_FINISH_2 >= 138\r
+#        define BOOST_PP_ITERATION_2 138\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 139 && BOOST_PP_ITERATION_FINISH_2 >= 139\r
+#        define BOOST_PP_ITERATION_2 139\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 140 && BOOST_PP_ITERATION_FINISH_2 >= 140\r
+#        define BOOST_PP_ITERATION_2 140\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 141 && BOOST_PP_ITERATION_FINISH_2 >= 141\r
+#        define BOOST_PP_ITERATION_2 141\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 142 && BOOST_PP_ITERATION_FINISH_2 >= 142\r
+#        define BOOST_PP_ITERATION_2 142\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 143 && BOOST_PP_ITERATION_FINISH_2 >= 143\r
+#        define BOOST_PP_ITERATION_2 143\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 144 && BOOST_PP_ITERATION_FINISH_2 >= 144\r
+#        define BOOST_PP_ITERATION_2 144\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 145 && BOOST_PP_ITERATION_FINISH_2 >= 145\r
+#        define BOOST_PP_ITERATION_2 145\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 146 && BOOST_PP_ITERATION_FINISH_2 >= 146\r
+#        define BOOST_PP_ITERATION_2 146\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 147 && BOOST_PP_ITERATION_FINISH_2 >= 147\r
+#        define BOOST_PP_ITERATION_2 147\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 148 && BOOST_PP_ITERATION_FINISH_2 >= 148\r
+#        define BOOST_PP_ITERATION_2 148\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 149 && BOOST_PP_ITERATION_FINISH_2 >= 149\r
+#        define BOOST_PP_ITERATION_2 149\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 150 && BOOST_PP_ITERATION_FINISH_2 >= 150\r
+#        define BOOST_PP_ITERATION_2 150\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 151 && BOOST_PP_ITERATION_FINISH_2 >= 151\r
+#        define BOOST_PP_ITERATION_2 151\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 152 && BOOST_PP_ITERATION_FINISH_2 >= 152\r
+#        define BOOST_PP_ITERATION_2 152\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 153 && BOOST_PP_ITERATION_FINISH_2 >= 153\r
+#        define BOOST_PP_ITERATION_2 153\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 154 && BOOST_PP_ITERATION_FINISH_2 >= 154\r
+#        define BOOST_PP_ITERATION_2 154\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 155 && BOOST_PP_ITERATION_FINISH_2 >= 155\r
+#        define BOOST_PP_ITERATION_2 155\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 156 && BOOST_PP_ITERATION_FINISH_2 >= 156\r
+#        define BOOST_PP_ITERATION_2 156\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 157 && BOOST_PP_ITERATION_FINISH_2 >= 157\r
+#        define BOOST_PP_ITERATION_2 157\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 158 && BOOST_PP_ITERATION_FINISH_2 >= 158\r
+#        define BOOST_PP_ITERATION_2 158\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 159 && BOOST_PP_ITERATION_FINISH_2 >= 159\r
+#        define BOOST_PP_ITERATION_2 159\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 160 && BOOST_PP_ITERATION_FINISH_2 >= 160\r
+#        define BOOST_PP_ITERATION_2 160\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 161 && BOOST_PP_ITERATION_FINISH_2 >= 161\r
+#        define BOOST_PP_ITERATION_2 161\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 162 && BOOST_PP_ITERATION_FINISH_2 >= 162\r
+#        define BOOST_PP_ITERATION_2 162\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 163 && BOOST_PP_ITERATION_FINISH_2 >= 163\r
+#        define BOOST_PP_ITERATION_2 163\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 164 && BOOST_PP_ITERATION_FINISH_2 >= 164\r
+#        define BOOST_PP_ITERATION_2 164\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 165 && BOOST_PP_ITERATION_FINISH_2 >= 165\r
+#        define BOOST_PP_ITERATION_2 165\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 166 && BOOST_PP_ITERATION_FINISH_2 >= 166\r
+#        define BOOST_PP_ITERATION_2 166\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 167 && BOOST_PP_ITERATION_FINISH_2 >= 167\r
+#        define BOOST_PP_ITERATION_2 167\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 168 && BOOST_PP_ITERATION_FINISH_2 >= 168\r
+#        define BOOST_PP_ITERATION_2 168\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 169 && BOOST_PP_ITERATION_FINISH_2 >= 169\r
+#        define BOOST_PP_ITERATION_2 169\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 170 && BOOST_PP_ITERATION_FINISH_2 >= 170\r
+#        define BOOST_PP_ITERATION_2 170\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 171 && BOOST_PP_ITERATION_FINISH_2 >= 171\r
+#        define BOOST_PP_ITERATION_2 171\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 172 && BOOST_PP_ITERATION_FINISH_2 >= 172\r
+#        define BOOST_PP_ITERATION_2 172\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 173 && BOOST_PP_ITERATION_FINISH_2 >= 173\r
+#        define BOOST_PP_ITERATION_2 173\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 174 && BOOST_PP_ITERATION_FINISH_2 >= 174\r
+#        define BOOST_PP_ITERATION_2 174\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 175 && BOOST_PP_ITERATION_FINISH_2 >= 175\r
+#        define BOOST_PP_ITERATION_2 175\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 176 && BOOST_PP_ITERATION_FINISH_2 >= 176\r
+#        define BOOST_PP_ITERATION_2 176\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 177 && BOOST_PP_ITERATION_FINISH_2 >= 177\r
+#        define BOOST_PP_ITERATION_2 177\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 178 && BOOST_PP_ITERATION_FINISH_2 >= 178\r
+#        define BOOST_PP_ITERATION_2 178\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 179 && BOOST_PP_ITERATION_FINISH_2 >= 179\r
+#        define BOOST_PP_ITERATION_2 179\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 180 && BOOST_PP_ITERATION_FINISH_2 >= 180\r
+#        define BOOST_PP_ITERATION_2 180\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 181 && BOOST_PP_ITERATION_FINISH_2 >= 181\r
+#        define BOOST_PP_ITERATION_2 181\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 182 && BOOST_PP_ITERATION_FINISH_2 >= 182\r
+#        define BOOST_PP_ITERATION_2 182\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 183 && BOOST_PP_ITERATION_FINISH_2 >= 183\r
+#        define BOOST_PP_ITERATION_2 183\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 184 && BOOST_PP_ITERATION_FINISH_2 >= 184\r
+#        define BOOST_PP_ITERATION_2 184\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 185 && BOOST_PP_ITERATION_FINISH_2 >= 185\r
+#        define BOOST_PP_ITERATION_2 185\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 186 && BOOST_PP_ITERATION_FINISH_2 >= 186\r
+#        define BOOST_PP_ITERATION_2 186\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 187 && BOOST_PP_ITERATION_FINISH_2 >= 187\r
+#        define BOOST_PP_ITERATION_2 187\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 188 && BOOST_PP_ITERATION_FINISH_2 >= 188\r
+#        define BOOST_PP_ITERATION_2 188\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 189 && BOOST_PP_ITERATION_FINISH_2 >= 189\r
+#        define BOOST_PP_ITERATION_2 189\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 190 && BOOST_PP_ITERATION_FINISH_2 >= 190\r
+#        define BOOST_PP_ITERATION_2 190\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 191 && BOOST_PP_ITERATION_FINISH_2 >= 191\r
+#        define BOOST_PP_ITERATION_2 191\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 192 && BOOST_PP_ITERATION_FINISH_2 >= 192\r
+#        define BOOST_PP_ITERATION_2 192\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 193 && BOOST_PP_ITERATION_FINISH_2 >= 193\r
+#        define BOOST_PP_ITERATION_2 193\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 194 && BOOST_PP_ITERATION_FINISH_2 >= 194\r
+#        define BOOST_PP_ITERATION_2 194\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 195 && BOOST_PP_ITERATION_FINISH_2 >= 195\r
+#        define BOOST_PP_ITERATION_2 195\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 196 && BOOST_PP_ITERATION_FINISH_2 >= 196\r
+#        define BOOST_PP_ITERATION_2 196\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 197 && BOOST_PP_ITERATION_FINISH_2 >= 197\r
+#        define BOOST_PP_ITERATION_2 197\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 198 && BOOST_PP_ITERATION_FINISH_2 >= 198\r
+#        define BOOST_PP_ITERATION_2 198\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 199 && BOOST_PP_ITERATION_FINISH_2 >= 199\r
+#        define BOOST_PP_ITERATION_2 199\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 200 && BOOST_PP_ITERATION_FINISH_2 >= 200\r
+#        define BOOST_PP_ITERATION_2 200\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 201 && BOOST_PP_ITERATION_FINISH_2 >= 201\r
+#        define BOOST_PP_ITERATION_2 201\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 202 && BOOST_PP_ITERATION_FINISH_2 >= 202\r
+#        define BOOST_PP_ITERATION_2 202\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 203 && BOOST_PP_ITERATION_FINISH_2 >= 203\r
+#        define BOOST_PP_ITERATION_2 203\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 204 && BOOST_PP_ITERATION_FINISH_2 >= 204\r
+#        define BOOST_PP_ITERATION_2 204\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 205 && BOOST_PP_ITERATION_FINISH_2 >= 205\r
+#        define BOOST_PP_ITERATION_2 205\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 206 && BOOST_PP_ITERATION_FINISH_2 >= 206\r
+#        define BOOST_PP_ITERATION_2 206\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 207 && BOOST_PP_ITERATION_FINISH_2 >= 207\r
+#        define BOOST_PP_ITERATION_2 207\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 208 && BOOST_PP_ITERATION_FINISH_2 >= 208\r
+#        define BOOST_PP_ITERATION_2 208\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 209 && BOOST_PP_ITERATION_FINISH_2 >= 209\r
+#        define BOOST_PP_ITERATION_2 209\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 210 && BOOST_PP_ITERATION_FINISH_2 >= 210\r
+#        define BOOST_PP_ITERATION_2 210\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 211 && BOOST_PP_ITERATION_FINISH_2 >= 211\r
+#        define BOOST_PP_ITERATION_2 211\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 212 && BOOST_PP_ITERATION_FINISH_2 >= 212\r
+#        define BOOST_PP_ITERATION_2 212\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 213 && BOOST_PP_ITERATION_FINISH_2 >= 213\r
+#        define BOOST_PP_ITERATION_2 213\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 214 && BOOST_PP_ITERATION_FINISH_2 >= 214\r
+#        define BOOST_PP_ITERATION_2 214\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 215 && BOOST_PP_ITERATION_FINISH_2 >= 215\r
+#        define BOOST_PP_ITERATION_2 215\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 216 && BOOST_PP_ITERATION_FINISH_2 >= 216\r
+#        define BOOST_PP_ITERATION_2 216\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 217 && BOOST_PP_ITERATION_FINISH_2 >= 217\r
+#        define BOOST_PP_ITERATION_2 217\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 218 && BOOST_PP_ITERATION_FINISH_2 >= 218\r
+#        define BOOST_PP_ITERATION_2 218\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 219 && BOOST_PP_ITERATION_FINISH_2 >= 219\r
+#        define BOOST_PP_ITERATION_2 219\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 220 && BOOST_PP_ITERATION_FINISH_2 >= 220\r
+#        define BOOST_PP_ITERATION_2 220\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 221 && BOOST_PP_ITERATION_FINISH_2 >= 221\r
+#        define BOOST_PP_ITERATION_2 221\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 222 && BOOST_PP_ITERATION_FINISH_2 >= 222\r
+#        define BOOST_PP_ITERATION_2 222\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 223 && BOOST_PP_ITERATION_FINISH_2 >= 223\r
+#        define BOOST_PP_ITERATION_2 223\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 224 && BOOST_PP_ITERATION_FINISH_2 >= 224\r
+#        define BOOST_PP_ITERATION_2 224\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 225 && BOOST_PP_ITERATION_FINISH_2 >= 225\r
+#        define BOOST_PP_ITERATION_2 225\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 226 && BOOST_PP_ITERATION_FINISH_2 >= 226\r
+#        define BOOST_PP_ITERATION_2 226\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 227 && BOOST_PP_ITERATION_FINISH_2 >= 227\r
+#        define BOOST_PP_ITERATION_2 227\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 228 && BOOST_PP_ITERATION_FINISH_2 >= 228\r
+#        define BOOST_PP_ITERATION_2 228\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 229 && BOOST_PP_ITERATION_FINISH_2 >= 229\r
+#        define BOOST_PP_ITERATION_2 229\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 230 && BOOST_PP_ITERATION_FINISH_2 >= 230\r
+#        define BOOST_PP_ITERATION_2 230\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 231 && BOOST_PP_ITERATION_FINISH_2 >= 231\r
+#        define BOOST_PP_ITERATION_2 231\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 232 && BOOST_PP_ITERATION_FINISH_2 >= 232\r
+#        define BOOST_PP_ITERATION_2 232\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 233 && BOOST_PP_ITERATION_FINISH_2 >= 233\r
+#        define BOOST_PP_ITERATION_2 233\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 234 && BOOST_PP_ITERATION_FINISH_2 >= 234\r
+#        define BOOST_PP_ITERATION_2 234\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 235 && BOOST_PP_ITERATION_FINISH_2 >= 235\r
+#        define BOOST_PP_ITERATION_2 235\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 236 && BOOST_PP_ITERATION_FINISH_2 >= 236\r
+#        define BOOST_PP_ITERATION_2 236\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 237 && BOOST_PP_ITERATION_FINISH_2 >= 237\r
+#        define BOOST_PP_ITERATION_2 237\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 238 && BOOST_PP_ITERATION_FINISH_2 >= 238\r
+#        define BOOST_PP_ITERATION_2 238\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 239 && BOOST_PP_ITERATION_FINISH_2 >= 239\r
+#        define BOOST_PP_ITERATION_2 239\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 240 && BOOST_PP_ITERATION_FINISH_2 >= 240\r
+#        define BOOST_PP_ITERATION_2 240\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 241 && BOOST_PP_ITERATION_FINISH_2 >= 241\r
+#        define BOOST_PP_ITERATION_2 241\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 242 && BOOST_PP_ITERATION_FINISH_2 >= 242\r
+#        define BOOST_PP_ITERATION_2 242\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 243 && BOOST_PP_ITERATION_FINISH_2 >= 243\r
+#        define BOOST_PP_ITERATION_2 243\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 244 && BOOST_PP_ITERATION_FINISH_2 >= 244\r
+#        define BOOST_PP_ITERATION_2 244\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 245 && BOOST_PP_ITERATION_FINISH_2 >= 245\r
+#        define BOOST_PP_ITERATION_2 245\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 246 && BOOST_PP_ITERATION_FINISH_2 >= 246\r
+#        define BOOST_PP_ITERATION_2 246\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 247 && BOOST_PP_ITERATION_FINISH_2 >= 247\r
+#        define BOOST_PP_ITERATION_2 247\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 248 && BOOST_PP_ITERATION_FINISH_2 >= 248\r
+#        define BOOST_PP_ITERATION_2 248\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 249 && BOOST_PP_ITERATION_FINISH_2 >= 249\r
+#        define BOOST_PP_ITERATION_2 249\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 250 && BOOST_PP_ITERATION_FINISH_2 >= 250\r
+#        define BOOST_PP_ITERATION_2 250\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 251 && BOOST_PP_ITERATION_FINISH_2 >= 251\r
+#        define BOOST_PP_ITERATION_2 251\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 252 && BOOST_PP_ITERATION_FINISH_2 >= 252\r
+#        define BOOST_PP_ITERATION_2 252\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 253 && BOOST_PP_ITERATION_FINISH_2 >= 253\r
+#        define BOOST_PP_ITERATION_2 253\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 254 && BOOST_PP_ITERATION_FINISH_2 >= 254\r
+#        define BOOST_PP_ITERATION_2 254\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 255 && BOOST_PP_ITERATION_FINISH_2 >= 255\r
+#        define BOOST_PP_ITERATION_2 255\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_2 <= 256 && BOOST_PP_ITERATION_FINISH_2 >= 256\r
+#        define BOOST_PP_ITERATION_2 256\r
+#        include BOOST_PP_FILENAME_2\r
+#        undef BOOST_PP_ITERATION_2\r
+#    endif\r
+# endif\r
+#\r
+# undef BOOST_PP_ITERATION_DEPTH\r
+# define BOOST_PP_ITERATION_DEPTH() 1\r
+#\r
+# undef BOOST_PP_ITERATION_START_2\r
+# undef BOOST_PP_ITERATION_FINISH_2\r
+# undef BOOST_PP_FILENAME_2\r
+#\r
+# undef BOOST_PP_ITERATION_FLAGS_2\r
+# undef BOOST_PP_ITERATION_PARAMS_2\r
diff --git a/boost/boost/preprocessor/iteration/detail/iter/forward3.hpp b/boost/boost/preprocessor/iteration/detail/iter/forward3.hpp
new file mode 100644 (file)
index 0000000..e0a95f3
--- /dev/null
@@ -0,0 +1,1338 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# if defined(BOOST_PP_ITERATION_LIMITS)\r
+#    if !defined(BOOST_PP_FILENAME_3)\r
+#        error BOOST_PP_ERROR:  depth #3 filename is not defined\r
+#    endif\r
+#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS)\r
+#    include <boost/preprocessor/iteration/detail/bounds/lower3.hpp>\r
+#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)\r
+#    include <boost/preprocessor/iteration/detail/bounds/upper3.hpp>\r
+#    define BOOST_PP_ITERATION_FLAGS_3 0\r
+#    undef BOOST_PP_ITERATION_LIMITS\r
+# elif defined(BOOST_PP_ITERATION_PARAMS_3)\r
+#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_3)\r
+#    include <boost/preprocessor/iteration/detail/bounds/lower3.hpp>\r
+#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_3)\r
+#    include <boost/preprocessor/iteration/detail/bounds/upper3.hpp>\r
+#    define BOOST_PP_FILENAME_3 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_3)\r
+#    if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_3) >= 4\r
+#        define BOOST_PP_ITERATION_FLAGS_3 BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_3)\r
+#    else\r
+#        define BOOST_PP_ITERATION_FLAGS_3 0\r
+#    endif\r
+# else\r
+#    error BOOST_PP_ERROR:  depth #3 iteration boundaries or filename not defined\r
+# endif\r
+#\r
+# undef BOOST_PP_ITERATION_DEPTH\r
+# define BOOST_PP_ITERATION_DEPTH() 3\r
+#\r
+# if (BOOST_PP_ITERATION_START_3) > (BOOST_PP_ITERATION_FINISH_3)\r
+#    include <boost/preprocessor/iteration/detail/iter/reverse3.hpp>\r
+# else\r
+#    if BOOST_PP_ITERATION_START_3 <= 0 && BOOST_PP_ITERATION_FINISH_3 >= 0\r
+#        define BOOST_PP_ITERATION_3 0\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 1 && BOOST_PP_ITERATION_FINISH_3 >= 1\r
+#        define BOOST_PP_ITERATION_3 1\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 2 && BOOST_PP_ITERATION_FINISH_3 >= 2\r
+#        define BOOST_PP_ITERATION_3 2\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 3 && BOOST_PP_ITERATION_FINISH_3 >= 3\r
+#        define BOOST_PP_ITERATION_3 3\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 4 && BOOST_PP_ITERATION_FINISH_3 >= 4\r
+#        define BOOST_PP_ITERATION_3 4\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 5 && BOOST_PP_ITERATION_FINISH_3 >= 5\r
+#        define BOOST_PP_ITERATION_3 5\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 6 && BOOST_PP_ITERATION_FINISH_3 >= 6\r
+#        define BOOST_PP_ITERATION_3 6\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 7 && BOOST_PP_ITERATION_FINISH_3 >= 7\r
+#        define BOOST_PP_ITERATION_3 7\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 8 && BOOST_PP_ITERATION_FINISH_3 >= 8\r
+#        define BOOST_PP_ITERATION_3 8\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 9 && BOOST_PP_ITERATION_FINISH_3 >= 9\r
+#        define BOOST_PP_ITERATION_3 9\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 10 && BOOST_PP_ITERATION_FINISH_3 >= 10\r
+#        define BOOST_PP_ITERATION_3 10\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 11 && BOOST_PP_ITERATION_FINISH_3 >= 11\r
+#        define BOOST_PP_ITERATION_3 11\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 12 && BOOST_PP_ITERATION_FINISH_3 >= 12\r
+#        define BOOST_PP_ITERATION_3 12\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 13 && BOOST_PP_ITERATION_FINISH_3 >= 13\r
+#        define BOOST_PP_ITERATION_3 13\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 14 && BOOST_PP_ITERATION_FINISH_3 >= 14\r
+#        define BOOST_PP_ITERATION_3 14\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 15 && BOOST_PP_ITERATION_FINISH_3 >= 15\r
+#        define BOOST_PP_ITERATION_3 15\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 16 && BOOST_PP_ITERATION_FINISH_3 >= 16\r
+#        define BOOST_PP_ITERATION_3 16\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 17 && BOOST_PP_ITERATION_FINISH_3 >= 17\r
+#        define BOOST_PP_ITERATION_3 17\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 18 && BOOST_PP_ITERATION_FINISH_3 >= 18\r
+#        define BOOST_PP_ITERATION_3 18\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 19 && BOOST_PP_ITERATION_FINISH_3 >= 19\r
+#        define BOOST_PP_ITERATION_3 19\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 20 && BOOST_PP_ITERATION_FINISH_3 >= 20\r
+#        define BOOST_PP_ITERATION_3 20\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 21 && BOOST_PP_ITERATION_FINISH_3 >= 21\r
+#        define BOOST_PP_ITERATION_3 21\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 22 && BOOST_PP_ITERATION_FINISH_3 >= 22\r
+#        define BOOST_PP_ITERATION_3 22\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 23 && BOOST_PP_ITERATION_FINISH_3 >= 23\r
+#        define BOOST_PP_ITERATION_3 23\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 24 && BOOST_PP_ITERATION_FINISH_3 >= 24\r
+#        define BOOST_PP_ITERATION_3 24\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 25 && BOOST_PP_ITERATION_FINISH_3 >= 25\r
+#        define BOOST_PP_ITERATION_3 25\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 26 && BOOST_PP_ITERATION_FINISH_3 >= 26\r
+#        define BOOST_PP_ITERATION_3 26\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 27 && BOOST_PP_ITERATION_FINISH_3 >= 27\r
+#        define BOOST_PP_ITERATION_3 27\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 28 && BOOST_PP_ITERATION_FINISH_3 >= 28\r
+#        define BOOST_PP_ITERATION_3 28\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 29 && BOOST_PP_ITERATION_FINISH_3 >= 29\r
+#        define BOOST_PP_ITERATION_3 29\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 30 && BOOST_PP_ITERATION_FINISH_3 >= 30\r
+#        define BOOST_PP_ITERATION_3 30\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 31 && BOOST_PP_ITERATION_FINISH_3 >= 31\r
+#        define BOOST_PP_ITERATION_3 31\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 32 && BOOST_PP_ITERATION_FINISH_3 >= 32\r
+#        define BOOST_PP_ITERATION_3 32\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 33 && BOOST_PP_ITERATION_FINISH_3 >= 33\r
+#        define BOOST_PP_ITERATION_3 33\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 34 && BOOST_PP_ITERATION_FINISH_3 >= 34\r
+#        define BOOST_PP_ITERATION_3 34\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 35 && BOOST_PP_ITERATION_FINISH_3 >= 35\r
+#        define BOOST_PP_ITERATION_3 35\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 36 && BOOST_PP_ITERATION_FINISH_3 >= 36\r
+#        define BOOST_PP_ITERATION_3 36\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 37 && BOOST_PP_ITERATION_FINISH_3 >= 37\r
+#        define BOOST_PP_ITERATION_3 37\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 38 && BOOST_PP_ITERATION_FINISH_3 >= 38\r
+#        define BOOST_PP_ITERATION_3 38\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 39 && BOOST_PP_ITERATION_FINISH_3 >= 39\r
+#        define BOOST_PP_ITERATION_3 39\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 40 && BOOST_PP_ITERATION_FINISH_3 >= 40\r
+#        define BOOST_PP_ITERATION_3 40\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 41 && BOOST_PP_ITERATION_FINISH_3 >= 41\r
+#        define BOOST_PP_ITERATION_3 41\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 42 && BOOST_PP_ITERATION_FINISH_3 >= 42\r
+#        define BOOST_PP_ITERATION_3 42\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 43 && BOOST_PP_ITERATION_FINISH_3 >= 43\r
+#        define BOOST_PP_ITERATION_3 43\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 44 && BOOST_PP_ITERATION_FINISH_3 >= 44\r
+#        define BOOST_PP_ITERATION_3 44\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 45 && BOOST_PP_ITERATION_FINISH_3 >= 45\r
+#        define BOOST_PP_ITERATION_3 45\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 46 && BOOST_PP_ITERATION_FINISH_3 >= 46\r
+#        define BOOST_PP_ITERATION_3 46\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 47 && BOOST_PP_ITERATION_FINISH_3 >= 47\r
+#        define BOOST_PP_ITERATION_3 47\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 48 && BOOST_PP_ITERATION_FINISH_3 >= 48\r
+#        define BOOST_PP_ITERATION_3 48\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 49 && BOOST_PP_ITERATION_FINISH_3 >= 49\r
+#        define BOOST_PP_ITERATION_3 49\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 50 && BOOST_PP_ITERATION_FINISH_3 >= 50\r
+#        define BOOST_PP_ITERATION_3 50\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 51 && BOOST_PP_ITERATION_FINISH_3 >= 51\r
+#        define BOOST_PP_ITERATION_3 51\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 52 && BOOST_PP_ITERATION_FINISH_3 >= 52\r
+#        define BOOST_PP_ITERATION_3 52\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 53 && BOOST_PP_ITERATION_FINISH_3 >= 53\r
+#        define BOOST_PP_ITERATION_3 53\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 54 && BOOST_PP_ITERATION_FINISH_3 >= 54\r
+#        define BOOST_PP_ITERATION_3 54\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 55 && BOOST_PP_ITERATION_FINISH_3 >= 55\r
+#        define BOOST_PP_ITERATION_3 55\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 56 && BOOST_PP_ITERATION_FINISH_3 >= 56\r
+#        define BOOST_PP_ITERATION_3 56\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 57 && BOOST_PP_ITERATION_FINISH_3 >= 57\r
+#        define BOOST_PP_ITERATION_3 57\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 58 && BOOST_PP_ITERATION_FINISH_3 >= 58\r
+#        define BOOST_PP_ITERATION_3 58\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 59 && BOOST_PP_ITERATION_FINISH_3 >= 59\r
+#        define BOOST_PP_ITERATION_3 59\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 60 && BOOST_PP_ITERATION_FINISH_3 >= 60\r
+#        define BOOST_PP_ITERATION_3 60\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 61 && BOOST_PP_ITERATION_FINISH_3 >= 61\r
+#        define BOOST_PP_ITERATION_3 61\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 62 && BOOST_PP_ITERATION_FINISH_3 >= 62\r
+#        define BOOST_PP_ITERATION_3 62\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 63 && BOOST_PP_ITERATION_FINISH_3 >= 63\r
+#        define BOOST_PP_ITERATION_3 63\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 64 && BOOST_PP_ITERATION_FINISH_3 >= 64\r
+#        define BOOST_PP_ITERATION_3 64\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 65 && BOOST_PP_ITERATION_FINISH_3 >= 65\r
+#        define BOOST_PP_ITERATION_3 65\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 66 && BOOST_PP_ITERATION_FINISH_3 >= 66\r
+#        define BOOST_PP_ITERATION_3 66\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 67 && BOOST_PP_ITERATION_FINISH_3 >= 67\r
+#        define BOOST_PP_ITERATION_3 67\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 68 && BOOST_PP_ITERATION_FINISH_3 >= 68\r
+#        define BOOST_PP_ITERATION_3 68\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 69 && BOOST_PP_ITERATION_FINISH_3 >= 69\r
+#        define BOOST_PP_ITERATION_3 69\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 70 && BOOST_PP_ITERATION_FINISH_3 >= 70\r
+#        define BOOST_PP_ITERATION_3 70\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 71 && BOOST_PP_ITERATION_FINISH_3 >= 71\r
+#        define BOOST_PP_ITERATION_3 71\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 72 && BOOST_PP_ITERATION_FINISH_3 >= 72\r
+#        define BOOST_PP_ITERATION_3 72\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 73 && BOOST_PP_ITERATION_FINISH_3 >= 73\r
+#        define BOOST_PP_ITERATION_3 73\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 74 && BOOST_PP_ITERATION_FINISH_3 >= 74\r
+#        define BOOST_PP_ITERATION_3 74\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 75 && BOOST_PP_ITERATION_FINISH_3 >= 75\r
+#        define BOOST_PP_ITERATION_3 75\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 76 && BOOST_PP_ITERATION_FINISH_3 >= 76\r
+#        define BOOST_PP_ITERATION_3 76\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 77 && BOOST_PP_ITERATION_FINISH_3 >= 77\r
+#        define BOOST_PP_ITERATION_3 77\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 78 && BOOST_PP_ITERATION_FINISH_3 >= 78\r
+#        define BOOST_PP_ITERATION_3 78\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 79 && BOOST_PP_ITERATION_FINISH_3 >= 79\r
+#        define BOOST_PP_ITERATION_3 79\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 80 && BOOST_PP_ITERATION_FINISH_3 >= 80\r
+#        define BOOST_PP_ITERATION_3 80\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 81 && BOOST_PP_ITERATION_FINISH_3 >= 81\r
+#        define BOOST_PP_ITERATION_3 81\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 82 && BOOST_PP_ITERATION_FINISH_3 >= 82\r
+#        define BOOST_PP_ITERATION_3 82\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 83 && BOOST_PP_ITERATION_FINISH_3 >= 83\r
+#        define BOOST_PP_ITERATION_3 83\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 84 && BOOST_PP_ITERATION_FINISH_3 >= 84\r
+#        define BOOST_PP_ITERATION_3 84\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 85 && BOOST_PP_ITERATION_FINISH_3 >= 85\r
+#        define BOOST_PP_ITERATION_3 85\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 86 && BOOST_PP_ITERATION_FINISH_3 >= 86\r
+#        define BOOST_PP_ITERATION_3 86\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 87 && BOOST_PP_ITERATION_FINISH_3 >= 87\r
+#        define BOOST_PP_ITERATION_3 87\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 88 && BOOST_PP_ITERATION_FINISH_3 >= 88\r
+#        define BOOST_PP_ITERATION_3 88\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 89 && BOOST_PP_ITERATION_FINISH_3 >= 89\r
+#        define BOOST_PP_ITERATION_3 89\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 90 && BOOST_PP_ITERATION_FINISH_3 >= 90\r
+#        define BOOST_PP_ITERATION_3 90\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 91 && BOOST_PP_ITERATION_FINISH_3 >= 91\r
+#        define BOOST_PP_ITERATION_3 91\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 92 && BOOST_PP_ITERATION_FINISH_3 >= 92\r
+#        define BOOST_PP_ITERATION_3 92\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 93 && BOOST_PP_ITERATION_FINISH_3 >= 93\r
+#        define BOOST_PP_ITERATION_3 93\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 94 && BOOST_PP_ITERATION_FINISH_3 >= 94\r
+#        define BOOST_PP_ITERATION_3 94\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 95 && BOOST_PP_ITERATION_FINISH_3 >= 95\r
+#        define BOOST_PP_ITERATION_3 95\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 96 && BOOST_PP_ITERATION_FINISH_3 >= 96\r
+#        define BOOST_PP_ITERATION_3 96\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 97 && BOOST_PP_ITERATION_FINISH_3 >= 97\r
+#        define BOOST_PP_ITERATION_3 97\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 98 && BOOST_PP_ITERATION_FINISH_3 >= 98\r
+#        define BOOST_PP_ITERATION_3 98\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 99 && BOOST_PP_ITERATION_FINISH_3 >= 99\r
+#        define BOOST_PP_ITERATION_3 99\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 100 && BOOST_PP_ITERATION_FINISH_3 >= 100\r
+#        define BOOST_PP_ITERATION_3 100\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 101 && BOOST_PP_ITERATION_FINISH_3 >= 101\r
+#        define BOOST_PP_ITERATION_3 101\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 102 && BOOST_PP_ITERATION_FINISH_3 >= 102\r
+#        define BOOST_PP_ITERATION_3 102\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 103 && BOOST_PP_ITERATION_FINISH_3 >= 103\r
+#        define BOOST_PP_ITERATION_3 103\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 104 && BOOST_PP_ITERATION_FINISH_3 >= 104\r
+#        define BOOST_PP_ITERATION_3 104\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 105 && BOOST_PP_ITERATION_FINISH_3 >= 105\r
+#        define BOOST_PP_ITERATION_3 105\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 106 && BOOST_PP_ITERATION_FINISH_3 >= 106\r
+#        define BOOST_PP_ITERATION_3 106\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 107 && BOOST_PP_ITERATION_FINISH_3 >= 107\r
+#        define BOOST_PP_ITERATION_3 107\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 108 && BOOST_PP_ITERATION_FINISH_3 >= 108\r
+#        define BOOST_PP_ITERATION_3 108\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 109 && BOOST_PP_ITERATION_FINISH_3 >= 109\r
+#        define BOOST_PP_ITERATION_3 109\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 110 && BOOST_PP_ITERATION_FINISH_3 >= 110\r
+#        define BOOST_PP_ITERATION_3 110\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 111 && BOOST_PP_ITERATION_FINISH_3 >= 111\r
+#        define BOOST_PP_ITERATION_3 111\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 112 && BOOST_PP_ITERATION_FINISH_3 >= 112\r
+#        define BOOST_PP_ITERATION_3 112\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 113 && BOOST_PP_ITERATION_FINISH_3 >= 113\r
+#        define BOOST_PP_ITERATION_3 113\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 114 && BOOST_PP_ITERATION_FINISH_3 >= 114\r
+#        define BOOST_PP_ITERATION_3 114\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 115 && BOOST_PP_ITERATION_FINISH_3 >= 115\r
+#        define BOOST_PP_ITERATION_3 115\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 116 && BOOST_PP_ITERATION_FINISH_3 >= 116\r
+#        define BOOST_PP_ITERATION_3 116\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 117 && BOOST_PP_ITERATION_FINISH_3 >= 117\r
+#        define BOOST_PP_ITERATION_3 117\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 118 && BOOST_PP_ITERATION_FINISH_3 >= 118\r
+#        define BOOST_PP_ITERATION_3 118\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 119 && BOOST_PP_ITERATION_FINISH_3 >= 119\r
+#        define BOOST_PP_ITERATION_3 119\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 120 && BOOST_PP_ITERATION_FINISH_3 >= 120\r
+#        define BOOST_PP_ITERATION_3 120\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 121 && BOOST_PP_ITERATION_FINISH_3 >= 121\r
+#        define BOOST_PP_ITERATION_3 121\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 122 && BOOST_PP_ITERATION_FINISH_3 >= 122\r
+#        define BOOST_PP_ITERATION_3 122\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 123 && BOOST_PP_ITERATION_FINISH_3 >= 123\r
+#        define BOOST_PP_ITERATION_3 123\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 124 && BOOST_PP_ITERATION_FINISH_3 >= 124\r
+#        define BOOST_PP_ITERATION_3 124\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 125 && BOOST_PP_ITERATION_FINISH_3 >= 125\r
+#        define BOOST_PP_ITERATION_3 125\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 126 && BOOST_PP_ITERATION_FINISH_3 >= 126\r
+#        define BOOST_PP_ITERATION_3 126\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 127 && BOOST_PP_ITERATION_FINISH_3 >= 127\r
+#        define BOOST_PP_ITERATION_3 127\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 128 && BOOST_PP_ITERATION_FINISH_3 >= 128\r
+#        define BOOST_PP_ITERATION_3 128\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 129 && BOOST_PP_ITERATION_FINISH_3 >= 129\r
+#        define BOOST_PP_ITERATION_3 129\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 130 && BOOST_PP_ITERATION_FINISH_3 >= 130\r
+#        define BOOST_PP_ITERATION_3 130\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 131 && BOOST_PP_ITERATION_FINISH_3 >= 131\r
+#        define BOOST_PP_ITERATION_3 131\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 132 && BOOST_PP_ITERATION_FINISH_3 >= 132\r
+#        define BOOST_PP_ITERATION_3 132\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 133 && BOOST_PP_ITERATION_FINISH_3 >= 133\r
+#        define BOOST_PP_ITERATION_3 133\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 134 && BOOST_PP_ITERATION_FINISH_3 >= 134\r
+#        define BOOST_PP_ITERATION_3 134\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 135 && BOOST_PP_ITERATION_FINISH_3 >= 135\r
+#        define BOOST_PP_ITERATION_3 135\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 136 && BOOST_PP_ITERATION_FINISH_3 >= 136\r
+#        define BOOST_PP_ITERATION_3 136\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 137 && BOOST_PP_ITERATION_FINISH_3 >= 137\r
+#        define BOOST_PP_ITERATION_3 137\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 138 && BOOST_PP_ITERATION_FINISH_3 >= 138\r
+#        define BOOST_PP_ITERATION_3 138\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 139 && BOOST_PP_ITERATION_FINISH_3 >= 139\r
+#        define BOOST_PP_ITERATION_3 139\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 140 && BOOST_PP_ITERATION_FINISH_3 >= 140\r
+#        define BOOST_PP_ITERATION_3 140\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 141 && BOOST_PP_ITERATION_FINISH_3 >= 141\r
+#        define BOOST_PP_ITERATION_3 141\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 142 && BOOST_PP_ITERATION_FINISH_3 >= 142\r
+#        define BOOST_PP_ITERATION_3 142\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 143 && BOOST_PP_ITERATION_FINISH_3 >= 143\r
+#        define BOOST_PP_ITERATION_3 143\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 144 && BOOST_PP_ITERATION_FINISH_3 >= 144\r
+#        define BOOST_PP_ITERATION_3 144\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 145 && BOOST_PP_ITERATION_FINISH_3 >= 145\r
+#        define BOOST_PP_ITERATION_3 145\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 146 && BOOST_PP_ITERATION_FINISH_3 >= 146\r
+#        define BOOST_PP_ITERATION_3 146\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 147 && BOOST_PP_ITERATION_FINISH_3 >= 147\r
+#        define BOOST_PP_ITERATION_3 147\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 148 && BOOST_PP_ITERATION_FINISH_3 >= 148\r
+#        define BOOST_PP_ITERATION_3 148\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 149 && BOOST_PP_ITERATION_FINISH_3 >= 149\r
+#        define BOOST_PP_ITERATION_3 149\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 150 && BOOST_PP_ITERATION_FINISH_3 >= 150\r
+#        define BOOST_PP_ITERATION_3 150\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 151 && BOOST_PP_ITERATION_FINISH_3 >= 151\r
+#        define BOOST_PP_ITERATION_3 151\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 152 && BOOST_PP_ITERATION_FINISH_3 >= 152\r
+#        define BOOST_PP_ITERATION_3 152\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 153 && BOOST_PP_ITERATION_FINISH_3 >= 153\r
+#        define BOOST_PP_ITERATION_3 153\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 154 && BOOST_PP_ITERATION_FINISH_3 >= 154\r
+#        define BOOST_PP_ITERATION_3 154\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 155 && BOOST_PP_ITERATION_FINISH_3 >= 155\r
+#        define BOOST_PP_ITERATION_3 155\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 156 && BOOST_PP_ITERATION_FINISH_3 >= 156\r
+#        define BOOST_PP_ITERATION_3 156\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 157 && BOOST_PP_ITERATION_FINISH_3 >= 157\r
+#        define BOOST_PP_ITERATION_3 157\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 158 && BOOST_PP_ITERATION_FINISH_3 >= 158\r
+#        define BOOST_PP_ITERATION_3 158\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 159 && BOOST_PP_ITERATION_FINISH_3 >= 159\r
+#        define BOOST_PP_ITERATION_3 159\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 160 && BOOST_PP_ITERATION_FINISH_3 >= 160\r
+#        define BOOST_PP_ITERATION_3 160\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 161 && BOOST_PP_ITERATION_FINISH_3 >= 161\r
+#        define BOOST_PP_ITERATION_3 161\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 162 && BOOST_PP_ITERATION_FINISH_3 >= 162\r
+#        define BOOST_PP_ITERATION_3 162\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 163 && BOOST_PP_ITERATION_FINISH_3 >= 163\r
+#        define BOOST_PP_ITERATION_3 163\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 164 && BOOST_PP_ITERATION_FINISH_3 >= 164\r
+#        define BOOST_PP_ITERATION_3 164\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 165 && BOOST_PP_ITERATION_FINISH_3 >= 165\r
+#        define BOOST_PP_ITERATION_3 165\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 166 && BOOST_PP_ITERATION_FINISH_3 >= 166\r
+#        define BOOST_PP_ITERATION_3 166\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 167 && BOOST_PP_ITERATION_FINISH_3 >= 167\r
+#        define BOOST_PP_ITERATION_3 167\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 168 && BOOST_PP_ITERATION_FINISH_3 >= 168\r
+#        define BOOST_PP_ITERATION_3 168\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 169 && BOOST_PP_ITERATION_FINISH_3 >= 169\r
+#        define BOOST_PP_ITERATION_3 169\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 170 && BOOST_PP_ITERATION_FINISH_3 >= 170\r
+#        define BOOST_PP_ITERATION_3 170\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 171 && BOOST_PP_ITERATION_FINISH_3 >= 171\r
+#        define BOOST_PP_ITERATION_3 171\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 172 && BOOST_PP_ITERATION_FINISH_3 >= 172\r
+#        define BOOST_PP_ITERATION_3 172\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 173 && BOOST_PP_ITERATION_FINISH_3 >= 173\r
+#        define BOOST_PP_ITERATION_3 173\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 174 && BOOST_PP_ITERATION_FINISH_3 >= 174\r
+#        define BOOST_PP_ITERATION_3 174\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 175 && BOOST_PP_ITERATION_FINISH_3 >= 175\r
+#        define BOOST_PP_ITERATION_3 175\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 176 && BOOST_PP_ITERATION_FINISH_3 >= 176\r
+#        define BOOST_PP_ITERATION_3 176\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 177 && BOOST_PP_ITERATION_FINISH_3 >= 177\r
+#        define BOOST_PP_ITERATION_3 177\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 178 && BOOST_PP_ITERATION_FINISH_3 >= 178\r
+#        define BOOST_PP_ITERATION_3 178\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 179 && BOOST_PP_ITERATION_FINISH_3 >= 179\r
+#        define BOOST_PP_ITERATION_3 179\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 180 && BOOST_PP_ITERATION_FINISH_3 >= 180\r
+#        define BOOST_PP_ITERATION_3 180\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 181 && BOOST_PP_ITERATION_FINISH_3 >= 181\r
+#        define BOOST_PP_ITERATION_3 181\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 182 && BOOST_PP_ITERATION_FINISH_3 >= 182\r
+#        define BOOST_PP_ITERATION_3 182\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 183 && BOOST_PP_ITERATION_FINISH_3 >= 183\r
+#        define BOOST_PP_ITERATION_3 183\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 184 && BOOST_PP_ITERATION_FINISH_3 >= 184\r
+#        define BOOST_PP_ITERATION_3 184\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 185 && BOOST_PP_ITERATION_FINISH_3 >= 185\r
+#        define BOOST_PP_ITERATION_3 185\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 186 && BOOST_PP_ITERATION_FINISH_3 >= 186\r
+#        define BOOST_PP_ITERATION_3 186\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 187 && BOOST_PP_ITERATION_FINISH_3 >= 187\r
+#        define BOOST_PP_ITERATION_3 187\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 188 && BOOST_PP_ITERATION_FINISH_3 >= 188\r
+#        define BOOST_PP_ITERATION_3 188\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 189 && BOOST_PP_ITERATION_FINISH_3 >= 189\r
+#        define BOOST_PP_ITERATION_3 189\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 190 && BOOST_PP_ITERATION_FINISH_3 >= 190\r
+#        define BOOST_PP_ITERATION_3 190\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 191 && BOOST_PP_ITERATION_FINISH_3 >= 191\r
+#        define BOOST_PP_ITERATION_3 191\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 192 && BOOST_PP_ITERATION_FINISH_3 >= 192\r
+#        define BOOST_PP_ITERATION_3 192\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 193 && BOOST_PP_ITERATION_FINISH_3 >= 193\r
+#        define BOOST_PP_ITERATION_3 193\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 194 && BOOST_PP_ITERATION_FINISH_3 >= 194\r
+#        define BOOST_PP_ITERATION_3 194\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 195 && BOOST_PP_ITERATION_FINISH_3 >= 195\r
+#        define BOOST_PP_ITERATION_3 195\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 196 && BOOST_PP_ITERATION_FINISH_3 >= 196\r
+#        define BOOST_PP_ITERATION_3 196\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 197 && BOOST_PP_ITERATION_FINISH_3 >= 197\r
+#        define BOOST_PP_ITERATION_3 197\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 198 && BOOST_PP_ITERATION_FINISH_3 >= 198\r
+#        define BOOST_PP_ITERATION_3 198\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 199 && BOOST_PP_ITERATION_FINISH_3 >= 199\r
+#        define BOOST_PP_ITERATION_3 199\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 200 && BOOST_PP_ITERATION_FINISH_3 >= 200\r
+#        define BOOST_PP_ITERATION_3 200\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 201 && BOOST_PP_ITERATION_FINISH_3 >= 201\r
+#        define BOOST_PP_ITERATION_3 201\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 202 && BOOST_PP_ITERATION_FINISH_3 >= 202\r
+#        define BOOST_PP_ITERATION_3 202\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 203 && BOOST_PP_ITERATION_FINISH_3 >= 203\r
+#        define BOOST_PP_ITERATION_3 203\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 204 && BOOST_PP_ITERATION_FINISH_3 >= 204\r
+#        define BOOST_PP_ITERATION_3 204\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 205 && BOOST_PP_ITERATION_FINISH_3 >= 205\r
+#        define BOOST_PP_ITERATION_3 205\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 206 && BOOST_PP_ITERATION_FINISH_3 >= 206\r
+#        define BOOST_PP_ITERATION_3 206\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 207 && BOOST_PP_ITERATION_FINISH_3 >= 207\r
+#        define BOOST_PP_ITERATION_3 207\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 208 && BOOST_PP_ITERATION_FINISH_3 >= 208\r
+#        define BOOST_PP_ITERATION_3 208\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 209 && BOOST_PP_ITERATION_FINISH_3 >= 209\r
+#        define BOOST_PP_ITERATION_3 209\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 210 && BOOST_PP_ITERATION_FINISH_3 >= 210\r
+#        define BOOST_PP_ITERATION_3 210\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 211 && BOOST_PP_ITERATION_FINISH_3 >= 211\r
+#        define BOOST_PP_ITERATION_3 211\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 212 && BOOST_PP_ITERATION_FINISH_3 >= 212\r
+#        define BOOST_PP_ITERATION_3 212\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 213 && BOOST_PP_ITERATION_FINISH_3 >= 213\r
+#        define BOOST_PP_ITERATION_3 213\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 214 && BOOST_PP_ITERATION_FINISH_3 >= 214\r
+#        define BOOST_PP_ITERATION_3 214\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 215 && BOOST_PP_ITERATION_FINISH_3 >= 215\r
+#        define BOOST_PP_ITERATION_3 215\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 216 && BOOST_PP_ITERATION_FINISH_3 >= 216\r
+#        define BOOST_PP_ITERATION_3 216\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 217 && BOOST_PP_ITERATION_FINISH_3 >= 217\r
+#        define BOOST_PP_ITERATION_3 217\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 218 && BOOST_PP_ITERATION_FINISH_3 >= 218\r
+#        define BOOST_PP_ITERATION_3 218\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 219 && BOOST_PP_ITERATION_FINISH_3 >= 219\r
+#        define BOOST_PP_ITERATION_3 219\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 220 && BOOST_PP_ITERATION_FINISH_3 >= 220\r
+#        define BOOST_PP_ITERATION_3 220\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 221 && BOOST_PP_ITERATION_FINISH_3 >= 221\r
+#        define BOOST_PP_ITERATION_3 221\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 222 && BOOST_PP_ITERATION_FINISH_3 >= 222\r
+#        define BOOST_PP_ITERATION_3 222\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 223 && BOOST_PP_ITERATION_FINISH_3 >= 223\r
+#        define BOOST_PP_ITERATION_3 223\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 224 && BOOST_PP_ITERATION_FINISH_3 >= 224\r
+#        define BOOST_PP_ITERATION_3 224\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 225 && BOOST_PP_ITERATION_FINISH_3 >= 225\r
+#        define BOOST_PP_ITERATION_3 225\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 226 && BOOST_PP_ITERATION_FINISH_3 >= 226\r
+#        define BOOST_PP_ITERATION_3 226\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 227 && BOOST_PP_ITERATION_FINISH_3 >= 227\r
+#        define BOOST_PP_ITERATION_3 227\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 228 && BOOST_PP_ITERATION_FINISH_3 >= 228\r
+#        define BOOST_PP_ITERATION_3 228\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 229 && BOOST_PP_ITERATION_FINISH_3 >= 229\r
+#        define BOOST_PP_ITERATION_3 229\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 230 && BOOST_PP_ITERATION_FINISH_3 >= 230\r
+#        define BOOST_PP_ITERATION_3 230\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 231 && BOOST_PP_ITERATION_FINISH_3 >= 231\r
+#        define BOOST_PP_ITERATION_3 231\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 232 && BOOST_PP_ITERATION_FINISH_3 >= 232\r
+#        define BOOST_PP_ITERATION_3 232\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 233 && BOOST_PP_ITERATION_FINISH_3 >= 233\r
+#        define BOOST_PP_ITERATION_3 233\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 234 && BOOST_PP_ITERATION_FINISH_3 >= 234\r
+#        define BOOST_PP_ITERATION_3 234\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 235 && BOOST_PP_ITERATION_FINISH_3 >= 235\r
+#        define BOOST_PP_ITERATION_3 235\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 236 && BOOST_PP_ITERATION_FINISH_3 >= 236\r
+#        define BOOST_PP_ITERATION_3 236\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 237 && BOOST_PP_ITERATION_FINISH_3 >= 237\r
+#        define BOOST_PP_ITERATION_3 237\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 238 && BOOST_PP_ITERATION_FINISH_3 >= 238\r
+#        define BOOST_PP_ITERATION_3 238\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 239 && BOOST_PP_ITERATION_FINISH_3 >= 239\r
+#        define BOOST_PP_ITERATION_3 239\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 240 && BOOST_PP_ITERATION_FINISH_3 >= 240\r
+#        define BOOST_PP_ITERATION_3 240\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 241 && BOOST_PP_ITERATION_FINISH_3 >= 241\r
+#        define BOOST_PP_ITERATION_3 241\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 242 && BOOST_PP_ITERATION_FINISH_3 >= 242\r
+#        define BOOST_PP_ITERATION_3 242\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 243 && BOOST_PP_ITERATION_FINISH_3 >= 243\r
+#        define BOOST_PP_ITERATION_3 243\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 244 && BOOST_PP_ITERATION_FINISH_3 >= 244\r
+#        define BOOST_PP_ITERATION_3 244\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 245 && BOOST_PP_ITERATION_FINISH_3 >= 245\r
+#        define BOOST_PP_ITERATION_3 245\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 246 && BOOST_PP_ITERATION_FINISH_3 >= 246\r
+#        define BOOST_PP_ITERATION_3 246\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 247 && BOOST_PP_ITERATION_FINISH_3 >= 247\r
+#        define BOOST_PP_ITERATION_3 247\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 248 && BOOST_PP_ITERATION_FINISH_3 >= 248\r
+#        define BOOST_PP_ITERATION_3 248\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 249 && BOOST_PP_ITERATION_FINISH_3 >= 249\r
+#        define BOOST_PP_ITERATION_3 249\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 250 && BOOST_PP_ITERATION_FINISH_3 >= 250\r
+#        define BOOST_PP_ITERATION_3 250\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 251 && BOOST_PP_ITERATION_FINISH_3 >= 251\r
+#        define BOOST_PP_ITERATION_3 251\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 252 && BOOST_PP_ITERATION_FINISH_3 >= 252\r
+#        define BOOST_PP_ITERATION_3 252\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 253 && BOOST_PP_ITERATION_FINISH_3 >= 253\r
+#        define BOOST_PP_ITERATION_3 253\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 254 && BOOST_PP_ITERATION_FINISH_3 >= 254\r
+#        define BOOST_PP_ITERATION_3 254\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 255 && BOOST_PP_ITERATION_FINISH_3 >= 255\r
+#        define BOOST_PP_ITERATION_3 255\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_3 <= 256 && BOOST_PP_ITERATION_FINISH_3 >= 256\r
+#        define BOOST_PP_ITERATION_3 256\r
+#        include BOOST_PP_FILENAME_3\r
+#        undef BOOST_PP_ITERATION_3\r
+#    endif\r
+# endif\r
+#\r
+# undef BOOST_PP_ITERATION_DEPTH\r
+# define BOOST_PP_ITERATION_DEPTH() 2\r
+#\r
+# undef BOOST_PP_ITERATION_START_3\r
+# undef BOOST_PP_ITERATION_FINISH_3\r
+# undef BOOST_PP_FILENAME_3\r
+#\r
+# undef BOOST_PP_ITERATION_FLAGS_3\r
+# undef BOOST_PP_ITERATION_PARAMS_3\r
diff --git a/boost/boost/preprocessor/iteration/detail/iter/forward4.hpp b/boost/boost/preprocessor/iteration/detail/iter/forward4.hpp
new file mode 100644 (file)
index 0000000..653c7b1
--- /dev/null
@@ -0,0 +1,1338 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# if defined(BOOST_PP_ITERATION_LIMITS)\r
+#    if !defined(BOOST_PP_FILENAME_4)\r
+#        error BOOST_PP_ERROR:  depth #4 filename is not defined\r
+#    endif\r
+#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS)\r
+#    include <boost/preprocessor/iteration/detail/bounds/lower4.hpp>\r
+#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)\r
+#    include <boost/preprocessor/iteration/detail/bounds/upper4.hpp>\r
+#    define BOOST_PP_ITERATION_FLAGS_4 0\r
+#    undef BOOST_PP_ITERATION_LIMITS\r
+# elif defined(BOOST_PP_ITERATION_PARAMS_4)\r
+#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_4)\r
+#    include <boost/preprocessor/iteration/detail/bounds/lower4.hpp>\r
+#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_4)\r
+#    include <boost/preprocessor/iteration/detail/bounds/upper4.hpp>\r
+#    define BOOST_PP_FILENAME_4 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_4)\r
+#    if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_4) >= 4\r
+#        define BOOST_PP_ITERATION_FLAGS_4 BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_4)\r
+#    else\r
+#        define BOOST_PP_ITERATION_FLAGS_4 0\r
+#    endif\r
+# else\r
+#    error BOOST_PP_ERROR:  depth #4 iteration boundaries or filename not defined\r
+# endif\r
+#\r
+# undef BOOST_PP_ITERATION_DEPTH\r
+# define BOOST_PP_ITERATION_DEPTH() 4\r
+#\r
+# if (BOOST_PP_ITERATION_START_4) > (BOOST_PP_ITERATION_FINISH_4)\r
+#    include <boost/preprocessor/iteration/detail/iter/reverse4.hpp>\r
+# else\r
+#    if BOOST_PP_ITERATION_START_4 <= 0 && BOOST_PP_ITERATION_FINISH_4 >= 0\r
+#        define BOOST_PP_ITERATION_4 0\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 1 && BOOST_PP_ITERATION_FINISH_4 >= 1\r
+#        define BOOST_PP_ITERATION_4 1\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 2 && BOOST_PP_ITERATION_FINISH_4 >= 2\r
+#        define BOOST_PP_ITERATION_4 2\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 3 && BOOST_PP_ITERATION_FINISH_4 >= 3\r
+#        define BOOST_PP_ITERATION_4 3\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 4 && BOOST_PP_ITERATION_FINISH_4 >= 4\r
+#        define BOOST_PP_ITERATION_4 4\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 5 && BOOST_PP_ITERATION_FINISH_4 >= 5\r
+#        define BOOST_PP_ITERATION_4 5\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 6 && BOOST_PP_ITERATION_FINISH_4 >= 6\r
+#        define BOOST_PP_ITERATION_4 6\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 7 && BOOST_PP_ITERATION_FINISH_4 >= 7\r
+#        define BOOST_PP_ITERATION_4 7\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 8 && BOOST_PP_ITERATION_FINISH_4 >= 8\r
+#        define BOOST_PP_ITERATION_4 8\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 9 && BOOST_PP_ITERATION_FINISH_4 >= 9\r
+#        define BOOST_PP_ITERATION_4 9\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 10 && BOOST_PP_ITERATION_FINISH_4 >= 10\r
+#        define BOOST_PP_ITERATION_4 10\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 11 && BOOST_PP_ITERATION_FINISH_4 >= 11\r
+#        define BOOST_PP_ITERATION_4 11\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 12 && BOOST_PP_ITERATION_FINISH_4 >= 12\r
+#        define BOOST_PP_ITERATION_4 12\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 13 && BOOST_PP_ITERATION_FINISH_4 >= 13\r
+#        define BOOST_PP_ITERATION_4 13\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 14 && BOOST_PP_ITERATION_FINISH_4 >= 14\r
+#        define BOOST_PP_ITERATION_4 14\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 15 && BOOST_PP_ITERATION_FINISH_4 >= 15\r
+#        define BOOST_PP_ITERATION_4 15\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 16 && BOOST_PP_ITERATION_FINISH_4 >= 16\r
+#        define BOOST_PP_ITERATION_4 16\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 17 && BOOST_PP_ITERATION_FINISH_4 >= 17\r
+#        define BOOST_PP_ITERATION_4 17\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 18 && BOOST_PP_ITERATION_FINISH_4 >= 18\r
+#        define BOOST_PP_ITERATION_4 18\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 19 && BOOST_PP_ITERATION_FINISH_4 >= 19\r
+#        define BOOST_PP_ITERATION_4 19\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 20 && BOOST_PP_ITERATION_FINISH_4 >= 20\r
+#        define BOOST_PP_ITERATION_4 20\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 21 && BOOST_PP_ITERATION_FINISH_4 >= 21\r
+#        define BOOST_PP_ITERATION_4 21\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 22 && BOOST_PP_ITERATION_FINISH_4 >= 22\r
+#        define BOOST_PP_ITERATION_4 22\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 23 && BOOST_PP_ITERATION_FINISH_4 >= 23\r
+#        define BOOST_PP_ITERATION_4 23\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 24 && BOOST_PP_ITERATION_FINISH_4 >= 24\r
+#        define BOOST_PP_ITERATION_4 24\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 25 && BOOST_PP_ITERATION_FINISH_4 >= 25\r
+#        define BOOST_PP_ITERATION_4 25\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 26 && BOOST_PP_ITERATION_FINISH_4 >= 26\r
+#        define BOOST_PP_ITERATION_4 26\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 27 && BOOST_PP_ITERATION_FINISH_4 >= 27\r
+#        define BOOST_PP_ITERATION_4 27\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 28 && BOOST_PP_ITERATION_FINISH_4 >= 28\r
+#        define BOOST_PP_ITERATION_4 28\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 29 && BOOST_PP_ITERATION_FINISH_4 >= 29\r
+#        define BOOST_PP_ITERATION_4 29\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 30 && BOOST_PP_ITERATION_FINISH_4 >= 30\r
+#        define BOOST_PP_ITERATION_4 30\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 31 && BOOST_PP_ITERATION_FINISH_4 >= 31\r
+#        define BOOST_PP_ITERATION_4 31\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 32 && BOOST_PP_ITERATION_FINISH_4 >= 32\r
+#        define BOOST_PP_ITERATION_4 32\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 33 && BOOST_PP_ITERATION_FINISH_4 >= 33\r
+#        define BOOST_PP_ITERATION_4 33\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 34 && BOOST_PP_ITERATION_FINISH_4 >= 34\r
+#        define BOOST_PP_ITERATION_4 34\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 35 && BOOST_PP_ITERATION_FINISH_4 >= 35\r
+#        define BOOST_PP_ITERATION_4 35\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 36 && BOOST_PP_ITERATION_FINISH_4 >= 36\r
+#        define BOOST_PP_ITERATION_4 36\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 37 && BOOST_PP_ITERATION_FINISH_4 >= 37\r
+#        define BOOST_PP_ITERATION_4 37\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 38 && BOOST_PP_ITERATION_FINISH_4 >= 38\r
+#        define BOOST_PP_ITERATION_4 38\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 39 && BOOST_PP_ITERATION_FINISH_4 >= 39\r
+#        define BOOST_PP_ITERATION_4 39\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 40 && BOOST_PP_ITERATION_FINISH_4 >= 40\r
+#        define BOOST_PP_ITERATION_4 40\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 41 && BOOST_PP_ITERATION_FINISH_4 >= 41\r
+#        define BOOST_PP_ITERATION_4 41\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 42 && BOOST_PP_ITERATION_FINISH_4 >= 42\r
+#        define BOOST_PP_ITERATION_4 42\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 43 && BOOST_PP_ITERATION_FINISH_4 >= 43\r
+#        define BOOST_PP_ITERATION_4 43\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 44 && BOOST_PP_ITERATION_FINISH_4 >= 44\r
+#        define BOOST_PP_ITERATION_4 44\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 45 && BOOST_PP_ITERATION_FINISH_4 >= 45\r
+#        define BOOST_PP_ITERATION_4 45\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 46 && BOOST_PP_ITERATION_FINISH_4 >= 46\r
+#        define BOOST_PP_ITERATION_4 46\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 47 && BOOST_PP_ITERATION_FINISH_4 >= 47\r
+#        define BOOST_PP_ITERATION_4 47\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 48 && BOOST_PP_ITERATION_FINISH_4 >= 48\r
+#        define BOOST_PP_ITERATION_4 48\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 49 && BOOST_PP_ITERATION_FINISH_4 >= 49\r
+#        define BOOST_PP_ITERATION_4 49\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 50 && BOOST_PP_ITERATION_FINISH_4 >= 50\r
+#        define BOOST_PP_ITERATION_4 50\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 51 && BOOST_PP_ITERATION_FINISH_4 >= 51\r
+#        define BOOST_PP_ITERATION_4 51\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 52 && BOOST_PP_ITERATION_FINISH_4 >= 52\r
+#        define BOOST_PP_ITERATION_4 52\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 53 && BOOST_PP_ITERATION_FINISH_4 >= 53\r
+#        define BOOST_PP_ITERATION_4 53\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 54 && BOOST_PP_ITERATION_FINISH_4 >= 54\r
+#        define BOOST_PP_ITERATION_4 54\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 55 && BOOST_PP_ITERATION_FINISH_4 >= 55\r
+#        define BOOST_PP_ITERATION_4 55\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 56 && BOOST_PP_ITERATION_FINISH_4 >= 56\r
+#        define BOOST_PP_ITERATION_4 56\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 57 && BOOST_PP_ITERATION_FINISH_4 >= 57\r
+#        define BOOST_PP_ITERATION_4 57\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 58 && BOOST_PP_ITERATION_FINISH_4 >= 58\r
+#        define BOOST_PP_ITERATION_4 58\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 59 && BOOST_PP_ITERATION_FINISH_4 >= 59\r
+#        define BOOST_PP_ITERATION_4 59\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 60 && BOOST_PP_ITERATION_FINISH_4 >= 60\r
+#        define BOOST_PP_ITERATION_4 60\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 61 && BOOST_PP_ITERATION_FINISH_4 >= 61\r
+#        define BOOST_PP_ITERATION_4 61\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 62 && BOOST_PP_ITERATION_FINISH_4 >= 62\r
+#        define BOOST_PP_ITERATION_4 62\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 63 && BOOST_PP_ITERATION_FINISH_4 >= 63\r
+#        define BOOST_PP_ITERATION_4 63\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 64 && BOOST_PP_ITERATION_FINISH_4 >= 64\r
+#        define BOOST_PP_ITERATION_4 64\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 65 && BOOST_PP_ITERATION_FINISH_4 >= 65\r
+#        define BOOST_PP_ITERATION_4 65\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 66 && BOOST_PP_ITERATION_FINISH_4 >= 66\r
+#        define BOOST_PP_ITERATION_4 66\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 67 && BOOST_PP_ITERATION_FINISH_4 >= 67\r
+#        define BOOST_PP_ITERATION_4 67\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 68 && BOOST_PP_ITERATION_FINISH_4 >= 68\r
+#        define BOOST_PP_ITERATION_4 68\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 69 && BOOST_PP_ITERATION_FINISH_4 >= 69\r
+#        define BOOST_PP_ITERATION_4 69\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 70 && BOOST_PP_ITERATION_FINISH_4 >= 70\r
+#        define BOOST_PP_ITERATION_4 70\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 71 && BOOST_PP_ITERATION_FINISH_4 >= 71\r
+#        define BOOST_PP_ITERATION_4 71\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 72 && BOOST_PP_ITERATION_FINISH_4 >= 72\r
+#        define BOOST_PP_ITERATION_4 72\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 73 && BOOST_PP_ITERATION_FINISH_4 >= 73\r
+#        define BOOST_PP_ITERATION_4 73\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 74 && BOOST_PP_ITERATION_FINISH_4 >= 74\r
+#        define BOOST_PP_ITERATION_4 74\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 75 && BOOST_PP_ITERATION_FINISH_4 >= 75\r
+#        define BOOST_PP_ITERATION_4 75\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 76 && BOOST_PP_ITERATION_FINISH_4 >= 76\r
+#        define BOOST_PP_ITERATION_4 76\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 77 && BOOST_PP_ITERATION_FINISH_4 >= 77\r
+#        define BOOST_PP_ITERATION_4 77\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 78 && BOOST_PP_ITERATION_FINISH_4 >= 78\r
+#        define BOOST_PP_ITERATION_4 78\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 79 && BOOST_PP_ITERATION_FINISH_4 >= 79\r
+#        define BOOST_PP_ITERATION_4 79\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 80 && BOOST_PP_ITERATION_FINISH_4 >= 80\r
+#        define BOOST_PP_ITERATION_4 80\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 81 && BOOST_PP_ITERATION_FINISH_4 >= 81\r
+#        define BOOST_PP_ITERATION_4 81\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 82 && BOOST_PP_ITERATION_FINISH_4 >= 82\r
+#        define BOOST_PP_ITERATION_4 82\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 83 && BOOST_PP_ITERATION_FINISH_4 >= 83\r
+#        define BOOST_PP_ITERATION_4 83\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 84 && BOOST_PP_ITERATION_FINISH_4 >= 84\r
+#        define BOOST_PP_ITERATION_4 84\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 85 && BOOST_PP_ITERATION_FINISH_4 >= 85\r
+#        define BOOST_PP_ITERATION_4 85\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 86 && BOOST_PP_ITERATION_FINISH_4 >= 86\r
+#        define BOOST_PP_ITERATION_4 86\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 87 && BOOST_PP_ITERATION_FINISH_4 >= 87\r
+#        define BOOST_PP_ITERATION_4 87\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 88 && BOOST_PP_ITERATION_FINISH_4 >= 88\r
+#        define BOOST_PP_ITERATION_4 88\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 89 && BOOST_PP_ITERATION_FINISH_4 >= 89\r
+#        define BOOST_PP_ITERATION_4 89\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 90 && BOOST_PP_ITERATION_FINISH_4 >= 90\r
+#        define BOOST_PP_ITERATION_4 90\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 91 && BOOST_PP_ITERATION_FINISH_4 >= 91\r
+#        define BOOST_PP_ITERATION_4 91\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 92 && BOOST_PP_ITERATION_FINISH_4 >= 92\r
+#        define BOOST_PP_ITERATION_4 92\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 93 && BOOST_PP_ITERATION_FINISH_4 >= 93\r
+#        define BOOST_PP_ITERATION_4 93\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 94 && BOOST_PP_ITERATION_FINISH_4 >= 94\r
+#        define BOOST_PP_ITERATION_4 94\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 95 && BOOST_PP_ITERATION_FINISH_4 >= 95\r
+#        define BOOST_PP_ITERATION_4 95\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 96 && BOOST_PP_ITERATION_FINISH_4 >= 96\r
+#        define BOOST_PP_ITERATION_4 96\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 97 && BOOST_PP_ITERATION_FINISH_4 >= 97\r
+#        define BOOST_PP_ITERATION_4 97\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 98 && BOOST_PP_ITERATION_FINISH_4 >= 98\r
+#        define BOOST_PP_ITERATION_4 98\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 99 && BOOST_PP_ITERATION_FINISH_4 >= 99\r
+#        define BOOST_PP_ITERATION_4 99\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 100 && BOOST_PP_ITERATION_FINISH_4 >= 100\r
+#        define BOOST_PP_ITERATION_4 100\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 101 && BOOST_PP_ITERATION_FINISH_4 >= 101\r
+#        define BOOST_PP_ITERATION_4 101\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 102 && BOOST_PP_ITERATION_FINISH_4 >= 102\r
+#        define BOOST_PP_ITERATION_4 102\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 103 && BOOST_PP_ITERATION_FINISH_4 >= 103\r
+#        define BOOST_PP_ITERATION_4 103\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 104 && BOOST_PP_ITERATION_FINISH_4 >= 104\r
+#        define BOOST_PP_ITERATION_4 104\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 105 && BOOST_PP_ITERATION_FINISH_4 >= 105\r
+#        define BOOST_PP_ITERATION_4 105\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 106 && BOOST_PP_ITERATION_FINISH_4 >= 106\r
+#        define BOOST_PP_ITERATION_4 106\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 107 && BOOST_PP_ITERATION_FINISH_4 >= 107\r
+#        define BOOST_PP_ITERATION_4 107\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 108 && BOOST_PP_ITERATION_FINISH_4 >= 108\r
+#        define BOOST_PP_ITERATION_4 108\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 109 && BOOST_PP_ITERATION_FINISH_4 >= 109\r
+#        define BOOST_PP_ITERATION_4 109\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 110 && BOOST_PP_ITERATION_FINISH_4 >= 110\r
+#        define BOOST_PP_ITERATION_4 110\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 111 && BOOST_PP_ITERATION_FINISH_4 >= 111\r
+#        define BOOST_PP_ITERATION_4 111\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 112 && BOOST_PP_ITERATION_FINISH_4 >= 112\r
+#        define BOOST_PP_ITERATION_4 112\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 113 && BOOST_PP_ITERATION_FINISH_4 >= 113\r
+#        define BOOST_PP_ITERATION_4 113\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 114 && BOOST_PP_ITERATION_FINISH_4 >= 114\r
+#        define BOOST_PP_ITERATION_4 114\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 115 && BOOST_PP_ITERATION_FINISH_4 >= 115\r
+#        define BOOST_PP_ITERATION_4 115\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 116 && BOOST_PP_ITERATION_FINISH_4 >= 116\r
+#        define BOOST_PP_ITERATION_4 116\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 117 && BOOST_PP_ITERATION_FINISH_4 >= 117\r
+#        define BOOST_PP_ITERATION_4 117\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 118 && BOOST_PP_ITERATION_FINISH_4 >= 118\r
+#        define BOOST_PP_ITERATION_4 118\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 119 && BOOST_PP_ITERATION_FINISH_4 >= 119\r
+#        define BOOST_PP_ITERATION_4 119\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 120 && BOOST_PP_ITERATION_FINISH_4 >= 120\r
+#        define BOOST_PP_ITERATION_4 120\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 121 && BOOST_PP_ITERATION_FINISH_4 >= 121\r
+#        define BOOST_PP_ITERATION_4 121\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 122 && BOOST_PP_ITERATION_FINISH_4 >= 122\r
+#        define BOOST_PP_ITERATION_4 122\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 123 && BOOST_PP_ITERATION_FINISH_4 >= 123\r
+#        define BOOST_PP_ITERATION_4 123\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 124 && BOOST_PP_ITERATION_FINISH_4 >= 124\r
+#        define BOOST_PP_ITERATION_4 124\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 125 && BOOST_PP_ITERATION_FINISH_4 >= 125\r
+#        define BOOST_PP_ITERATION_4 125\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 126 && BOOST_PP_ITERATION_FINISH_4 >= 126\r
+#        define BOOST_PP_ITERATION_4 126\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 127 && BOOST_PP_ITERATION_FINISH_4 >= 127\r
+#        define BOOST_PP_ITERATION_4 127\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 128 && BOOST_PP_ITERATION_FINISH_4 >= 128\r
+#        define BOOST_PP_ITERATION_4 128\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 129 && BOOST_PP_ITERATION_FINISH_4 >= 129\r
+#        define BOOST_PP_ITERATION_4 129\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 130 && BOOST_PP_ITERATION_FINISH_4 >= 130\r
+#        define BOOST_PP_ITERATION_4 130\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 131 && BOOST_PP_ITERATION_FINISH_4 >= 131\r
+#        define BOOST_PP_ITERATION_4 131\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 132 && BOOST_PP_ITERATION_FINISH_4 >= 132\r
+#        define BOOST_PP_ITERATION_4 132\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 133 && BOOST_PP_ITERATION_FINISH_4 >= 133\r
+#        define BOOST_PP_ITERATION_4 133\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 134 && BOOST_PP_ITERATION_FINISH_4 >= 134\r
+#        define BOOST_PP_ITERATION_4 134\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 135 && BOOST_PP_ITERATION_FINISH_4 >= 135\r
+#        define BOOST_PP_ITERATION_4 135\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 136 && BOOST_PP_ITERATION_FINISH_4 >= 136\r
+#        define BOOST_PP_ITERATION_4 136\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 137 && BOOST_PP_ITERATION_FINISH_4 >= 137\r
+#        define BOOST_PP_ITERATION_4 137\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 138 && BOOST_PP_ITERATION_FINISH_4 >= 138\r
+#        define BOOST_PP_ITERATION_4 138\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 139 && BOOST_PP_ITERATION_FINISH_4 >= 139\r
+#        define BOOST_PP_ITERATION_4 139\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 140 && BOOST_PP_ITERATION_FINISH_4 >= 140\r
+#        define BOOST_PP_ITERATION_4 140\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 141 && BOOST_PP_ITERATION_FINISH_4 >= 141\r
+#        define BOOST_PP_ITERATION_4 141\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 142 && BOOST_PP_ITERATION_FINISH_4 >= 142\r
+#        define BOOST_PP_ITERATION_4 142\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 143 && BOOST_PP_ITERATION_FINISH_4 >= 143\r
+#        define BOOST_PP_ITERATION_4 143\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 144 && BOOST_PP_ITERATION_FINISH_4 >= 144\r
+#        define BOOST_PP_ITERATION_4 144\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 145 && BOOST_PP_ITERATION_FINISH_4 >= 145\r
+#        define BOOST_PP_ITERATION_4 145\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 146 && BOOST_PP_ITERATION_FINISH_4 >= 146\r
+#        define BOOST_PP_ITERATION_4 146\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 147 && BOOST_PP_ITERATION_FINISH_4 >= 147\r
+#        define BOOST_PP_ITERATION_4 147\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 148 && BOOST_PP_ITERATION_FINISH_4 >= 148\r
+#        define BOOST_PP_ITERATION_4 148\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 149 && BOOST_PP_ITERATION_FINISH_4 >= 149\r
+#        define BOOST_PP_ITERATION_4 149\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 150 && BOOST_PP_ITERATION_FINISH_4 >= 150\r
+#        define BOOST_PP_ITERATION_4 150\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 151 && BOOST_PP_ITERATION_FINISH_4 >= 151\r
+#        define BOOST_PP_ITERATION_4 151\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 152 && BOOST_PP_ITERATION_FINISH_4 >= 152\r
+#        define BOOST_PP_ITERATION_4 152\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 153 && BOOST_PP_ITERATION_FINISH_4 >= 153\r
+#        define BOOST_PP_ITERATION_4 153\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 154 && BOOST_PP_ITERATION_FINISH_4 >= 154\r
+#        define BOOST_PP_ITERATION_4 154\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 155 && BOOST_PP_ITERATION_FINISH_4 >= 155\r
+#        define BOOST_PP_ITERATION_4 155\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 156 && BOOST_PP_ITERATION_FINISH_4 >= 156\r
+#        define BOOST_PP_ITERATION_4 156\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 157 && BOOST_PP_ITERATION_FINISH_4 >= 157\r
+#        define BOOST_PP_ITERATION_4 157\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 158 && BOOST_PP_ITERATION_FINISH_4 >= 158\r
+#        define BOOST_PP_ITERATION_4 158\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 159 && BOOST_PP_ITERATION_FINISH_4 >= 159\r
+#        define BOOST_PP_ITERATION_4 159\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 160 && BOOST_PP_ITERATION_FINISH_4 >= 160\r
+#        define BOOST_PP_ITERATION_4 160\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 161 && BOOST_PP_ITERATION_FINISH_4 >= 161\r
+#        define BOOST_PP_ITERATION_4 161\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 162 && BOOST_PP_ITERATION_FINISH_4 >= 162\r
+#        define BOOST_PP_ITERATION_4 162\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 163 && BOOST_PP_ITERATION_FINISH_4 >= 163\r
+#        define BOOST_PP_ITERATION_4 163\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 164 && BOOST_PP_ITERATION_FINISH_4 >= 164\r
+#        define BOOST_PP_ITERATION_4 164\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 165 && BOOST_PP_ITERATION_FINISH_4 >= 165\r
+#        define BOOST_PP_ITERATION_4 165\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 166 && BOOST_PP_ITERATION_FINISH_4 >= 166\r
+#        define BOOST_PP_ITERATION_4 166\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 167 && BOOST_PP_ITERATION_FINISH_4 >= 167\r
+#        define BOOST_PP_ITERATION_4 167\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 168 && BOOST_PP_ITERATION_FINISH_4 >= 168\r
+#        define BOOST_PP_ITERATION_4 168\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 169 && BOOST_PP_ITERATION_FINISH_4 >= 169\r
+#        define BOOST_PP_ITERATION_4 169\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 170 && BOOST_PP_ITERATION_FINISH_4 >= 170\r
+#        define BOOST_PP_ITERATION_4 170\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 171 && BOOST_PP_ITERATION_FINISH_4 >= 171\r
+#        define BOOST_PP_ITERATION_4 171\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 172 && BOOST_PP_ITERATION_FINISH_4 >= 172\r
+#        define BOOST_PP_ITERATION_4 172\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 173 && BOOST_PP_ITERATION_FINISH_4 >= 173\r
+#        define BOOST_PP_ITERATION_4 173\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 174 && BOOST_PP_ITERATION_FINISH_4 >= 174\r
+#        define BOOST_PP_ITERATION_4 174\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 175 && BOOST_PP_ITERATION_FINISH_4 >= 175\r
+#        define BOOST_PP_ITERATION_4 175\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 176 && BOOST_PP_ITERATION_FINISH_4 >= 176\r
+#        define BOOST_PP_ITERATION_4 176\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 177 && BOOST_PP_ITERATION_FINISH_4 >= 177\r
+#        define BOOST_PP_ITERATION_4 177\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 178 && BOOST_PP_ITERATION_FINISH_4 >= 178\r
+#        define BOOST_PP_ITERATION_4 178\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 179 && BOOST_PP_ITERATION_FINISH_4 >= 179\r
+#        define BOOST_PP_ITERATION_4 179\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 180 && BOOST_PP_ITERATION_FINISH_4 >= 180\r
+#        define BOOST_PP_ITERATION_4 180\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 181 && BOOST_PP_ITERATION_FINISH_4 >= 181\r
+#        define BOOST_PP_ITERATION_4 181\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 182 && BOOST_PP_ITERATION_FINISH_4 >= 182\r
+#        define BOOST_PP_ITERATION_4 182\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 183 && BOOST_PP_ITERATION_FINISH_4 >= 183\r
+#        define BOOST_PP_ITERATION_4 183\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 184 && BOOST_PP_ITERATION_FINISH_4 >= 184\r
+#        define BOOST_PP_ITERATION_4 184\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 185 && BOOST_PP_ITERATION_FINISH_4 >= 185\r
+#        define BOOST_PP_ITERATION_4 185\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 186 && BOOST_PP_ITERATION_FINISH_4 >= 186\r
+#        define BOOST_PP_ITERATION_4 186\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 187 && BOOST_PP_ITERATION_FINISH_4 >= 187\r
+#        define BOOST_PP_ITERATION_4 187\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 188 && BOOST_PP_ITERATION_FINISH_4 >= 188\r
+#        define BOOST_PP_ITERATION_4 188\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 189 && BOOST_PP_ITERATION_FINISH_4 >= 189\r
+#        define BOOST_PP_ITERATION_4 189\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 190 && BOOST_PP_ITERATION_FINISH_4 >= 190\r
+#        define BOOST_PP_ITERATION_4 190\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 191 && BOOST_PP_ITERATION_FINISH_4 >= 191\r
+#        define BOOST_PP_ITERATION_4 191\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 192 && BOOST_PP_ITERATION_FINISH_4 >= 192\r
+#        define BOOST_PP_ITERATION_4 192\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 193 && BOOST_PP_ITERATION_FINISH_4 >= 193\r
+#        define BOOST_PP_ITERATION_4 193\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 194 && BOOST_PP_ITERATION_FINISH_4 >= 194\r
+#        define BOOST_PP_ITERATION_4 194\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 195 && BOOST_PP_ITERATION_FINISH_4 >= 195\r
+#        define BOOST_PP_ITERATION_4 195\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 196 && BOOST_PP_ITERATION_FINISH_4 >= 196\r
+#        define BOOST_PP_ITERATION_4 196\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 197 && BOOST_PP_ITERATION_FINISH_4 >= 197\r
+#        define BOOST_PP_ITERATION_4 197\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 198 && BOOST_PP_ITERATION_FINISH_4 >= 198\r
+#        define BOOST_PP_ITERATION_4 198\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 199 && BOOST_PP_ITERATION_FINISH_4 >= 199\r
+#        define BOOST_PP_ITERATION_4 199\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 200 && BOOST_PP_ITERATION_FINISH_4 >= 200\r
+#        define BOOST_PP_ITERATION_4 200\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 201 && BOOST_PP_ITERATION_FINISH_4 >= 201\r
+#        define BOOST_PP_ITERATION_4 201\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 202 && BOOST_PP_ITERATION_FINISH_4 >= 202\r
+#        define BOOST_PP_ITERATION_4 202\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 203 && BOOST_PP_ITERATION_FINISH_4 >= 203\r
+#        define BOOST_PP_ITERATION_4 203\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 204 && BOOST_PP_ITERATION_FINISH_4 >= 204\r
+#        define BOOST_PP_ITERATION_4 204\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 205 && BOOST_PP_ITERATION_FINISH_4 >= 205\r
+#        define BOOST_PP_ITERATION_4 205\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 206 && BOOST_PP_ITERATION_FINISH_4 >= 206\r
+#        define BOOST_PP_ITERATION_4 206\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 207 && BOOST_PP_ITERATION_FINISH_4 >= 207\r
+#        define BOOST_PP_ITERATION_4 207\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 208 && BOOST_PP_ITERATION_FINISH_4 >= 208\r
+#        define BOOST_PP_ITERATION_4 208\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 209 && BOOST_PP_ITERATION_FINISH_4 >= 209\r
+#        define BOOST_PP_ITERATION_4 209\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 210 && BOOST_PP_ITERATION_FINISH_4 >= 210\r
+#        define BOOST_PP_ITERATION_4 210\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 211 && BOOST_PP_ITERATION_FINISH_4 >= 211\r
+#        define BOOST_PP_ITERATION_4 211\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 212 && BOOST_PP_ITERATION_FINISH_4 >= 212\r
+#        define BOOST_PP_ITERATION_4 212\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 213 && BOOST_PP_ITERATION_FINISH_4 >= 213\r
+#        define BOOST_PP_ITERATION_4 213\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 214 && BOOST_PP_ITERATION_FINISH_4 >= 214\r
+#        define BOOST_PP_ITERATION_4 214\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 215 && BOOST_PP_ITERATION_FINISH_4 >= 215\r
+#        define BOOST_PP_ITERATION_4 215\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 216 && BOOST_PP_ITERATION_FINISH_4 >= 216\r
+#        define BOOST_PP_ITERATION_4 216\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 217 && BOOST_PP_ITERATION_FINISH_4 >= 217\r
+#        define BOOST_PP_ITERATION_4 217\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 218 && BOOST_PP_ITERATION_FINISH_4 >= 218\r
+#        define BOOST_PP_ITERATION_4 218\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 219 && BOOST_PP_ITERATION_FINISH_4 >= 219\r
+#        define BOOST_PP_ITERATION_4 219\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 220 && BOOST_PP_ITERATION_FINISH_4 >= 220\r
+#        define BOOST_PP_ITERATION_4 220\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 221 && BOOST_PP_ITERATION_FINISH_4 >= 221\r
+#        define BOOST_PP_ITERATION_4 221\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 222 && BOOST_PP_ITERATION_FINISH_4 >= 222\r
+#        define BOOST_PP_ITERATION_4 222\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 223 && BOOST_PP_ITERATION_FINISH_4 >= 223\r
+#        define BOOST_PP_ITERATION_4 223\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 224 && BOOST_PP_ITERATION_FINISH_4 >= 224\r
+#        define BOOST_PP_ITERATION_4 224\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 225 && BOOST_PP_ITERATION_FINISH_4 >= 225\r
+#        define BOOST_PP_ITERATION_4 225\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 226 && BOOST_PP_ITERATION_FINISH_4 >= 226\r
+#        define BOOST_PP_ITERATION_4 226\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 227 && BOOST_PP_ITERATION_FINISH_4 >= 227\r
+#        define BOOST_PP_ITERATION_4 227\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 228 && BOOST_PP_ITERATION_FINISH_4 >= 228\r
+#        define BOOST_PP_ITERATION_4 228\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 229 && BOOST_PP_ITERATION_FINISH_4 >= 229\r
+#        define BOOST_PP_ITERATION_4 229\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 230 && BOOST_PP_ITERATION_FINISH_4 >= 230\r
+#        define BOOST_PP_ITERATION_4 230\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 231 && BOOST_PP_ITERATION_FINISH_4 >= 231\r
+#        define BOOST_PP_ITERATION_4 231\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 232 && BOOST_PP_ITERATION_FINISH_4 >= 232\r
+#        define BOOST_PP_ITERATION_4 232\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 233 && BOOST_PP_ITERATION_FINISH_4 >= 233\r
+#        define BOOST_PP_ITERATION_4 233\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 234 && BOOST_PP_ITERATION_FINISH_4 >= 234\r
+#        define BOOST_PP_ITERATION_4 234\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 235 && BOOST_PP_ITERATION_FINISH_4 >= 235\r
+#        define BOOST_PP_ITERATION_4 235\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 236 && BOOST_PP_ITERATION_FINISH_4 >= 236\r
+#        define BOOST_PP_ITERATION_4 236\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 237 && BOOST_PP_ITERATION_FINISH_4 >= 237\r
+#        define BOOST_PP_ITERATION_4 237\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 238 && BOOST_PP_ITERATION_FINISH_4 >= 238\r
+#        define BOOST_PP_ITERATION_4 238\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 239 && BOOST_PP_ITERATION_FINISH_4 >= 239\r
+#        define BOOST_PP_ITERATION_4 239\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 240 && BOOST_PP_ITERATION_FINISH_4 >= 240\r
+#        define BOOST_PP_ITERATION_4 240\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 241 && BOOST_PP_ITERATION_FINISH_4 >= 241\r
+#        define BOOST_PP_ITERATION_4 241\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 242 && BOOST_PP_ITERATION_FINISH_4 >= 242\r
+#        define BOOST_PP_ITERATION_4 242\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 243 && BOOST_PP_ITERATION_FINISH_4 >= 243\r
+#        define BOOST_PP_ITERATION_4 243\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 244 && BOOST_PP_ITERATION_FINISH_4 >= 244\r
+#        define BOOST_PP_ITERATION_4 244\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 245 && BOOST_PP_ITERATION_FINISH_4 >= 245\r
+#        define BOOST_PP_ITERATION_4 245\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 246 && BOOST_PP_ITERATION_FINISH_4 >= 246\r
+#        define BOOST_PP_ITERATION_4 246\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 247 && BOOST_PP_ITERATION_FINISH_4 >= 247\r
+#        define BOOST_PP_ITERATION_4 247\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 248 && BOOST_PP_ITERATION_FINISH_4 >= 248\r
+#        define BOOST_PP_ITERATION_4 248\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 249 && BOOST_PP_ITERATION_FINISH_4 >= 249\r
+#        define BOOST_PP_ITERATION_4 249\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 250 && BOOST_PP_ITERATION_FINISH_4 >= 250\r
+#        define BOOST_PP_ITERATION_4 250\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 251 && BOOST_PP_ITERATION_FINISH_4 >= 251\r
+#        define BOOST_PP_ITERATION_4 251\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 252 && BOOST_PP_ITERATION_FINISH_4 >= 252\r
+#        define BOOST_PP_ITERATION_4 252\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 253 && BOOST_PP_ITERATION_FINISH_4 >= 253\r
+#        define BOOST_PP_ITERATION_4 253\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 254 && BOOST_PP_ITERATION_FINISH_4 >= 254\r
+#        define BOOST_PP_ITERATION_4 254\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 255 && BOOST_PP_ITERATION_FINISH_4 >= 255\r
+#        define BOOST_PP_ITERATION_4 255\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_4 <= 256 && BOOST_PP_ITERATION_FINISH_4 >= 256\r
+#        define BOOST_PP_ITERATION_4 256\r
+#        include BOOST_PP_FILENAME_4\r
+#        undef BOOST_PP_ITERATION_4\r
+#    endif\r
+# endif\r
+#\r
+# undef BOOST_PP_ITERATION_DEPTH\r
+# define BOOST_PP_ITERATION_DEPTH() 3\r
+#\r
+# undef BOOST_PP_ITERATION_START_4\r
+# undef BOOST_PP_ITERATION_FINISH_4\r
+# undef BOOST_PP_FILENAME_4\r
+#\r
+# undef BOOST_PP_ITERATION_FLAGS_4\r
+# undef BOOST_PP_ITERATION_PARAMS_4\r
diff --git a/boost/boost/preprocessor/iteration/detail/iter/forward5.hpp b/boost/boost/preprocessor/iteration/detail/iter/forward5.hpp
new file mode 100644 (file)
index 0000000..000ba0f
--- /dev/null
@@ -0,0 +1,1338 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# if defined(BOOST_PP_ITERATION_LIMITS)\r
+#    if !defined(BOOST_PP_FILENAME_5)\r
+#        error BOOST_PP_ERROR:  depth #5 filename is not defined\r
+#    endif\r
+#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS)\r
+#    include <boost/preprocessor/iteration/detail/bounds/lower5.hpp>\r
+#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)\r
+#    include <boost/preprocessor/iteration/detail/bounds/upper5.hpp>\r
+#    define BOOST_PP_ITERATION_FLAGS_5 0\r
+#    undef BOOST_PP_ITERATION_LIMITS\r
+# elif defined(BOOST_PP_ITERATION_PARAMS_5)\r
+#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_5)\r
+#    include <boost/preprocessor/iteration/detail/bounds/lower5.hpp>\r
+#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_5)\r
+#    include <boost/preprocessor/iteration/detail/bounds/upper5.hpp>\r
+#    define BOOST_PP_FILENAME_5 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_5)\r
+#    if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_5) >= 4\r
+#        define BOOST_PP_ITERATION_FLAGS_5 BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_5)\r
+#    else\r
+#        define BOOST_PP_ITERATION_FLAGS_5 0\r
+#    endif\r
+# else\r
+#    error BOOST_PP_ERROR:  depth #5 iteration boundaries or filename not defined\r
+# endif\r
+#\r
+# undef BOOST_PP_ITERATION_DEPTH\r
+# define BOOST_PP_ITERATION_DEPTH() 5\r
+#\r
+# if (BOOST_PP_ITERATION_START_5) > (BOOST_PP_ITERATION_FINISH_5)\r
+#    include <boost/preprocessor/iteration/detail/iter/reverse5.hpp>\r
+# else\r
+#    if BOOST_PP_ITERATION_START_5 <= 0 && BOOST_PP_ITERATION_FINISH_5 >= 0\r
+#        define BOOST_PP_ITERATION_5 0\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 1 && BOOST_PP_ITERATION_FINISH_5 >= 1\r
+#        define BOOST_PP_ITERATION_5 1\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 2 && BOOST_PP_ITERATION_FINISH_5 >= 2\r
+#        define BOOST_PP_ITERATION_5 2\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 3 && BOOST_PP_ITERATION_FINISH_5 >= 3\r
+#        define BOOST_PP_ITERATION_5 3\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 4 && BOOST_PP_ITERATION_FINISH_5 >= 4\r
+#        define BOOST_PP_ITERATION_5 4\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 5 && BOOST_PP_ITERATION_FINISH_5 >= 5\r
+#        define BOOST_PP_ITERATION_5 5\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 6 && BOOST_PP_ITERATION_FINISH_5 >= 6\r
+#        define BOOST_PP_ITERATION_5 6\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 7 && BOOST_PP_ITERATION_FINISH_5 >= 7\r
+#        define BOOST_PP_ITERATION_5 7\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 8 && BOOST_PP_ITERATION_FINISH_5 >= 8\r
+#        define BOOST_PP_ITERATION_5 8\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 9 && BOOST_PP_ITERATION_FINISH_5 >= 9\r
+#        define BOOST_PP_ITERATION_5 9\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 10 && BOOST_PP_ITERATION_FINISH_5 >= 10\r
+#        define BOOST_PP_ITERATION_5 10\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 11 && BOOST_PP_ITERATION_FINISH_5 >= 11\r
+#        define BOOST_PP_ITERATION_5 11\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 12 && BOOST_PP_ITERATION_FINISH_5 >= 12\r
+#        define BOOST_PP_ITERATION_5 12\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 13 && BOOST_PP_ITERATION_FINISH_5 >= 13\r
+#        define BOOST_PP_ITERATION_5 13\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 14 && BOOST_PP_ITERATION_FINISH_5 >= 14\r
+#        define BOOST_PP_ITERATION_5 14\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 15 && BOOST_PP_ITERATION_FINISH_5 >= 15\r
+#        define BOOST_PP_ITERATION_5 15\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 16 && BOOST_PP_ITERATION_FINISH_5 >= 16\r
+#        define BOOST_PP_ITERATION_5 16\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 17 && BOOST_PP_ITERATION_FINISH_5 >= 17\r
+#        define BOOST_PP_ITERATION_5 17\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 18 && BOOST_PP_ITERATION_FINISH_5 >= 18\r
+#        define BOOST_PP_ITERATION_5 18\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 19 && BOOST_PP_ITERATION_FINISH_5 >= 19\r
+#        define BOOST_PP_ITERATION_5 19\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 20 && BOOST_PP_ITERATION_FINISH_5 >= 20\r
+#        define BOOST_PP_ITERATION_5 20\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 21 && BOOST_PP_ITERATION_FINISH_5 >= 21\r
+#        define BOOST_PP_ITERATION_5 21\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 22 && BOOST_PP_ITERATION_FINISH_5 >= 22\r
+#        define BOOST_PP_ITERATION_5 22\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 23 && BOOST_PP_ITERATION_FINISH_5 >= 23\r
+#        define BOOST_PP_ITERATION_5 23\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 24 && BOOST_PP_ITERATION_FINISH_5 >= 24\r
+#        define BOOST_PP_ITERATION_5 24\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 25 && BOOST_PP_ITERATION_FINISH_5 >= 25\r
+#        define BOOST_PP_ITERATION_5 25\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 26 && BOOST_PP_ITERATION_FINISH_5 >= 26\r
+#        define BOOST_PP_ITERATION_5 26\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 27 && BOOST_PP_ITERATION_FINISH_5 >= 27\r
+#        define BOOST_PP_ITERATION_5 27\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 28 && BOOST_PP_ITERATION_FINISH_5 >= 28\r
+#        define BOOST_PP_ITERATION_5 28\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 29 && BOOST_PP_ITERATION_FINISH_5 >= 29\r
+#        define BOOST_PP_ITERATION_5 29\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 30 && BOOST_PP_ITERATION_FINISH_5 >= 30\r
+#        define BOOST_PP_ITERATION_5 30\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 31 && BOOST_PP_ITERATION_FINISH_5 >= 31\r
+#        define BOOST_PP_ITERATION_5 31\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 32 && BOOST_PP_ITERATION_FINISH_5 >= 32\r
+#        define BOOST_PP_ITERATION_5 32\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 33 && BOOST_PP_ITERATION_FINISH_5 >= 33\r
+#        define BOOST_PP_ITERATION_5 33\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 34 && BOOST_PP_ITERATION_FINISH_5 >= 34\r
+#        define BOOST_PP_ITERATION_5 34\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 35 && BOOST_PP_ITERATION_FINISH_5 >= 35\r
+#        define BOOST_PP_ITERATION_5 35\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 36 && BOOST_PP_ITERATION_FINISH_5 >= 36\r
+#        define BOOST_PP_ITERATION_5 36\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 37 && BOOST_PP_ITERATION_FINISH_5 >= 37\r
+#        define BOOST_PP_ITERATION_5 37\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 38 && BOOST_PP_ITERATION_FINISH_5 >= 38\r
+#        define BOOST_PP_ITERATION_5 38\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 39 && BOOST_PP_ITERATION_FINISH_5 >= 39\r
+#        define BOOST_PP_ITERATION_5 39\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 40 && BOOST_PP_ITERATION_FINISH_5 >= 40\r
+#        define BOOST_PP_ITERATION_5 40\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 41 && BOOST_PP_ITERATION_FINISH_5 >= 41\r
+#        define BOOST_PP_ITERATION_5 41\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 42 && BOOST_PP_ITERATION_FINISH_5 >= 42\r
+#        define BOOST_PP_ITERATION_5 42\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 43 && BOOST_PP_ITERATION_FINISH_5 >= 43\r
+#        define BOOST_PP_ITERATION_5 43\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 44 && BOOST_PP_ITERATION_FINISH_5 >= 44\r
+#        define BOOST_PP_ITERATION_5 44\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 45 && BOOST_PP_ITERATION_FINISH_5 >= 45\r
+#        define BOOST_PP_ITERATION_5 45\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 46 && BOOST_PP_ITERATION_FINISH_5 >= 46\r
+#        define BOOST_PP_ITERATION_5 46\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 47 && BOOST_PP_ITERATION_FINISH_5 >= 47\r
+#        define BOOST_PP_ITERATION_5 47\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 48 && BOOST_PP_ITERATION_FINISH_5 >= 48\r
+#        define BOOST_PP_ITERATION_5 48\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 49 && BOOST_PP_ITERATION_FINISH_5 >= 49\r
+#        define BOOST_PP_ITERATION_5 49\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 50 && BOOST_PP_ITERATION_FINISH_5 >= 50\r
+#        define BOOST_PP_ITERATION_5 50\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 51 && BOOST_PP_ITERATION_FINISH_5 >= 51\r
+#        define BOOST_PP_ITERATION_5 51\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 52 && BOOST_PP_ITERATION_FINISH_5 >= 52\r
+#        define BOOST_PP_ITERATION_5 52\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 53 && BOOST_PP_ITERATION_FINISH_5 >= 53\r
+#        define BOOST_PP_ITERATION_5 53\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 54 && BOOST_PP_ITERATION_FINISH_5 >= 54\r
+#        define BOOST_PP_ITERATION_5 54\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 55 && BOOST_PP_ITERATION_FINISH_5 >= 55\r
+#        define BOOST_PP_ITERATION_5 55\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 56 && BOOST_PP_ITERATION_FINISH_5 >= 56\r
+#        define BOOST_PP_ITERATION_5 56\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 57 && BOOST_PP_ITERATION_FINISH_5 >= 57\r
+#        define BOOST_PP_ITERATION_5 57\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 58 && BOOST_PP_ITERATION_FINISH_5 >= 58\r
+#        define BOOST_PP_ITERATION_5 58\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 59 && BOOST_PP_ITERATION_FINISH_5 >= 59\r
+#        define BOOST_PP_ITERATION_5 59\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 60 && BOOST_PP_ITERATION_FINISH_5 >= 60\r
+#        define BOOST_PP_ITERATION_5 60\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 61 && BOOST_PP_ITERATION_FINISH_5 >= 61\r
+#        define BOOST_PP_ITERATION_5 61\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 62 && BOOST_PP_ITERATION_FINISH_5 >= 62\r
+#        define BOOST_PP_ITERATION_5 62\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 63 && BOOST_PP_ITERATION_FINISH_5 >= 63\r
+#        define BOOST_PP_ITERATION_5 63\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 64 && BOOST_PP_ITERATION_FINISH_5 >= 64\r
+#        define BOOST_PP_ITERATION_5 64\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 65 && BOOST_PP_ITERATION_FINISH_5 >= 65\r
+#        define BOOST_PP_ITERATION_5 65\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 66 && BOOST_PP_ITERATION_FINISH_5 >= 66\r
+#        define BOOST_PP_ITERATION_5 66\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 67 && BOOST_PP_ITERATION_FINISH_5 >= 67\r
+#        define BOOST_PP_ITERATION_5 67\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 68 && BOOST_PP_ITERATION_FINISH_5 >= 68\r
+#        define BOOST_PP_ITERATION_5 68\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 69 && BOOST_PP_ITERATION_FINISH_5 >= 69\r
+#        define BOOST_PP_ITERATION_5 69\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 70 && BOOST_PP_ITERATION_FINISH_5 >= 70\r
+#        define BOOST_PP_ITERATION_5 70\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 71 && BOOST_PP_ITERATION_FINISH_5 >= 71\r
+#        define BOOST_PP_ITERATION_5 71\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 72 && BOOST_PP_ITERATION_FINISH_5 >= 72\r
+#        define BOOST_PP_ITERATION_5 72\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 73 && BOOST_PP_ITERATION_FINISH_5 >= 73\r
+#        define BOOST_PP_ITERATION_5 73\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 74 && BOOST_PP_ITERATION_FINISH_5 >= 74\r
+#        define BOOST_PP_ITERATION_5 74\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 75 && BOOST_PP_ITERATION_FINISH_5 >= 75\r
+#        define BOOST_PP_ITERATION_5 75\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 76 && BOOST_PP_ITERATION_FINISH_5 >= 76\r
+#        define BOOST_PP_ITERATION_5 76\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 77 && BOOST_PP_ITERATION_FINISH_5 >= 77\r
+#        define BOOST_PP_ITERATION_5 77\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 78 && BOOST_PP_ITERATION_FINISH_5 >= 78\r
+#        define BOOST_PP_ITERATION_5 78\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 79 && BOOST_PP_ITERATION_FINISH_5 >= 79\r
+#        define BOOST_PP_ITERATION_5 79\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 80 && BOOST_PP_ITERATION_FINISH_5 >= 80\r
+#        define BOOST_PP_ITERATION_5 80\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 81 && BOOST_PP_ITERATION_FINISH_5 >= 81\r
+#        define BOOST_PP_ITERATION_5 81\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 82 && BOOST_PP_ITERATION_FINISH_5 >= 82\r
+#        define BOOST_PP_ITERATION_5 82\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 83 && BOOST_PP_ITERATION_FINISH_5 >= 83\r
+#        define BOOST_PP_ITERATION_5 83\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 84 && BOOST_PP_ITERATION_FINISH_5 >= 84\r
+#        define BOOST_PP_ITERATION_5 84\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 85 && BOOST_PP_ITERATION_FINISH_5 >= 85\r
+#        define BOOST_PP_ITERATION_5 85\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 86 && BOOST_PP_ITERATION_FINISH_5 >= 86\r
+#        define BOOST_PP_ITERATION_5 86\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 87 && BOOST_PP_ITERATION_FINISH_5 >= 87\r
+#        define BOOST_PP_ITERATION_5 87\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 88 && BOOST_PP_ITERATION_FINISH_5 >= 88\r
+#        define BOOST_PP_ITERATION_5 88\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 89 && BOOST_PP_ITERATION_FINISH_5 >= 89\r
+#        define BOOST_PP_ITERATION_5 89\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 90 && BOOST_PP_ITERATION_FINISH_5 >= 90\r
+#        define BOOST_PP_ITERATION_5 90\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 91 && BOOST_PP_ITERATION_FINISH_5 >= 91\r
+#        define BOOST_PP_ITERATION_5 91\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 92 && BOOST_PP_ITERATION_FINISH_5 >= 92\r
+#        define BOOST_PP_ITERATION_5 92\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 93 && BOOST_PP_ITERATION_FINISH_5 >= 93\r
+#        define BOOST_PP_ITERATION_5 93\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 94 && BOOST_PP_ITERATION_FINISH_5 >= 94\r
+#        define BOOST_PP_ITERATION_5 94\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 95 && BOOST_PP_ITERATION_FINISH_5 >= 95\r
+#        define BOOST_PP_ITERATION_5 95\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 96 && BOOST_PP_ITERATION_FINISH_5 >= 96\r
+#        define BOOST_PP_ITERATION_5 96\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 97 && BOOST_PP_ITERATION_FINISH_5 >= 97\r
+#        define BOOST_PP_ITERATION_5 97\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 98 && BOOST_PP_ITERATION_FINISH_5 >= 98\r
+#        define BOOST_PP_ITERATION_5 98\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 99 && BOOST_PP_ITERATION_FINISH_5 >= 99\r
+#        define BOOST_PP_ITERATION_5 99\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 100 && BOOST_PP_ITERATION_FINISH_5 >= 100\r
+#        define BOOST_PP_ITERATION_5 100\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 101 && BOOST_PP_ITERATION_FINISH_5 >= 101\r
+#        define BOOST_PP_ITERATION_5 101\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 102 && BOOST_PP_ITERATION_FINISH_5 >= 102\r
+#        define BOOST_PP_ITERATION_5 102\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 103 && BOOST_PP_ITERATION_FINISH_5 >= 103\r
+#        define BOOST_PP_ITERATION_5 103\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 104 && BOOST_PP_ITERATION_FINISH_5 >= 104\r
+#        define BOOST_PP_ITERATION_5 104\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 105 && BOOST_PP_ITERATION_FINISH_5 >= 105\r
+#        define BOOST_PP_ITERATION_5 105\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 106 && BOOST_PP_ITERATION_FINISH_5 >= 106\r
+#        define BOOST_PP_ITERATION_5 106\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 107 && BOOST_PP_ITERATION_FINISH_5 >= 107\r
+#        define BOOST_PP_ITERATION_5 107\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 108 && BOOST_PP_ITERATION_FINISH_5 >= 108\r
+#        define BOOST_PP_ITERATION_5 108\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 109 && BOOST_PP_ITERATION_FINISH_5 >= 109\r
+#        define BOOST_PP_ITERATION_5 109\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 110 && BOOST_PP_ITERATION_FINISH_5 >= 110\r
+#        define BOOST_PP_ITERATION_5 110\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 111 && BOOST_PP_ITERATION_FINISH_5 >= 111\r
+#        define BOOST_PP_ITERATION_5 111\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 112 && BOOST_PP_ITERATION_FINISH_5 >= 112\r
+#        define BOOST_PP_ITERATION_5 112\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 113 && BOOST_PP_ITERATION_FINISH_5 >= 113\r
+#        define BOOST_PP_ITERATION_5 113\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 114 && BOOST_PP_ITERATION_FINISH_5 >= 114\r
+#        define BOOST_PP_ITERATION_5 114\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 115 && BOOST_PP_ITERATION_FINISH_5 >= 115\r
+#        define BOOST_PP_ITERATION_5 115\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 116 && BOOST_PP_ITERATION_FINISH_5 >= 116\r
+#        define BOOST_PP_ITERATION_5 116\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 117 && BOOST_PP_ITERATION_FINISH_5 >= 117\r
+#        define BOOST_PP_ITERATION_5 117\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 118 && BOOST_PP_ITERATION_FINISH_5 >= 118\r
+#        define BOOST_PP_ITERATION_5 118\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 119 && BOOST_PP_ITERATION_FINISH_5 >= 119\r
+#        define BOOST_PP_ITERATION_5 119\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 120 && BOOST_PP_ITERATION_FINISH_5 >= 120\r
+#        define BOOST_PP_ITERATION_5 120\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 121 && BOOST_PP_ITERATION_FINISH_5 >= 121\r
+#        define BOOST_PP_ITERATION_5 121\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 122 && BOOST_PP_ITERATION_FINISH_5 >= 122\r
+#        define BOOST_PP_ITERATION_5 122\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 123 && BOOST_PP_ITERATION_FINISH_5 >= 123\r
+#        define BOOST_PP_ITERATION_5 123\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 124 && BOOST_PP_ITERATION_FINISH_5 >= 124\r
+#        define BOOST_PP_ITERATION_5 124\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 125 && BOOST_PP_ITERATION_FINISH_5 >= 125\r
+#        define BOOST_PP_ITERATION_5 125\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 126 && BOOST_PP_ITERATION_FINISH_5 >= 126\r
+#        define BOOST_PP_ITERATION_5 126\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 127 && BOOST_PP_ITERATION_FINISH_5 >= 127\r
+#        define BOOST_PP_ITERATION_5 127\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 128 && BOOST_PP_ITERATION_FINISH_5 >= 128\r
+#        define BOOST_PP_ITERATION_5 128\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 129 && BOOST_PP_ITERATION_FINISH_5 >= 129\r
+#        define BOOST_PP_ITERATION_5 129\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 130 && BOOST_PP_ITERATION_FINISH_5 >= 130\r
+#        define BOOST_PP_ITERATION_5 130\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 131 && BOOST_PP_ITERATION_FINISH_5 >= 131\r
+#        define BOOST_PP_ITERATION_5 131\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 132 && BOOST_PP_ITERATION_FINISH_5 >= 132\r
+#        define BOOST_PP_ITERATION_5 132\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 133 && BOOST_PP_ITERATION_FINISH_5 >= 133\r
+#        define BOOST_PP_ITERATION_5 133\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 134 && BOOST_PP_ITERATION_FINISH_5 >= 134\r
+#        define BOOST_PP_ITERATION_5 134\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 135 && BOOST_PP_ITERATION_FINISH_5 >= 135\r
+#        define BOOST_PP_ITERATION_5 135\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 136 && BOOST_PP_ITERATION_FINISH_5 >= 136\r
+#        define BOOST_PP_ITERATION_5 136\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 137 && BOOST_PP_ITERATION_FINISH_5 >= 137\r
+#        define BOOST_PP_ITERATION_5 137\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 138 && BOOST_PP_ITERATION_FINISH_5 >= 138\r
+#        define BOOST_PP_ITERATION_5 138\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 139 && BOOST_PP_ITERATION_FINISH_5 >= 139\r
+#        define BOOST_PP_ITERATION_5 139\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 140 && BOOST_PP_ITERATION_FINISH_5 >= 140\r
+#        define BOOST_PP_ITERATION_5 140\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 141 && BOOST_PP_ITERATION_FINISH_5 >= 141\r
+#        define BOOST_PP_ITERATION_5 141\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 142 && BOOST_PP_ITERATION_FINISH_5 >= 142\r
+#        define BOOST_PP_ITERATION_5 142\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 143 && BOOST_PP_ITERATION_FINISH_5 >= 143\r
+#        define BOOST_PP_ITERATION_5 143\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 144 && BOOST_PP_ITERATION_FINISH_5 >= 144\r
+#        define BOOST_PP_ITERATION_5 144\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 145 && BOOST_PP_ITERATION_FINISH_5 >= 145\r
+#        define BOOST_PP_ITERATION_5 145\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 146 && BOOST_PP_ITERATION_FINISH_5 >= 146\r
+#        define BOOST_PP_ITERATION_5 146\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 147 && BOOST_PP_ITERATION_FINISH_5 >= 147\r
+#        define BOOST_PP_ITERATION_5 147\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 148 && BOOST_PP_ITERATION_FINISH_5 >= 148\r
+#        define BOOST_PP_ITERATION_5 148\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 149 && BOOST_PP_ITERATION_FINISH_5 >= 149\r
+#        define BOOST_PP_ITERATION_5 149\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 150 && BOOST_PP_ITERATION_FINISH_5 >= 150\r
+#        define BOOST_PP_ITERATION_5 150\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 151 && BOOST_PP_ITERATION_FINISH_5 >= 151\r
+#        define BOOST_PP_ITERATION_5 151\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 152 && BOOST_PP_ITERATION_FINISH_5 >= 152\r
+#        define BOOST_PP_ITERATION_5 152\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 153 && BOOST_PP_ITERATION_FINISH_5 >= 153\r
+#        define BOOST_PP_ITERATION_5 153\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 154 && BOOST_PP_ITERATION_FINISH_5 >= 154\r
+#        define BOOST_PP_ITERATION_5 154\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 155 && BOOST_PP_ITERATION_FINISH_5 >= 155\r
+#        define BOOST_PP_ITERATION_5 155\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 156 && BOOST_PP_ITERATION_FINISH_5 >= 156\r
+#        define BOOST_PP_ITERATION_5 156\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 157 && BOOST_PP_ITERATION_FINISH_5 >= 157\r
+#        define BOOST_PP_ITERATION_5 157\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 158 && BOOST_PP_ITERATION_FINISH_5 >= 158\r
+#        define BOOST_PP_ITERATION_5 158\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 159 && BOOST_PP_ITERATION_FINISH_5 >= 159\r
+#        define BOOST_PP_ITERATION_5 159\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 160 && BOOST_PP_ITERATION_FINISH_5 >= 160\r
+#        define BOOST_PP_ITERATION_5 160\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 161 && BOOST_PP_ITERATION_FINISH_5 >= 161\r
+#        define BOOST_PP_ITERATION_5 161\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 162 && BOOST_PP_ITERATION_FINISH_5 >= 162\r
+#        define BOOST_PP_ITERATION_5 162\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 163 && BOOST_PP_ITERATION_FINISH_5 >= 163\r
+#        define BOOST_PP_ITERATION_5 163\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 164 && BOOST_PP_ITERATION_FINISH_5 >= 164\r
+#        define BOOST_PP_ITERATION_5 164\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 165 && BOOST_PP_ITERATION_FINISH_5 >= 165\r
+#        define BOOST_PP_ITERATION_5 165\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 166 && BOOST_PP_ITERATION_FINISH_5 >= 166\r
+#        define BOOST_PP_ITERATION_5 166\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 167 && BOOST_PP_ITERATION_FINISH_5 >= 167\r
+#        define BOOST_PP_ITERATION_5 167\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 168 && BOOST_PP_ITERATION_FINISH_5 >= 168\r
+#        define BOOST_PP_ITERATION_5 168\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 169 && BOOST_PP_ITERATION_FINISH_5 >= 169\r
+#        define BOOST_PP_ITERATION_5 169\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 170 && BOOST_PP_ITERATION_FINISH_5 >= 170\r
+#        define BOOST_PP_ITERATION_5 170\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 171 && BOOST_PP_ITERATION_FINISH_5 >= 171\r
+#        define BOOST_PP_ITERATION_5 171\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 172 && BOOST_PP_ITERATION_FINISH_5 >= 172\r
+#        define BOOST_PP_ITERATION_5 172\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 173 && BOOST_PP_ITERATION_FINISH_5 >= 173\r
+#        define BOOST_PP_ITERATION_5 173\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 174 && BOOST_PP_ITERATION_FINISH_5 >= 174\r
+#        define BOOST_PP_ITERATION_5 174\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 175 && BOOST_PP_ITERATION_FINISH_5 >= 175\r
+#        define BOOST_PP_ITERATION_5 175\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 176 && BOOST_PP_ITERATION_FINISH_5 >= 176\r
+#        define BOOST_PP_ITERATION_5 176\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 177 && BOOST_PP_ITERATION_FINISH_5 >= 177\r
+#        define BOOST_PP_ITERATION_5 177\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 178 && BOOST_PP_ITERATION_FINISH_5 >= 178\r
+#        define BOOST_PP_ITERATION_5 178\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 179 && BOOST_PP_ITERATION_FINISH_5 >= 179\r
+#        define BOOST_PP_ITERATION_5 179\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 180 && BOOST_PP_ITERATION_FINISH_5 >= 180\r
+#        define BOOST_PP_ITERATION_5 180\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 181 && BOOST_PP_ITERATION_FINISH_5 >= 181\r
+#        define BOOST_PP_ITERATION_5 181\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 182 && BOOST_PP_ITERATION_FINISH_5 >= 182\r
+#        define BOOST_PP_ITERATION_5 182\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 183 && BOOST_PP_ITERATION_FINISH_5 >= 183\r
+#        define BOOST_PP_ITERATION_5 183\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 184 && BOOST_PP_ITERATION_FINISH_5 >= 184\r
+#        define BOOST_PP_ITERATION_5 184\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 185 && BOOST_PP_ITERATION_FINISH_5 >= 185\r
+#        define BOOST_PP_ITERATION_5 185\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 186 && BOOST_PP_ITERATION_FINISH_5 >= 186\r
+#        define BOOST_PP_ITERATION_5 186\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 187 && BOOST_PP_ITERATION_FINISH_5 >= 187\r
+#        define BOOST_PP_ITERATION_5 187\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 188 && BOOST_PP_ITERATION_FINISH_5 >= 188\r
+#        define BOOST_PP_ITERATION_5 188\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 189 && BOOST_PP_ITERATION_FINISH_5 >= 189\r
+#        define BOOST_PP_ITERATION_5 189\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 190 && BOOST_PP_ITERATION_FINISH_5 >= 190\r
+#        define BOOST_PP_ITERATION_5 190\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 191 && BOOST_PP_ITERATION_FINISH_5 >= 191\r
+#        define BOOST_PP_ITERATION_5 191\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 192 && BOOST_PP_ITERATION_FINISH_5 >= 192\r
+#        define BOOST_PP_ITERATION_5 192\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 193 && BOOST_PP_ITERATION_FINISH_5 >= 193\r
+#        define BOOST_PP_ITERATION_5 193\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 194 && BOOST_PP_ITERATION_FINISH_5 >= 194\r
+#        define BOOST_PP_ITERATION_5 194\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 195 && BOOST_PP_ITERATION_FINISH_5 >= 195\r
+#        define BOOST_PP_ITERATION_5 195\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 196 && BOOST_PP_ITERATION_FINISH_5 >= 196\r
+#        define BOOST_PP_ITERATION_5 196\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 197 && BOOST_PP_ITERATION_FINISH_5 >= 197\r
+#        define BOOST_PP_ITERATION_5 197\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 198 && BOOST_PP_ITERATION_FINISH_5 >= 198\r
+#        define BOOST_PP_ITERATION_5 198\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 199 && BOOST_PP_ITERATION_FINISH_5 >= 199\r
+#        define BOOST_PP_ITERATION_5 199\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 200 && BOOST_PP_ITERATION_FINISH_5 >= 200\r
+#        define BOOST_PP_ITERATION_5 200\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 201 && BOOST_PP_ITERATION_FINISH_5 >= 201\r
+#        define BOOST_PP_ITERATION_5 201\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 202 && BOOST_PP_ITERATION_FINISH_5 >= 202\r
+#        define BOOST_PP_ITERATION_5 202\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 203 && BOOST_PP_ITERATION_FINISH_5 >= 203\r
+#        define BOOST_PP_ITERATION_5 203\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 204 && BOOST_PP_ITERATION_FINISH_5 >= 204\r
+#        define BOOST_PP_ITERATION_5 204\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 205 && BOOST_PP_ITERATION_FINISH_5 >= 205\r
+#        define BOOST_PP_ITERATION_5 205\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 206 && BOOST_PP_ITERATION_FINISH_5 >= 206\r
+#        define BOOST_PP_ITERATION_5 206\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 207 && BOOST_PP_ITERATION_FINISH_5 >= 207\r
+#        define BOOST_PP_ITERATION_5 207\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 208 && BOOST_PP_ITERATION_FINISH_5 >= 208\r
+#        define BOOST_PP_ITERATION_5 208\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 209 && BOOST_PP_ITERATION_FINISH_5 >= 209\r
+#        define BOOST_PP_ITERATION_5 209\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 210 && BOOST_PP_ITERATION_FINISH_5 >= 210\r
+#        define BOOST_PP_ITERATION_5 210\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 211 && BOOST_PP_ITERATION_FINISH_5 >= 211\r
+#        define BOOST_PP_ITERATION_5 211\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 212 && BOOST_PP_ITERATION_FINISH_5 >= 212\r
+#        define BOOST_PP_ITERATION_5 212\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 213 && BOOST_PP_ITERATION_FINISH_5 >= 213\r
+#        define BOOST_PP_ITERATION_5 213\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 214 && BOOST_PP_ITERATION_FINISH_5 >= 214\r
+#        define BOOST_PP_ITERATION_5 214\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 215 && BOOST_PP_ITERATION_FINISH_5 >= 215\r
+#        define BOOST_PP_ITERATION_5 215\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 216 && BOOST_PP_ITERATION_FINISH_5 >= 216\r
+#        define BOOST_PP_ITERATION_5 216\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 217 && BOOST_PP_ITERATION_FINISH_5 >= 217\r
+#        define BOOST_PP_ITERATION_5 217\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 218 && BOOST_PP_ITERATION_FINISH_5 >= 218\r
+#        define BOOST_PP_ITERATION_5 218\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 219 && BOOST_PP_ITERATION_FINISH_5 >= 219\r
+#        define BOOST_PP_ITERATION_5 219\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 220 && BOOST_PP_ITERATION_FINISH_5 >= 220\r
+#        define BOOST_PP_ITERATION_5 220\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 221 && BOOST_PP_ITERATION_FINISH_5 >= 221\r
+#        define BOOST_PP_ITERATION_5 221\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 222 && BOOST_PP_ITERATION_FINISH_5 >= 222\r
+#        define BOOST_PP_ITERATION_5 222\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 223 && BOOST_PP_ITERATION_FINISH_5 >= 223\r
+#        define BOOST_PP_ITERATION_5 223\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 224 && BOOST_PP_ITERATION_FINISH_5 >= 224\r
+#        define BOOST_PP_ITERATION_5 224\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 225 && BOOST_PP_ITERATION_FINISH_5 >= 225\r
+#        define BOOST_PP_ITERATION_5 225\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 226 && BOOST_PP_ITERATION_FINISH_5 >= 226\r
+#        define BOOST_PP_ITERATION_5 226\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 227 && BOOST_PP_ITERATION_FINISH_5 >= 227\r
+#        define BOOST_PP_ITERATION_5 227\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 228 && BOOST_PP_ITERATION_FINISH_5 >= 228\r
+#        define BOOST_PP_ITERATION_5 228\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 229 && BOOST_PP_ITERATION_FINISH_5 >= 229\r
+#        define BOOST_PP_ITERATION_5 229\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 230 && BOOST_PP_ITERATION_FINISH_5 >= 230\r
+#        define BOOST_PP_ITERATION_5 230\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 231 && BOOST_PP_ITERATION_FINISH_5 >= 231\r
+#        define BOOST_PP_ITERATION_5 231\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 232 && BOOST_PP_ITERATION_FINISH_5 >= 232\r
+#        define BOOST_PP_ITERATION_5 232\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 233 && BOOST_PP_ITERATION_FINISH_5 >= 233\r
+#        define BOOST_PP_ITERATION_5 233\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 234 && BOOST_PP_ITERATION_FINISH_5 >= 234\r
+#        define BOOST_PP_ITERATION_5 234\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 235 && BOOST_PP_ITERATION_FINISH_5 >= 235\r
+#        define BOOST_PP_ITERATION_5 235\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 236 && BOOST_PP_ITERATION_FINISH_5 >= 236\r
+#        define BOOST_PP_ITERATION_5 236\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 237 && BOOST_PP_ITERATION_FINISH_5 >= 237\r
+#        define BOOST_PP_ITERATION_5 237\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 238 && BOOST_PP_ITERATION_FINISH_5 >= 238\r
+#        define BOOST_PP_ITERATION_5 238\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 239 && BOOST_PP_ITERATION_FINISH_5 >= 239\r
+#        define BOOST_PP_ITERATION_5 239\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 240 && BOOST_PP_ITERATION_FINISH_5 >= 240\r
+#        define BOOST_PP_ITERATION_5 240\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 241 && BOOST_PP_ITERATION_FINISH_5 >= 241\r
+#        define BOOST_PP_ITERATION_5 241\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 242 && BOOST_PP_ITERATION_FINISH_5 >= 242\r
+#        define BOOST_PP_ITERATION_5 242\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 243 && BOOST_PP_ITERATION_FINISH_5 >= 243\r
+#        define BOOST_PP_ITERATION_5 243\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 244 && BOOST_PP_ITERATION_FINISH_5 >= 244\r
+#        define BOOST_PP_ITERATION_5 244\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 245 && BOOST_PP_ITERATION_FINISH_5 >= 245\r
+#        define BOOST_PP_ITERATION_5 245\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 246 && BOOST_PP_ITERATION_FINISH_5 >= 246\r
+#        define BOOST_PP_ITERATION_5 246\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 247 && BOOST_PP_ITERATION_FINISH_5 >= 247\r
+#        define BOOST_PP_ITERATION_5 247\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 248 && BOOST_PP_ITERATION_FINISH_5 >= 248\r
+#        define BOOST_PP_ITERATION_5 248\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 249 && BOOST_PP_ITERATION_FINISH_5 >= 249\r
+#        define BOOST_PP_ITERATION_5 249\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 250 && BOOST_PP_ITERATION_FINISH_5 >= 250\r
+#        define BOOST_PP_ITERATION_5 250\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 251 && BOOST_PP_ITERATION_FINISH_5 >= 251\r
+#        define BOOST_PP_ITERATION_5 251\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 252 && BOOST_PP_ITERATION_FINISH_5 >= 252\r
+#        define BOOST_PP_ITERATION_5 252\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 253 && BOOST_PP_ITERATION_FINISH_5 >= 253\r
+#        define BOOST_PP_ITERATION_5 253\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 254 && BOOST_PP_ITERATION_FINISH_5 >= 254\r
+#        define BOOST_PP_ITERATION_5 254\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 255 && BOOST_PP_ITERATION_FINISH_5 >= 255\r
+#        define BOOST_PP_ITERATION_5 255\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+#    if BOOST_PP_ITERATION_START_5 <= 256 && BOOST_PP_ITERATION_FINISH_5 >= 256\r
+#        define BOOST_PP_ITERATION_5 256\r
+#        include BOOST_PP_FILENAME_5\r
+#        undef BOOST_PP_ITERATION_5\r
+#    endif\r
+# endif\r
+#\r
+# undef BOOST_PP_ITERATION_DEPTH\r
+# define BOOST_PP_ITERATION_DEPTH() 4\r
+#\r
+# undef BOOST_PP_ITERATION_START_5\r
+# undef BOOST_PP_ITERATION_FINISH_5\r
+# undef BOOST_PP_FILENAME_5\r
+#\r
+# undef BOOST_PP_ITERATION_FLAGS_5\r
+# undef BOOST_PP_ITERATION_PARAMS_5\r
diff --git a/boost/boost/preprocessor/iteration/detail/iter/reverse1.hpp b/boost/boost/preprocessor/iteration/detail/iter/reverse1.hpp
new file mode 100644 (file)
index 0000000..558e856
--- /dev/null
@@ -0,0 +1,1296 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 256 && BOOST_PP_ITERATION_START_1 >= 256\r
+#    define BOOST_PP_ITERATION_1 256\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 255 && BOOST_PP_ITERATION_START_1 >= 255\r
+#    define BOOST_PP_ITERATION_1 255\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 254 && BOOST_PP_ITERATION_START_1 >= 254\r
+#    define BOOST_PP_ITERATION_1 254\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 253 && BOOST_PP_ITERATION_START_1 >= 253\r
+#    define BOOST_PP_ITERATION_1 253\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 252 && BOOST_PP_ITERATION_START_1 >= 252\r
+#    define BOOST_PP_ITERATION_1 252\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 251 && BOOST_PP_ITERATION_START_1 >= 251\r
+#    define BOOST_PP_ITERATION_1 251\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 250 && BOOST_PP_ITERATION_START_1 >= 250\r
+#    define BOOST_PP_ITERATION_1 250\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 249 && BOOST_PP_ITERATION_START_1 >= 249\r
+#    define BOOST_PP_ITERATION_1 249\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 248 && BOOST_PP_ITERATION_START_1 >= 248\r
+#    define BOOST_PP_ITERATION_1 248\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 247 && BOOST_PP_ITERATION_START_1 >= 247\r
+#    define BOOST_PP_ITERATION_1 247\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 246 && BOOST_PP_ITERATION_START_1 >= 246\r
+#    define BOOST_PP_ITERATION_1 246\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 245 && BOOST_PP_ITERATION_START_1 >= 245\r
+#    define BOOST_PP_ITERATION_1 245\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 244 && BOOST_PP_ITERATION_START_1 >= 244\r
+#    define BOOST_PP_ITERATION_1 244\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 243 && BOOST_PP_ITERATION_START_1 >= 243\r
+#    define BOOST_PP_ITERATION_1 243\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 242 && BOOST_PP_ITERATION_START_1 >= 242\r
+#    define BOOST_PP_ITERATION_1 242\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 241 && BOOST_PP_ITERATION_START_1 >= 241\r
+#    define BOOST_PP_ITERATION_1 241\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 240 && BOOST_PP_ITERATION_START_1 >= 240\r
+#    define BOOST_PP_ITERATION_1 240\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 239 && BOOST_PP_ITERATION_START_1 >= 239\r
+#    define BOOST_PP_ITERATION_1 239\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 238 && BOOST_PP_ITERATION_START_1 >= 238\r
+#    define BOOST_PP_ITERATION_1 238\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 237 && BOOST_PP_ITERATION_START_1 >= 237\r
+#    define BOOST_PP_ITERATION_1 237\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 236 && BOOST_PP_ITERATION_START_1 >= 236\r
+#    define BOOST_PP_ITERATION_1 236\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 235 && BOOST_PP_ITERATION_START_1 >= 235\r
+#    define BOOST_PP_ITERATION_1 235\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 234 && BOOST_PP_ITERATION_START_1 >= 234\r
+#    define BOOST_PP_ITERATION_1 234\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 233 && BOOST_PP_ITERATION_START_1 >= 233\r
+#    define BOOST_PP_ITERATION_1 233\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 232 && BOOST_PP_ITERATION_START_1 >= 232\r
+#    define BOOST_PP_ITERATION_1 232\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 231 && BOOST_PP_ITERATION_START_1 >= 231\r
+#    define BOOST_PP_ITERATION_1 231\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 230 && BOOST_PP_ITERATION_START_1 >= 230\r
+#    define BOOST_PP_ITERATION_1 230\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 229 && BOOST_PP_ITERATION_START_1 >= 229\r
+#    define BOOST_PP_ITERATION_1 229\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 228 && BOOST_PP_ITERATION_START_1 >= 228\r
+#    define BOOST_PP_ITERATION_1 228\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 227 && BOOST_PP_ITERATION_START_1 >= 227\r
+#    define BOOST_PP_ITERATION_1 227\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 226 && BOOST_PP_ITERATION_START_1 >= 226\r
+#    define BOOST_PP_ITERATION_1 226\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 225 && BOOST_PP_ITERATION_START_1 >= 225\r
+#    define BOOST_PP_ITERATION_1 225\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 224 && BOOST_PP_ITERATION_START_1 >= 224\r
+#    define BOOST_PP_ITERATION_1 224\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 223 && BOOST_PP_ITERATION_START_1 >= 223\r
+#    define BOOST_PP_ITERATION_1 223\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 222 && BOOST_PP_ITERATION_START_1 >= 222\r
+#    define BOOST_PP_ITERATION_1 222\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 221 && BOOST_PP_ITERATION_START_1 >= 221\r
+#    define BOOST_PP_ITERATION_1 221\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 220 && BOOST_PP_ITERATION_START_1 >= 220\r
+#    define BOOST_PP_ITERATION_1 220\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 219 && BOOST_PP_ITERATION_START_1 >= 219\r
+#    define BOOST_PP_ITERATION_1 219\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 218 && BOOST_PP_ITERATION_START_1 >= 218\r
+#    define BOOST_PP_ITERATION_1 218\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 217 && BOOST_PP_ITERATION_START_1 >= 217\r
+#    define BOOST_PP_ITERATION_1 217\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 216 && BOOST_PP_ITERATION_START_1 >= 216\r
+#    define BOOST_PP_ITERATION_1 216\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 215 && BOOST_PP_ITERATION_START_1 >= 215\r
+#    define BOOST_PP_ITERATION_1 215\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 214 && BOOST_PP_ITERATION_START_1 >= 214\r
+#    define BOOST_PP_ITERATION_1 214\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 213 && BOOST_PP_ITERATION_START_1 >= 213\r
+#    define BOOST_PP_ITERATION_1 213\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 212 && BOOST_PP_ITERATION_START_1 >= 212\r
+#    define BOOST_PP_ITERATION_1 212\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 211 && BOOST_PP_ITERATION_START_1 >= 211\r
+#    define BOOST_PP_ITERATION_1 211\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 210 && BOOST_PP_ITERATION_START_1 >= 210\r
+#    define BOOST_PP_ITERATION_1 210\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 209 && BOOST_PP_ITERATION_START_1 >= 209\r
+#    define BOOST_PP_ITERATION_1 209\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 208 && BOOST_PP_ITERATION_START_1 >= 208\r
+#    define BOOST_PP_ITERATION_1 208\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 207 && BOOST_PP_ITERATION_START_1 >= 207\r
+#    define BOOST_PP_ITERATION_1 207\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 206 && BOOST_PP_ITERATION_START_1 >= 206\r
+#    define BOOST_PP_ITERATION_1 206\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 205 && BOOST_PP_ITERATION_START_1 >= 205\r
+#    define BOOST_PP_ITERATION_1 205\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 204 && BOOST_PP_ITERATION_START_1 >= 204\r
+#    define BOOST_PP_ITERATION_1 204\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 203 && BOOST_PP_ITERATION_START_1 >= 203\r
+#    define BOOST_PP_ITERATION_1 203\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 202 && BOOST_PP_ITERATION_START_1 >= 202\r
+#    define BOOST_PP_ITERATION_1 202\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 201 && BOOST_PP_ITERATION_START_1 >= 201\r
+#    define BOOST_PP_ITERATION_1 201\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 200 && BOOST_PP_ITERATION_START_1 >= 200\r
+#    define BOOST_PP_ITERATION_1 200\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 199 && BOOST_PP_ITERATION_START_1 >= 199\r
+#    define BOOST_PP_ITERATION_1 199\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 198 && BOOST_PP_ITERATION_START_1 >= 198\r
+#    define BOOST_PP_ITERATION_1 198\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 197 && BOOST_PP_ITERATION_START_1 >= 197\r
+#    define BOOST_PP_ITERATION_1 197\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 196 && BOOST_PP_ITERATION_START_1 >= 196\r
+#    define BOOST_PP_ITERATION_1 196\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 195 && BOOST_PP_ITERATION_START_1 >= 195\r
+#    define BOOST_PP_ITERATION_1 195\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 194 && BOOST_PP_ITERATION_START_1 >= 194\r
+#    define BOOST_PP_ITERATION_1 194\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 193 && BOOST_PP_ITERATION_START_1 >= 193\r
+#    define BOOST_PP_ITERATION_1 193\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 192 && BOOST_PP_ITERATION_START_1 >= 192\r
+#    define BOOST_PP_ITERATION_1 192\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 191 && BOOST_PP_ITERATION_START_1 >= 191\r
+#    define BOOST_PP_ITERATION_1 191\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 190 && BOOST_PP_ITERATION_START_1 >= 190\r
+#    define BOOST_PP_ITERATION_1 190\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 189 && BOOST_PP_ITERATION_START_1 >= 189\r
+#    define BOOST_PP_ITERATION_1 189\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 188 && BOOST_PP_ITERATION_START_1 >= 188\r
+#    define BOOST_PP_ITERATION_1 188\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 187 && BOOST_PP_ITERATION_START_1 >= 187\r
+#    define BOOST_PP_ITERATION_1 187\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 186 && BOOST_PP_ITERATION_START_1 >= 186\r
+#    define BOOST_PP_ITERATION_1 186\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 185 && BOOST_PP_ITERATION_START_1 >= 185\r
+#    define BOOST_PP_ITERATION_1 185\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 184 && BOOST_PP_ITERATION_START_1 >= 184\r
+#    define BOOST_PP_ITERATION_1 184\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 183 && BOOST_PP_ITERATION_START_1 >= 183\r
+#    define BOOST_PP_ITERATION_1 183\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 182 && BOOST_PP_ITERATION_START_1 >= 182\r
+#    define BOOST_PP_ITERATION_1 182\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 181 && BOOST_PP_ITERATION_START_1 >= 181\r
+#    define BOOST_PP_ITERATION_1 181\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 180 && BOOST_PP_ITERATION_START_1 >= 180\r
+#    define BOOST_PP_ITERATION_1 180\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 179 && BOOST_PP_ITERATION_START_1 >= 179\r
+#    define BOOST_PP_ITERATION_1 179\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 178 && BOOST_PP_ITERATION_START_1 >= 178\r
+#    define BOOST_PP_ITERATION_1 178\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 177 && BOOST_PP_ITERATION_START_1 >= 177\r
+#    define BOOST_PP_ITERATION_1 177\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 176 && BOOST_PP_ITERATION_START_1 >= 176\r
+#    define BOOST_PP_ITERATION_1 176\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 175 && BOOST_PP_ITERATION_START_1 >= 175\r
+#    define BOOST_PP_ITERATION_1 175\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 174 && BOOST_PP_ITERATION_START_1 >= 174\r
+#    define BOOST_PP_ITERATION_1 174\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 173 && BOOST_PP_ITERATION_START_1 >= 173\r
+#    define BOOST_PP_ITERATION_1 173\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 172 && BOOST_PP_ITERATION_START_1 >= 172\r
+#    define BOOST_PP_ITERATION_1 172\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 171 && BOOST_PP_ITERATION_START_1 >= 171\r
+#    define BOOST_PP_ITERATION_1 171\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 170 && BOOST_PP_ITERATION_START_1 >= 170\r
+#    define BOOST_PP_ITERATION_1 170\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 169 && BOOST_PP_ITERATION_START_1 >= 169\r
+#    define BOOST_PP_ITERATION_1 169\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 168 && BOOST_PP_ITERATION_START_1 >= 168\r
+#    define BOOST_PP_ITERATION_1 168\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 167 && BOOST_PP_ITERATION_START_1 >= 167\r
+#    define BOOST_PP_ITERATION_1 167\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 166 && BOOST_PP_ITERATION_START_1 >= 166\r
+#    define BOOST_PP_ITERATION_1 166\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 165 && BOOST_PP_ITERATION_START_1 >= 165\r
+#    define BOOST_PP_ITERATION_1 165\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 164 && BOOST_PP_ITERATION_START_1 >= 164\r
+#    define BOOST_PP_ITERATION_1 164\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 163 && BOOST_PP_ITERATION_START_1 >= 163\r
+#    define BOOST_PP_ITERATION_1 163\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 162 && BOOST_PP_ITERATION_START_1 >= 162\r
+#    define BOOST_PP_ITERATION_1 162\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 161 && BOOST_PP_ITERATION_START_1 >= 161\r
+#    define BOOST_PP_ITERATION_1 161\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 160 && BOOST_PP_ITERATION_START_1 >= 160\r
+#    define BOOST_PP_ITERATION_1 160\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 159 && BOOST_PP_ITERATION_START_1 >= 159\r
+#    define BOOST_PP_ITERATION_1 159\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 158 && BOOST_PP_ITERATION_START_1 >= 158\r
+#    define BOOST_PP_ITERATION_1 158\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 157 && BOOST_PP_ITERATION_START_1 >= 157\r
+#    define BOOST_PP_ITERATION_1 157\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 156 && BOOST_PP_ITERATION_START_1 >= 156\r
+#    define BOOST_PP_ITERATION_1 156\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 155 && BOOST_PP_ITERATION_START_1 >= 155\r
+#    define BOOST_PP_ITERATION_1 155\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 154 && BOOST_PP_ITERATION_START_1 >= 154\r
+#    define BOOST_PP_ITERATION_1 154\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 153 && BOOST_PP_ITERATION_START_1 >= 153\r
+#    define BOOST_PP_ITERATION_1 153\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 152 && BOOST_PP_ITERATION_START_1 >= 152\r
+#    define BOOST_PP_ITERATION_1 152\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 151 && BOOST_PP_ITERATION_START_1 >= 151\r
+#    define BOOST_PP_ITERATION_1 151\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 150 && BOOST_PP_ITERATION_START_1 >= 150\r
+#    define BOOST_PP_ITERATION_1 150\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 149 && BOOST_PP_ITERATION_START_1 >= 149\r
+#    define BOOST_PP_ITERATION_1 149\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 148 && BOOST_PP_ITERATION_START_1 >= 148\r
+#    define BOOST_PP_ITERATION_1 148\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 147 && BOOST_PP_ITERATION_START_1 >= 147\r
+#    define BOOST_PP_ITERATION_1 147\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 146 && BOOST_PP_ITERATION_START_1 >= 146\r
+#    define BOOST_PP_ITERATION_1 146\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 145 && BOOST_PP_ITERATION_START_1 >= 145\r
+#    define BOOST_PP_ITERATION_1 145\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 144 && BOOST_PP_ITERATION_START_1 >= 144\r
+#    define BOOST_PP_ITERATION_1 144\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 143 && BOOST_PP_ITERATION_START_1 >= 143\r
+#    define BOOST_PP_ITERATION_1 143\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 142 && BOOST_PP_ITERATION_START_1 >= 142\r
+#    define BOOST_PP_ITERATION_1 142\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 141 && BOOST_PP_ITERATION_START_1 >= 141\r
+#    define BOOST_PP_ITERATION_1 141\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 140 && BOOST_PP_ITERATION_START_1 >= 140\r
+#    define BOOST_PP_ITERATION_1 140\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 139 && BOOST_PP_ITERATION_START_1 >= 139\r
+#    define BOOST_PP_ITERATION_1 139\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 138 && BOOST_PP_ITERATION_START_1 >= 138\r
+#    define BOOST_PP_ITERATION_1 138\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 137 && BOOST_PP_ITERATION_START_1 >= 137\r
+#    define BOOST_PP_ITERATION_1 137\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 136 && BOOST_PP_ITERATION_START_1 >= 136\r
+#    define BOOST_PP_ITERATION_1 136\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 135 && BOOST_PP_ITERATION_START_1 >= 135\r
+#    define BOOST_PP_ITERATION_1 135\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 134 && BOOST_PP_ITERATION_START_1 >= 134\r
+#    define BOOST_PP_ITERATION_1 134\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 133 && BOOST_PP_ITERATION_START_1 >= 133\r
+#    define BOOST_PP_ITERATION_1 133\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 132 && BOOST_PP_ITERATION_START_1 >= 132\r
+#    define BOOST_PP_ITERATION_1 132\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 131 && BOOST_PP_ITERATION_START_1 >= 131\r
+#    define BOOST_PP_ITERATION_1 131\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 130 && BOOST_PP_ITERATION_START_1 >= 130\r
+#    define BOOST_PP_ITERATION_1 130\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 129 && BOOST_PP_ITERATION_START_1 >= 129\r
+#    define BOOST_PP_ITERATION_1 129\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 128 && BOOST_PP_ITERATION_START_1 >= 128\r
+#    define BOOST_PP_ITERATION_1 128\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 127 && BOOST_PP_ITERATION_START_1 >= 127\r
+#    define BOOST_PP_ITERATION_1 127\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 126 && BOOST_PP_ITERATION_START_1 >= 126\r
+#    define BOOST_PP_ITERATION_1 126\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 125 && BOOST_PP_ITERATION_START_1 >= 125\r
+#    define BOOST_PP_ITERATION_1 125\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 124 && BOOST_PP_ITERATION_START_1 >= 124\r
+#    define BOOST_PP_ITERATION_1 124\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 123 && BOOST_PP_ITERATION_START_1 >= 123\r
+#    define BOOST_PP_ITERATION_1 123\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 122 && BOOST_PP_ITERATION_START_1 >= 122\r
+#    define BOOST_PP_ITERATION_1 122\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 121 && BOOST_PP_ITERATION_START_1 >= 121\r
+#    define BOOST_PP_ITERATION_1 121\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 120 && BOOST_PP_ITERATION_START_1 >= 120\r
+#    define BOOST_PP_ITERATION_1 120\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 119 && BOOST_PP_ITERATION_START_1 >= 119\r
+#    define BOOST_PP_ITERATION_1 119\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 118 && BOOST_PP_ITERATION_START_1 >= 118\r
+#    define BOOST_PP_ITERATION_1 118\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 117 && BOOST_PP_ITERATION_START_1 >= 117\r
+#    define BOOST_PP_ITERATION_1 117\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 116 && BOOST_PP_ITERATION_START_1 >= 116\r
+#    define BOOST_PP_ITERATION_1 116\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 115 && BOOST_PP_ITERATION_START_1 >= 115\r
+#    define BOOST_PP_ITERATION_1 115\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 114 && BOOST_PP_ITERATION_START_1 >= 114\r
+#    define BOOST_PP_ITERATION_1 114\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 113 && BOOST_PP_ITERATION_START_1 >= 113\r
+#    define BOOST_PP_ITERATION_1 113\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 112 && BOOST_PP_ITERATION_START_1 >= 112\r
+#    define BOOST_PP_ITERATION_1 112\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 111 && BOOST_PP_ITERATION_START_1 >= 111\r
+#    define BOOST_PP_ITERATION_1 111\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 110 && BOOST_PP_ITERATION_START_1 >= 110\r
+#    define BOOST_PP_ITERATION_1 110\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 109 && BOOST_PP_ITERATION_START_1 >= 109\r
+#    define BOOST_PP_ITERATION_1 109\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 108 && BOOST_PP_ITERATION_START_1 >= 108\r
+#    define BOOST_PP_ITERATION_1 108\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 107 && BOOST_PP_ITERATION_START_1 >= 107\r
+#    define BOOST_PP_ITERATION_1 107\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 106 && BOOST_PP_ITERATION_START_1 >= 106\r
+#    define BOOST_PP_ITERATION_1 106\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 105 && BOOST_PP_ITERATION_START_1 >= 105\r
+#    define BOOST_PP_ITERATION_1 105\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 104 && BOOST_PP_ITERATION_START_1 >= 104\r
+#    define BOOST_PP_ITERATION_1 104\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 103 && BOOST_PP_ITERATION_START_1 >= 103\r
+#    define BOOST_PP_ITERATION_1 103\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 102 && BOOST_PP_ITERATION_START_1 >= 102\r
+#    define BOOST_PP_ITERATION_1 102\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 101 && BOOST_PP_ITERATION_START_1 >= 101\r
+#    define BOOST_PP_ITERATION_1 101\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 100 && BOOST_PP_ITERATION_START_1 >= 100\r
+#    define BOOST_PP_ITERATION_1 100\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 99 && BOOST_PP_ITERATION_START_1 >= 99\r
+#    define BOOST_PP_ITERATION_1 99\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 98 && BOOST_PP_ITERATION_START_1 >= 98\r
+#    define BOOST_PP_ITERATION_1 98\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 97 && BOOST_PP_ITERATION_START_1 >= 97\r
+#    define BOOST_PP_ITERATION_1 97\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 96 && BOOST_PP_ITERATION_START_1 >= 96\r
+#    define BOOST_PP_ITERATION_1 96\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 95 && BOOST_PP_ITERATION_START_1 >= 95\r
+#    define BOOST_PP_ITERATION_1 95\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 94 && BOOST_PP_ITERATION_START_1 >= 94\r
+#    define BOOST_PP_ITERATION_1 94\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 93 && BOOST_PP_ITERATION_START_1 >= 93\r
+#    define BOOST_PP_ITERATION_1 93\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 92 && BOOST_PP_ITERATION_START_1 >= 92\r
+#    define BOOST_PP_ITERATION_1 92\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 91 && BOOST_PP_ITERATION_START_1 >= 91\r
+#    define BOOST_PP_ITERATION_1 91\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 90 && BOOST_PP_ITERATION_START_1 >= 90\r
+#    define BOOST_PP_ITERATION_1 90\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 89 && BOOST_PP_ITERATION_START_1 >= 89\r
+#    define BOOST_PP_ITERATION_1 89\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 88 && BOOST_PP_ITERATION_START_1 >= 88\r
+#    define BOOST_PP_ITERATION_1 88\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 87 && BOOST_PP_ITERATION_START_1 >= 87\r
+#    define BOOST_PP_ITERATION_1 87\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 86 && BOOST_PP_ITERATION_START_1 >= 86\r
+#    define BOOST_PP_ITERATION_1 86\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 85 && BOOST_PP_ITERATION_START_1 >= 85\r
+#    define BOOST_PP_ITERATION_1 85\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 84 && BOOST_PP_ITERATION_START_1 >= 84\r
+#    define BOOST_PP_ITERATION_1 84\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 83 && BOOST_PP_ITERATION_START_1 >= 83\r
+#    define BOOST_PP_ITERATION_1 83\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 82 && BOOST_PP_ITERATION_START_1 >= 82\r
+#    define BOOST_PP_ITERATION_1 82\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 81 && BOOST_PP_ITERATION_START_1 >= 81\r
+#    define BOOST_PP_ITERATION_1 81\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 80 && BOOST_PP_ITERATION_START_1 >= 80\r
+#    define BOOST_PP_ITERATION_1 80\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 79 && BOOST_PP_ITERATION_START_1 >= 79\r
+#    define BOOST_PP_ITERATION_1 79\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 78 && BOOST_PP_ITERATION_START_1 >= 78\r
+#    define BOOST_PP_ITERATION_1 78\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 77 && BOOST_PP_ITERATION_START_1 >= 77\r
+#    define BOOST_PP_ITERATION_1 77\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 76 && BOOST_PP_ITERATION_START_1 >= 76\r
+#    define BOOST_PP_ITERATION_1 76\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 75 && BOOST_PP_ITERATION_START_1 >= 75\r
+#    define BOOST_PP_ITERATION_1 75\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 74 && BOOST_PP_ITERATION_START_1 >= 74\r
+#    define BOOST_PP_ITERATION_1 74\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 73 && BOOST_PP_ITERATION_START_1 >= 73\r
+#    define BOOST_PP_ITERATION_1 73\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 72 && BOOST_PP_ITERATION_START_1 >= 72\r
+#    define BOOST_PP_ITERATION_1 72\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 71 && BOOST_PP_ITERATION_START_1 >= 71\r
+#    define BOOST_PP_ITERATION_1 71\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 70 && BOOST_PP_ITERATION_START_1 >= 70\r
+#    define BOOST_PP_ITERATION_1 70\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 69 && BOOST_PP_ITERATION_START_1 >= 69\r
+#    define BOOST_PP_ITERATION_1 69\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 68 && BOOST_PP_ITERATION_START_1 >= 68\r
+#    define BOOST_PP_ITERATION_1 68\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 67 && BOOST_PP_ITERATION_START_1 >= 67\r
+#    define BOOST_PP_ITERATION_1 67\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 66 && BOOST_PP_ITERATION_START_1 >= 66\r
+#    define BOOST_PP_ITERATION_1 66\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 65 && BOOST_PP_ITERATION_START_1 >= 65\r
+#    define BOOST_PP_ITERATION_1 65\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 64 && BOOST_PP_ITERATION_START_1 >= 64\r
+#    define BOOST_PP_ITERATION_1 64\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 63 && BOOST_PP_ITERATION_START_1 >= 63\r
+#    define BOOST_PP_ITERATION_1 63\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 62 && BOOST_PP_ITERATION_START_1 >= 62\r
+#    define BOOST_PP_ITERATION_1 62\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 61 && BOOST_PP_ITERATION_START_1 >= 61\r
+#    define BOOST_PP_ITERATION_1 61\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 60 && BOOST_PP_ITERATION_START_1 >= 60\r
+#    define BOOST_PP_ITERATION_1 60\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 59 && BOOST_PP_ITERATION_START_1 >= 59\r
+#    define BOOST_PP_ITERATION_1 59\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 58 && BOOST_PP_ITERATION_START_1 >= 58\r
+#    define BOOST_PP_ITERATION_1 58\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 57 && BOOST_PP_ITERATION_START_1 >= 57\r
+#    define BOOST_PP_ITERATION_1 57\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 56 && BOOST_PP_ITERATION_START_1 >= 56\r
+#    define BOOST_PP_ITERATION_1 56\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 55 && BOOST_PP_ITERATION_START_1 >= 55\r
+#    define BOOST_PP_ITERATION_1 55\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 54 && BOOST_PP_ITERATION_START_1 >= 54\r
+#    define BOOST_PP_ITERATION_1 54\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 53 && BOOST_PP_ITERATION_START_1 >= 53\r
+#    define BOOST_PP_ITERATION_1 53\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 52 && BOOST_PP_ITERATION_START_1 >= 52\r
+#    define BOOST_PP_ITERATION_1 52\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 51 && BOOST_PP_ITERATION_START_1 >= 51\r
+#    define BOOST_PP_ITERATION_1 51\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 50 && BOOST_PP_ITERATION_START_1 >= 50\r
+#    define BOOST_PP_ITERATION_1 50\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 49 && BOOST_PP_ITERATION_START_1 >= 49\r
+#    define BOOST_PP_ITERATION_1 49\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 48 && BOOST_PP_ITERATION_START_1 >= 48\r
+#    define BOOST_PP_ITERATION_1 48\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 47 && BOOST_PP_ITERATION_START_1 >= 47\r
+#    define BOOST_PP_ITERATION_1 47\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 46 && BOOST_PP_ITERATION_START_1 >= 46\r
+#    define BOOST_PP_ITERATION_1 46\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 45 && BOOST_PP_ITERATION_START_1 >= 45\r
+#    define BOOST_PP_ITERATION_1 45\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 44 && BOOST_PP_ITERATION_START_1 >= 44\r
+#    define BOOST_PP_ITERATION_1 44\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 43 && BOOST_PP_ITERATION_START_1 >= 43\r
+#    define BOOST_PP_ITERATION_1 43\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 42 && BOOST_PP_ITERATION_START_1 >= 42\r
+#    define BOOST_PP_ITERATION_1 42\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 41 && BOOST_PP_ITERATION_START_1 >= 41\r
+#    define BOOST_PP_ITERATION_1 41\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 40 && BOOST_PP_ITERATION_START_1 >= 40\r
+#    define BOOST_PP_ITERATION_1 40\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 39 && BOOST_PP_ITERATION_START_1 >= 39\r
+#    define BOOST_PP_ITERATION_1 39\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 38 && BOOST_PP_ITERATION_START_1 >= 38\r
+#    define BOOST_PP_ITERATION_1 38\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 37 && BOOST_PP_ITERATION_START_1 >= 37\r
+#    define BOOST_PP_ITERATION_1 37\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 36 && BOOST_PP_ITERATION_START_1 >= 36\r
+#    define BOOST_PP_ITERATION_1 36\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 35 && BOOST_PP_ITERATION_START_1 >= 35\r
+#    define BOOST_PP_ITERATION_1 35\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 34 && BOOST_PP_ITERATION_START_1 >= 34\r
+#    define BOOST_PP_ITERATION_1 34\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 33 && BOOST_PP_ITERATION_START_1 >= 33\r
+#    define BOOST_PP_ITERATION_1 33\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 32 && BOOST_PP_ITERATION_START_1 >= 32\r
+#    define BOOST_PP_ITERATION_1 32\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 31 && BOOST_PP_ITERATION_START_1 >= 31\r
+#    define BOOST_PP_ITERATION_1 31\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 30 && BOOST_PP_ITERATION_START_1 >= 30\r
+#    define BOOST_PP_ITERATION_1 30\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 29 && BOOST_PP_ITERATION_START_1 >= 29\r
+#    define BOOST_PP_ITERATION_1 29\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 28 && BOOST_PP_ITERATION_START_1 >= 28\r
+#    define BOOST_PP_ITERATION_1 28\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 27 && BOOST_PP_ITERATION_START_1 >= 27\r
+#    define BOOST_PP_ITERATION_1 27\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 26 && BOOST_PP_ITERATION_START_1 >= 26\r
+#    define BOOST_PP_ITERATION_1 26\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 25 && BOOST_PP_ITERATION_START_1 >= 25\r
+#    define BOOST_PP_ITERATION_1 25\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 24 && BOOST_PP_ITERATION_START_1 >= 24\r
+#    define BOOST_PP_ITERATION_1 24\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 23 && BOOST_PP_ITERATION_START_1 >= 23\r
+#    define BOOST_PP_ITERATION_1 23\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 22 && BOOST_PP_ITERATION_START_1 >= 22\r
+#    define BOOST_PP_ITERATION_1 22\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 21 && BOOST_PP_ITERATION_START_1 >= 21\r
+#    define BOOST_PP_ITERATION_1 21\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 20 && BOOST_PP_ITERATION_START_1 >= 20\r
+#    define BOOST_PP_ITERATION_1 20\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 19 && BOOST_PP_ITERATION_START_1 >= 19\r
+#    define BOOST_PP_ITERATION_1 19\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 18 && BOOST_PP_ITERATION_START_1 >= 18\r
+#    define BOOST_PP_ITERATION_1 18\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 17 && BOOST_PP_ITERATION_START_1 >= 17\r
+#    define BOOST_PP_ITERATION_1 17\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 16 && BOOST_PP_ITERATION_START_1 >= 16\r
+#    define BOOST_PP_ITERATION_1 16\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 15 && BOOST_PP_ITERATION_START_1 >= 15\r
+#    define BOOST_PP_ITERATION_1 15\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 14 && BOOST_PP_ITERATION_START_1 >= 14\r
+#    define BOOST_PP_ITERATION_1 14\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 13 && BOOST_PP_ITERATION_START_1 >= 13\r
+#    define BOOST_PP_ITERATION_1 13\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 12 && BOOST_PP_ITERATION_START_1 >= 12\r
+#    define BOOST_PP_ITERATION_1 12\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 11 && BOOST_PP_ITERATION_START_1 >= 11\r
+#    define BOOST_PP_ITERATION_1 11\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 10 && BOOST_PP_ITERATION_START_1 >= 10\r
+#    define BOOST_PP_ITERATION_1 10\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 9 && BOOST_PP_ITERATION_START_1 >= 9\r
+#    define BOOST_PP_ITERATION_1 9\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 8 && BOOST_PP_ITERATION_START_1 >= 8\r
+#    define BOOST_PP_ITERATION_1 8\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 7 && BOOST_PP_ITERATION_START_1 >= 7\r
+#    define BOOST_PP_ITERATION_1 7\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 6 && BOOST_PP_ITERATION_START_1 >= 6\r
+#    define BOOST_PP_ITERATION_1 6\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 5 && BOOST_PP_ITERATION_START_1 >= 5\r
+#    define BOOST_PP_ITERATION_1 5\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 4 && BOOST_PP_ITERATION_START_1 >= 4\r
+#    define BOOST_PP_ITERATION_1 4\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 3 && BOOST_PP_ITERATION_START_1 >= 3\r
+#    define BOOST_PP_ITERATION_1 3\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 2 && BOOST_PP_ITERATION_START_1 >= 2\r
+#    define BOOST_PP_ITERATION_1 2\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 1 && BOOST_PP_ITERATION_START_1 >= 1\r
+#    define BOOST_PP_ITERATION_1 1\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_1 <= 0 && BOOST_PP_ITERATION_START_1 >= 0\r
+#    define BOOST_PP_ITERATION_1 0\r
+#    include BOOST_PP_FILENAME_1\r
+#    undef BOOST_PP_ITERATION_1\r
+# endif\r
diff --git a/boost/boost/preprocessor/iteration/detail/iter/reverse2.hpp b/boost/boost/preprocessor/iteration/detail/iter/reverse2.hpp
new file mode 100644 (file)
index 0000000..c784198
--- /dev/null
@@ -0,0 +1,1296 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 256 && BOOST_PP_ITERATION_START_2 >= 256\r
+#    define BOOST_PP_ITERATION_2 256\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 255 && BOOST_PP_ITERATION_START_2 >= 255\r
+#    define BOOST_PP_ITERATION_2 255\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 254 && BOOST_PP_ITERATION_START_2 >= 254\r
+#    define BOOST_PP_ITERATION_2 254\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 253 && BOOST_PP_ITERATION_START_2 >= 253\r
+#    define BOOST_PP_ITERATION_2 253\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 252 && BOOST_PP_ITERATION_START_2 >= 252\r
+#    define BOOST_PP_ITERATION_2 252\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 251 && BOOST_PP_ITERATION_START_2 >= 251\r
+#    define BOOST_PP_ITERATION_2 251\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 250 && BOOST_PP_ITERATION_START_2 >= 250\r
+#    define BOOST_PP_ITERATION_2 250\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 249 && BOOST_PP_ITERATION_START_2 >= 249\r
+#    define BOOST_PP_ITERATION_2 249\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 248 && BOOST_PP_ITERATION_START_2 >= 248\r
+#    define BOOST_PP_ITERATION_2 248\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 247 && BOOST_PP_ITERATION_START_2 >= 247\r
+#    define BOOST_PP_ITERATION_2 247\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 246 && BOOST_PP_ITERATION_START_2 >= 246\r
+#    define BOOST_PP_ITERATION_2 246\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 245 && BOOST_PP_ITERATION_START_2 >= 245\r
+#    define BOOST_PP_ITERATION_2 245\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 244 && BOOST_PP_ITERATION_START_2 >= 244\r
+#    define BOOST_PP_ITERATION_2 244\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 243 && BOOST_PP_ITERATION_START_2 >= 243\r
+#    define BOOST_PP_ITERATION_2 243\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 242 && BOOST_PP_ITERATION_START_2 >= 242\r
+#    define BOOST_PP_ITERATION_2 242\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 241 && BOOST_PP_ITERATION_START_2 >= 241\r
+#    define BOOST_PP_ITERATION_2 241\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 240 && BOOST_PP_ITERATION_START_2 >= 240\r
+#    define BOOST_PP_ITERATION_2 240\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 239 && BOOST_PP_ITERATION_START_2 >= 239\r
+#    define BOOST_PP_ITERATION_2 239\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 238 && BOOST_PP_ITERATION_START_2 >= 238\r
+#    define BOOST_PP_ITERATION_2 238\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 237 && BOOST_PP_ITERATION_START_2 >= 237\r
+#    define BOOST_PP_ITERATION_2 237\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 236 && BOOST_PP_ITERATION_START_2 >= 236\r
+#    define BOOST_PP_ITERATION_2 236\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 235 && BOOST_PP_ITERATION_START_2 >= 235\r
+#    define BOOST_PP_ITERATION_2 235\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 234 && BOOST_PP_ITERATION_START_2 >= 234\r
+#    define BOOST_PP_ITERATION_2 234\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 233 && BOOST_PP_ITERATION_START_2 >= 233\r
+#    define BOOST_PP_ITERATION_2 233\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 232 && BOOST_PP_ITERATION_START_2 >= 232\r
+#    define BOOST_PP_ITERATION_2 232\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 231 && BOOST_PP_ITERATION_START_2 >= 231\r
+#    define BOOST_PP_ITERATION_2 231\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 230 && BOOST_PP_ITERATION_START_2 >= 230\r
+#    define BOOST_PP_ITERATION_2 230\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 229 && BOOST_PP_ITERATION_START_2 >= 229\r
+#    define BOOST_PP_ITERATION_2 229\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 228 && BOOST_PP_ITERATION_START_2 >= 228\r
+#    define BOOST_PP_ITERATION_2 228\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 227 && BOOST_PP_ITERATION_START_2 >= 227\r
+#    define BOOST_PP_ITERATION_2 227\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 226 && BOOST_PP_ITERATION_START_2 >= 226\r
+#    define BOOST_PP_ITERATION_2 226\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 225 && BOOST_PP_ITERATION_START_2 >= 225\r
+#    define BOOST_PP_ITERATION_2 225\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 224 && BOOST_PP_ITERATION_START_2 >= 224\r
+#    define BOOST_PP_ITERATION_2 224\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 223 && BOOST_PP_ITERATION_START_2 >= 223\r
+#    define BOOST_PP_ITERATION_2 223\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 222 && BOOST_PP_ITERATION_START_2 >= 222\r
+#    define BOOST_PP_ITERATION_2 222\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 221 && BOOST_PP_ITERATION_START_2 >= 221\r
+#    define BOOST_PP_ITERATION_2 221\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 220 && BOOST_PP_ITERATION_START_2 >= 220\r
+#    define BOOST_PP_ITERATION_2 220\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 219 && BOOST_PP_ITERATION_START_2 >= 219\r
+#    define BOOST_PP_ITERATION_2 219\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 218 && BOOST_PP_ITERATION_START_2 >= 218\r
+#    define BOOST_PP_ITERATION_2 218\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 217 && BOOST_PP_ITERATION_START_2 >= 217\r
+#    define BOOST_PP_ITERATION_2 217\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 216 && BOOST_PP_ITERATION_START_2 >= 216\r
+#    define BOOST_PP_ITERATION_2 216\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 215 && BOOST_PP_ITERATION_START_2 >= 215\r
+#    define BOOST_PP_ITERATION_2 215\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 214 && BOOST_PP_ITERATION_START_2 >= 214\r
+#    define BOOST_PP_ITERATION_2 214\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 213 && BOOST_PP_ITERATION_START_2 >= 213\r
+#    define BOOST_PP_ITERATION_2 213\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 212 && BOOST_PP_ITERATION_START_2 >= 212\r
+#    define BOOST_PP_ITERATION_2 212\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 211 && BOOST_PP_ITERATION_START_2 >= 211\r
+#    define BOOST_PP_ITERATION_2 211\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 210 && BOOST_PP_ITERATION_START_2 >= 210\r
+#    define BOOST_PP_ITERATION_2 210\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 209 && BOOST_PP_ITERATION_START_2 >= 209\r
+#    define BOOST_PP_ITERATION_2 209\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 208 && BOOST_PP_ITERATION_START_2 >= 208\r
+#    define BOOST_PP_ITERATION_2 208\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 207 && BOOST_PP_ITERATION_START_2 >= 207\r
+#    define BOOST_PP_ITERATION_2 207\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 206 && BOOST_PP_ITERATION_START_2 >= 206\r
+#    define BOOST_PP_ITERATION_2 206\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 205 && BOOST_PP_ITERATION_START_2 >= 205\r
+#    define BOOST_PP_ITERATION_2 205\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 204 && BOOST_PP_ITERATION_START_2 >= 204\r
+#    define BOOST_PP_ITERATION_2 204\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 203 && BOOST_PP_ITERATION_START_2 >= 203\r
+#    define BOOST_PP_ITERATION_2 203\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 202 && BOOST_PP_ITERATION_START_2 >= 202\r
+#    define BOOST_PP_ITERATION_2 202\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 201 && BOOST_PP_ITERATION_START_2 >= 201\r
+#    define BOOST_PP_ITERATION_2 201\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 200 && BOOST_PP_ITERATION_START_2 >= 200\r
+#    define BOOST_PP_ITERATION_2 200\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 199 && BOOST_PP_ITERATION_START_2 >= 199\r
+#    define BOOST_PP_ITERATION_2 199\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 198 && BOOST_PP_ITERATION_START_2 >= 198\r
+#    define BOOST_PP_ITERATION_2 198\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 197 && BOOST_PP_ITERATION_START_2 >= 197\r
+#    define BOOST_PP_ITERATION_2 197\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 196 && BOOST_PP_ITERATION_START_2 >= 196\r
+#    define BOOST_PP_ITERATION_2 196\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 195 && BOOST_PP_ITERATION_START_2 >= 195\r
+#    define BOOST_PP_ITERATION_2 195\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 194 && BOOST_PP_ITERATION_START_2 >= 194\r
+#    define BOOST_PP_ITERATION_2 194\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 193 && BOOST_PP_ITERATION_START_2 >= 193\r
+#    define BOOST_PP_ITERATION_2 193\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 192 && BOOST_PP_ITERATION_START_2 >= 192\r
+#    define BOOST_PP_ITERATION_2 192\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 191 && BOOST_PP_ITERATION_START_2 >= 191\r
+#    define BOOST_PP_ITERATION_2 191\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 190 && BOOST_PP_ITERATION_START_2 >= 190\r
+#    define BOOST_PP_ITERATION_2 190\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 189 && BOOST_PP_ITERATION_START_2 >= 189\r
+#    define BOOST_PP_ITERATION_2 189\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 188 && BOOST_PP_ITERATION_START_2 >= 188\r
+#    define BOOST_PP_ITERATION_2 188\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 187 && BOOST_PP_ITERATION_START_2 >= 187\r
+#    define BOOST_PP_ITERATION_2 187\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 186 && BOOST_PP_ITERATION_START_2 >= 186\r
+#    define BOOST_PP_ITERATION_2 186\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 185 && BOOST_PP_ITERATION_START_2 >= 185\r
+#    define BOOST_PP_ITERATION_2 185\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 184 && BOOST_PP_ITERATION_START_2 >= 184\r
+#    define BOOST_PP_ITERATION_2 184\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 183 && BOOST_PP_ITERATION_START_2 >= 183\r
+#    define BOOST_PP_ITERATION_2 183\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 182 && BOOST_PP_ITERATION_START_2 >= 182\r
+#    define BOOST_PP_ITERATION_2 182\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 181 && BOOST_PP_ITERATION_START_2 >= 181\r
+#    define BOOST_PP_ITERATION_2 181\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 180 && BOOST_PP_ITERATION_START_2 >= 180\r
+#    define BOOST_PP_ITERATION_2 180\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 179 && BOOST_PP_ITERATION_START_2 >= 179\r
+#    define BOOST_PP_ITERATION_2 179\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 178 && BOOST_PP_ITERATION_START_2 >= 178\r
+#    define BOOST_PP_ITERATION_2 178\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 177 && BOOST_PP_ITERATION_START_2 >= 177\r
+#    define BOOST_PP_ITERATION_2 177\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 176 && BOOST_PP_ITERATION_START_2 >= 176\r
+#    define BOOST_PP_ITERATION_2 176\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 175 && BOOST_PP_ITERATION_START_2 >= 175\r
+#    define BOOST_PP_ITERATION_2 175\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 174 && BOOST_PP_ITERATION_START_2 >= 174\r
+#    define BOOST_PP_ITERATION_2 174\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 173 && BOOST_PP_ITERATION_START_2 >= 173\r
+#    define BOOST_PP_ITERATION_2 173\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 172 && BOOST_PP_ITERATION_START_2 >= 172\r
+#    define BOOST_PP_ITERATION_2 172\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 171 && BOOST_PP_ITERATION_START_2 >= 171\r
+#    define BOOST_PP_ITERATION_2 171\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 170 && BOOST_PP_ITERATION_START_2 >= 170\r
+#    define BOOST_PP_ITERATION_2 170\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 169 && BOOST_PP_ITERATION_START_2 >= 169\r
+#    define BOOST_PP_ITERATION_2 169\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 168 && BOOST_PP_ITERATION_START_2 >= 168\r
+#    define BOOST_PP_ITERATION_2 168\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 167 && BOOST_PP_ITERATION_START_2 >= 167\r
+#    define BOOST_PP_ITERATION_2 167\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 166 && BOOST_PP_ITERATION_START_2 >= 166\r
+#    define BOOST_PP_ITERATION_2 166\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 165 && BOOST_PP_ITERATION_START_2 >= 165\r
+#    define BOOST_PP_ITERATION_2 165\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 164 && BOOST_PP_ITERATION_START_2 >= 164\r
+#    define BOOST_PP_ITERATION_2 164\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 163 && BOOST_PP_ITERATION_START_2 >= 163\r
+#    define BOOST_PP_ITERATION_2 163\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 162 && BOOST_PP_ITERATION_START_2 >= 162\r
+#    define BOOST_PP_ITERATION_2 162\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 161 && BOOST_PP_ITERATION_START_2 >= 161\r
+#    define BOOST_PP_ITERATION_2 161\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 160 && BOOST_PP_ITERATION_START_2 >= 160\r
+#    define BOOST_PP_ITERATION_2 160\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 159 && BOOST_PP_ITERATION_START_2 >= 159\r
+#    define BOOST_PP_ITERATION_2 159\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 158 && BOOST_PP_ITERATION_START_2 >= 158\r
+#    define BOOST_PP_ITERATION_2 158\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 157 && BOOST_PP_ITERATION_START_2 >= 157\r
+#    define BOOST_PP_ITERATION_2 157\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 156 && BOOST_PP_ITERATION_START_2 >= 156\r
+#    define BOOST_PP_ITERATION_2 156\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 155 && BOOST_PP_ITERATION_START_2 >= 155\r
+#    define BOOST_PP_ITERATION_2 155\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 154 && BOOST_PP_ITERATION_START_2 >= 154\r
+#    define BOOST_PP_ITERATION_2 154\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 153 && BOOST_PP_ITERATION_START_2 >= 153\r
+#    define BOOST_PP_ITERATION_2 153\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 152 && BOOST_PP_ITERATION_START_2 >= 152\r
+#    define BOOST_PP_ITERATION_2 152\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 151 && BOOST_PP_ITERATION_START_2 >= 151\r
+#    define BOOST_PP_ITERATION_2 151\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 150 && BOOST_PP_ITERATION_START_2 >= 150\r
+#    define BOOST_PP_ITERATION_2 150\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 149 && BOOST_PP_ITERATION_START_2 >= 149\r
+#    define BOOST_PP_ITERATION_2 149\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 148 && BOOST_PP_ITERATION_START_2 >= 148\r
+#    define BOOST_PP_ITERATION_2 148\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 147 && BOOST_PP_ITERATION_START_2 >= 147\r
+#    define BOOST_PP_ITERATION_2 147\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 146 && BOOST_PP_ITERATION_START_2 >= 146\r
+#    define BOOST_PP_ITERATION_2 146\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 145 && BOOST_PP_ITERATION_START_2 >= 145\r
+#    define BOOST_PP_ITERATION_2 145\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 144 && BOOST_PP_ITERATION_START_2 >= 144\r
+#    define BOOST_PP_ITERATION_2 144\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 143 && BOOST_PP_ITERATION_START_2 >= 143\r
+#    define BOOST_PP_ITERATION_2 143\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 142 && BOOST_PP_ITERATION_START_2 >= 142\r
+#    define BOOST_PP_ITERATION_2 142\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 141 && BOOST_PP_ITERATION_START_2 >= 141\r
+#    define BOOST_PP_ITERATION_2 141\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 140 && BOOST_PP_ITERATION_START_2 >= 140\r
+#    define BOOST_PP_ITERATION_2 140\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 139 && BOOST_PP_ITERATION_START_2 >= 139\r
+#    define BOOST_PP_ITERATION_2 139\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 138 && BOOST_PP_ITERATION_START_2 >= 138\r
+#    define BOOST_PP_ITERATION_2 138\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 137 && BOOST_PP_ITERATION_START_2 >= 137\r
+#    define BOOST_PP_ITERATION_2 137\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 136 && BOOST_PP_ITERATION_START_2 >= 136\r
+#    define BOOST_PP_ITERATION_2 136\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 135 && BOOST_PP_ITERATION_START_2 >= 135\r
+#    define BOOST_PP_ITERATION_2 135\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 134 && BOOST_PP_ITERATION_START_2 >= 134\r
+#    define BOOST_PP_ITERATION_2 134\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 133 && BOOST_PP_ITERATION_START_2 >= 133\r
+#    define BOOST_PP_ITERATION_2 133\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 132 && BOOST_PP_ITERATION_START_2 >= 132\r
+#    define BOOST_PP_ITERATION_2 132\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 131 && BOOST_PP_ITERATION_START_2 >= 131\r
+#    define BOOST_PP_ITERATION_2 131\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 130 && BOOST_PP_ITERATION_START_2 >= 130\r
+#    define BOOST_PP_ITERATION_2 130\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 129 && BOOST_PP_ITERATION_START_2 >= 129\r
+#    define BOOST_PP_ITERATION_2 129\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 128 && BOOST_PP_ITERATION_START_2 >= 128\r
+#    define BOOST_PP_ITERATION_2 128\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 127 && BOOST_PP_ITERATION_START_2 >= 127\r
+#    define BOOST_PP_ITERATION_2 127\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 126 && BOOST_PP_ITERATION_START_2 >= 126\r
+#    define BOOST_PP_ITERATION_2 126\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 125 && BOOST_PP_ITERATION_START_2 >= 125\r
+#    define BOOST_PP_ITERATION_2 125\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 124 && BOOST_PP_ITERATION_START_2 >= 124\r
+#    define BOOST_PP_ITERATION_2 124\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 123 && BOOST_PP_ITERATION_START_2 >= 123\r
+#    define BOOST_PP_ITERATION_2 123\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 122 && BOOST_PP_ITERATION_START_2 >= 122\r
+#    define BOOST_PP_ITERATION_2 122\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 121 && BOOST_PP_ITERATION_START_2 >= 121\r
+#    define BOOST_PP_ITERATION_2 121\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 120 && BOOST_PP_ITERATION_START_2 >= 120\r
+#    define BOOST_PP_ITERATION_2 120\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 119 && BOOST_PP_ITERATION_START_2 >= 119\r
+#    define BOOST_PP_ITERATION_2 119\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 118 && BOOST_PP_ITERATION_START_2 >= 118\r
+#    define BOOST_PP_ITERATION_2 118\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 117 && BOOST_PP_ITERATION_START_2 >= 117\r
+#    define BOOST_PP_ITERATION_2 117\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 116 && BOOST_PP_ITERATION_START_2 >= 116\r
+#    define BOOST_PP_ITERATION_2 116\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 115 && BOOST_PP_ITERATION_START_2 >= 115\r
+#    define BOOST_PP_ITERATION_2 115\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 114 && BOOST_PP_ITERATION_START_2 >= 114\r
+#    define BOOST_PP_ITERATION_2 114\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 113 && BOOST_PP_ITERATION_START_2 >= 113\r
+#    define BOOST_PP_ITERATION_2 113\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 112 && BOOST_PP_ITERATION_START_2 >= 112\r
+#    define BOOST_PP_ITERATION_2 112\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 111 && BOOST_PP_ITERATION_START_2 >= 111\r
+#    define BOOST_PP_ITERATION_2 111\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 110 && BOOST_PP_ITERATION_START_2 >= 110\r
+#    define BOOST_PP_ITERATION_2 110\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 109 && BOOST_PP_ITERATION_START_2 >= 109\r
+#    define BOOST_PP_ITERATION_2 109\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 108 && BOOST_PP_ITERATION_START_2 >= 108\r
+#    define BOOST_PP_ITERATION_2 108\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 107 && BOOST_PP_ITERATION_START_2 >= 107\r
+#    define BOOST_PP_ITERATION_2 107\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 106 && BOOST_PP_ITERATION_START_2 >= 106\r
+#    define BOOST_PP_ITERATION_2 106\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 105 && BOOST_PP_ITERATION_START_2 >= 105\r
+#    define BOOST_PP_ITERATION_2 105\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 104 && BOOST_PP_ITERATION_START_2 >= 104\r
+#    define BOOST_PP_ITERATION_2 104\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 103 && BOOST_PP_ITERATION_START_2 >= 103\r
+#    define BOOST_PP_ITERATION_2 103\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 102 && BOOST_PP_ITERATION_START_2 >= 102\r
+#    define BOOST_PP_ITERATION_2 102\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 101 && BOOST_PP_ITERATION_START_2 >= 101\r
+#    define BOOST_PP_ITERATION_2 101\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 100 && BOOST_PP_ITERATION_START_2 >= 100\r
+#    define BOOST_PP_ITERATION_2 100\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 99 && BOOST_PP_ITERATION_START_2 >= 99\r
+#    define BOOST_PP_ITERATION_2 99\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 98 && BOOST_PP_ITERATION_START_2 >= 98\r
+#    define BOOST_PP_ITERATION_2 98\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 97 && BOOST_PP_ITERATION_START_2 >= 97\r
+#    define BOOST_PP_ITERATION_2 97\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 96 && BOOST_PP_ITERATION_START_2 >= 96\r
+#    define BOOST_PP_ITERATION_2 96\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 95 && BOOST_PP_ITERATION_START_2 >= 95\r
+#    define BOOST_PP_ITERATION_2 95\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 94 && BOOST_PP_ITERATION_START_2 >= 94\r
+#    define BOOST_PP_ITERATION_2 94\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 93 && BOOST_PP_ITERATION_START_2 >= 93\r
+#    define BOOST_PP_ITERATION_2 93\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 92 && BOOST_PP_ITERATION_START_2 >= 92\r
+#    define BOOST_PP_ITERATION_2 92\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 91 && BOOST_PP_ITERATION_START_2 >= 91\r
+#    define BOOST_PP_ITERATION_2 91\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 90 && BOOST_PP_ITERATION_START_2 >= 90\r
+#    define BOOST_PP_ITERATION_2 90\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 89 && BOOST_PP_ITERATION_START_2 >= 89\r
+#    define BOOST_PP_ITERATION_2 89\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 88 && BOOST_PP_ITERATION_START_2 >= 88\r
+#    define BOOST_PP_ITERATION_2 88\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 87 && BOOST_PP_ITERATION_START_2 >= 87\r
+#    define BOOST_PP_ITERATION_2 87\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 86 && BOOST_PP_ITERATION_START_2 >= 86\r
+#    define BOOST_PP_ITERATION_2 86\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 85 && BOOST_PP_ITERATION_START_2 >= 85\r
+#    define BOOST_PP_ITERATION_2 85\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 84 && BOOST_PP_ITERATION_START_2 >= 84\r
+#    define BOOST_PP_ITERATION_2 84\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 83 && BOOST_PP_ITERATION_START_2 >= 83\r
+#    define BOOST_PP_ITERATION_2 83\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 82 && BOOST_PP_ITERATION_START_2 >= 82\r
+#    define BOOST_PP_ITERATION_2 82\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 81 && BOOST_PP_ITERATION_START_2 >= 81\r
+#    define BOOST_PP_ITERATION_2 81\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 80 && BOOST_PP_ITERATION_START_2 >= 80\r
+#    define BOOST_PP_ITERATION_2 80\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 79 && BOOST_PP_ITERATION_START_2 >= 79\r
+#    define BOOST_PP_ITERATION_2 79\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 78 && BOOST_PP_ITERATION_START_2 >= 78\r
+#    define BOOST_PP_ITERATION_2 78\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 77 && BOOST_PP_ITERATION_START_2 >= 77\r
+#    define BOOST_PP_ITERATION_2 77\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 76 && BOOST_PP_ITERATION_START_2 >= 76\r
+#    define BOOST_PP_ITERATION_2 76\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 75 && BOOST_PP_ITERATION_START_2 >= 75\r
+#    define BOOST_PP_ITERATION_2 75\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 74 && BOOST_PP_ITERATION_START_2 >= 74\r
+#    define BOOST_PP_ITERATION_2 74\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 73 && BOOST_PP_ITERATION_START_2 >= 73\r
+#    define BOOST_PP_ITERATION_2 73\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 72 && BOOST_PP_ITERATION_START_2 >= 72\r
+#    define BOOST_PP_ITERATION_2 72\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 71 && BOOST_PP_ITERATION_START_2 >= 71\r
+#    define BOOST_PP_ITERATION_2 71\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 70 && BOOST_PP_ITERATION_START_2 >= 70\r
+#    define BOOST_PP_ITERATION_2 70\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 69 && BOOST_PP_ITERATION_START_2 >= 69\r
+#    define BOOST_PP_ITERATION_2 69\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 68 && BOOST_PP_ITERATION_START_2 >= 68\r
+#    define BOOST_PP_ITERATION_2 68\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 67 && BOOST_PP_ITERATION_START_2 >= 67\r
+#    define BOOST_PP_ITERATION_2 67\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 66 && BOOST_PP_ITERATION_START_2 >= 66\r
+#    define BOOST_PP_ITERATION_2 66\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 65 && BOOST_PP_ITERATION_START_2 >= 65\r
+#    define BOOST_PP_ITERATION_2 65\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 64 && BOOST_PP_ITERATION_START_2 >= 64\r
+#    define BOOST_PP_ITERATION_2 64\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 63 && BOOST_PP_ITERATION_START_2 >= 63\r
+#    define BOOST_PP_ITERATION_2 63\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 62 && BOOST_PP_ITERATION_START_2 >= 62\r
+#    define BOOST_PP_ITERATION_2 62\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 61 && BOOST_PP_ITERATION_START_2 >= 61\r
+#    define BOOST_PP_ITERATION_2 61\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 60 && BOOST_PP_ITERATION_START_2 >= 60\r
+#    define BOOST_PP_ITERATION_2 60\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 59 && BOOST_PP_ITERATION_START_2 >= 59\r
+#    define BOOST_PP_ITERATION_2 59\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 58 && BOOST_PP_ITERATION_START_2 >= 58\r
+#    define BOOST_PP_ITERATION_2 58\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 57 && BOOST_PP_ITERATION_START_2 >= 57\r
+#    define BOOST_PP_ITERATION_2 57\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 56 && BOOST_PP_ITERATION_START_2 >= 56\r
+#    define BOOST_PP_ITERATION_2 56\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 55 && BOOST_PP_ITERATION_START_2 >= 55\r
+#    define BOOST_PP_ITERATION_2 55\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 54 && BOOST_PP_ITERATION_START_2 >= 54\r
+#    define BOOST_PP_ITERATION_2 54\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 53 && BOOST_PP_ITERATION_START_2 >= 53\r
+#    define BOOST_PP_ITERATION_2 53\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 52 && BOOST_PP_ITERATION_START_2 >= 52\r
+#    define BOOST_PP_ITERATION_2 52\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 51 && BOOST_PP_ITERATION_START_2 >= 51\r
+#    define BOOST_PP_ITERATION_2 51\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 50 && BOOST_PP_ITERATION_START_2 >= 50\r
+#    define BOOST_PP_ITERATION_2 50\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 49 && BOOST_PP_ITERATION_START_2 >= 49\r
+#    define BOOST_PP_ITERATION_2 49\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 48 && BOOST_PP_ITERATION_START_2 >= 48\r
+#    define BOOST_PP_ITERATION_2 48\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 47 && BOOST_PP_ITERATION_START_2 >= 47\r
+#    define BOOST_PP_ITERATION_2 47\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 46 && BOOST_PP_ITERATION_START_2 >= 46\r
+#    define BOOST_PP_ITERATION_2 46\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 45 && BOOST_PP_ITERATION_START_2 >= 45\r
+#    define BOOST_PP_ITERATION_2 45\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 44 && BOOST_PP_ITERATION_START_2 >= 44\r
+#    define BOOST_PP_ITERATION_2 44\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 43 && BOOST_PP_ITERATION_START_2 >= 43\r
+#    define BOOST_PP_ITERATION_2 43\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 42 && BOOST_PP_ITERATION_START_2 >= 42\r
+#    define BOOST_PP_ITERATION_2 42\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 41 && BOOST_PP_ITERATION_START_2 >= 41\r
+#    define BOOST_PP_ITERATION_2 41\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 40 && BOOST_PP_ITERATION_START_2 >= 40\r
+#    define BOOST_PP_ITERATION_2 40\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 39 && BOOST_PP_ITERATION_START_2 >= 39\r
+#    define BOOST_PP_ITERATION_2 39\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 38 && BOOST_PP_ITERATION_START_2 >= 38\r
+#    define BOOST_PP_ITERATION_2 38\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 37 && BOOST_PP_ITERATION_START_2 >= 37\r
+#    define BOOST_PP_ITERATION_2 37\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 36 && BOOST_PP_ITERATION_START_2 >= 36\r
+#    define BOOST_PP_ITERATION_2 36\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 35 && BOOST_PP_ITERATION_START_2 >= 35\r
+#    define BOOST_PP_ITERATION_2 35\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 34 && BOOST_PP_ITERATION_START_2 >= 34\r
+#    define BOOST_PP_ITERATION_2 34\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 33 && BOOST_PP_ITERATION_START_2 >= 33\r
+#    define BOOST_PP_ITERATION_2 33\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 32 && BOOST_PP_ITERATION_START_2 >= 32\r
+#    define BOOST_PP_ITERATION_2 32\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 31 && BOOST_PP_ITERATION_START_2 >= 31\r
+#    define BOOST_PP_ITERATION_2 31\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 30 && BOOST_PP_ITERATION_START_2 >= 30\r
+#    define BOOST_PP_ITERATION_2 30\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 29 && BOOST_PP_ITERATION_START_2 >= 29\r
+#    define BOOST_PP_ITERATION_2 29\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 28 && BOOST_PP_ITERATION_START_2 >= 28\r
+#    define BOOST_PP_ITERATION_2 28\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 27 && BOOST_PP_ITERATION_START_2 >= 27\r
+#    define BOOST_PP_ITERATION_2 27\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 26 && BOOST_PP_ITERATION_START_2 >= 26\r
+#    define BOOST_PP_ITERATION_2 26\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 25 && BOOST_PP_ITERATION_START_2 >= 25\r
+#    define BOOST_PP_ITERATION_2 25\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 24 && BOOST_PP_ITERATION_START_2 >= 24\r
+#    define BOOST_PP_ITERATION_2 24\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 23 && BOOST_PP_ITERATION_START_2 >= 23\r
+#    define BOOST_PP_ITERATION_2 23\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 22 && BOOST_PP_ITERATION_START_2 >= 22\r
+#    define BOOST_PP_ITERATION_2 22\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 21 && BOOST_PP_ITERATION_START_2 >= 21\r
+#    define BOOST_PP_ITERATION_2 21\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 20 && BOOST_PP_ITERATION_START_2 >= 20\r
+#    define BOOST_PP_ITERATION_2 20\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 19 && BOOST_PP_ITERATION_START_2 >= 19\r
+#    define BOOST_PP_ITERATION_2 19\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 18 && BOOST_PP_ITERATION_START_2 >= 18\r
+#    define BOOST_PP_ITERATION_2 18\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 17 && BOOST_PP_ITERATION_START_2 >= 17\r
+#    define BOOST_PP_ITERATION_2 17\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 16 && BOOST_PP_ITERATION_START_2 >= 16\r
+#    define BOOST_PP_ITERATION_2 16\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 15 && BOOST_PP_ITERATION_START_2 >= 15\r
+#    define BOOST_PP_ITERATION_2 15\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 14 && BOOST_PP_ITERATION_START_2 >= 14\r
+#    define BOOST_PP_ITERATION_2 14\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 13 && BOOST_PP_ITERATION_START_2 >= 13\r
+#    define BOOST_PP_ITERATION_2 13\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 12 && BOOST_PP_ITERATION_START_2 >= 12\r
+#    define BOOST_PP_ITERATION_2 12\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 11 && BOOST_PP_ITERATION_START_2 >= 11\r
+#    define BOOST_PP_ITERATION_2 11\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 10 && BOOST_PP_ITERATION_START_2 >= 10\r
+#    define BOOST_PP_ITERATION_2 10\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 9 && BOOST_PP_ITERATION_START_2 >= 9\r
+#    define BOOST_PP_ITERATION_2 9\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 8 && BOOST_PP_ITERATION_START_2 >= 8\r
+#    define BOOST_PP_ITERATION_2 8\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 7 && BOOST_PP_ITERATION_START_2 >= 7\r
+#    define BOOST_PP_ITERATION_2 7\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 6 && BOOST_PP_ITERATION_START_2 >= 6\r
+#    define BOOST_PP_ITERATION_2 6\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 5 && BOOST_PP_ITERATION_START_2 >= 5\r
+#    define BOOST_PP_ITERATION_2 5\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 4 && BOOST_PP_ITERATION_START_2 >= 4\r
+#    define BOOST_PP_ITERATION_2 4\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 3 && BOOST_PP_ITERATION_START_2 >= 3\r
+#    define BOOST_PP_ITERATION_2 3\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 2 && BOOST_PP_ITERATION_START_2 >= 2\r
+#    define BOOST_PP_ITERATION_2 2\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 1 && BOOST_PP_ITERATION_START_2 >= 1\r
+#    define BOOST_PP_ITERATION_2 1\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_2 <= 0 && BOOST_PP_ITERATION_START_2 >= 0\r
+#    define BOOST_PP_ITERATION_2 0\r
+#    include BOOST_PP_FILENAME_2\r
+#    undef BOOST_PP_ITERATION_2\r
+# endif\r
diff --git a/boost/boost/preprocessor/iteration/detail/iter/reverse3.hpp b/boost/boost/preprocessor/iteration/detail/iter/reverse3.hpp
new file mode 100644 (file)
index 0000000..189f77c
--- /dev/null
@@ -0,0 +1,1296 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 256 && BOOST_PP_ITERATION_START_3 >= 256\r
+#    define BOOST_PP_ITERATION_3 256\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 255 && BOOST_PP_ITERATION_START_3 >= 255\r
+#    define BOOST_PP_ITERATION_3 255\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 254 && BOOST_PP_ITERATION_START_3 >= 254\r
+#    define BOOST_PP_ITERATION_3 254\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 253 && BOOST_PP_ITERATION_START_3 >= 253\r
+#    define BOOST_PP_ITERATION_3 253\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 252 && BOOST_PP_ITERATION_START_3 >= 252\r
+#    define BOOST_PP_ITERATION_3 252\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 251 && BOOST_PP_ITERATION_START_3 >= 251\r
+#    define BOOST_PP_ITERATION_3 251\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 250 && BOOST_PP_ITERATION_START_3 >= 250\r
+#    define BOOST_PP_ITERATION_3 250\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 249 && BOOST_PP_ITERATION_START_3 >= 249\r
+#    define BOOST_PP_ITERATION_3 249\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 248 && BOOST_PP_ITERATION_START_3 >= 248\r
+#    define BOOST_PP_ITERATION_3 248\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 247 && BOOST_PP_ITERATION_START_3 >= 247\r
+#    define BOOST_PP_ITERATION_3 247\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 246 && BOOST_PP_ITERATION_START_3 >= 246\r
+#    define BOOST_PP_ITERATION_3 246\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 245 && BOOST_PP_ITERATION_START_3 >= 245\r
+#    define BOOST_PP_ITERATION_3 245\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 244 && BOOST_PP_ITERATION_START_3 >= 244\r
+#    define BOOST_PP_ITERATION_3 244\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 243 && BOOST_PP_ITERATION_START_3 >= 243\r
+#    define BOOST_PP_ITERATION_3 243\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 242 && BOOST_PP_ITERATION_START_3 >= 242\r
+#    define BOOST_PP_ITERATION_3 242\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 241 && BOOST_PP_ITERATION_START_3 >= 241\r
+#    define BOOST_PP_ITERATION_3 241\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 240 && BOOST_PP_ITERATION_START_3 >= 240\r
+#    define BOOST_PP_ITERATION_3 240\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 239 && BOOST_PP_ITERATION_START_3 >= 239\r
+#    define BOOST_PP_ITERATION_3 239\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 238 && BOOST_PP_ITERATION_START_3 >= 238\r
+#    define BOOST_PP_ITERATION_3 238\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 237 && BOOST_PP_ITERATION_START_3 >= 237\r
+#    define BOOST_PP_ITERATION_3 237\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 236 && BOOST_PP_ITERATION_START_3 >= 236\r
+#    define BOOST_PP_ITERATION_3 236\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 235 && BOOST_PP_ITERATION_START_3 >= 235\r
+#    define BOOST_PP_ITERATION_3 235\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 234 && BOOST_PP_ITERATION_START_3 >= 234\r
+#    define BOOST_PP_ITERATION_3 234\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 233 && BOOST_PP_ITERATION_START_3 >= 233\r
+#    define BOOST_PP_ITERATION_3 233\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 232 && BOOST_PP_ITERATION_START_3 >= 232\r
+#    define BOOST_PP_ITERATION_3 232\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 231 && BOOST_PP_ITERATION_START_3 >= 231\r
+#    define BOOST_PP_ITERATION_3 231\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 230 && BOOST_PP_ITERATION_START_3 >= 230\r
+#    define BOOST_PP_ITERATION_3 230\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 229 && BOOST_PP_ITERATION_START_3 >= 229\r
+#    define BOOST_PP_ITERATION_3 229\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 228 && BOOST_PP_ITERATION_START_3 >= 228\r
+#    define BOOST_PP_ITERATION_3 228\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 227 && BOOST_PP_ITERATION_START_3 >= 227\r
+#    define BOOST_PP_ITERATION_3 227\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 226 && BOOST_PP_ITERATION_START_3 >= 226\r
+#    define BOOST_PP_ITERATION_3 226\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 225 && BOOST_PP_ITERATION_START_3 >= 225\r
+#    define BOOST_PP_ITERATION_3 225\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 224 && BOOST_PP_ITERATION_START_3 >= 224\r
+#    define BOOST_PP_ITERATION_3 224\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 223 && BOOST_PP_ITERATION_START_3 >= 223\r
+#    define BOOST_PP_ITERATION_3 223\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 222 && BOOST_PP_ITERATION_START_3 >= 222\r
+#    define BOOST_PP_ITERATION_3 222\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 221 && BOOST_PP_ITERATION_START_3 >= 221\r
+#    define BOOST_PP_ITERATION_3 221\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 220 && BOOST_PP_ITERATION_START_3 >= 220\r
+#    define BOOST_PP_ITERATION_3 220\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 219 && BOOST_PP_ITERATION_START_3 >= 219\r
+#    define BOOST_PP_ITERATION_3 219\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 218 && BOOST_PP_ITERATION_START_3 >= 218\r
+#    define BOOST_PP_ITERATION_3 218\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 217 && BOOST_PP_ITERATION_START_3 >= 217\r
+#    define BOOST_PP_ITERATION_3 217\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 216 && BOOST_PP_ITERATION_START_3 >= 216\r
+#    define BOOST_PP_ITERATION_3 216\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 215 && BOOST_PP_ITERATION_START_3 >= 215\r
+#    define BOOST_PP_ITERATION_3 215\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 214 && BOOST_PP_ITERATION_START_3 >= 214\r
+#    define BOOST_PP_ITERATION_3 214\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 213 && BOOST_PP_ITERATION_START_3 >= 213\r
+#    define BOOST_PP_ITERATION_3 213\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 212 && BOOST_PP_ITERATION_START_3 >= 212\r
+#    define BOOST_PP_ITERATION_3 212\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 211 && BOOST_PP_ITERATION_START_3 >= 211\r
+#    define BOOST_PP_ITERATION_3 211\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 210 && BOOST_PP_ITERATION_START_3 >= 210\r
+#    define BOOST_PP_ITERATION_3 210\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 209 && BOOST_PP_ITERATION_START_3 >= 209\r
+#    define BOOST_PP_ITERATION_3 209\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 208 && BOOST_PP_ITERATION_START_3 >= 208\r
+#    define BOOST_PP_ITERATION_3 208\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 207 && BOOST_PP_ITERATION_START_3 >= 207\r
+#    define BOOST_PP_ITERATION_3 207\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 206 && BOOST_PP_ITERATION_START_3 >= 206\r
+#    define BOOST_PP_ITERATION_3 206\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 205 && BOOST_PP_ITERATION_START_3 >= 205\r
+#    define BOOST_PP_ITERATION_3 205\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 204 && BOOST_PP_ITERATION_START_3 >= 204\r
+#    define BOOST_PP_ITERATION_3 204\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 203 && BOOST_PP_ITERATION_START_3 >= 203\r
+#    define BOOST_PP_ITERATION_3 203\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 202 && BOOST_PP_ITERATION_START_3 >= 202\r
+#    define BOOST_PP_ITERATION_3 202\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 201 && BOOST_PP_ITERATION_START_3 >= 201\r
+#    define BOOST_PP_ITERATION_3 201\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 200 && BOOST_PP_ITERATION_START_3 >= 200\r
+#    define BOOST_PP_ITERATION_3 200\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 199 && BOOST_PP_ITERATION_START_3 >= 199\r
+#    define BOOST_PP_ITERATION_3 199\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 198 && BOOST_PP_ITERATION_START_3 >= 198\r
+#    define BOOST_PP_ITERATION_3 198\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 197 && BOOST_PP_ITERATION_START_3 >= 197\r
+#    define BOOST_PP_ITERATION_3 197\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 196 && BOOST_PP_ITERATION_START_3 >= 196\r
+#    define BOOST_PP_ITERATION_3 196\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 195 && BOOST_PP_ITERATION_START_3 >= 195\r
+#    define BOOST_PP_ITERATION_3 195\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 194 && BOOST_PP_ITERATION_START_3 >= 194\r
+#    define BOOST_PP_ITERATION_3 194\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 193 && BOOST_PP_ITERATION_START_3 >= 193\r
+#    define BOOST_PP_ITERATION_3 193\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 192 && BOOST_PP_ITERATION_START_3 >= 192\r
+#    define BOOST_PP_ITERATION_3 192\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 191 && BOOST_PP_ITERATION_START_3 >= 191\r
+#    define BOOST_PP_ITERATION_3 191\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 190 && BOOST_PP_ITERATION_START_3 >= 190\r
+#    define BOOST_PP_ITERATION_3 190\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 189 && BOOST_PP_ITERATION_START_3 >= 189\r
+#    define BOOST_PP_ITERATION_3 189\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 188 && BOOST_PP_ITERATION_START_3 >= 188\r
+#    define BOOST_PP_ITERATION_3 188\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 187 && BOOST_PP_ITERATION_START_3 >= 187\r
+#    define BOOST_PP_ITERATION_3 187\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 186 && BOOST_PP_ITERATION_START_3 >= 186\r
+#    define BOOST_PP_ITERATION_3 186\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 185 && BOOST_PP_ITERATION_START_3 >= 185\r
+#    define BOOST_PP_ITERATION_3 185\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 184 && BOOST_PP_ITERATION_START_3 >= 184\r
+#    define BOOST_PP_ITERATION_3 184\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 183 && BOOST_PP_ITERATION_START_3 >= 183\r
+#    define BOOST_PP_ITERATION_3 183\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 182 && BOOST_PP_ITERATION_START_3 >= 182\r
+#    define BOOST_PP_ITERATION_3 182\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 181 && BOOST_PP_ITERATION_START_3 >= 181\r
+#    define BOOST_PP_ITERATION_3 181\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 180 && BOOST_PP_ITERATION_START_3 >= 180\r
+#    define BOOST_PP_ITERATION_3 180\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 179 && BOOST_PP_ITERATION_START_3 >= 179\r
+#    define BOOST_PP_ITERATION_3 179\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 178 && BOOST_PP_ITERATION_START_3 >= 178\r
+#    define BOOST_PP_ITERATION_3 178\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 177 && BOOST_PP_ITERATION_START_3 >= 177\r
+#    define BOOST_PP_ITERATION_3 177\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 176 && BOOST_PP_ITERATION_START_3 >= 176\r
+#    define BOOST_PP_ITERATION_3 176\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 175 && BOOST_PP_ITERATION_START_3 >= 175\r
+#    define BOOST_PP_ITERATION_3 175\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 174 && BOOST_PP_ITERATION_START_3 >= 174\r
+#    define BOOST_PP_ITERATION_3 174\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 173 && BOOST_PP_ITERATION_START_3 >= 173\r
+#    define BOOST_PP_ITERATION_3 173\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 172 && BOOST_PP_ITERATION_START_3 >= 172\r
+#    define BOOST_PP_ITERATION_3 172\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 171 && BOOST_PP_ITERATION_START_3 >= 171\r
+#    define BOOST_PP_ITERATION_3 171\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 170 && BOOST_PP_ITERATION_START_3 >= 170\r
+#    define BOOST_PP_ITERATION_3 170\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 169 && BOOST_PP_ITERATION_START_3 >= 169\r
+#    define BOOST_PP_ITERATION_3 169\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 168 && BOOST_PP_ITERATION_START_3 >= 168\r
+#    define BOOST_PP_ITERATION_3 168\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 167 && BOOST_PP_ITERATION_START_3 >= 167\r
+#    define BOOST_PP_ITERATION_3 167\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 166 && BOOST_PP_ITERATION_START_3 >= 166\r
+#    define BOOST_PP_ITERATION_3 166\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 165 && BOOST_PP_ITERATION_START_3 >= 165\r
+#    define BOOST_PP_ITERATION_3 165\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 164 && BOOST_PP_ITERATION_START_3 >= 164\r
+#    define BOOST_PP_ITERATION_3 164\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 163 && BOOST_PP_ITERATION_START_3 >= 163\r
+#    define BOOST_PP_ITERATION_3 163\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 162 && BOOST_PP_ITERATION_START_3 >= 162\r
+#    define BOOST_PP_ITERATION_3 162\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 161 && BOOST_PP_ITERATION_START_3 >= 161\r
+#    define BOOST_PP_ITERATION_3 161\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 160 && BOOST_PP_ITERATION_START_3 >= 160\r
+#    define BOOST_PP_ITERATION_3 160\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 159 && BOOST_PP_ITERATION_START_3 >= 159\r
+#    define BOOST_PP_ITERATION_3 159\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 158 && BOOST_PP_ITERATION_START_3 >= 158\r
+#    define BOOST_PP_ITERATION_3 158\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 157 && BOOST_PP_ITERATION_START_3 >= 157\r
+#    define BOOST_PP_ITERATION_3 157\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 156 && BOOST_PP_ITERATION_START_3 >= 156\r
+#    define BOOST_PP_ITERATION_3 156\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 155 && BOOST_PP_ITERATION_START_3 >= 155\r
+#    define BOOST_PP_ITERATION_3 155\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 154 && BOOST_PP_ITERATION_START_3 >= 154\r
+#    define BOOST_PP_ITERATION_3 154\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 153 && BOOST_PP_ITERATION_START_3 >= 153\r
+#    define BOOST_PP_ITERATION_3 153\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 152 && BOOST_PP_ITERATION_START_3 >= 152\r
+#    define BOOST_PP_ITERATION_3 152\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 151 && BOOST_PP_ITERATION_START_3 >= 151\r
+#    define BOOST_PP_ITERATION_3 151\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 150 && BOOST_PP_ITERATION_START_3 >= 150\r
+#    define BOOST_PP_ITERATION_3 150\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 149 && BOOST_PP_ITERATION_START_3 >= 149\r
+#    define BOOST_PP_ITERATION_3 149\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 148 && BOOST_PP_ITERATION_START_3 >= 148\r
+#    define BOOST_PP_ITERATION_3 148\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 147 && BOOST_PP_ITERATION_START_3 >= 147\r
+#    define BOOST_PP_ITERATION_3 147\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 146 && BOOST_PP_ITERATION_START_3 >= 146\r
+#    define BOOST_PP_ITERATION_3 146\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 145 && BOOST_PP_ITERATION_START_3 >= 145\r
+#    define BOOST_PP_ITERATION_3 145\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 144 && BOOST_PP_ITERATION_START_3 >= 144\r
+#    define BOOST_PP_ITERATION_3 144\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 143 && BOOST_PP_ITERATION_START_3 >= 143\r
+#    define BOOST_PP_ITERATION_3 143\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 142 && BOOST_PP_ITERATION_START_3 >= 142\r
+#    define BOOST_PP_ITERATION_3 142\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 141 && BOOST_PP_ITERATION_START_3 >= 141\r
+#    define BOOST_PP_ITERATION_3 141\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 140 && BOOST_PP_ITERATION_START_3 >= 140\r
+#    define BOOST_PP_ITERATION_3 140\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 139 && BOOST_PP_ITERATION_START_3 >= 139\r
+#    define BOOST_PP_ITERATION_3 139\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 138 && BOOST_PP_ITERATION_START_3 >= 138\r
+#    define BOOST_PP_ITERATION_3 138\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 137 && BOOST_PP_ITERATION_START_3 >= 137\r
+#    define BOOST_PP_ITERATION_3 137\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 136 && BOOST_PP_ITERATION_START_3 >= 136\r
+#    define BOOST_PP_ITERATION_3 136\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 135 && BOOST_PP_ITERATION_START_3 >= 135\r
+#    define BOOST_PP_ITERATION_3 135\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 134 && BOOST_PP_ITERATION_START_3 >= 134\r
+#    define BOOST_PP_ITERATION_3 134\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 133 && BOOST_PP_ITERATION_START_3 >= 133\r
+#    define BOOST_PP_ITERATION_3 133\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 132 && BOOST_PP_ITERATION_START_3 >= 132\r
+#    define BOOST_PP_ITERATION_3 132\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 131 && BOOST_PP_ITERATION_START_3 >= 131\r
+#    define BOOST_PP_ITERATION_3 131\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 130 && BOOST_PP_ITERATION_START_3 >= 130\r
+#    define BOOST_PP_ITERATION_3 130\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 129 && BOOST_PP_ITERATION_START_3 >= 129\r
+#    define BOOST_PP_ITERATION_3 129\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 128 && BOOST_PP_ITERATION_START_3 >= 128\r
+#    define BOOST_PP_ITERATION_3 128\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 127 && BOOST_PP_ITERATION_START_3 >= 127\r
+#    define BOOST_PP_ITERATION_3 127\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 126 && BOOST_PP_ITERATION_START_3 >= 126\r
+#    define BOOST_PP_ITERATION_3 126\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 125 && BOOST_PP_ITERATION_START_3 >= 125\r
+#    define BOOST_PP_ITERATION_3 125\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 124 && BOOST_PP_ITERATION_START_3 >= 124\r
+#    define BOOST_PP_ITERATION_3 124\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 123 && BOOST_PP_ITERATION_START_3 >= 123\r
+#    define BOOST_PP_ITERATION_3 123\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 122 && BOOST_PP_ITERATION_START_3 >= 122\r
+#    define BOOST_PP_ITERATION_3 122\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 121 && BOOST_PP_ITERATION_START_3 >= 121\r
+#    define BOOST_PP_ITERATION_3 121\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 120 && BOOST_PP_ITERATION_START_3 >= 120\r
+#    define BOOST_PP_ITERATION_3 120\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 119 && BOOST_PP_ITERATION_START_3 >= 119\r
+#    define BOOST_PP_ITERATION_3 119\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 118 && BOOST_PP_ITERATION_START_3 >= 118\r
+#    define BOOST_PP_ITERATION_3 118\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 117 && BOOST_PP_ITERATION_START_3 >= 117\r
+#    define BOOST_PP_ITERATION_3 117\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 116 && BOOST_PP_ITERATION_START_3 >= 116\r
+#    define BOOST_PP_ITERATION_3 116\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 115 && BOOST_PP_ITERATION_START_3 >= 115\r
+#    define BOOST_PP_ITERATION_3 115\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 114 && BOOST_PP_ITERATION_START_3 >= 114\r
+#    define BOOST_PP_ITERATION_3 114\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 113 && BOOST_PP_ITERATION_START_3 >= 113\r
+#    define BOOST_PP_ITERATION_3 113\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 112 && BOOST_PP_ITERATION_START_3 >= 112\r
+#    define BOOST_PP_ITERATION_3 112\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 111 && BOOST_PP_ITERATION_START_3 >= 111\r
+#    define BOOST_PP_ITERATION_3 111\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 110 && BOOST_PP_ITERATION_START_3 >= 110\r
+#    define BOOST_PP_ITERATION_3 110\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 109 && BOOST_PP_ITERATION_START_3 >= 109\r
+#    define BOOST_PP_ITERATION_3 109\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 108 && BOOST_PP_ITERATION_START_3 >= 108\r
+#    define BOOST_PP_ITERATION_3 108\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 107 && BOOST_PP_ITERATION_START_3 >= 107\r
+#    define BOOST_PP_ITERATION_3 107\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 106 && BOOST_PP_ITERATION_START_3 >= 106\r
+#    define BOOST_PP_ITERATION_3 106\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 105 && BOOST_PP_ITERATION_START_3 >= 105\r
+#    define BOOST_PP_ITERATION_3 105\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 104 && BOOST_PP_ITERATION_START_3 >= 104\r
+#    define BOOST_PP_ITERATION_3 104\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 103 && BOOST_PP_ITERATION_START_3 >= 103\r
+#    define BOOST_PP_ITERATION_3 103\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 102 && BOOST_PP_ITERATION_START_3 >= 102\r
+#    define BOOST_PP_ITERATION_3 102\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 101 && BOOST_PP_ITERATION_START_3 >= 101\r
+#    define BOOST_PP_ITERATION_3 101\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 100 && BOOST_PP_ITERATION_START_3 >= 100\r
+#    define BOOST_PP_ITERATION_3 100\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 99 && BOOST_PP_ITERATION_START_3 >= 99\r
+#    define BOOST_PP_ITERATION_3 99\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 98 && BOOST_PP_ITERATION_START_3 >= 98\r
+#    define BOOST_PP_ITERATION_3 98\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 97 && BOOST_PP_ITERATION_START_3 >= 97\r
+#    define BOOST_PP_ITERATION_3 97\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 96 && BOOST_PP_ITERATION_START_3 >= 96\r
+#    define BOOST_PP_ITERATION_3 96\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 95 && BOOST_PP_ITERATION_START_3 >= 95\r
+#    define BOOST_PP_ITERATION_3 95\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 94 && BOOST_PP_ITERATION_START_3 >= 94\r
+#    define BOOST_PP_ITERATION_3 94\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 93 && BOOST_PP_ITERATION_START_3 >= 93\r
+#    define BOOST_PP_ITERATION_3 93\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 92 && BOOST_PP_ITERATION_START_3 >= 92\r
+#    define BOOST_PP_ITERATION_3 92\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 91 && BOOST_PP_ITERATION_START_3 >= 91\r
+#    define BOOST_PP_ITERATION_3 91\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 90 && BOOST_PP_ITERATION_START_3 >= 90\r
+#    define BOOST_PP_ITERATION_3 90\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 89 && BOOST_PP_ITERATION_START_3 >= 89\r
+#    define BOOST_PP_ITERATION_3 89\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 88 && BOOST_PP_ITERATION_START_3 >= 88\r
+#    define BOOST_PP_ITERATION_3 88\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 87 && BOOST_PP_ITERATION_START_3 >= 87\r
+#    define BOOST_PP_ITERATION_3 87\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 86 && BOOST_PP_ITERATION_START_3 >= 86\r
+#    define BOOST_PP_ITERATION_3 86\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 85 && BOOST_PP_ITERATION_START_3 >= 85\r
+#    define BOOST_PP_ITERATION_3 85\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 84 && BOOST_PP_ITERATION_START_3 >= 84\r
+#    define BOOST_PP_ITERATION_3 84\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 83 && BOOST_PP_ITERATION_START_3 >= 83\r
+#    define BOOST_PP_ITERATION_3 83\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 82 && BOOST_PP_ITERATION_START_3 >= 82\r
+#    define BOOST_PP_ITERATION_3 82\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 81 && BOOST_PP_ITERATION_START_3 >= 81\r
+#    define BOOST_PP_ITERATION_3 81\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 80 && BOOST_PP_ITERATION_START_3 >= 80\r
+#    define BOOST_PP_ITERATION_3 80\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 79 && BOOST_PP_ITERATION_START_3 >= 79\r
+#    define BOOST_PP_ITERATION_3 79\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 78 && BOOST_PP_ITERATION_START_3 >= 78\r
+#    define BOOST_PP_ITERATION_3 78\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 77 && BOOST_PP_ITERATION_START_3 >= 77\r
+#    define BOOST_PP_ITERATION_3 77\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 76 && BOOST_PP_ITERATION_START_3 >= 76\r
+#    define BOOST_PP_ITERATION_3 76\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 75 && BOOST_PP_ITERATION_START_3 >= 75\r
+#    define BOOST_PP_ITERATION_3 75\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 74 && BOOST_PP_ITERATION_START_3 >= 74\r
+#    define BOOST_PP_ITERATION_3 74\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 73 && BOOST_PP_ITERATION_START_3 >= 73\r
+#    define BOOST_PP_ITERATION_3 73\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 72 && BOOST_PP_ITERATION_START_3 >= 72\r
+#    define BOOST_PP_ITERATION_3 72\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 71 && BOOST_PP_ITERATION_START_3 >= 71\r
+#    define BOOST_PP_ITERATION_3 71\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 70 && BOOST_PP_ITERATION_START_3 >= 70\r
+#    define BOOST_PP_ITERATION_3 70\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 69 && BOOST_PP_ITERATION_START_3 >= 69\r
+#    define BOOST_PP_ITERATION_3 69\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 68 && BOOST_PP_ITERATION_START_3 >= 68\r
+#    define BOOST_PP_ITERATION_3 68\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 67 && BOOST_PP_ITERATION_START_3 >= 67\r
+#    define BOOST_PP_ITERATION_3 67\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 66 && BOOST_PP_ITERATION_START_3 >= 66\r
+#    define BOOST_PP_ITERATION_3 66\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 65 && BOOST_PP_ITERATION_START_3 >= 65\r
+#    define BOOST_PP_ITERATION_3 65\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 64 && BOOST_PP_ITERATION_START_3 >= 64\r
+#    define BOOST_PP_ITERATION_3 64\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 63 && BOOST_PP_ITERATION_START_3 >= 63\r
+#    define BOOST_PP_ITERATION_3 63\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 62 && BOOST_PP_ITERATION_START_3 >= 62\r
+#    define BOOST_PP_ITERATION_3 62\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 61 && BOOST_PP_ITERATION_START_3 >= 61\r
+#    define BOOST_PP_ITERATION_3 61\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 60 && BOOST_PP_ITERATION_START_3 >= 60\r
+#    define BOOST_PP_ITERATION_3 60\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 59 && BOOST_PP_ITERATION_START_3 >= 59\r
+#    define BOOST_PP_ITERATION_3 59\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 58 && BOOST_PP_ITERATION_START_3 >= 58\r
+#    define BOOST_PP_ITERATION_3 58\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 57 && BOOST_PP_ITERATION_START_3 >= 57\r
+#    define BOOST_PP_ITERATION_3 57\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 56 && BOOST_PP_ITERATION_START_3 >= 56\r
+#    define BOOST_PP_ITERATION_3 56\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 55 && BOOST_PP_ITERATION_START_3 >= 55\r
+#    define BOOST_PP_ITERATION_3 55\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 54 && BOOST_PP_ITERATION_START_3 >= 54\r
+#    define BOOST_PP_ITERATION_3 54\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 53 && BOOST_PP_ITERATION_START_3 >= 53\r
+#    define BOOST_PP_ITERATION_3 53\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 52 && BOOST_PP_ITERATION_START_3 >= 52\r
+#    define BOOST_PP_ITERATION_3 52\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 51 && BOOST_PP_ITERATION_START_3 >= 51\r
+#    define BOOST_PP_ITERATION_3 51\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 50 && BOOST_PP_ITERATION_START_3 >= 50\r
+#    define BOOST_PP_ITERATION_3 50\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 49 && BOOST_PP_ITERATION_START_3 >= 49\r
+#    define BOOST_PP_ITERATION_3 49\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 48 && BOOST_PP_ITERATION_START_3 >= 48\r
+#    define BOOST_PP_ITERATION_3 48\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 47 && BOOST_PP_ITERATION_START_3 >= 47\r
+#    define BOOST_PP_ITERATION_3 47\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 46 && BOOST_PP_ITERATION_START_3 >= 46\r
+#    define BOOST_PP_ITERATION_3 46\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 45 && BOOST_PP_ITERATION_START_3 >= 45\r
+#    define BOOST_PP_ITERATION_3 45\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 44 && BOOST_PP_ITERATION_START_3 >= 44\r
+#    define BOOST_PP_ITERATION_3 44\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 43 && BOOST_PP_ITERATION_START_3 >= 43\r
+#    define BOOST_PP_ITERATION_3 43\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 42 && BOOST_PP_ITERATION_START_3 >= 42\r
+#    define BOOST_PP_ITERATION_3 42\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 41 && BOOST_PP_ITERATION_START_3 >= 41\r
+#    define BOOST_PP_ITERATION_3 41\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 40 && BOOST_PP_ITERATION_START_3 >= 40\r
+#    define BOOST_PP_ITERATION_3 40\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 39 && BOOST_PP_ITERATION_START_3 >= 39\r
+#    define BOOST_PP_ITERATION_3 39\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 38 && BOOST_PP_ITERATION_START_3 >= 38\r
+#    define BOOST_PP_ITERATION_3 38\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 37 && BOOST_PP_ITERATION_START_3 >= 37\r
+#    define BOOST_PP_ITERATION_3 37\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 36 && BOOST_PP_ITERATION_START_3 >= 36\r
+#    define BOOST_PP_ITERATION_3 36\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 35 && BOOST_PP_ITERATION_START_3 >= 35\r
+#    define BOOST_PP_ITERATION_3 35\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 34 && BOOST_PP_ITERATION_START_3 >= 34\r
+#    define BOOST_PP_ITERATION_3 34\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 33 && BOOST_PP_ITERATION_START_3 >= 33\r
+#    define BOOST_PP_ITERATION_3 33\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 32 && BOOST_PP_ITERATION_START_3 >= 32\r
+#    define BOOST_PP_ITERATION_3 32\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 31 && BOOST_PP_ITERATION_START_3 >= 31\r
+#    define BOOST_PP_ITERATION_3 31\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 30 && BOOST_PP_ITERATION_START_3 >= 30\r
+#    define BOOST_PP_ITERATION_3 30\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 29 && BOOST_PP_ITERATION_START_3 >= 29\r
+#    define BOOST_PP_ITERATION_3 29\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 28 && BOOST_PP_ITERATION_START_3 >= 28\r
+#    define BOOST_PP_ITERATION_3 28\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 27 && BOOST_PP_ITERATION_START_3 >= 27\r
+#    define BOOST_PP_ITERATION_3 27\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 26 && BOOST_PP_ITERATION_START_3 >= 26\r
+#    define BOOST_PP_ITERATION_3 26\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 25 && BOOST_PP_ITERATION_START_3 >= 25\r
+#    define BOOST_PP_ITERATION_3 25\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 24 && BOOST_PP_ITERATION_START_3 >= 24\r
+#    define BOOST_PP_ITERATION_3 24\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 23 && BOOST_PP_ITERATION_START_3 >= 23\r
+#    define BOOST_PP_ITERATION_3 23\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 22 && BOOST_PP_ITERATION_START_3 >= 22\r
+#    define BOOST_PP_ITERATION_3 22\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 21 && BOOST_PP_ITERATION_START_3 >= 21\r
+#    define BOOST_PP_ITERATION_3 21\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 20 && BOOST_PP_ITERATION_START_3 >= 20\r
+#    define BOOST_PP_ITERATION_3 20\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 19 && BOOST_PP_ITERATION_START_3 >= 19\r
+#    define BOOST_PP_ITERATION_3 19\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 18 && BOOST_PP_ITERATION_START_3 >= 18\r
+#    define BOOST_PP_ITERATION_3 18\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 17 && BOOST_PP_ITERATION_START_3 >= 17\r
+#    define BOOST_PP_ITERATION_3 17\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 16 && BOOST_PP_ITERATION_START_3 >= 16\r
+#    define BOOST_PP_ITERATION_3 16\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 15 && BOOST_PP_ITERATION_START_3 >= 15\r
+#    define BOOST_PP_ITERATION_3 15\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 14 && BOOST_PP_ITERATION_START_3 >= 14\r
+#    define BOOST_PP_ITERATION_3 14\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 13 && BOOST_PP_ITERATION_START_3 >= 13\r
+#    define BOOST_PP_ITERATION_3 13\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 12 && BOOST_PP_ITERATION_START_3 >= 12\r
+#    define BOOST_PP_ITERATION_3 12\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 11 && BOOST_PP_ITERATION_START_3 >= 11\r
+#    define BOOST_PP_ITERATION_3 11\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 10 && BOOST_PP_ITERATION_START_3 >= 10\r
+#    define BOOST_PP_ITERATION_3 10\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 9 && BOOST_PP_ITERATION_START_3 >= 9\r
+#    define BOOST_PP_ITERATION_3 9\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 8 && BOOST_PP_ITERATION_START_3 >= 8\r
+#    define BOOST_PP_ITERATION_3 8\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 7 && BOOST_PP_ITERATION_START_3 >= 7\r
+#    define BOOST_PP_ITERATION_3 7\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 6 && BOOST_PP_ITERATION_START_3 >= 6\r
+#    define BOOST_PP_ITERATION_3 6\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 5 && BOOST_PP_ITERATION_START_3 >= 5\r
+#    define BOOST_PP_ITERATION_3 5\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 4 && BOOST_PP_ITERATION_START_3 >= 4\r
+#    define BOOST_PP_ITERATION_3 4\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 3 && BOOST_PP_ITERATION_START_3 >= 3\r
+#    define BOOST_PP_ITERATION_3 3\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 2 && BOOST_PP_ITERATION_START_3 >= 2\r
+#    define BOOST_PP_ITERATION_3 2\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 1 && BOOST_PP_ITERATION_START_3 >= 1\r
+#    define BOOST_PP_ITERATION_3 1\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_3 <= 0 && BOOST_PP_ITERATION_START_3 >= 0\r
+#    define BOOST_PP_ITERATION_3 0\r
+#    include BOOST_PP_FILENAME_3\r
+#    undef BOOST_PP_ITERATION_3\r
+# endif\r
diff --git a/boost/boost/preprocessor/iteration/detail/iter/reverse4.hpp b/boost/boost/preprocessor/iteration/detail/iter/reverse4.hpp
new file mode 100644 (file)
index 0000000..aedceb3
--- /dev/null
@@ -0,0 +1,1296 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 256 && BOOST_PP_ITERATION_START_4 >= 256\r
+#    define BOOST_PP_ITERATION_4 256\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 255 && BOOST_PP_ITERATION_START_4 >= 255\r
+#    define BOOST_PP_ITERATION_4 255\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 254 && BOOST_PP_ITERATION_START_4 >= 254\r
+#    define BOOST_PP_ITERATION_4 254\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 253 && BOOST_PP_ITERATION_START_4 >= 253\r
+#    define BOOST_PP_ITERATION_4 253\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 252 && BOOST_PP_ITERATION_START_4 >= 252\r
+#    define BOOST_PP_ITERATION_4 252\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 251 && BOOST_PP_ITERATION_START_4 >= 251\r
+#    define BOOST_PP_ITERATION_4 251\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 250 && BOOST_PP_ITERATION_START_4 >= 250\r
+#    define BOOST_PP_ITERATION_4 250\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 249 && BOOST_PP_ITERATION_START_4 >= 249\r
+#    define BOOST_PP_ITERATION_4 249\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 248 && BOOST_PP_ITERATION_START_4 >= 248\r
+#    define BOOST_PP_ITERATION_4 248\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 247 && BOOST_PP_ITERATION_START_4 >= 247\r
+#    define BOOST_PP_ITERATION_4 247\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 246 && BOOST_PP_ITERATION_START_4 >= 246\r
+#    define BOOST_PP_ITERATION_4 246\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 245 && BOOST_PP_ITERATION_START_4 >= 245\r
+#    define BOOST_PP_ITERATION_4 245\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 244 && BOOST_PP_ITERATION_START_4 >= 244\r
+#    define BOOST_PP_ITERATION_4 244\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 243 && BOOST_PP_ITERATION_START_4 >= 243\r
+#    define BOOST_PP_ITERATION_4 243\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 242 && BOOST_PP_ITERATION_START_4 >= 242\r
+#    define BOOST_PP_ITERATION_4 242\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 241 && BOOST_PP_ITERATION_START_4 >= 241\r
+#    define BOOST_PP_ITERATION_4 241\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 240 && BOOST_PP_ITERATION_START_4 >= 240\r
+#    define BOOST_PP_ITERATION_4 240\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 239 && BOOST_PP_ITERATION_START_4 >= 239\r
+#    define BOOST_PP_ITERATION_4 239\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 238 && BOOST_PP_ITERATION_START_4 >= 238\r
+#    define BOOST_PP_ITERATION_4 238\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 237 && BOOST_PP_ITERATION_START_4 >= 237\r
+#    define BOOST_PP_ITERATION_4 237\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 236 && BOOST_PP_ITERATION_START_4 >= 236\r
+#    define BOOST_PP_ITERATION_4 236\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 235 && BOOST_PP_ITERATION_START_4 >= 235\r
+#    define BOOST_PP_ITERATION_4 235\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 234 && BOOST_PP_ITERATION_START_4 >= 234\r
+#    define BOOST_PP_ITERATION_4 234\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 233 && BOOST_PP_ITERATION_START_4 >= 233\r
+#    define BOOST_PP_ITERATION_4 233\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 232 && BOOST_PP_ITERATION_START_4 >= 232\r
+#    define BOOST_PP_ITERATION_4 232\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 231 && BOOST_PP_ITERATION_START_4 >= 231\r
+#    define BOOST_PP_ITERATION_4 231\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 230 && BOOST_PP_ITERATION_START_4 >= 230\r
+#    define BOOST_PP_ITERATION_4 230\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 229 && BOOST_PP_ITERATION_START_4 >= 229\r
+#    define BOOST_PP_ITERATION_4 229\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 228 && BOOST_PP_ITERATION_START_4 >= 228\r
+#    define BOOST_PP_ITERATION_4 228\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 227 && BOOST_PP_ITERATION_START_4 >= 227\r
+#    define BOOST_PP_ITERATION_4 227\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 226 && BOOST_PP_ITERATION_START_4 >= 226\r
+#    define BOOST_PP_ITERATION_4 226\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 225 && BOOST_PP_ITERATION_START_4 >= 225\r
+#    define BOOST_PP_ITERATION_4 225\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 224 && BOOST_PP_ITERATION_START_4 >= 224\r
+#    define BOOST_PP_ITERATION_4 224\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 223 && BOOST_PP_ITERATION_START_4 >= 223\r
+#    define BOOST_PP_ITERATION_4 223\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 222 && BOOST_PP_ITERATION_START_4 >= 222\r
+#    define BOOST_PP_ITERATION_4 222\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 221 && BOOST_PP_ITERATION_START_4 >= 221\r
+#    define BOOST_PP_ITERATION_4 221\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 220 && BOOST_PP_ITERATION_START_4 >= 220\r
+#    define BOOST_PP_ITERATION_4 220\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 219 && BOOST_PP_ITERATION_START_4 >= 219\r
+#    define BOOST_PP_ITERATION_4 219\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 218 && BOOST_PP_ITERATION_START_4 >= 218\r
+#    define BOOST_PP_ITERATION_4 218\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 217 && BOOST_PP_ITERATION_START_4 >= 217\r
+#    define BOOST_PP_ITERATION_4 217\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 216 && BOOST_PP_ITERATION_START_4 >= 216\r
+#    define BOOST_PP_ITERATION_4 216\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 215 && BOOST_PP_ITERATION_START_4 >= 215\r
+#    define BOOST_PP_ITERATION_4 215\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 214 && BOOST_PP_ITERATION_START_4 >= 214\r
+#    define BOOST_PP_ITERATION_4 214\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 213 && BOOST_PP_ITERATION_START_4 >= 213\r
+#    define BOOST_PP_ITERATION_4 213\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 212 && BOOST_PP_ITERATION_START_4 >= 212\r
+#    define BOOST_PP_ITERATION_4 212\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 211 && BOOST_PP_ITERATION_START_4 >= 211\r
+#    define BOOST_PP_ITERATION_4 211\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 210 && BOOST_PP_ITERATION_START_4 >= 210\r
+#    define BOOST_PP_ITERATION_4 210\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 209 && BOOST_PP_ITERATION_START_4 >= 209\r
+#    define BOOST_PP_ITERATION_4 209\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 208 && BOOST_PP_ITERATION_START_4 >= 208\r
+#    define BOOST_PP_ITERATION_4 208\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 207 && BOOST_PP_ITERATION_START_4 >= 207\r
+#    define BOOST_PP_ITERATION_4 207\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 206 && BOOST_PP_ITERATION_START_4 >= 206\r
+#    define BOOST_PP_ITERATION_4 206\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 205 && BOOST_PP_ITERATION_START_4 >= 205\r
+#    define BOOST_PP_ITERATION_4 205\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 204 && BOOST_PP_ITERATION_START_4 >= 204\r
+#    define BOOST_PP_ITERATION_4 204\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 203 && BOOST_PP_ITERATION_START_4 >= 203\r
+#    define BOOST_PP_ITERATION_4 203\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 202 && BOOST_PP_ITERATION_START_4 >= 202\r
+#    define BOOST_PP_ITERATION_4 202\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 201 && BOOST_PP_ITERATION_START_4 >= 201\r
+#    define BOOST_PP_ITERATION_4 201\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 200 && BOOST_PP_ITERATION_START_4 >= 200\r
+#    define BOOST_PP_ITERATION_4 200\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 199 && BOOST_PP_ITERATION_START_4 >= 199\r
+#    define BOOST_PP_ITERATION_4 199\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 198 && BOOST_PP_ITERATION_START_4 >= 198\r
+#    define BOOST_PP_ITERATION_4 198\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 197 && BOOST_PP_ITERATION_START_4 >= 197\r
+#    define BOOST_PP_ITERATION_4 197\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 196 && BOOST_PP_ITERATION_START_4 >= 196\r
+#    define BOOST_PP_ITERATION_4 196\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 195 && BOOST_PP_ITERATION_START_4 >= 195\r
+#    define BOOST_PP_ITERATION_4 195\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 194 && BOOST_PP_ITERATION_START_4 >= 194\r
+#    define BOOST_PP_ITERATION_4 194\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 193 && BOOST_PP_ITERATION_START_4 >= 193\r
+#    define BOOST_PP_ITERATION_4 193\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 192 && BOOST_PP_ITERATION_START_4 >= 192\r
+#    define BOOST_PP_ITERATION_4 192\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 191 && BOOST_PP_ITERATION_START_4 >= 191\r
+#    define BOOST_PP_ITERATION_4 191\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 190 && BOOST_PP_ITERATION_START_4 >= 190\r
+#    define BOOST_PP_ITERATION_4 190\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 189 && BOOST_PP_ITERATION_START_4 >= 189\r
+#    define BOOST_PP_ITERATION_4 189\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 188 && BOOST_PP_ITERATION_START_4 >= 188\r
+#    define BOOST_PP_ITERATION_4 188\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 187 && BOOST_PP_ITERATION_START_4 >= 187\r
+#    define BOOST_PP_ITERATION_4 187\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 186 && BOOST_PP_ITERATION_START_4 >= 186\r
+#    define BOOST_PP_ITERATION_4 186\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 185 && BOOST_PP_ITERATION_START_4 >= 185\r
+#    define BOOST_PP_ITERATION_4 185\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 184 && BOOST_PP_ITERATION_START_4 >= 184\r
+#    define BOOST_PP_ITERATION_4 184\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 183 && BOOST_PP_ITERATION_START_4 >= 183\r
+#    define BOOST_PP_ITERATION_4 183\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 182 && BOOST_PP_ITERATION_START_4 >= 182\r
+#    define BOOST_PP_ITERATION_4 182\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 181 && BOOST_PP_ITERATION_START_4 >= 181\r
+#    define BOOST_PP_ITERATION_4 181\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 180 && BOOST_PP_ITERATION_START_4 >= 180\r
+#    define BOOST_PP_ITERATION_4 180\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 179 && BOOST_PP_ITERATION_START_4 >= 179\r
+#    define BOOST_PP_ITERATION_4 179\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 178 && BOOST_PP_ITERATION_START_4 >= 178\r
+#    define BOOST_PP_ITERATION_4 178\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 177 && BOOST_PP_ITERATION_START_4 >= 177\r
+#    define BOOST_PP_ITERATION_4 177\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 176 && BOOST_PP_ITERATION_START_4 >= 176\r
+#    define BOOST_PP_ITERATION_4 176\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 175 && BOOST_PP_ITERATION_START_4 >= 175\r
+#    define BOOST_PP_ITERATION_4 175\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 174 && BOOST_PP_ITERATION_START_4 >= 174\r
+#    define BOOST_PP_ITERATION_4 174\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 173 && BOOST_PP_ITERATION_START_4 >= 173\r
+#    define BOOST_PP_ITERATION_4 173\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 172 && BOOST_PP_ITERATION_START_4 >= 172\r
+#    define BOOST_PP_ITERATION_4 172\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 171 && BOOST_PP_ITERATION_START_4 >= 171\r
+#    define BOOST_PP_ITERATION_4 171\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 170 && BOOST_PP_ITERATION_START_4 >= 170\r
+#    define BOOST_PP_ITERATION_4 170\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 169 && BOOST_PP_ITERATION_START_4 >= 169\r
+#    define BOOST_PP_ITERATION_4 169\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 168 && BOOST_PP_ITERATION_START_4 >= 168\r
+#    define BOOST_PP_ITERATION_4 168\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 167 && BOOST_PP_ITERATION_START_4 >= 167\r
+#    define BOOST_PP_ITERATION_4 167\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 166 && BOOST_PP_ITERATION_START_4 >= 166\r
+#    define BOOST_PP_ITERATION_4 166\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 165 && BOOST_PP_ITERATION_START_4 >= 165\r
+#    define BOOST_PP_ITERATION_4 165\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 164 && BOOST_PP_ITERATION_START_4 >= 164\r
+#    define BOOST_PP_ITERATION_4 164\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 163 && BOOST_PP_ITERATION_START_4 >= 163\r
+#    define BOOST_PP_ITERATION_4 163\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 162 && BOOST_PP_ITERATION_START_4 >= 162\r
+#    define BOOST_PP_ITERATION_4 162\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 161 && BOOST_PP_ITERATION_START_4 >= 161\r
+#    define BOOST_PP_ITERATION_4 161\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 160 && BOOST_PP_ITERATION_START_4 >= 160\r
+#    define BOOST_PP_ITERATION_4 160\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 159 && BOOST_PP_ITERATION_START_4 >= 159\r
+#    define BOOST_PP_ITERATION_4 159\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 158 && BOOST_PP_ITERATION_START_4 >= 158\r
+#    define BOOST_PP_ITERATION_4 158\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 157 && BOOST_PP_ITERATION_START_4 >= 157\r
+#    define BOOST_PP_ITERATION_4 157\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 156 && BOOST_PP_ITERATION_START_4 >= 156\r
+#    define BOOST_PP_ITERATION_4 156\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 155 && BOOST_PP_ITERATION_START_4 >= 155\r
+#    define BOOST_PP_ITERATION_4 155\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 154 && BOOST_PP_ITERATION_START_4 >= 154\r
+#    define BOOST_PP_ITERATION_4 154\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 153 && BOOST_PP_ITERATION_START_4 >= 153\r
+#    define BOOST_PP_ITERATION_4 153\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 152 && BOOST_PP_ITERATION_START_4 >= 152\r
+#    define BOOST_PP_ITERATION_4 152\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 151 && BOOST_PP_ITERATION_START_4 >= 151\r
+#    define BOOST_PP_ITERATION_4 151\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 150 && BOOST_PP_ITERATION_START_4 >= 150\r
+#    define BOOST_PP_ITERATION_4 150\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 149 && BOOST_PP_ITERATION_START_4 >= 149\r
+#    define BOOST_PP_ITERATION_4 149\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 148 && BOOST_PP_ITERATION_START_4 >= 148\r
+#    define BOOST_PP_ITERATION_4 148\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 147 && BOOST_PP_ITERATION_START_4 >= 147\r
+#    define BOOST_PP_ITERATION_4 147\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 146 && BOOST_PP_ITERATION_START_4 >= 146\r
+#    define BOOST_PP_ITERATION_4 146\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 145 && BOOST_PP_ITERATION_START_4 >= 145\r
+#    define BOOST_PP_ITERATION_4 145\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 144 && BOOST_PP_ITERATION_START_4 >= 144\r
+#    define BOOST_PP_ITERATION_4 144\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 143 && BOOST_PP_ITERATION_START_4 >= 143\r
+#    define BOOST_PP_ITERATION_4 143\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 142 && BOOST_PP_ITERATION_START_4 >= 142\r
+#    define BOOST_PP_ITERATION_4 142\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 141 && BOOST_PP_ITERATION_START_4 >= 141\r
+#    define BOOST_PP_ITERATION_4 141\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 140 && BOOST_PP_ITERATION_START_4 >= 140\r
+#    define BOOST_PP_ITERATION_4 140\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 139 && BOOST_PP_ITERATION_START_4 >= 139\r
+#    define BOOST_PP_ITERATION_4 139\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 138 && BOOST_PP_ITERATION_START_4 >= 138\r
+#    define BOOST_PP_ITERATION_4 138\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 137 && BOOST_PP_ITERATION_START_4 >= 137\r
+#    define BOOST_PP_ITERATION_4 137\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 136 && BOOST_PP_ITERATION_START_4 >= 136\r
+#    define BOOST_PP_ITERATION_4 136\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 135 && BOOST_PP_ITERATION_START_4 >= 135\r
+#    define BOOST_PP_ITERATION_4 135\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 134 && BOOST_PP_ITERATION_START_4 >= 134\r
+#    define BOOST_PP_ITERATION_4 134\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 133 && BOOST_PP_ITERATION_START_4 >= 133\r
+#    define BOOST_PP_ITERATION_4 133\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 132 && BOOST_PP_ITERATION_START_4 >= 132\r
+#    define BOOST_PP_ITERATION_4 132\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 131 && BOOST_PP_ITERATION_START_4 >= 131\r
+#    define BOOST_PP_ITERATION_4 131\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 130 && BOOST_PP_ITERATION_START_4 >= 130\r
+#    define BOOST_PP_ITERATION_4 130\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 129 && BOOST_PP_ITERATION_START_4 >= 129\r
+#    define BOOST_PP_ITERATION_4 129\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 128 && BOOST_PP_ITERATION_START_4 >= 128\r
+#    define BOOST_PP_ITERATION_4 128\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 127 && BOOST_PP_ITERATION_START_4 >= 127\r
+#    define BOOST_PP_ITERATION_4 127\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 126 && BOOST_PP_ITERATION_START_4 >= 126\r
+#    define BOOST_PP_ITERATION_4 126\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 125 && BOOST_PP_ITERATION_START_4 >= 125\r
+#    define BOOST_PP_ITERATION_4 125\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 124 && BOOST_PP_ITERATION_START_4 >= 124\r
+#    define BOOST_PP_ITERATION_4 124\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 123 && BOOST_PP_ITERATION_START_4 >= 123\r
+#    define BOOST_PP_ITERATION_4 123\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 122 && BOOST_PP_ITERATION_START_4 >= 122\r
+#    define BOOST_PP_ITERATION_4 122\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 121 && BOOST_PP_ITERATION_START_4 >= 121\r
+#    define BOOST_PP_ITERATION_4 121\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 120 && BOOST_PP_ITERATION_START_4 >= 120\r
+#    define BOOST_PP_ITERATION_4 120\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 119 && BOOST_PP_ITERATION_START_4 >= 119\r
+#    define BOOST_PP_ITERATION_4 119\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 118 && BOOST_PP_ITERATION_START_4 >= 118\r
+#    define BOOST_PP_ITERATION_4 118\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 117 && BOOST_PP_ITERATION_START_4 >= 117\r
+#    define BOOST_PP_ITERATION_4 117\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 116 && BOOST_PP_ITERATION_START_4 >= 116\r
+#    define BOOST_PP_ITERATION_4 116\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 115 && BOOST_PP_ITERATION_START_4 >= 115\r
+#    define BOOST_PP_ITERATION_4 115\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 114 && BOOST_PP_ITERATION_START_4 >= 114\r
+#    define BOOST_PP_ITERATION_4 114\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 113 && BOOST_PP_ITERATION_START_4 >= 113\r
+#    define BOOST_PP_ITERATION_4 113\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 112 && BOOST_PP_ITERATION_START_4 >= 112\r
+#    define BOOST_PP_ITERATION_4 112\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 111 && BOOST_PP_ITERATION_START_4 >= 111\r
+#    define BOOST_PP_ITERATION_4 111\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 110 && BOOST_PP_ITERATION_START_4 >= 110\r
+#    define BOOST_PP_ITERATION_4 110\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 109 && BOOST_PP_ITERATION_START_4 >= 109\r
+#    define BOOST_PP_ITERATION_4 109\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 108 && BOOST_PP_ITERATION_START_4 >= 108\r
+#    define BOOST_PP_ITERATION_4 108\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 107 && BOOST_PP_ITERATION_START_4 >= 107\r
+#    define BOOST_PP_ITERATION_4 107\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 106 && BOOST_PP_ITERATION_START_4 >= 106\r
+#    define BOOST_PP_ITERATION_4 106\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 105 && BOOST_PP_ITERATION_START_4 >= 105\r
+#    define BOOST_PP_ITERATION_4 105\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 104 && BOOST_PP_ITERATION_START_4 >= 104\r
+#    define BOOST_PP_ITERATION_4 104\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 103 && BOOST_PP_ITERATION_START_4 >= 103\r
+#    define BOOST_PP_ITERATION_4 103\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 102 && BOOST_PP_ITERATION_START_4 >= 102\r
+#    define BOOST_PP_ITERATION_4 102\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 101 && BOOST_PP_ITERATION_START_4 >= 101\r
+#    define BOOST_PP_ITERATION_4 101\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 100 && BOOST_PP_ITERATION_START_4 >= 100\r
+#    define BOOST_PP_ITERATION_4 100\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 99 && BOOST_PP_ITERATION_START_4 >= 99\r
+#    define BOOST_PP_ITERATION_4 99\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 98 && BOOST_PP_ITERATION_START_4 >= 98\r
+#    define BOOST_PP_ITERATION_4 98\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 97 && BOOST_PP_ITERATION_START_4 >= 97\r
+#    define BOOST_PP_ITERATION_4 97\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 96 && BOOST_PP_ITERATION_START_4 >= 96\r
+#    define BOOST_PP_ITERATION_4 96\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 95 && BOOST_PP_ITERATION_START_4 >= 95\r
+#    define BOOST_PP_ITERATION_4 95\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 94 && BOOST_PP_ITERATION_START_4 >= 94\r
+#    define BOOST_PP_ITERATION_4 94\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 93 && BOOST_PP_ITERATION_START_4 >= 93\r
+#    define BOOST_PP_ITERATION_4 93\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 92 && BOOST_PP_ITERATION_START_4 >= 92\r
+#    define BOOST_PP_ITERATION_4 92\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 91 && BOOST_PP_ITERATION_START_4 >= 91\r
+#    define BOOST_PP_ITERATION_4 91\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 90 && BOOST_PP_ITERATION_START_4 >= 90\r
+#    define BOOST_PP_ITERATION_4 90\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 89 && BOOST_PP_ITERATION_START_4 >= 89\r
+#    define BOOST_PP_ITERATION_4 89\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 88 && BOOST_PP_ITERATION_START_4 >= 88\r
+#    define BOOST_PP_ITERATION_4 88\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 87 && BOOST_PP_ITERATION_START_4 >= 87\r
+#    define BOOST_PP_ITERATION_4 87\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 86 && BOOST_PP_ITERATION_START_4 >= 86\r
+#    define BOOST_PP_ITERATION_4 86\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 85 && BOOST_PP_ITERATION_START_4 >= 85\r
+#    define BOOST_PP_ITERATION_4 85\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 84 && BOOST_PP_ITERATION_START_4 >= 84\r
+#    define BOOST_PP_ITERATION_4 84\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 83 && BOOST_PP_ITERATION_START_4 >= 83\r
+#    define BOOST_PP_ITERATION_4 83\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 82 && BOOST_PP_ITERATION_START_4 >= 82\r
+#    define BOOST_PP_ITERATION_4 82\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 81 && BOOST_PP_ITERATION_START_4 >= 81\r
+#    define BOOST_PP_ITERATION_4 81\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 80 && BOOST_PP_ITERATION_START_4 >= 80\r
+#    define BOOST_PP_ITERATION_4 80\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 79 && BOOST_PP_ITERATION_START_4 >= 79\r
+#    define BOOST_PP_ITERATION_4 79\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 78 && BOOST_PP_ITERATION_START_4 >= 78\r
+#    define BOOST_PP_ITERATION_4 78\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 77 && BOOST_PP_ITERATION_START_4 >= 77\r
+#    define BOOST_PP_ITERATION_4 77\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 76 && BOOST_PP_ITERATION_START_4 >= 76\r
+#    define BOOST_PP_ITERATION_4 76\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 75 && BOOST_PP_ITERATION_START_4 >= 75\r
+#    define BOOST_PP_ITERATION_4 75\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 74 && BOOST_PP_ITERATION_START_4 >= 74\r
+#    define BOOST_PP_ITERATION_4 74\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 73 && BOOST_PP_ITERATION_START_4 >= 73\r
+#    define BOOST_PP_ITERATION_4 73\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 72 && BOOST_PP_ITERATION_START_4 >= 72\r
+#    define BOOST_PP_ITERATION_4 72\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 71 && BOOST_PP_ITERATION_START_4 >= 71\r
+#    define BOOST_PP_ITERATION_4 71\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 70 && BOOST_PP_ITERATION_START_4 >= 70\r
+#    define BOOST_PP_ITERATION_4 70\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 69 && BOOST_PP_ITERATION_START_4 >= 69\r
+#    define BOOST_PP_ITERATION_4 69\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 68 && BOOST_PP_ITERATION_START_4 >= 68\r
+#    define BOOST_PP_ITERATION_4 68\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 67 && BOOST_PP_ITERATION_START_4 >= 67\r
+#    define BOOST_PP_ITERATION_4 67\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 66 && BOOST_PP_ITERATION_START_4 >= 66\r
+#    define BOOST_PP_ITERATION_4 66\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 65 && BOOST_PP_ITERATION_START_4 >= 65\r
+#    define BOOST_PP_ITERATION_4 65\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 64 && BOOST_PP_ITERATION_START_4 >= 64\r
+#    define BOOST_PP_ITERATION_4 64\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 63 && BOOST_PP_ITERATION_START_4 >= 63\r
+#    define BOOST_PP_ITERATION_4 63\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 62 && BOOST_PP_ITERATION_START_4 >= 62\r
+#    define BOOST_PP_ITERATION_4 62\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 61 && BOOST_PP_ITERATION_START_4 >= 61\r
+#    define BOOST_PP_ITERATION_4 61\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 60 && BOOST_PP_ITERATION_START_4 >= 60\r
+#    define BOOST_PP_ITERATION_4 60\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 59 && BOOST_PP_ITERATION_START_4 >= 59\r
+#    define BOOST_PP_ITERATION_4 59\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 58 && BOOST_PP_ITERATION_START_4 >= 58\r
+#    define BOOST_PP_ITERATION_4 58\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 57 && BOOST_PP_ITERATION_START_4 >= 57\r
+#    define BOOST_PP_ITERATION_4 57\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 56 && BOOST_PP_ITERATION_START_4 >= 56\r
+#    define BOOST_PP_ITERATION_4 56\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 55 && BOOST_PP_ITERATION_START_4 >= 55\r
+#    define BOOST_PP_ITERATION_4 55\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 54 && BOOST_PP_ITERATION_START_4 >= 54\r
+#    define BOOST_PP_ITERATION_4 54\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 53 && BOOST_PP_ITERATION_START_4 >= 53\r
+#    define BOOST_PP_ITERATION_4 53\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 52 && BOOST_PP_ITERATION_START_4 >= 52\r
+#    define BOOST_PP_ITERATION_4 52\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 51 && BOOST_PP_ITERATION_START_4 >= 51\r
+#    define BOOST_PP_ITERATION_4 51\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 50 && BOOST_PP_ITERATION_START_4 >= 50\r
+#    define BOOST_PP_ITERATION_4 50\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 49 && BOOST_PP_ITERATION_START_4 >= 49\r
+#    define BOOST_PP_ITERATION_4 49\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 48 && BOOST_PP_ITERATION_START_4 >= 48\r
+#    define BOOST_PP_ITERATION_4 48\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 47 && BOOST_PP_ITERATION_START_4 >= 47\r
+#    define BOOST_PP_ITERATION_4 47\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 46 && BOOST_PP_ITERATION_START_4 >= 46\r
+#    define BOOST_PP_ITERATION_4 46\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 45 && BOOST_PP_ITERATION_START_4 >= 45\r
+#    define BOOST_PP_ITERATION_4 45\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 44 && BOOST_PP_ITERATION_START_4 >= 44\r
+#    define BOOST_PP_ITERATION_4 44\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 43 && BOOST_PP_ITERATION_START_4 >= 43\r
+#    define BOOST_PP_ITERATION_4 43\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 42 && BOOST_PP_ITERATION_START_4 >= 42\r
+#    define BOOST_PP_ITERATION_4 42\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 41 && BOOST_PP_ITERATION_START_4 >= 41\r
+#    define BOOST_PP_ITERATION_4 41\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 40 && BOOST_PP_ITERATION_START_4 >= 40\r
+#    define BOOST_PP_ITERATION_4 40\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 39 && BOOST_PP_ITERATION_START_4 >= 39\r
+#    define BOOST_PP_ITERATION_4 39\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 38 && BOOST_PP_ITERATION_START_4 >= 38\r
+#    define BOOST_PP_ITERATION_4 38\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 37 && BOOST_PP_ITERATION_START_4 >= 37\r
+#    define BOOST_PP_ITERATION_4 37\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 36 && BOOST_PP_ITERATION_START_4 >= 36\r
+#    define BOOST_PP_ITERATION_4 36\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 35 && BOOST_PP_ITERATION_START_4 >= 35\r
+#    define BOOST_PP_ITERATION_4 35\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 34 && BOOST_PP_ITERATION_START_4 >= 34\r
+#    define BOOST_PP_ITERATION_4 34\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 33 && BOOST_PP_ITERATION_START_4 >= 33\r
+#    define BOOST_PP_ITERATION_4 33\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 32 && BOOST_PP_ITERATION_START_4 >= 32\r
+#    define BOOST_PP_ITERATION_4 32\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 31 && BOOST_PP_ITERATION_START_4 >= 31\r
+#    define BOOST_PP_ITERATION_4 31\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 30 && BOOST_PP_ITERATION_START_4 >= 30\r
+#    define BOOST_PP_ITERATION_4 30\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 29 && BOOST_PP_ITERATION_START_4 >= 29\r
+#    define BOOST_PP_ITERATION_4 29\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 28 && BOOST_PP_ITERATION_START_4 >= 28\r
+#    define BOOST_PP_ITERATION_4 28\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 27 && BOOST_PP_ITERATION_START_4 >= 27\r
+#    define BOOST_PP_ITERATION_4 27\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 26 && BOOST_PP_ITERATION_START_4 >= 26\r
+#    define BOOST_PP_ITERATION_4 26\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 25 && BOOST_PP_ITERATION_START_4 >= 25\r
+#    define BOOST_PP_ITERATION_4 25\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 24 && BOOST_PP_ITERATION_START_4 >= 24\r
+#    define BOOST_PP_ITERATION_4 24\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 23 && BOOST_PP_ITERATION_START_4 >= 23\r
+#    define BOOST_PP_ITERATION_4 23\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 22 && BOOST_PP_ITERATION_START_4 >= 22\r
+#    define BOOST_PP_ITERATION_4 22\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 21 && BOOST_PP_ITERATION_START_4 >= 21\r
+#    define BOOST_PP_ITERATION_4 21\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 20 && BOOST_PP_ITERATION_START_4 >= 20\r
+#    define BOOST_PP_ITERATION_4 20\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 19 && BOOST_PP_ITERATION_START_4 >= 19\r
+#    define BOOST_PP_ITERATION_4 19\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 18 && BOOST_PP_ITERATION_START_4 >= 18\r
+#    define BOOST_PP_ITERATION_4 18\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 17 && BOOST_PP_ITERATION_START_4 >= 17\r
+#    define BOOST_PP_ITERATION_4 17\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 16 && BOOST_PP_ITERATION_START_4 >= 16\r
+#    define BOOST_PP_ITERATION_4 16\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 15 && BOOST_PP_ITERATION_START_4 >= 15\r
+#    define BOOST_PP_ITERATION_4 15\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 14 && BOOST_PP_ITERATION_START_4 >= 14\r
+#    define BOOST_PP_ITERATION_4 14\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 13 && BOOST_PP_ITERATION_START_4 >= 13\r
+#    define BOOST_PP_ITERATION_4 13\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 12 && BOOST_PP_ITERATION_START_4 >= 12\r
+#    define BOOST_PP_ITERATION_4 12\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 11 && BOOST_PP_ITERATION_START_4 >= 11\r
+#    define BOOST_PP_ITERATION_4 11\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 10 && BOOST_PP_ITERATION_START_4 >= 10\r
+#    define BOOST_PP_ITERATION_4 10\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 9 && BOOST_PP_ITERATION_START_4 >= 9\r
+#    define BOOST_PP_ITERATION_4 9\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 8 && BOOST_PP_ITERATION_START_4 >= 8\r
+#    define BOOST_PP_ITERATION_4 8\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 7 && BOOST_PP_ITERATION_START_4 >= 7\r
+#    define BOOST_PP_ITERATION_4 7\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 6 && BOOST_PP_ITERATION_START_4 >= 6\r
+#    define BOOST_PP_ITERATION_4 6\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 5 && BOOST_PP_ITERATION_START_4 >= 5\r
+#    define BOOST_PP_ITERATION_4 5\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 4 && BOOST_PP_ITERATION_START_4 >= 4\r
+#    define BOOST_PP_ITERATION_4 4\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 3 && BOOST_PP_ITERATION_START_4 >= 3\r
+#    define BOOST_PP_ITERATION_4 3\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 2 && BOOST_PP_ITERATION_START_4 >= 2\r
+#    define BOOST_PP_ITERATION_4 2\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 1 && BOOST_PP_ITERATION_START_4 >= 1\r
+#    define BOOST_PP_ITERATION_4 1\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_4 <= 0 && BOOST_PP_ITERATION_START_4 >= 0\r
+#    define BOOST_PP_ITERATION_4 0\r
+#    include BOOST_PP_FILENAME_4\r
+#    undef BOOST_PP_ITERATION_4\r
+# endif\r
diff --git a/boost/boost/preprocessor/iteration/detail/iter/reverse5.hpp b/boost/boost/preprocessor/iteration/detail/iter/reverse5.hpp
new file mode 100644 (file)
index 0000000..ab99d1e
--- /dev/null
@@ -0,0 +1,1296 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 256 && BOOST_PP_ITERATION_START_5 >= 256\r
+#    define BOOST_PP_ITERATION_5 256\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 255 && BOOST_PP_ITERATION_START_5 >= 255\r
+#    define BOOST_PP_ITERATION_5 255\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 254 && BOOST_PP_ITERATION_START_5 >= 254\r
+#    define BOOST_PP_ITERATION_5 254\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 253 && BOOST_PP_ITERATION_START_5 >= 253\r
+#    define BOOST_PP_ITERATION_5 253\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 252 && BOOST_PP_ITERATION_START_5 >= 252\r
+#    define BOOST_PP_ITERATION_5 252\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 251 && BOOST_PP_ITERATION_START_5 >= 251\r
+#    define BOOST_PP_ITERATION_5 251\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 250 && BOOST_PP_ITERATION_START_5 >= 250\r
+#    define BOOST_PP_ITERATION_5 250\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 249 && BOOST_PP_ITERATION_START_5 >= 249\r
+#    define BOOST_PP_ITERATION_5 249\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 248 && BOOST_PP_ITERATION_START_5 >= 248\r
+#    define BOOST_PP_ITERATION_5 248\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 247 && BOOST_PP_ITERATION_START_5 >= 247\r
+#    define BOOST_PP_ITERATION_5 247\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 246 && BOOST_PP_ITERATION_START_5 >= 246\r
+#    define BOOST_PP_ITERATION_5 246\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 245 && BOOST_PP_ITERATION_START_5 >= 245\r
+#    define BOOST_PP_ITERATION_5 245\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 244 && BOOST_PP_ITERATION_START_5 >= 244\r
+#    define BOOST_PP_ITERATION_5 244\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 243 && BOOST_PP_ITERATION_START_5 >= 243\r
+#    define BOOST_PP_ITERATION_5 243\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 242 && BOOST_PP_ITERATION_START_5 >= 242\r
+#    define BOOST_PP_ITERATION_5 242\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 241 && BOOST_PP_ITERATION_START_5 >= 241\r
+#    define BOOST_PP_ITERATION_5 241\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 240 && BOOST_PP_ITERATION_START_5 >= 240\r
+#    define BOOST_PP_ITERATION_5 240\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 239 && BOOST_PP_ITERATION_START_5 >= 239\r
+#    define BOOST_PP_ITERATION_5 239\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 238 && BOOST_PP_ITERATION_START_5 >= 238\r
+#    define BOOST_PP_ITERATION_5 238\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 237 && BOOST_PP_ITERATION_START_5 >= 237\r
+#    define BOOST_PP_ITERATION_5 237\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 236 && BOOST_PP_ITERATION_START_5 >= 236\r
+#    define BOOST_PP_ITERATION_5 236\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 235 && BOOST_PP_ITERATION_START_5 >= 235\r
+#    define BOOST_PP_ITERATION_5 235\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 234 && BOOST_PP_ITERATION_START_5 >= 234\r
+#    define BOOST_PP_ITERATION_5 234\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 233 && BOOST_PP_ITERATION_START_5 >= 233\r
+#    define BOOST_PP_ITERATION_5 233\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 232 && BOOST_PP_ITERATION_START_5 >= 232\r
+#    define BOOST_PP_ITERATION_5 232\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 231 && BOOST_PP_ITERATION_START_5 >= 231\r
+#    define BOOST_PP_ITERATION_5 231\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 230 && BOOST_PP_ITERATION_START_5 >= 230\r
+#    define BOOST_PP_ITERATION_5 230\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 229 && BOOST_PP_ITERATION_START_5 >= 229\r
+#    define BOOST_PP_ITERATION_5 229\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 228 && BOOST_PP_ITERATION_START_5 >= 228\r
+#    define BOOST_PP_ITERATION_5 228\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 227 && BOOST_PP_ITERATION_START_5 >= 227\r
+#    define BOOST_PP_ITERATION_5 227\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 226 && BOOST_PP_ITERATION_START_5 >= 226\r
+#    define BOOST_PP_ITERATION_5 226\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 225 && BOOST_PP_ITERATION_START_5 >= 225\r
+#    define BOOST_PP_ITERATION_5 225\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 224 && BOOST_PP_ITERATION_START_5 >= 224\r
+#    define BOOST_PP_ITERATION_5 224\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 223 && BOOST_PP_ITERATION_START_5 >= 223\r
+#    define BOOST_PP_ITERATION_5 223\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 222 && BOOST_PP_ITERATION_START_5 >= 222\r
+#    define BOOST_PP_ITERATION_5 222\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 221 && BOOST_PP_ITERATION_START_5 >= 221\r
+#    define BOOST_PP_ITERATION_5 221\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 220 && BOOST_PP_ITERATION_START_5 >= 220\r
+#    define BOOST_PP_ITERATION_5 220\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 219 && BOOST_PP_ITERATION_START_5 >= 219\r
+#    define BOOST_PP_ITERATION_5 219\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 218 && BOOST_PP_ITERATION_START_5 >= 218\r
+#    define BOOST_PP_ITERATION_5 218\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 217 && BOOST_PP_ITERATION_START_5 >= 217\r
+#    define BOOST_PP_ITERATION_5 217\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 216 && BOOST_PP_ITERATION_START_5 >= 216\r
+#    define BOOST_PP_ITERATION_5 216\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 215 && BOOST_PP_ITERATION_START_5 >= 215\r
+#    define BOOST_PP_ITERATION_5 215\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 214 && BOOST_PP_ITERATION_START_5 >= 214\r
+#    define BOOST_PP_ITERATION_5 214\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 213 && BOOST_PP_ITERATION_START_5 >= 213\r
+#    define BOOST_PP_ITERATION_5 213\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 212 && BOOST_PP_ITERATION_START_5 >= 212\r
+#    define BOOST_PP_ITERATION_5 212\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 211 && BOOST_PP_ITERATION_START_5 >= 211\r
+#    define BOOST_PP_ITERATION_5 211\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 210 && BOOST_PP_ITERATION_START_5 >= 210\r
+#    define BOOST_PP_ITERATION_5 210\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 209 && BOOST_PP_ITERATION_START_5 >= 209\r
+#    define BOOST_PP_ITERATION_5 209\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 208 && BOOST_PP_ITERATION_START_5 >= 208\r
+#    define BOOST_PP_ITERATION_5 208\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 207 && BOOST_PP_ITERATION_START_5 >= 207\r
+#    define BOOST_PP_ITERATION_5 207\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 206 && BOOST_PP_ITERATION_START_5 >= 206\r
+#    define BOOST_PP_ITERATION_5 206\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 205 && BOOST_PP_ITERATION_START_5 >= 205\r
+#    define BOOST_PP_ITERATION_5 205\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 204 && BOOST_PP_ITERATION_START_5 >= 204\r
+#    define BOOST_PP_ITERATION_5 204\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 203 && BOOST_PP_ITERATION_START_5 >= 203\r
+#    define BOOST_PP_ITERATION_5 203\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 202 && BOOST_PP_ITERATION_START_5 >= 202\r
+#    define BOOST_PP_ITERATION_5 202\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 201 && BOOST_PP_ITERATION_START_5 >= 201\r
+#    define BOOST_PP_ITERATION_5 201\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 200 && BOOST_PP_ITERATION_START_5 >= 200\r
+#    define BOOST_PP_ITERATION_5 200\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 199 && BOOST_PP_ITERATION_START_5 >= 199\r
+#    define BOOST_PP_ITERATION_5 199\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 198 && BOOST_PP_ITERATION_START_5 >= 198\r
+#    define BOOST_PP_ITERATION_5 198\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 197 && BOOST_PP_ITERATION_START_5 >= 197\r
+#    define BOOST_PP_ITERATION_5 197\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 196 && BOOST_PP_ITERATION_START_5 >= 196\r
+#    define BOOST_PP_ITERATION_5 196\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 195 && BOOST_PP_ITERATION_START_5 >= 195\r
+#    define BOOST_PP_ITERATION_5 195\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 194 && BOOST_PP_ITERATION_START_5 >= 194\r
+#    define BOOST_PP_ITERATION_5 194\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 193 && BOOST_PP_ITERATION_START_5 >= 193\r
+#    define BOOST_PP_ITERATION_5 193\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 192 && BOOST_PP_ITERATION_START_5 >= 192\r
+#    define BOOST_PP_ITERATION_5 192\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 191 && BOOST_PP_ITERATION_START_5 >= 191\r
+#    define BOOST_PP_ITERATION_5 191\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 190 && BOOST_PP_ITERATION_START_5 >= 190\r
+#    define BOOST_PP_ITERATION_5 190\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 189 && BOOST_PP_ITERATION_START_5 >= 189\r
+#    define BOOST_PP_ITERATION_5 189\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 188 && BOOST_PP_ITERATION_START_5 >= 188\r
+#    define BOOST_PP_ITERATION_5 188\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 187 && BOOST_PP_ITERATION_START_5 >= 187\r
+#    define BOOST_PP_ITERATION_5 187\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 186 && BOOST_PP_ITERATION_START_5 >= 186\r
+#    define BOOST_PP_ITERATION_5 186\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 185 && BOOST_PP_ITERATION_START_5 >= 185\r
+#    define BOOST_PP_ITERATION_5 185\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 184 && BOOST_PP_ITERATION_START_5 >= 184\r
+#    define BOOST_PP_ITERATION_5 184\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 183 && BOOST_PP_ITERATION_START_5 >= 183\r
+#    define BOOST_PP_ITERATION_5 183\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 182 && BOOST_PP_ITERATION_START_5 >= 182\r
+#    define BOOST_PP_ITERATION_5 182\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 181 && BOOST_PP_ITERATION_START_5 >= 181\r
+#    define BOOST_PP_ITERATION_5 181\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 180 && BOOST_PP_ITERATION_START_5 >= 180\r
+#    define BOOST_PP_ITERATION_5 180\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 179 && BOOST_PP_ITERATION_START_5 >= 179\r
+#    define BOOST_PP_ITERATION_5 179\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 178 && BOOST_PP_ITERATION_START_5 >= 178\r
+#    define BOOST_PP_ITERATION_5 178\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 177 && BOOST_PP_ITERATION_START_5 >= 177\r
+#    define BOOST_PP_ITERATION_5 177\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 176 && BOOST_PP_ITERATION_START_5 >= 176\r
+#    define BOOST_PP_ITERATION_5 176\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 175 && BOOST_PP_ITERATION_START_5 >= 175\r
+#    define BOOST_PP_ITERATION_5 175\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 174 && BOOST_PP_ITERATION_START_5 >= 174\r
+#    define BOOST_PP_ITERATION_5 174\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 173 && BOOST_PP_ITERATION_START_5 >= 173\r
+#    define BOOST_PP_ITERATION_5 173\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 172 && BOOST_PP_ITERATION_START_5 >= 172\r
+#    define BOOST_PP_ITERATION_5 172\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 171 && BOOST_PP_ITERATION_START_5 >= 171\r
+#    define BOOST_PP_ITERATION_5 171\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 170 && BOOST_PP_ITERATION_START_5 >= 170\r
+#    define BOOST_PP_ITERATION_5 170\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 169 && BOOST_PP_ITERATION_START_5 >= 169\r
+#    define BOOST_PP_ITERATION_5 169\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 168 && BOOST_PP_ITERATION_START_5 >= 168\r
+#    define BOOST_PP_ITERATION_5 168\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 167 && BOOST_PP_ITERATION_START_5 >= 167\r
+#    define BOOST_PP_ITERATION_5 167\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 166 && BOOST_PP_ITERATION_START_5 >= 166\r
+#    define BOOST_PP_ITERATION_5 166\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 165 && BOOST_PP_ITERATION_START_5 >= 165\r
+#    define BOOST_PP_ITERATION_5 165\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 164 && BOOST_PP_ITERATION_START_5 >= 164\r
+#    define BOOST_PP_ITERATION_5 164\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 163 && BOOST_PP_ITERATION_START_5 >= 163\r
+#    define BOOST_PP_ITERATION_5 163\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 162 && BOOST_PP_ITERATION_START_5 >= 162\r
+#    define BOOST_PP_ITERATION_5 162\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 161 && BOOST_PP_ITERATION_START_5 >= 161\r
+#    define BOOST_PP_ITERATION_5 161\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 160 && BOOST_PP_ITERATION_START_5 >= 160\r
+#    define BOOST_PP_ITERATION_5 160\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 159 && BOOST_PP_ITERATION_START_5 >= 159\r
+#    define BOOST_PP_ITERATION_5 159\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 158 && BOOST_PP_ITERATION_START_5 >= 158\r
+#    define BOOST_PP_ITERATION_5 158\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 157 && BOOST_PP_ITERATION_START_5 >= 157\r
+#    define BOOST_PP_ITERATION_5 157\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 156 && BOOST_PP_ITERATION_START_5 >= 156\r
+#    define BOOST_PP_ITERATION_5 156\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 155 && BOOST_PP_ITERATION_START_5 >= 155\r
+#    define BOOST_PP_ITERATION_5 155\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 154 && BOOST_PP_ITERATION_START_5 >= 154\r
+#    define BOOST_PP_ITERATION_5 154\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 153 && BOOST_PP_ITERATION_START_5 >= 153\r
+#    define BOOST_PP_ITERATION_5 153\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 152 && BOOST_PP_ITERATION_START_5 >= 152\r
+#    define BOOST_PP_ITERATION_5 152\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 151 && BOOST_PP_ITERATION_START_5 >= 151\r
+#    define BOOST_PP_ITERATION_5 151\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 150 && BOOST_PP_ITERATION_START_5 >= 150\r
+#    define BOOST_PP_ITERATION_5 150\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 149 && BOOST_PP_ITERATION_START_5 >= 149\r
+#    define BOOST_PP_ITERATION_5 149\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 148 && BOOST_PP_ITERATION_START_5 >= 148\r
+#    define BOOST_PP_ITERATION_5 148\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 147 && BOOST_PP_ITERATION_START_5 >= 147\r
+#    define BOOST_PP_ITERATION_5 147\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 146 && BOOST_PP_ITERATION_START_5 >= 146\r
+#    define BOOST_PP_ITERATION_5 146\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 145 && BOOST_PP_ITERATION_START_5 >= 145\r
+#    define BOOST_PP_ITERATION_5 145\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 144 && BOOST_PP_ITERATION_START_5 >= 144\r
+#    define BOOST_PP_ITERATION_5 144\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 143 && BOOST_PP_ITERATION_START_5 >= 143\r
+#    define BOOST_PP_ITERATION_5 143\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 142 && BOOST_PP_ITERATION_START_5 >= 142\r
+#    define BOOST_PP_ITERATION_5 142\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 141 && BOOST_PP_ITERATION_START_5 >= 141\r
+#    define BOOST_PP_ITERATION_5 141\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 140 && BOOST_PP_ITERATION_START_5 >= 140\r
+#    define BOOST_PP_ITERATION_5 140\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 139 && BOOST_PP_ITERATION_START_5 >= 139\r
+#    define BOOST_PP_ITERATION_5 139\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 138 && BOOST_PP_ITERATION_START_5 >= 138\r
+#    define BOOST_PP_ITERATION_5 138\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 137 && BOOST_PP_ITERATION_START_5 >= 137\r
+#    define BOOST_PP_ITERATION_5 137\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 136 && BOOST_PP_ITERATION_START_5 >= 136\r
+#    define BOOST_PP_ITERATION_5 136\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 135 && BOOST_PP_ITERATION_START_5 >= 135\r
+#    define BOOST_PP_ITERATION_5 135\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 134 && BOOST_PP_ITERATION_START_5 >= 134\r
+#    define BOOST_PP_ITERATION_5 134\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 133 && BOOST_PP_ITERATION_START_5 >= 133\r
+#    define BOOST_PP_ITERATION_5 133\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 132 && BOOST_PP_ITERATION_START_5 >= 132\r
+#    define BOOST_PP_ITERATION_5 132\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 131 && BOOST_PP_ITERATION_START_5 >= 131\r
+#    define BOOST_PP_ITERATION_5 131\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 130 && BOOST_PP_ITERATION_START_5 >= 130\r
+#    define BOOST_PP_ITERATION_5 130\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 129 && BOOST_PP_ITERATION_START_5 >= 129\r
+#    define BOOST_PP_ITERATION_5 129\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 128 && BOOST_PP_ITERATION_START_5 >= 128\r
+#    define BOOST_PP_ITERATION_5 128\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 127 && BOOST_PP_ITERATION_START_5 >= 127\r
+#    define BOOST_PP_ITERATION_5 127\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 126 && BOOST_PP_ITERATION_START_5 >= 126\r
+#    define BOOST_PP_ITERATION_5 126\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 125 && BOOST_PP_ITERATION_START_5 >= 125\r
+#    define BOOST_PP_ITERATION_5 125\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 124 && BOOST_PP_ITERATION_START_5 >= 124\r
+#    define BOOST_PP_ITERATION_5 124\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 123 && BOOST_PP_ITERATION_START_5 >= 123\r
+#    define BOOST_PP_ITERATION_5 123\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 122 && BOOST_PP_ITERATION_START_5 >= 122\r
+#    define BOOST_PP_ITERATION_5 122\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 121 && BOOST_PP_ITERATION_START_5 >= 121\r
+#    define BOOST_PP_ITERATION_5 121\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 120 && BOOST_PP_ITERATION_START_5 >= 120\r
+#    define BOOST_PP_ITERATION_5 120\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 119 && BOOST_PP_ITERATION_START_5 >= 119\r
+#    define BOOST_PP_ITERATION_5 119\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 118 && BOOST_PP_ITERATION_START_5 >= 118\r
+#    define BOOST_PP_ITERATION_5 118\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 117 && BOOST_PP_ITERATION_START_5 >= 117\r
+#    define BOOST_PP_ITERATION_5 117\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 116 && BOOST_PP_ITERATION_START_5 >= 116\r
+#    define BOOST_PP_ITERATION_5 116\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 115 && BOOST_PP_ITERATION_START_5 >= 115\r
+#    define BOOST_PP_ITERATION_5 115\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 114 && BOOST_PP_ITERATION_START_5 >= 114\r
+#    define BOOST_PP_ITERATION_5 114\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 113 && BOOST_PP_ITERATION_START_5 >= 113\r
+#    define BOOST_PP_ITERATION_5 113\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 112 && BOOST_PP_ITERATION_START_5 >= 112\r
+#    define BOOST_PP_ITERATION_5 112\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 111 && BOOST_PP_ITERATION_START_5 >= 111\r
+#    define BOOST_PP_ITERATION_5 111\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 110 && BOOST_PP_ITERATION_START_5 >= 110\r
+#    define BOOST_PP_ITERATION_5 110\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 109 && BOOST_PP_ITERATION_START_5 >= 109\r
+#    define BOOST_PP_ITERATION_5 109\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 108 && BOOST_PP_ITERATION_START_5 >= 108\r
+#    define BOOST_PP_ITERATION_5 108\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 107 && BOOST_PP_ITERATION_START_5 >= 107\r
+#    define BOOST_PP_ITERATION_5 107\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 106 && BOOST_PP_ITERATION_START_5 >= 106\r
+#    define BOOST_PP_ITERATION_5 106\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 105 && BOOST_PP_ITERATION_START_5 >= 105\r
+#    define BOOST_PP_ITERATION_5 105\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 104 && BOOST_PP_ITERATION_START_5 >= 104\r
+#    define BOOST_PP_ITERATION_5 104\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 103 && BOOST_PP_ITERATION_START_5 >= 103\r
+#    define BOOST_PP_ITERATION_5 103\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 102 && BOOST_PP_ITERATION_START_5 >= 102\r
+#    define BOOST_PP_ITERATION_5 102\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 101 && BOOST_PP_ITERATION_START_5 >= 101\r
+#    define BOOST_PP_ITERATION_5 101\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 100 && BOOST_PP_ITERATION_START_5 >= 100\r
+#    define BOOST_PP_ITERATION_5 100\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 99 && BOOST_PP_ITERATION_START_5 >= 99\r
+#    define BOOST_PP_ITERATION_5 99\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 98 && BOOST_PP_ITERATION_START_5 >= 98\r
+#    define BOOST_PP_ITERATION_5 98\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 97 && BOOST_PP_ITERATION_START_5 >= 97\r
+#    define BOOST_PP_ITERATION_5 97\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 96 && BOOST_PP_ITERATION_START_5 >= 96\r
+#    define BOOST_PP_ITERATION_5 96\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 95 && BOOST_PP_ITERATION_START_5 >= 95\r
+#    define BOOST_PP_ITERATION_5 95\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 94 && BOOST_PP_ITERATION_START_5 >= 94\r
+#    define BOOST_PP_ITERATION_5 94\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 93 && BOOST_PP_ITERATION_START_5 >= 93\r
+#    define BOOST_PP_ITERATION_5 93\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 92 && BOOST_PP_ITERATION_START_5 >= 92\r
+#    define BOOST_PP_ITERATION_5 92\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 91 && BOOST_PP_ITERATION_START_5 >= 91\r
+#    define BOOST_PP_ITERATION_5 91\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 90 && BOOST_PP_ITERATION_START_5 >= 90\r
+#    define BOOST_PP_ITERATION_5 90\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 89 && BOOST_PP_ITERATION_START_5 >= 89\r
+#    define BOOST_PP_ITERATION_5 89\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 88 && BOOST_PP_ITERATION_START_5 >= 88\r
+#    define BOOST_PP_ITERATION_5 88\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 87 && BOOST_PP_ITERATION_START_5 >= 87\r
+#    define BOOST_PP_ITERATION_5 87\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 86 && BOOST_PP_ITERATION_START_5 >= 86\r
+#    define BOOST_PP_ITERATION_5 86\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 85 && BOOST_PP_ITERATION_START_5 >= 85\r
+#    define BOOST_PP_ITERATION_5 85\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 84 && BOOST_PP_ITERATION_START_5 >= 84\r
+#    define BOOST_PP_ITERATION_5 84\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 83 && BOOST_PP_ITERATION_START_5 >= 83\r
+#    define BOOST_PP_ITERATION_5 83\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 82 && BOOST_PP_ITERATION_START_5 >= 82\r
+#    define BOOST_PP_ITERATION_5 82\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 81 && BOOST_PP_ITERATION_START_5 >= 81\r
+#    define BOOST_PP_ITERATION_5 81\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 80 && BOOST_PP_ITERATION_START_5 >= 80\r
+#    define BOOST_PP_ITERATION_5 80\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 79 && BOOST_PP_ITERATION_START_5 >= 79\r
+#    define BOOST_PP_ITERATION_5 79\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 78 && BOOST_PP_ITERATION_START_5 >= 78\r
+#    define BOOST_PP_ITERATION_5 78\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 77 && BOOST_PP_ITERATION_START_5 >= 77\r
+#    define BOOST_PP_ITERATION_5 77\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 76 && BOOST_PP_ITERATION_START_5 >= 76\r
+#    define BOOST_PP_ITERATION_5 76\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 75 && BOOST_PP_ITERATION_START_5 >= 75\r
+#    define BOOST_PP_ITERATION_5 75\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 74 && BOOST_PP_ITERATION_START_5 >= 74\r
+#    define BOOST_PP_ITERATION_5 74\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 73 && BOOST_PP_ITERATION_START_5 >= 73\r
+#    define BOOST_PP_ITERATION_5 73\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 72 && BOOST_PP_ITERATION_START_5 >= 72\r
+#    define BOOST_PP_ITERATION_5 72\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 71 && BOOST_PP_ITERATION_START_5 >= 71\r
+#    define BOOST_PP_ITERATION_5 71\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 70 && BOOST_PP_ITERATION_START_5 >= 70\r
+#    define BOOST_PP_ITERATION_5 70\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 69 && BOOST_PP_ITERATION_START_5 >= 69\r
+#    define BOOST_PP_ITERATION_5 69\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 68 && BOOST_PP_ITERATION_START_5 >= 68\r
+#    define BOOST_PP_ITERATION_5 68\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 67 && BOOST_PP_ITERATION_START_5 >= 67\r
+#    define BOOST_PP_ITERATION_5 67\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 66 && BOOST_PP_ITERATION_START_5 >= 66\r
+#    define BOOST_PP_ITERATION_5 66\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 65 && BOOST_PP_ITERATION_START_5 >= 65\r
+#    define BOOST_PP_ITERATION_5 65\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 64 && BOOST_PP_ITERATION_START_5 >= 64\r
+#    define BOOST_PP_ITERATION_5 64\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 63 && BOOST_PP_ITERATION_START_5 >= 63\r
+#    define BOOST_PP_ITERATION_5 63\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 62 && BOOST_PP_ITERATION_START_5 >= 62\r
+#    define BOOST_PP_ITERATION_5 62\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 61 && BOOST_PP_ITERATION_START_5 >= 61\r
+#    define BOOST_PP_ITERATION_5 61\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 60 && BOOST_PP_ITERATION_START_5 >= 60\r
+#    define BOOST_PP_ITERATION_5 60\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 59 && BOOST_PP_ITERATION_START_5 >= 59\r
+#    define BOOST_PP_ITERATION_5 59\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 58 && BOOST_PP_ITERATION_START_5 >= 58\r
+#    define BOOST_PP_ITERATION_5 58\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 57 && BOOST_PP_ITERATION_START_5 >= 57\r
+#    define BOOST_PP_ITERATION_5 57\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 56 && BOOST_PP_ITERATION_START_5 >= 56\r
+#    define BOOST_PP_ITERATION_5 56\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 55 && BOOST_PP_ITERATION_START_5 >= 55\r
+#    define BOOST_PP_ITERATION_5 55\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 54 && BOOST_PP_ITERATION_START_5 >= 54\r
+#    define BOOST_PP_ITERATION_5 54\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 53 && BOOST_PP_ITERATION_START_5 >= 53\r
+#    define BOOST_PP_ITERATION_5 53\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 52 && BOOST_PP_ITERATION_START_5 >= 52\r
+#    define BOOST_PP_ITERATION_5 52\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 51 && BOOST_PP_ITERATION_START_5 >= 51\r
+#    define BOOST_PP_ITERATION_5 51\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 50 && BOOST_PP_ITERATION_START_5 >= 50\r
+#    define BOOST_PP_ITERATION_5 50\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 49 && BOOST_PP_ITERATION_START_5 >= 49\r
+#    define BOOST_PP_ITERATION_5 49\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 48 && BOOST_PP_ITERATION_START_5 >= 48\r
+#    define BOOST_PP_ITERATION_5 48\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 47 && BOOST_PP_ITERATION_START_5 >= 47\r
+#    define BOOST_PP_ITERATION_5 47\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 46 && BOOST_PP_ITERATION_START_5 >= 46\r
+#    define BOOST_PP_ITERATION_5 46\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 45 && BOOST_PP_ITERATION_START_5 >= 45\r
+#    define BOOST_PP_ITERATION_5 45\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 44 && BOOST_PP_ITERATION_START_5 >= 44\r
+#    define BOOST_PP_ITERATION_5 44\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 43 && BOOST_PP_ITERATION_START_5 >= 43\r
+#    define BOOST_PP_ITERATION_5 43\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 42 && BOOST_PP_ITERATION_START_5 >= 42\r
+#    define BOOST_PP_ITERATION_5 42\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 41 && BOOST_PP_ITERATION_START_5 >= 41\r
+#    define BOOST_PP_ITERATION_5 41\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 40 && BOOST_PP_ITERATION_START_5 >= 40\r
+#    define BOOST_PP_ITERATION_5 40\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 39 && BOOST_PP_ITERATION_START_5 >= 39\r
+#    define BOOST_PP_ITERATION_5 39\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 38 && BOOST_PP_ITERATION_START_5 >= 38\r
+#    define BOOST_PP_ITERATION_5 38\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 37 && BOOST_PP_ITERATION_START_5 >= 37\r
+#    define BOOST_PP_ITERATION_5 37\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 36 && BOOST_PP_ITERATION_START_5 >= 36\r
+#    define BOOST_PP_ITERATION_5 36\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 35 && BOOST_PP_ITERATION_START_5 >= 35\r
+#    define BOOST_PP_ITERATION_5 35\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 34 && BOOST_PP_ITERATION_START_5 >= 34\r
+#    define BOOST_PP_ITERATION_5 34\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 33 && BOOST_PP_ITERATION_START_5 >= 33\r
+#    define BOOST_PP_ITERATION_5 33\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 32 && BOOST_PP_ITERATION_START_5 >= 32\r
+#    define BOOST_PP_ITERATION_5 32\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 31 && BOOST_PP_ITERATION_START_5 >= 31\r
+#    define BOOST_PP_ITERATION_5 31\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 30 && BOOST_PP_ITERATION_START_5 >= 30\r
+#    define BOOST_PP_ITERATION_5 30\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 29 && BOOST_PP_ITERATION_START_5 >= 29\r
+#    define BOOST_PP_ITERATION_5 29\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 28 && BOOST_PP_ITERATION_START_5 >= 28\r
+#    define BOOST_PP_ITERATION_5 28\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 27 && BOOST_PP_ITERATION_START_5 >= 27\r
+#    define BOOST_PP_ITERATION_5 27\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 26 && BOOST_PP_ITERATION_START_5 >= 26\r
+#    define BOOST_PP_ITERATION_5 26\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 25 && BOOST_PP_ITERATION_START_5 >= 25\r
+#    define BOOST_PP_ITERATION_5 25\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 24 && BOOST_PP_ITERATION_START_5 >= 24\r
+#    define BOOST_PP_ITERATION_5 24\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 23 && BOOST_PP_ITERATION_START_5 >= 23\r
+#    define BOOST_PP_ITERATION_5 23\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 22 && BOOST_PP_ITERATION_START_5 >= 22\r
+#    define BOOST_PP_ITERATION_5 22\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 21 && BOOST_PP_ITERATION_START_5 >= 21\r
+#    define BOOST_PP_ITERATION_5 21\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 20 && BOOST_PP_ITERATION_START_5 >= 20\r
+#    define BOOST_PP_ITERATION_5 20\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 19 && BOOST_PP_ITERATION_START_5 >= 19\r
+#    define BOOST_PP_ITERATION_5 19\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 18 && BOOST_PP_ITERATION_START_5 >= 18\r
+#    define BOOST_PP_ITERATION_5 18\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 17 && BOOST_PP_ITERATION_START_5 >= 17\r
+#    define BOOST_PP_ITERATION_5 17\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 16 && BOOST_PP_ITERATION_START_5 >= 16\r
+#    define BOOST_PP_ITERATION_5 16\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 15 && BOOST_PP_ITERATION_START_5 >= 15\r
+#    define BOOST_PP_ITERATION_5 15\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 14 && BOOST_PP_ITERATION_START_5 >= 14\r
+#    define BOOST_PP_ITERATION_5 14\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 13 && BOOST_PP_ITERATION_START_5 >= 13\r
+#    define BOOST_PP_ITERATION_5 13\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 12 && BOOST_PP_ITERATION_START_5 >= 12\r
+#    define BOOST_PP_ITERATION_5 12\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 11 && BOOST_PP_ITERATION_START_5 >= 11\r
+#    define BOOST_PP_ITERATION_5 11\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 10 && BOOST_PP_ITERATION_START_5 >= 10\r
+#    define BOOST_PP_ITERATION_5 10\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 9 && BOOST_PP_ITERATION_START_5 >= 9\r
+#    define BOOST_PP_ITERATION_5 9\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 8 && BOOST_PP_ITERATION_START_5 >= 8\r
+#    define BOOST_PP_ITERATION_5 8\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 7 && BOOST_PP_ITERATION_START_5 >= 7\r
+#    define BOOST_PP_ITERATION_5 7\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 6 && BOOST_PP_ITERATION_START_5 >= 6\r
+#    define BOOST_PP_ITERATION_5 6\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 5 && BOOST_PP_ITERATION_START_5 >= 5\r
+#    define BOOST_PP_ITERATION_5 5\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 4 && BOOST_PP_ITERATION_START_5 >= 4\r
+#    define BOOST_PP_ITERATION_5 4\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 3 && BOOST_PP_ITERATION_START_5 >= 3\r
+#    define BOOST_PP_ITERATION_5 3\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 2 && BOOST_PP_ITERATION_START_5 >= 2\r
+#    define BOOST_PP_ITERATION_5 2\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 1 && BOOST_PP_ITERATION_START_5 >= 1\r
+#    define BOOST_PP_ITERATION_5 1\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
+# if BOOST_PP_ITERATION_FINISH_5 <= 0 && BOOST_PP_ITERATION_START_5 >= 0\r
+#    define BOOST_PP_ITERATION_5 0\r
+#    include BOOST_PP_FILENAME_5\r
+#    undef BOOST_PP_ITERATION_5\r
+# endif\r
diff --git a/boost/boost/preprocessor/iteration/detail/rlocal.hpp b/boost/boost/preprocessor/iteration/detail/rlocal.hpp
new file mode 100644 (file)
index 0000000..3b3fcae
--- /dev/null
@@ -0,0 +1,782 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# if BOOST_PP_LOCAL_R(256)\r
+    BOOST_PP_LOCAL_MACRO(256)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(255)\r
+    BOOST_PP_LOCAL_MACRO(255)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(254)\r
+    BOOST_PP_LOCAL_MACRO(254)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(253)\r
+    BOOST_PP_LOCAL_MACRO(253)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(252)\r
+    BOOST_PP_LOCAL_MACRO(252)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(251)\r
+    BOOST_PP_LOCAL_MACRO(251)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(250)\r
+    BOOST_PP_LOCAL_MACRO(250)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(249)\r
+    BOOST_PP_LOCAL_MACRO(249)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(248)\r
+    BOOST_PP_LOCAL_MACRO(248)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(247)\r
+    BOOST_PP_LOCAL_MACRO(247)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(246)\r
+    BOOST_PP_LOCAL_MACRO(246)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(245)\r
+    BOOST_PP_LOCAL_MACRO(245)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(244)\r
+    BOOST_PP_LOCAL_MACRO(244)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(243)\r
+    BOOST_PP_LOCAL_MACRO(243)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(242)\r
+    BOOST_PP_LOCAL_MACRO(242)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(241)\r
+    BOOST_PP_LOCAL_MACRO(241)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(240)\r
+    BOOST_PP_LOCAL_MACRO(240)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(239)\r
+    BOOST_PP_LOCAL_MACRO(239)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(238)\r
+    BOOST_PP_LOCAL_MACRO(238)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(237)\r
+    BOOST_PP_LOCAL_MACRO(237)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(236)\r
+    BOOST_PP_LOCAL_MACRO(236)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(235)\r
+    BOOST_PP_LOCAL_MACRO(235)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(234)\r
+    BOOST_PP_LOCAL_MACRO(234)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(233)\r
+    BOOST_PP_LOCAL_MACRO(233)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(232)\r
+    BOOST_PP_LOCAL_MACRO(232)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(231)\r
+    BOOST_PP_LOCAL_MACRO(231)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(230)\r
+    BOOST_PP_LOCAL_MACRO(230)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(229)\r
+    BOOST_PP_LOCAL_MACRO(229)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(228)\r
+    BOOST_PP_LOCAL_MACRO(228)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(227)\r
+    BOOST_PP_LOCAL_MACRO(227)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(226)\r
+    BOOST_PP_LOCAL_MACRO(226)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(225)\r
+    BOOST_PP_LOCAL_MACRO(225)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(224)\r
+    BOOST_PP_LOCAL_MACRO(224)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(223)\r
+    BOOST_PP_LOCAL_MACRO(223)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(222)\r
+    BOOST_PP_LOCAL_MACRO(222)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(221)\r
+    BOOST_PP_LOCAL_MACRO(221)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(220)\r
+    BOOST_PP_LOCAL_MACRO(220)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(219)\r
+    BOOST_PP_LOCAL_MACRO(219)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(218)\r
+    BOOST_PP_LOCAL_MACRO(218)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(217)\r
+    BOOST_PP_LOCAL_MACRO(217)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(216)\r
+    BOOST_PP_LOCAL_MACRO(216)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(215)\r
+    BOOST_PP_LOCAL_MACRO(215)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(214)\r
+    BOOST_PP_LOCAL_MACRO(214)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(213)\r
+    BOOST_PP_LOCAL_MACRO(213)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(212)\r
+    BOOST_PP_LOCAL_MACRO(212)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(211)\r
+    BOOST_PP_LOCAL_MACRO(211)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(210)\r
+    BOOST_PP_LOCAL_MACRO(210)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(209)\r
+    BOOST_PP_LOCAL_MACRO(209)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(208)\r
+    BOOST_PP_LOCAL_MACRO(208)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(207)\r
+    BOOST_PP_LOCAL_MACRO(207)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(206)\r
+    BOOST_PP_LOCAL_MACRO(206)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(205)\r
+    BOOST_PP_LOCAL_MACRO(205)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(204)\r
+    BOOST_PP_LOCAL_MACRO(204)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(203)\r
+    BOOST_PP_LOCAL_MACRO(203)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(202)\r
+    BOOST_PP_LOCAL_MACRO(202)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(201)\r
+    BOOST_PP_LOCAL_MACRO(201)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(200)\r
+    BOOST_PP_LOCAL_MACRO(200)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(199)\r
+    BOOST_PP_LOCAL_MACRO(199)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(198)\r
+    BOOST_PP_LOCAL_MACRO(198)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(197)\r
+    BOOST_PP_LOCAL_MACRO(197)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(196)\r
+    BOOST_PP_LOCAL_MACRO(196)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(195)\r
+    BOOST_PP_LOCAL_MACRO(195)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(194)\r
+    BOOST_PP_LOCAL_MACRO(194)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(193)\r
+    BOOST_PP_LOCAL_MACRO(193)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(192)\r
+    BOOST_PP_LOCAL_MACRO(192)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(191)\r
+    BOOST_PP_LOCAL_MACRO(191)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(190)\r
+    BOOST_PP_LOCAL_MACRO(190)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(189)\r
+    BOOST_PP_LOCAL_MACRO(189)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(188)\r
+    BOOST_PP_LOCAL_MACRO(188)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(187)\r
+    BOOST_PP_LOCAL_MACRO(187)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(186)\r
+    BOOST_PP_LOCAL_MACRO(186)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(185)\r
+    BOOST_PP_LOCAL_MACRO(185)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(184)\r
+    BOOST_PP_LOCAL_MACRO(184)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(183)\r
+    BOOST_PP_LOCAL_MACRO(183)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(182)\r
+    BOOST_PP_LOCAL_MACRO(182)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(181)\r
+    BOOST_PP_LOCAL_MACRO(181)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(180)\r
+    BOOST_PP_LOCAL_MACRO(180)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(179)\r
+    BOOST_PP_LOCAL_MACRO(179)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(178)\r
+    BOOST_PP_LOCAL_MACRO(178)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(177)\r
+    BOOST_PP_LOCAL_MACRO(177)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(176)\r
+    BOOST_PP_LOCAL_MACRO(176)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(175)\r
+    BOOST_PP_LOCAL_MACRO(175)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(174)\r
+    BOOST_PP_LOCAL_MACRO(174)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(173)\r
+    BOOST_PP_LOCAL_MACRO(173)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(172)\r
+    BOOST_PP_LOCAL_MACRO(172)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(171)\r
+    BOOST_PP_LOCAL_MACRO(171)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(170)\r
+    BOOST_PP_LOCAL_MACRO(170)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(169)\r
+    BOOST_PP_LOCAL_MACRO(169)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(168)\r
+    BOOST_PP_LOCAL_MACRO(168)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(167)\r
+    BOOST_PP_LOCAL_MACRO(167)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(166)\r
+    BOOST_PP_LOCAL_MACRO(166)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(165)\r
+    BOOST_PP_LOCAL_MACRO(165)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(164)\r
+    BOOST_PP_LOCAL_MACRO(164)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(163)\r
+    BOOST_PP_LOCAL_MACRO(163)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(162)\r
+    BOOST_PP_LOCAL_MACRO(162)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(161)\r
+    BOOST_PP_LOCAL_MACRO(161)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(160)\r
+    BOOST_PP_LOCAL_MACRO(160)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(159)\r
+    BOOST_PP_LOCAL_MACRO(159)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(158)\r
+    BOOST_PP_LOCAL_MACRO(158)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(157)\r
+    BOOST_PP_LOCAL_MACRO(157)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(156)\r
+    BOOST_PP_LOCAL_MACRO(156)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(155)\r
+    BOOST_PP_LOCAL_MACRO(155)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(154)\r
+    BOOST_PP_LOCAL_MACRO(154)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(153)\r
+    BOOST_PP_LOCAL_MACRO(153)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(152)\r
+    BOOST_PP_LOCAL_MACRO(152)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(151)\r
+    BOOST_PP_LOCAL_MACRO(151)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(150)\r
+    BOOST_PP_LOCAL_MACRO(150)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(149)\r
+    BOOST_PP_LOCAL_MACRO(149)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(148)\r
+    BOOST_PP_LOCAL_MACRO(148)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(147)\r
+    BOOST_PP_LOCAL_MACRO(147)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(146)\r
+    BOOST_PP_LOCAL_MACRO(146)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(145)\r
+    BOOST_PP_LOCAL_MACRO(145)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(144)\r
+    BOOST_PP_LOCAL_MACRO(144)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(143)\r
+    BOOST_PP_LOCAL_MACRO(143)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(142)\r
+    BOOST_PP_LOCAL_MACRO(142)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(141)\r
+    BOOST_PP_LOCAL_MACRO(141)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(140)\r
+    BOOST_PP_LOCAL_MACRO(140)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(139)\r
+    BOOST_PP_LOCAL_MACRO(139)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(138)\r
+    BOOST_PP_LOCAL_MACRO(138)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(137)\r
+    BOOST_PP_LOCAL_MACRO(137)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(136)\r
+    BOOST_PP_LOCAL_MACRO(136)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(135)\r
+    BOOST_PP_LOCAL_MACRO(135)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(134)\r
+    BOOST_PP_LOCAL_MACRO(134)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(133)\r
+    BOOST_PP_LOCAL_MACRO(133)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(132)\r
+    BOOST_PP_LOCAL_MACRO(132)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(131)\r
+    BOOST_PP_LOCAL_MACRO(131)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(130)\r
+    BOOST_PP_LOCAL_MACRO(130)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(129)\r
+    BOOST_PP_LOCAL_MACRO(129)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(128)\r
+    BOOST_PP_LOCAL_MACRO(128)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(127)\r
+    BOOST_PP_LOCAL_MACRO(127)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(126)\r
+    BOOST_PP_LOCAL_MACRO(126)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(125)\r
+    BOOST_PP_LOCAL_MACRO(125)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(124)\r
+    BOOST_PP_LOCAL_MACRO(124)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(123)\r
+    BOOST_PP_LOCAL_MACRO(123)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(122)\r
+    BOOST_PP_LOCAL_MACRO(122)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(121)\r
+    BOOST_PP_LOCAL_MACRO(121)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(120)\r
+    BOOST_PP_LOCAL_MACRO(120)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(119)\r
+    BOOST_PP_LOCAL_MACRO(119)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(118)\r
+    BOOST_PP_LOCAL_MACRO(118)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(117)\r
+    BOOST_PP_LOCAL_MACRO(117)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(116)\r
+    BOOST_PP_LOCAL_MACRO(116)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(115)\r
+    BOOST_PP_LOCAL_MACRO(115)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(114)\r
+    BOOST_PP_LOCAL_MACRO(114)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(113)\r
+    BOOST_PP_LOCAL_MACRO(113)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(112)\r
+    BOOST_PP_LOCAL_MACRO(112)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(111)\r
+    BOOST_PP_LOCAL_MACRO(111)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(110)\r
+    BOOST_PP_LOCAL_MACRO(110)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(109)\r
+    BOOST_PP_LOCAL_MACRO(109)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(108)\r
+    BOOST_PP_LOCAL_MACRO(108)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(107)\r
+    BOOST_PP_LOCAL_MACRO(107)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(106)\r
+    BOOST_PP_LOCAL_MACRO(106)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(105)\r
+    BOOST_PP_LOCAL_MACRO(105)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(104)\r
+    BOOST_PP_LOCAL_MACRO(104)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(103)\r
+    BOOST_PP_LOCAL_MACRO(103)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(102)\r
+    BOOST_PP_LOCAL_MACRO(102)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(101)\r
+    BOOST_PP_LOCAL_MACRO(101)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(100)\r
+    BOOST_PP_LOCAL_MACRO(100)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(99)\r
+    BOOST_PP_LOCAL_MACRO(99)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(98)\r
+    BOOST_PP_LOCAL_MACRO(98)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(97)\r
+    BOOST_PP_LOCAL_MACRO(97)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(96)\r
+    BOOST_PP_LOCAL_MACRO(96)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(95)\r
+    BOOST_PP_LOCAL_MACRO(95)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(94)\r
+    BOOST_PP_LOCAL_MACRO(94)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(93)\r
+    BOOST_PP_LOCAL_MACRO(93)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(92)\r
+    BOOST_PP_LOCAL_MACRO(92)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(91)\r
+    BOOST_PP_LOCAL_MACRO(91)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(90)\r
+    BOOST_PP_LOCAL_MACRO(90)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(89)\r
+    BOOST_PP_LOCAL_MACRO(89)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(88)\r
+    BOOST_PP_LOCAL_MACRO(88)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(87)\r
+    BOOST_PP_LOCAL_MACRO(87)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(86)\r
+    BOOST_PP_LOCAL_MACRO(86)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(85)\r
+    BOOST_PP_LOCAL_MACRO(85)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(84)\r
+    BOOST_PP_LOCAL_MACRO(84)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(83)\r
+    BOOST_PP_LOCAL_MACRO(83)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(82)\r
+    BOOST_PP_LOCAL_MACRO(82)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(81)\r
+    BOOST_PP_LOCAL_MACRO(81)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(80)\r
+    BOOST_PP_LOCAL_MACRO(80)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(79)\r
+    BOOST_PP_LOCAL_MACRO(79)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(78)\r
+    BOOST_PP_LOCAL_MACRO(78)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(77)\r
+    BOOST_PP_LOCAL_MACRO(77)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(76)\r
+    BOOST_PP_LOCAL_MACRO(76)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(75)\r
+    BOOST_PP_LOCAL_MACRO(75)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(74)\r
+    BOOST_PP_LOCAL_MACRO(74)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(73)\r
+    BOOST_PP_LOCAL_MACRO(73)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(72)\r
+    BOOST_PP_LOCAL_MACRO(72)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(71)\r
+    BOOST_PP_LOCAL_MACRO(71)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(70)\r
+    BOOST_PP_LOCAL_MACRO(70)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(69)\r
+    BOOST_PP_LOCAL_MACRO(69)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(68)\r
+    BOOST_PP_LOCAL_MACRO(68)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(67)\r
+    BOOST_PP_LOCAL_MACRO(67)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(66)\r
+    BOOST_PP_LOCAL_MACRO(66)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(65)\r
+    BOOST_PP_LOCAL_MACRO(65)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(64)\r
+    BOOST_PP_LOCAL_MACRO(64)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(63)\r
+    BOOST_PP_LOCAL_MACRO(63)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(62)\r
+    BOOST_PP_LOCAL_MACRO(62)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(61)\r
+    BOOST_PP_LOCAL_MACRO(61)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(60)\r
+    BOOST_PP_LOCAL_MACRO(60)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(59)\r
+    BOOST_PP_LOCAL_MACRO(59)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(58)\r
+    BOOST_PP_LOCAL_MACRO(58)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(57)\r
+    BOOST_PP_LOCAL_MACRO(57)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(56)\r
+    BOOST_PP_LOCAL_MACRO(56)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(55)\r
+    BOOST_PP_LOCAL_MACRO(55)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(54)\r
+    BOOST_PP_LOCAL_MACRO(54)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(53)\r
+    BOOST_PP_LOCAL_MACRO(53)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(52)\r
+    BOOST_PP_LOCAL_MACRO(52)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(51)\r
+    BOOST_PP_LOCAL_MACRO(51)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(50)\r
+    BOOST_PP_LOCAL_MACRO(50)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(49)\r
+    BOOST_PP_LOCAL_MACRO(49)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(48)\r
+    BOOST_PP_LOCAL_MACRO(48)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(47)\r
+    BOOST_PP_LOCAL_MACRO(47)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(46)\r
+    BOOST_PP_LOCAL_MACRO(46)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(45)\r
+    BOOST_PP_LOCAL_MACRO(45)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(44)\r
+    BOOST_PP_LOCAL_MACRO(44)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(43)\r
+    BOOST_PP_LOCAL_MACRO(43)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(42)\r
+    BOOST_PP_LOCAL_MACRO(42)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(41)\r
+    BOOST_PP_LOCAL_MACRO(41)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(40)\r
+    BOOST_PP_LOCAL_MACRO(40)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(39)\r
+    BOOST_PP_LOCAL_MACRO(39)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(38)\r
+    BOOST_PP_LOCAL_MACRO(38)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(37)\r
+    BOOST_PP_LOCAL_MACRO(37)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(36)\r
+    BOOST_PP_LOCAL_MACRO(36)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(35)\r
+    BOOST_PP_LOCAL_MACRO(35)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(34)\r
+    BOOST_PP_LOCAL_MACRO(34)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(33)\r
+    BOOST_PP_LOCAL_MACRO(33)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(32)\r
+    BOOST_PP_LOCAL_MACRO(32)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(31)\r
+    BOOST_PP_LOCAL_MACRO(31)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(30)\r
+    BOOST_PP_LOCAL_MACRO(30)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(29)\r
+    BOOST_PP_LOCAL_MACRO(29)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(28)\r
+    BOOST_PP_LOCAL_MACRO(28)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(27)\r
+    BOOST_PP_LOCAL_MACRO(27)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(26)\r
+    BOOST_PP_LOCAL_MACRO(26)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(25)\r
+    BOOST_PP_LOCAL_MACRO(25)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(24)\r
+    BOOST_PP_LOCAL_MACRO(24)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(23)\r
+    BOOST_PP_LOCAL_MACRO(23)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(22)\r
+    BOOST_PP_LOCAL_MACRO(22)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(21)\r
+    BOOST_PP_LOCAL_MACRO(21)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(20)\r
+    BOOST_PP_LOCAL_MACRO(20)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(19)\r
+    BOOST_PP_LOCAL_MACRO(19)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(18)\r
+    BOOST_PP_LOCAL_MACRO(18)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(17)\r
+    BOOST_PP_LOCAL_MACRO(17)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(16)\r
+    BOOST_PP_LOCAL_MACRO(16)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(15)\r
+    BOOST_PP_LOCAL_MACRO(15)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(14)\r
+    BOOST_PP_LOCAL_MACRO(14)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(13)\r
+    BOOST_PP_LOCAL_MACRO(13)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(12)\r
+    BOOST_PP_LOCAL_MACRO(12)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(11)\r
+    BOOST_PP_LOCAL_MACRO(11)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(10)\r
+    BOOST_PP_LOCAL_MACRO(10)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(9)\r
+    BOOST_PP_LOCAL_MACRO(9)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(8)\r
+    BOOST_PP_LOCAL_MACRO(8)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(7)\r
+    BOOST_PP_LOCAL_MACRO(7)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(6)\r
+    BOOST_PP_LOCAL_MACRO(6)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(5)\r
+    BOOST_PP_LOCAL_MACRO(5)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(4)\r
+    BOOST_PP_LOCAL_MACRO(4)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(3)\r
+    BOOST_PP_LOCAL_MACRO(3)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(2)\r
+    BOOST_PP_LOCAL_MACRO(2)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(1)\r
+    BOOST_PP_LOCAL_MACRO(1)\r
+# endif\r
+# if BOOST_PP_LOCAL_R(0)\r
+    BOOST_PP_LOCAL_MACRO(0)\r
+# endif\r
diff --git a/boost/boost/preprocessor/iteration/detail/self.hpp b/boost/boost/preprocessor/iteration/detail/self.hpp
new file mode 100644 (file)
index 0000000..d212ee0
--- /dev/null
@@ -0,0 +1,21 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# if !defined(BOOST_PP_INDIRECT_SELF)\r
+#    error BOOST_PP_ERROR:  no indirect file to include\r
+# endif\r
+#\r
+# define BOOST_PP_IS_SELFISH 1\r
+#\r
+# include BOOST_PP_INDIRECT_SELF\r
+#\r
+# undef BOOST_PP_IS_SELFISH\r
+# undef BOOST_PP_INDIRECT_SELF\r
diff --git a/boost/boost/preprocessor/iteration/detail/start.hpp b/boost/boost/preprocessor/iteration/detail/start.hpp
new file mode 100644 (file)
index 0000000..55e99cb
--- /dev/null
@@ -0,0 +1,99 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# include <boost/preprocessor/slot/detail/shared.hpp>\r
+#\r
+# undef BOOST_PP_LOCAL_SE\r
+#\r
+# undef BOOST_PP_LOCAL_SE_DIGIT_1\r
+# undef BOOST_PP_LOCAL_SE_DIGIT_2\r
+# undef BOOST_PP_LOCAL_SE_DIGIT_3\r
+# undef BOOST_PP_LOCAL_SE_DIGIT_4\r
+# undef BOOST_PP_LOCAL_SE_DIGIT_5\r
+# undef BOOST_PP_LOCAL_SE_DIGIT_6\r
+# undef BOOST_PP_LOCAL_SE_DIGIT_7\r
+# undef BOOST_PP_LOCAL_SE_DIGIT_8\r
+# undef BOOST_PP_LOCAL_SE_DIGIT_9\r
+# undef BOOST_PP_LOCAL_SE_DIGIT_10\r
+#\r
+# if BOOST_PP_SLOT_TEMP_3 == 0\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_3 0\r
+# elif BOOST_PP_SLOT_TEMP_3 == 1\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_3 1\r
+# elif BOOST_PP_SLOT_TEMP_3 == 2\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_3 2\r
+# elif BOOST_PP_SLOT_TEMP_3 == 3\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_3 3\r
+# elif BOOST_PP_SLOT_TEMP_3 == 4\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_3 4\r
+# elif BOOST_PP_SLOT_TEMP_3 == 5\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_3 5\r
+# elif BOOST_PP_SLOT_TEMP_3 == 6\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_3 6\r
+# elif BOOST_PP_SLOT_TEMP_3 == 7\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_3 7\r
+# elif BOOST_PP_SLOT_TEMP_3 == 8\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_3 8\r
+# elif BOOST_PP_SLOT_TEMP_3 == 9\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_3 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_2 == 0\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_2 0\r
+# elif BOOST_PP_SLOT_TEMP_2 == 1\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_2 1\r
+# elif BOOST_PP_SLOT_TEMP_2 == 2\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_2 2\r
+# elif BOOST_PP_SLOT_TEMP_2 == 3\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_2 3\r
+# elif BOOST_PP_SLOT_TEMP_2 == 4\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_2 4\r
+# elif BOOST_PP_SLOT_TEMP_2 == 5\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_2 5\r
+# elif BOOST_PP_SLOT_TEMP_2 == 6\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_2 6\r
+# elif BOOST_PP_SLOT_TEMP_2 == 7\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_2 7\r
+# elif BOOST_PP_SLOT_TEMP_2 == 8\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_2 8\r
+# elif BOOST_PP_SLOT_TEMP_2 == 9\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_2 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_1 == 0\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_1 0\r
+# elif BOOST_PP_SLOT_TEMP_1 == 1\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_1 1\r
+# elif BOOST_PP_SLOT_TEMP_1 == 2\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_1 2\r
+# elif BOOST_PP_SLOT_TEMP_1 == 3\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_1 3\r
+# elif BOOST_PP_SLOT_TEMP_1 == 4\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_1 4\r
+# elif BOOST_PP_SLOT_TEMP_1 == 5\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_1 5\r
+# elif BOOST_PP_SLOT_TEMP_1 == 6\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_1 6\r
+# elif BOOST_PP_SLOT_TEMP_1 == 7\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_1 7\r
+# elif BOOST_PP_SLOT_TEMP_1 == 8\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_1 8\r
+# elif BOOST_PP_SLOT_TEMP_1 == 9\r
+#    define BOOST_PP_LOCAL_SE_DIGIT_1 9\r
+# endif\r
+#\r
+# if BOOST_PP_LOCAL_SE_DIGIT_3\r
+#    define BOOST_PP_LOCAL_SE() BOOST_PP_SLOT_CC_3(BOOST_PP_LOCAL_SE_DIGIT_3, BOOST_PP_LOCAL_SE_DIGIT_2, BOOST_PP_LOCAL_SE_DIGIT_1)\r
+# elif BOOST_PP_LOCAL_SE_DIGIT_2\r
+#    define BOOST_PP_LOCAL_SE() BOOST_PP_SLOT_CC_2(BOOST_PP_LOCAL_SE_DIGIT_2, BOOST_PP_LOCAL_SE_DIGIT_1)\r
+# else\r
+#    define BOOST_PP_LOCAL_SE() BOOST_PP_LOCAL_SE_DIGIT_1\r
+# endif\r
diff --git a/boost/boost/preprocessor/iteration/self.hpp b/boost/boost/preprocessor/iteration/self.hpp
new file mode 100644 (file)
index 0000000..b53b3db
--- /dev/null
@@ -0,0 +1,19 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_ITERATION_SELF_HPP\r
+# define BOOST_PREPROCESSOR_ITERATION_SELF_HPP\r
+#\r
+# /* BOOST_PP_INCLUDE_SELF */\r
+#\r
+# define BOOST_PP_INCLUDE_SELF() <boost/preprocessor/iteration/detail/self.hpp>\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/library.hpp b/boost/boost/preprocessor/library.hpp
new file mode 100644 (file)
index 0000000..29ba635
--- /dev/null
@@ -0,0 +1,34 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_LIBRARY_HPP\r
+# define BOOST_PREPROCESSOR_LIBRARY_HPP\r
+#\r
+# include <boost/preprocessor/arithmetic.hpp>\r
+# include <boost/preprocessor/array.hpp>\r
+# include <boost/preprocessor/cat.hpp>\r
+# include <boost/preprocessor/comparison.hpp>\r
+# include <boost/preprocessor/config/limits.hpp>\r
+# include <boost/preprocessor/control.hpp>\r
+# include <boost/preprocessor/debug.hpp>\r
+# include <boost/preprocessor/facilities.hpp>\r
+# include <boost/preprocessor/iteration.hpp>\r
+# include <boost/preprocessor/list.hpp>\r
+# include <boost/preprocessor/logical.hpp>\r
+# include <boost/preprocessor/punctuation.hpp>\r
+# include <boost/preprocessor/repetition.hpp>\r
+# include <boost/preprocessor/selection.hpp>\r
+# include <boost/preprocessor/seq.hpp>\r
+# include <boost/preprocessor/slot.hpp>\r
+# include <boost/preprocessor/stringize.hpp>\r
+# include <boost/preprocessor/tuple.hpp>\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/list/detail/dmc/fold_left.hpp b/boost/boost/preprocessor/list/detail/dmc/fold_left.hpp
new file mode 100644 (file)
index 0000000..bf1d2e0
--- /dev/null
@@ -0,0 +1,279 @@
+# /* Copyright (C) 2001\r
+#  * Housemarque Oy\r
+#  * http://www.housemarque.com\r
+#  *\r
+#  * Distributed under the Boost Software License, Version 1.0. (See\r
+#  * accompanying file LICENSE_1_0.txt or copy at\r
+#  * http://www.boost.org/LICENSE_1_0.txt)\r
+#  */\r
+#\r
+# /* Revised by Paul Mensonides (2002) */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP\r
+# define BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP\r
+#\r
+# include <boost/preprocessor/control/expr_iif.hpp>\r
+# include <boost/preprocessor/control/iif.hpp>\r
+# include <boost/preprocessor/list/adt.hpp>\r
+# include <boost/preprocessor/tuple/elem.hpp>\r
+#\r
+# define BOOST_PP_LIST_FOLD_LEFT_1(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_2, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(2, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_2(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_3, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(3, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_3(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_4, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(4, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_4(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_5, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(5, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_5(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_6, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(6, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_6(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_7, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(7, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_7(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_8, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(8, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_8(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_9, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(9, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_9(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_10, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(10, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_10(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_11, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(11, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_11(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_12, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(12, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_12(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_13, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(13, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_13(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_14, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(14, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_14(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_15, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(15, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_15(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_16, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(16, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_16(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_17, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(17, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_17(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_18, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(18, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_18(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_19, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(19, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_19(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_20, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(20, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_20(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_21, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(21, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_21(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_22, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(22, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_22(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_23, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(23, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_23(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_24, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(24, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_24(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_25, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(25, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_25(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_26, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(26, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_26(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_27, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(27, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_27(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_28, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(28, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_28(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_29, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(29, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_29(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_30, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(30, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_30(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_31, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(31, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_31(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_32, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(32, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_32(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_33, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(33, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_33(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_34, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(34, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_34(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_35, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(35, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_35(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_36, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(36, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_36(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_37, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(37, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_37(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_38, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(38, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_38(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_39, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(39, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_39(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_40, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(40, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_40(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_41, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(41, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_41(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_42, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(42, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_42(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_43, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(43, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_43(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_44, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(44, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_44(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_45, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(45, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_45(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_46, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(46, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_46(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_47, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(47, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_47(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_48, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(48, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_48(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_49, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(49, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_49(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_50, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(50, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_50(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_51, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(51, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_51(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_52, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(52, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_52(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_53, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(53, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_53(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_54, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(54, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_54(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_55, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(55, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_55(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_56, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(56, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_56(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_57, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(57, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_57(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_58, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(58, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_58(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_59, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(59, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_59(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_60, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(60, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_60(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_61, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(61, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_61(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_62, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(62, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_62(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_63, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(63, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_63(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_64, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(64, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_64(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_65, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(65, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_65(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_66, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(66, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_66(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_67, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(67, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_67(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_68, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(68, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_68(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_69, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(69, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_69(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_70, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(70, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_70(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_71, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(71, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_71(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_72, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(72, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_72(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_73, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(73, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_73(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_74, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(74, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_74(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_75, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(75, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_75(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_76, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(76, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_76(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_77, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(77, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_77(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_78, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(78, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_78(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_79, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(79, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_79(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_80, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(80, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_80(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_81, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(81, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_81(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_82, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(82, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_82(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_83, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(83, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_83(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_84, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(84, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_84(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_85, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(85, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_85(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_86, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(86, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_86(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_87, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(87, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_87(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_88, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(88, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_88(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_89, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(89, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_89(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_90, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(90, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_90(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_91, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(91, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_91(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_92, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(92, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_92(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_93, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(93, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_93(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_94, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(94, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_94(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_95, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(95, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_95(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_96, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(96, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_96(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_97, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(97, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_97(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_98, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(98, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_98(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_99, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(99, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_99(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_100, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(100, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_100(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_101, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(101, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_101(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_102, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(102, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_102(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_103, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(103, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_103(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_104, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(104, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_104(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_105, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(105, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_105(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_106, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(106, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_106(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_107, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(107, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_107(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_108, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(108, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_108(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_109, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(109, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_109(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_110, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(110, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_110(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_111, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(111, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_111(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_112, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(112, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_112(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_113, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(113, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_113(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_114, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(114, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_114(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_115, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(115, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_115(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_116, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(116, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_116(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_117, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(117, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_117(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_118, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(118, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_118(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_119, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(119, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_119(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_120, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(120, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_120(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_121, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(121, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_121(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_122, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(122, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_122(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_123, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(123, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_123(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_124, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(124, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_124(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_125, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(125, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_125(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_126, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(126, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_126(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_127, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(127, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_127(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_128, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(128, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_128(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_129, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(129, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_129(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_130, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(130, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_130(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_131, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(131, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_131(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_132, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(132, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_132(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_133, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(133, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_133(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_134, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(134, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_134(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_135, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(135, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_135(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_136, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(136, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_136(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_137, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(137, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_137(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_138, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(138, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_138(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_139, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(139, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_139(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_140, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(140, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_140(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_141, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(141, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_141(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_142, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(142, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_142(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_143, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(143, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_143(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_144, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(144, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_144(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_145, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(145, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_145(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_146, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(146, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_146(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_147, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(147, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_147(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_148, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(148, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_148(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_149, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(149, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_149(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_150, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(150, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_150(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_151, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(151, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_151(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_152, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(152, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_152(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_153, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(153, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_153(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_154, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(154, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_154(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_155, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(155, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_155(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_156, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(156, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_156(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_157, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(157, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_157(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_158, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(158, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_158(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_159, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(159, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_159(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_160, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(160, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_160(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_161, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(161, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_161(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_162, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(162, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_162(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_163, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(163, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_163(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_164, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(164, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_164(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_165, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(165, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_165(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_166, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(166, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_166(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_167, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(167, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_167(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_168, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(168, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_168(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_169, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(169, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_169(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_170, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(170, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_170(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_171, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(171, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_171(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_172, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(172, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_172(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_173, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(173, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_173(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_174, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(174, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_174(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_175, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(175, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_175(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_176, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(176, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_176(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_177, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(177, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_177(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_178, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(178, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_178(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_179, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(179, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_179(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_180, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(180, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_180(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_181, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(181, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_181(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_182, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(182, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_182(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_183, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(183, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_183(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_184, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(184, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_184(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_185, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(185, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_185(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_186, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(186, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_186(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_187, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(187, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_187(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_188, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(188, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_188(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_189, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(189, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_189(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_190, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(190, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_190(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_191, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(191, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_191(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_192, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(192, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_192(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_193, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(193, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_193(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_194, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(194, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_194(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_195, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(195, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_195(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_196, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(196, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_196(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_197, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(197, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_197(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_198, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(198, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_198(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_199, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(199, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_199(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_200, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(200, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_200(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_201, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(201, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_201(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_202, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(202, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_202(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_203, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(203, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_203(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_204, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(204, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_204(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_205, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(205, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_205(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_206, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(206, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_206(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_207, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(207, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_207(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_208, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(208, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_208(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_209, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(209, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_209(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_210, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(210, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_210(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_211, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(211, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_211(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_212, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(212, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_212(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_213, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(213, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_213(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_214, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(214, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_214(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_215, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(215, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_215(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_216, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(216, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_216(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_217, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(217, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_217(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_218, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(218, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_218(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_219, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(219, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_219(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_220, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(220, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_220(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_221, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(221, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_221(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_222, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(222, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_222(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_223, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(223, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_223(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_224, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(224, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_224(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_225, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(225, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_225(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_226, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(226, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_226(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_227, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(227, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_227(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_228, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(228, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_228(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_229, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(229, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_229(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_230, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(230, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_230(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_231, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(231, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_231(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_232, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(232, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_232(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_233, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(233, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_233(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_234, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(234, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_234(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_235, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(235, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_235(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_236, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(236, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_236(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_237, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(237, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_237(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_238, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(238, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_238(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_239, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(239, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_239(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_240, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(240, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_240(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_241, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(241, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_241(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_242, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(242, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_242(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_243, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(243, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_243(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_244, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(244, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_244(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_245, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(245, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_245(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_246, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(246, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_246(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_247, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(247, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_247(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_248, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(248, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_248(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_249, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(249, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_249(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_250, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(250, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_250(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_251, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(251, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_251(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_252, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(252, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_252(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_253, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(253, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_253(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_254, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(254, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_254(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_255, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(255, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_255(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_256, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(256, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_256(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_257, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(257, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/list/detail/edg/fold_left.hpp b/boost/boost/preprocessor/list/detail/edg/fold_left.hpp
new file mode 100644 (file)
index 0000000..0130e85
--- /dev/null
@@ -0,0 +1,536 @@
+# /* Copyright (C) 2001\r
+#  * Housemarque Oy\r
+#  * http://www.housemarque.com\r
+#  *\r
+#  * Distributed under the Boost Software License, Version 1.0. (See\r
+#  * accompanying file LICENSE_1_0.txt or copy at\r
+#  * http://www.boost.org/LICENSE_1_0.txt)\r
+#  */\r
+#\r
+# /* Revised by Paul Mensonides (2002) */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_LEFT_HPP\r
+# define BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_LEFT_HPP\r
+#\r
+# include <boost/preprocessor/control/expr_iif.hpp>\r
+# include <boost/preprocessor/control/iif.hpp>\r
+# include <boost/preprocessor/list/adt.hpp>\r
+# include <boost/preprocessor/tuple/eat.hpp>\r
+#\r
+# define BOOST_PP_LIST_FOLD_LEFT_1(o, s, l) BOOST_PP_LIST_FOLD_LEFT_1_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_2(o, s, l) BOOST_PP_LIST_FOLD_LEFT_2_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_3(o, s, l) BOOST_PP_LIST_FOLD_LEFT_3_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_4(o, s, l) BOOST_PP_LIST_FOLD_LEFT_4_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_5(o, s, l) BOOST_PP_LIST_FOLD_LEFT_5_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_6(o, s, l) BOOST_PP_LIST_FOLD_LEFT_6_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_7(o, s, l) BOOST_PP_LIST_FOLD_LEFT_7_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_8(o, s, l) BOOST_PP_LIST_FOLD_LEFT_8_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_9(o, s, l) BOOST_PP_LIST_FOLD_LEFT_9_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_10(o, s, l) BOOST_PP_LIST_FOLD_LEFT_10_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_11(o, s, l) BOOST_PP_LIST_FOLD_LEFT_11_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_12(o, s, l) BOOST_PP_LIST_FOLD_LEFT_12_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_13(o, s, l) BOOST_PP_LIST_FOLD_LEFT_13_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_14(o, s, l) BOOST_PP_LIST_FOLD_LEFT_14_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_15(o, s, l) BOOST_PP_LIST_FOLD_LEFT_15_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_16(o, s, l) BOOST_PP_LIST_FOLD_LEFT_16_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_17(o, s, l) BOOST_PP_LIST_FOLD_LEFT_17_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_18(o, s, l) BOOST_PP_LIST_FOLD_LEFT_18_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_19(o, s, l) BOOST_PP_LIST_FOLD_LEFT_19_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_20(o, s, l) BOOST_PP_LIST_FOLD_LEFT_20_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_21(o, s, l) BOOST_PP_LIST_FOLD_LEFT_21_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_22(o, s, l) BOOST_PP_LIST_FOLD_LEFT_22_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_23(o, s, l) BOOST_PP_LIST_FOLD_LEFT_23_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_24(o, s, l) BOOST_PP_LIST_FOLD_LEFT_24_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_25(o, s, l) BOOST_PP_LIST_FOLD_LEFT_25_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_26(o, s, l) BOOST_PP_LIST_FOLD_LEFT_26_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_27(o, s, l) BOOST_PP_LIST_FOLD_LEFT_27_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_28(o, s, l) BOOST_PP_LIST_FOLD_LEFT_28_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_29(o, s, l) BOOST_PP_LIST_FOLD_LEFT_29_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_30(o, s, l) BOOST_PP_LIST_FOLD_LEFT_30_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_31(o, s, l) BOOST_PP_LIST_FOLD_LEFT_31_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_32(o, s, l) BOOST_PP_LIST_FOLD_LEFT_32_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_33(o, s, l) BOOST_PP_LIST_FOLD_LEFT_33_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_34(o, s, l) BOOST_PP_LIST_FOLD_LEFT_34_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_35(o, s, l) BOOST_PP_LIST_FOLD_LEFT_35_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_36(o, s, l) BOOST_PP_LIST_FOLD_LEFT_36_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_37(o, s, l) BOOST_PP_LIST_FOLD_LEFT_37_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_38(o, s, l) BOOST_PP_LIST_FOLD_LEFT_38_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_39(o, s, l) BOOST_PP_LIST_FOLD_LEFT_39_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_40(o, s, l) BOOST_PP_LIST_FOLD_LEFT_40_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_41(o, s, l) BOOST_PP_LIST_FOLD_LEFT_41_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_42(o, s, l) BOOST_PP_LIST_FOLD_LEFT_42_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_43(o, s, l) BOOST_PP_LIST_FOLD_LEFT_43_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_44(o, s, l) BOOST_PP_LIST_FOLD_LEFT_44_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_45(o, s, l) BOOST_PP_LIST_FOLD_LEFT_45_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_46(o, s, l) BOOST_PP_LIST_FOLD_LEFT_46_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_47(o, s, l) BOOST_PP_LIST_FOLD_LEFT_47_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_48(o, s, l) BOOST_PP_LIST_FOLD_LEFT_48_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_49(o, s, l) BOOST_PP_LIST_FOLD_LEFT_49_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_50(o, s, l) BOOST_PP_LIST_FOLD_LEFT_50_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_51(o, s, l) BOOST_PP_LIST_FOLD_LEFT_51_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_52(o, s, l) BOOST_PP_LIST_FOLD_LEFT_52_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_53(o, s, l) BOOST_PP_LIST_FOLD_LEFT_53_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_54(o, s, l) BOOST_PP_LIST_FOLD_LEFT_54_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_55(o, s, l) BOOST_PP_LIST_FOLD_LEFT_55_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_56(o, s, l) BOOST_PP_LIST_FOLD_LEFT_56_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_57(o, s, l) BOOST_PP_LIST_FOLD_LEFT_57_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_58(o, s, l) BOOST_PP_LIST_FOLD_LEFT_58_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_59(o, s, l) BOOST_PP_LIST_FOLD_LEFT_59_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_60(o, s, l) BOOST_PP_LIST_FOLD_LEFT_60_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_61(o, s, l) BOOST_PP_LIST_FOLD_LEFT_61_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_62(o, s, l) BOOST_PP_LIST_FOLD_LEFT_62_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_63(o, s, l) BOOST_PP_LIST_FOLD_LEFT_63_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_64(o, s, l) BOOST_PP_LIST_FOLD_LEFT_64_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_65(o, s, l) BOOST_PP_LIST_FOLD_LEFT_65_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_66(o, s, l) BOOST_PP_LIST_FOLD_LEFT_66_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_67(o, s, l) BOOST_PP_LIST_FOLD_LEFT_67_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_68(o, s, l) BOOST_PP_LIST_FOLD_LEFT_68_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_69(o, s, l) BOOST_PP_LIST_FOLD_LEFT_69_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_70(o, s, l) BOOST_PP_LIST_FOLD_LEFT_70_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_71(o, s, l) BOOST_PP_LIST_FOLD_LEFT_71_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_72(o, s, l) BOOST_PP_LIST_FOLD_LEFT_72_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_73(o, s, l) BOOST_PP_LIST_FOLD_LEFT_73_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_74(o, s, l) BOOST_PP_LIST_FOLD_LEFT_74_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_75(o, s, l) BOOST_PP_LIST_FOLD_LEFT_75_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_76(o, s, l) BOOST_PP_LIST_FOLD_LEFT_76_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_77(o, s, l) BOOST_PP_LIST_FOLD_LEFT_77_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_78(o, s, l) BOOST_PP_LIST_FOLD_LEFT_78_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_79(o, s, l) BOOST_PP_LIST_FOLD_LEFT_79_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_80(o, s, l) BOOST_PP_LIST_FOLD_LEFT_80_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_81(o, s, l) BOOST_PP_LIST_FOLD_LEFT_81_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_82(o, s, l) BOOST_PP_LIST_FOLD_LEFT_82_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_83(o, s, l) BOOST_PP_LIST_FOLD_LEFT_83_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_84(o, s, l) BOOST_PP_LIST_FOLD_LEFT_84_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_85(o, s, l) BOOST_PP_LIST_FOLD_LEFT_85_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_86(o, s, l) BOOST_PP_LIST_FOLD_LEFT_86_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_87(o, s, l) BOOST_PP_LIST_FOLD_LEFT_87_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_88(o, s, l) BOOST_PP_LIST_FOLD_LEFT_88_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_89(o, s, l) BOOST_PP_LIST_FOLD_LEFT_89_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_90(o, s, l) BOOST_PP_LIST_FOLD_LEFT_90_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_91(o, s, l) BOOST_PP_LIST_FOLD_LEFT_91_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_92(o, s, l) BOOST_PP_LIST_FOLD_LEFT_92_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_93(o, s, l) BOOST_PP_LIST_FOLD_LEFT_93_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_94(o, s, l) BOOST_PP_LIST_FOLD_LEFT_94_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_95(o, s, l) BOOST_PP_LIST_FOLD_LEFT_95_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_96(o, s, l) BOOST_PP_LIST_FOLD_LEFT_96_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_97(o, s, l) BOOST_PP_LIST_FOLD_LEFT_97_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_98(o, s, l) BOOST_PP_LIST_FOLD_LEFT_98_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_99(o, s, l) BOOST_PP_LIST_FOLD_LEFT_99_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_100(o, s, l) BOOST_PP_LIST_FOLD_LEFT_100_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_101(o, s, l) BOOST_PP_LIST_FOLD_LEFT_101_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_102(o, s, l) BOOST_PP_LIST_FOLD_LEFT_102_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_103(o, s, l) BOOST_PP_LIST_FOLD_LEFT_103_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_104(o, s, l) BOOST_PP_LIST_FOLD_LEFT_104_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_105(o, s, l) BOOST_PP_LIST_FOLD_LEFT_105_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_106(o, s, l) BOOST_PP_LIST_FOLD_LEFT_106_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_107(o, s, l) BOOST_PP_LIST_FOLD_LEFT_107_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_108(o, s, l) BOOST_PP_LIST_FOLD_LEFT_108_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_109(o, s, l) BOOST_PP_LIST_FOLD_LEFT_109_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_110(o, s, l) BOOST_PP_LIST_FOLD_LEFT_110_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_111(o, s, l) BOOST_PP_LIST_FOLD_LEFT_111_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_112(o, s, l) BOOST_PP_LIST_FOLD_LEFT_112_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_113(o, s, l) BOOST_PP_LIST_FOLD_LEFT_113_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_114(o, s, l) BOOST_PP_LIST_FOLD_LEFT_114_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_115(o, s, l) BOOST_PP_LIST_FOLD_LEFT_115_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_116(o, s, l) BOOST_PP_LIST_FOLD_LEFT_116_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_117(o, s, l) BOOST_PP_LIST_FOLD_LEFT_117_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_118(o, s, l) BOOST_PP_LIST_FOLD_LEFT_118_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_119(o, s, l) BOOST_PP_LIST_FOLD_LEFT_119_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_120(o, s, l) BOOST_PP_LIST_FOLD_LEFT_120_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_121(o, s, l) BOOST_PP_LIST_FOLD_LEFT_121_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_122(o, s, l) BOOST_PP_LIST_FOLD_LEFT_122_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_123(o, s, l) BOOST_PP_LIST_FOLD_LEFT_123_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_124(o, s, l) BOOST_PP_LIST_FOLD_LEFT_124_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_125(o, s, l) BOOST_PP_LIST_FOLD_LEFT_125_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_126(o, s, l) BOOST_PP_LIST_FOLD_LEFT_126_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_127(o, s, l) BOOST_PP_LIST_FOLD_LEFT_127_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_128(o, s, l) BOOST_PP_LIST_FOLD_LEFT_128_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_129(o, s, l) BOOST_PP_LIST_FOLD_LEFT_129_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_130(o, s, l) BOOST_PP_LIST_FOLD_LEFT_130_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_131(o, s, l) BOOST_PP_LIST_FOLD_LEFT_131_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_132(o, s, l) BOOST_PP_LIST_FOLD_LEFT_132_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_133(o, s, l) BOOST_PP_LIST_FOLD_LEFT_133_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_134(o, s, l) BOOST_PP_LIST_FOLD_LEFT_134_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_135(o, s, l) BOOST_PP_LIST_FOLD_LEFT_135_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_136(o, s, l) BOOST_PP_LIST_FOLD_LEFT_136_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_137(o, s, l) BOOST_PP_LIST_FOLD_LEFT_137_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_138(o, s, l) BOOST_PP_LIST_FOLD_LEFT_138_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_139(o, s, l) BOOST_PP_LIST_FOLD_LEFT_139_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_140(o, s, l) BOOST_PP_LIST_FOLD_LEFT_140_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_141(o, s, l) BOOST_PP_LIST_FOLD_LEFT_141_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_142(o, s, l) BOOST_PP_LIST_FOLD_LEFT_142_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_143(o, s, l) BOOST_PP_LIST_FOLD_LEFT_143_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_144(o, s, l) BOOST_PP_LIST_FOLD_LEFT_144_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_145(o, s, l) BOOST_PP_LIST_FOLD_LEFT_145_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_146(o, s, l) BOOST_PP_LIST_FOLD_LEFT_146_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_147(o, s, l) BOOST_PP_LIST_FOLD_LEFT_147_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_148(o, s, l) BOOST_PP_LIST_FOLD_LEFT_148_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_149(o, s, l) BOOST_PP_LIST_FOLD_LEFT_149_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_150(o, s, l) BOOST_PP_LIST_FOLD_LEFT_150_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_151(o, s, l) BOOST_PP_LIST_FOLD_LEFT_151_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_152(o, s, l) BOOST_PP_LIST_FOLD_LEFT_152_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_153(o, s, l) BOOST_PP_LIST_FOLD_LEFT_153_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_154(o, s, l) BOOST_PP_LIST_FOLD_LEFT_154_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_155(o, s, l) BOOST_PP_LIST_FOLD_LEFT_155_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_156(o, s, l) BOOST_PP_LIST_FOLD_LEFT_156_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_157(o, s, l) BOOST_PP_LIST_FOLD_LEFT_157_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_158(o, s, l) BOOST_PP_LIST_FOLD_LEFT_158_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_159(o, s, l) BOOST_PP_LIST_FOLD_LEFT_159_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_160(o, s, l) BOOST_PP_LIST_FOLD_LEFT_160_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_161(o, s, l) BOOST_PP_LIST_FOLD_LEFT_161_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_162(o, s, l) BOOST_PP_LIST_FOLD_LEFT_162_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_163(o, s, l) BOOST_PP_LIST_FOLD_LEFT_163_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_164(o, s, l) BOOST_PP_LIST_FOLD_LEFT_164_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_165(o, s, l) BOOST_PP_LIST_FOLD_LEFT_165_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_166(o, s, l) BOOST_PP_LIST_FOLD_LEFT_166_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_167(o, s, l) BOOST_PP_LIST_FOLD_LEFT_167_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_168(o, s, l) BOOST_PP_LIST_FOLD_LEFT_168_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_169(o, s, l) BOOST_PP_LIST_FOLD_LEFT_169_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_170(o, s, l) BOOST_PP_LIST_FOLD_LEFT_170_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_171(o, s, l) BOOST_PP_LIST_FOLD_LEFT_171_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_172(o, s, l) BOOST_PP_LIST_FOLD_LEFT_172_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_173(o, s, l) BOOST_PP_LIST_FOLD_LEFT_173_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_174(o, s, l) BOOST_PP_LIST_FOLD_LEFT_174_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_175(o, s, l) BOOST_PP_LIST_FOLD_LEFT_175_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_176(o, s, l) BOOST_PP_LIST_FOLD_LEFT_176_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_177(o, s, l) BOOST_PP_LIST_FOLD_LEFT_177_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_178(o, s, l) BOOST_PP_LIST_FOLD_LEFT_178_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_179(o, s, l) BOOST_PP_LIST_FOLD_LEFT_179_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_180(o, s, l) BOOST_PP_LIST_FOLD_LEFT_180_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_181(o, s, l) BOOST_PP_LIST_FOLD_LEFT_181_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_182(o, s, l) BOOST_PP_LIST_FOLD_LEFT_182_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_183(o, s, l) BOOST_PP_LIST_FOLD_LEFT_183_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_184(o, s, l) BOOST_PP_LIST_FOLD_LEFT_184_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_185(o, s, l) BOOST_PP_LIST_FOLD_LEFT_185_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_186(o, s, l) BOOST_PP_LIST_FOLD_LEFT_186_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_187(o, s, l) BOOST_PP_LIST_FOLD_LEFT_187_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_188(o, s, l) BOOST_PP_LIST_FOLD_LEFT_188_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_189(o, s, l) BOOST_PP_LIST_FOLD_LEFT_189_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_190(o, s, l) BOOST_PP_LIST_FOLD_LEFT_190_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_191(o, s, l) BOOST_PP_LIST_FOLD_LEFT_191_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_192(o, s, l) BOOST_PP_LIST_FOLD_LEFT_192_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_193(o, s, l) BOOST_PP_LIST_FOLD_LEFT_193_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_194(o, s, l) BOOST_PP_LIST_FOLD_LEFT_194_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_195(o, s, l) BOOST_PP_LIST_FOLD_LEFT_195_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_196(o, s, l) BOOST_PP_LIST_FOLD_LEFT_196_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_197(o, s, l) BOOST_PP_LIST_FOLD_LEFT_197_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_198(o, s, l) BOOST_PP_LIST_FOLD_LEFT_198_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_199(o, s, l) BOOST_PP_LIST_FOLD_LEFT_199_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_200(o, s, l) BOOST_PP_LIST_FOLD_LEFT_200_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_201(o, s, l) BOOST_PP_LIST_FOLD_LEFT_201_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_202(o, s, l) BOOST_PP_LIST_FOLD_LEFT_202_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_203(o, s, l) BOOST_PP_LIST_FOLD_LEFT_203_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_204(o, s, l) BOOST_PP_LIST_FOLD_LEFT_204_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_205(o, s, l) BOOST_PP_LIST_FOLD_LEFT_205_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_206(o, s, l) BOOST_PP_LIST_FOLD_LEFT_206_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_207(o, s, l) BOOST_PP_LIST_FOLD_LEFT_207_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_208(o, s, l) BOOST_PP_LIST_FOLD_LEFT_208_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_209(o, s, l) BOOST_PP_LIST_FOLD_LEFT_209_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_210(o, s, l) BOOST_PP_LIST_FOLD_LEFT_210_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_211(o, s, l) BOOST_PP_LIST_FOLD_LEFT_211_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_212(o, s, l) BOOST_PP_LIST_FOLD_LEFT_212_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_213(o, s, l) BOOST_PP_LIST_FOLD_LEFT_213_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_214(o, s, l) BOOST_PP_LIST_FOLD_LEFT_214_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_215(o, s, l) BOOST_PP_LIST_FOLD_LEFT_215_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_216(o, s, l) BOOST_PP_LIST_FOLD_LEFT_216_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_217(o, s, l) BOOST_PP_LIST_FOLD_LEFT_217_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_218(o, s, l) BOOST_PP_LIST_FOLD_LEFT_218_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_219(o, s, l) BOOST_PP_LIST_FOLD_LEFT_219_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_220(o, s, l) BOOST_PP_LIST_FOLD_LEFT_220_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_221(o, s, l) BOOST_PP_LIST_FOLD_LEFT_221_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_222(o, s, l) BOOST_PP_LIST_FOLD_LEFT_222_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_223(o, s, l) BOOST_PP_LIST_FOLD_LEFT_223_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_224(o, s, l) BOOST_PP_LIST_FOLD_LEFT_224_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_225(o, s, l) BOOST_PP_LIST_FOLD_LEFT_225_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_226(o, s, l) BOOST_PP_LIST_FOLD_LEFT_226_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_227(o, s, l) BOOST_PP_LIST_FOLD_LEFT_227_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_228(o, s, l) BOOST_PP_LIST_FOLD_LEFT_228_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_229(o, s, l) BOOST_PP_LIST_FOLD_LEFT_229_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_230(o, s, l) BOOST_PP_LIST_FOLD_LEFT_230_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_231(o, s, l) BOOST_PP_LIST_FOLD_LEFT_231_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_232(o, s, l) BOOST_PP_LIST_FOLD_LEFT_232_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_233(o, s, l) BOOST_PP_LIST_FOLD_LEFT_233_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_234(o, s, l) BOOST_PP_LIST_FOLD_LEFT_234_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_235(o, s, l) BOOST_PP_LIST_FOLD_LEFT_235_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_236(o, s, l) BOOST_PP_LIST_FOLD_LEFT_236_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_237(o, s, l) BOOST_PP_LIST_FOLD_LEFT_237_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_238(o, s, l) BOOST_PP_LIST_FOLD_LEFT_238_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_239(o, s, l) BOOST_PP_LIST_FOLD_LEFT_239_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_240(o, s, l) BOOST_PP_LIST_FOLD_LEFT_240_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_241(o, s, l) BOOST_PP_LIST_FOLD_LEFT_241_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_242(o, s, l) BOOST_PP_LIST_FOLD_LEFT_242_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_243(o, s, l) BOOST_PP_LIST_FOLD_LEFT_243_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_244(o, s, l) BOOST_PP_LIST_FOLD_LEFT_244_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_245(o, s, l) BOOST_PP_LIST_FOLD_LEFT_245_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_246(o, s, l) BOOST_PP_LIST_FOLD_LEFT_246_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_247(o, s, l) BOOST_PP_LIST_FOLD_LEFT_247_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_248(o, s, l) BOOST_PP_LIST_FOLD_LEFT_248_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_249(o, s, l) BOOST_PP_LIST_FOLD_LEFT_249_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_250(o, s, l) BOOST_PP_LIST_FOLD_LEFT_250_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_251(o, s, l) BOOST_PP_LIST_FOLD_LEFT_251_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_252(o, s, l) BOOST_PP_LIST_FOLD_LEFT_252_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_253(o, s, l) BOOST_PP_LIST_FOLD_LEFT_253_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_254(o, s, l) BOOST_PP_LIST_FOLD_LEFT_254_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_255(o, s, l) BOOST_PP_LIST_FOLD_LEFT_255_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_LEFT_256(o, s, l) BOOST_PP_LIST_FOLD_LEFT_256_D(o, s, l)\r
+#\r
+# define BOOST_PP_LIST_FOLD_LEFT_1_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_2, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(2, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_2_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_3, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(3, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_3_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_4, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(4, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_4_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_5, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(5, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_5_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_6, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(6, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_6_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_7, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(7, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_7_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_8, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(8, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_8_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_9, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(9, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_9_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_10, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(10, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_10_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_11, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(11, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_11_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_12, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(12, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_12_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_13, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(13, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_13_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_14, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(14, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_14_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_15, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(15, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_15_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_16, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(16, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_16_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_17, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(17, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_17_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_18, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(18, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_18_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_19, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(19, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_19_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_20, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(20, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_20_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_21, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(21, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_21_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_22, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(22, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_22_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_23, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(23, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_23_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_24, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(24, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_24_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_25, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(25, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_25_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_26, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(26, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_26_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_27, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(27, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_27_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_28, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(28, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_28_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_29, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(29, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_29_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_30, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(30, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_30_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_31, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(31, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_31_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_32, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(32, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_32_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_33, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(33, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_33_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_34, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(34, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_34_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_35, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(35, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_35_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_36, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(36, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_36_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_37, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(37, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_37_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_38, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(38, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_38_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_39, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(39, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_39_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_40, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(40, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_40_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_41, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(41, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_41_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_42, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(42, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_42_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_43, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(43, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_43_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_44, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(44, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_44_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_45, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(45, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_45_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_46, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(46, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_46_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_47, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(47, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_47_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_48, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(48, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_48_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_49, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(49, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_49_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_50, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(50, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_50_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_51, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(51, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_51_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_52, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(52, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_52_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_53, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(53, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_53_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_54, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(54, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_54_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_55, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(55, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_55_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_56, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(56, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_56_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_57, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(57, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_57_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_58, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(58, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_58_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_59, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(59, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_59_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_60, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(60, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_60_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_61, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(61, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_61_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_62, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(62, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_62_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_63, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(63, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_63_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_64, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(64, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_64_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_65, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(65, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_65_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_66, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(66, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_66_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_67, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(67, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_67_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_68, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(68, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_68_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_69, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(69, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_69_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_70, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(70, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_70_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_71, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(71, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_71_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_72, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(72, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_72_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_73, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(73, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_73_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_74, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(74, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_74_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_75, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(75, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_75_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_76, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(76, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_76_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_77, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(77, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_77_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_78, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(78, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_78_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_79, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(79, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_79_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_80, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(80, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_80_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_81, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(81, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_81_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_82, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(82, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_82_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_83, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(83, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_83_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_84, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(84, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_84_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_85, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(85, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_85_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_86, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(86, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_86_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_87, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(87, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_87_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_88, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(88, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_88_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_89, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(89, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_89_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_90, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(90, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_90_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_91, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(91, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_91_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_92, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(92, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_92_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_93, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(93, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_93_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_94, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(94, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_94_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_95, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(95, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_95_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_96, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(96, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_96_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_97, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(97, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_97_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_98, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(98, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_98_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_99, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(99, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_99_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_100, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(100, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_100_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_101, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(101, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_101_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_102, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(102, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_102_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_103, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(103, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_103_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_104, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(104, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_104_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_105, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(105, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_105_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_106, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(106, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_106_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_107, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(107, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_107_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_108, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(108, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_108_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_109, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(109, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_109_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_110, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(110, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_110_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_111, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(111, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_111_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_112, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(112, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_112_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_113, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(113, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_113_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_114, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(114, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_114_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_115, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(115, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_115_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_116, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(116, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_116_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_117, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(117, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_117_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_118, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(118, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_118_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_119, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(119, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_119_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_120, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(120, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_120_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_121, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(121, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_121_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_122, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(122, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_122_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_123, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(123, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_123_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_124, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(124, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_124_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_125, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(125, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_125_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_126, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(126, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_126_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_127, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(127, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_127_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_128, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(128, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_128_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_129, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(129, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_129_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_130, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(130, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_130_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_131, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(131, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_131_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_132, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(132, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_132_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_133, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(133, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_133_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_134, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(134, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_134_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_135, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(135, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_135_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_136, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(136, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_136_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_137, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(137, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_137_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_138, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(138, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_138_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_139, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(139, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_139_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_140, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(140, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_140_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_141, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(141, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_141_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_142, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(142, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_142_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_143, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(143, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_143_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_144, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(144, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_144_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_145, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(145, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_145_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_146, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(146, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_146_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_147, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(147, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_147_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_148, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(148, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_148_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_149, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(149, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_149_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_150, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(150, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_150_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_151, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(151, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_151_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_152, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(152, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_152_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_153, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(153, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_153_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_154, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(154, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_154_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_155, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(155, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_155_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_156, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(156, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_156_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_157, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(157, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_157_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_158, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(158, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_158_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_159, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(159, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_159_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_160, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(160, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_160_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_161, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(161, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_161_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_162, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(162, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_162_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_163, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(163, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_163_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_164, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(164, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_164_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_165, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(165, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_165_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_166, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(166, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_166_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_167, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(167, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_167_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_168, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(168, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_168_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_169, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(169, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_169_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_170, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(170, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_170_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_171, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(171, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_171_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_172, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(172, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_172_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_173, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(173, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_173_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_174, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(174, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_174_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_175, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(175, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_175_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_176, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(176, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_176_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_177, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(177, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_177_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_178, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(178, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_178_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_179, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(179, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_179_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_180, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(180, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_180_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_181, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(181, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_181_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_182, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(182, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_182_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_183, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(183, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_183_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_184, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(184, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_184_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_185, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(185, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_185_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_186, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(186, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_186_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_187, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(187, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_187_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_188, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(188, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_188_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_189, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(189, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_189_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_190, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(190, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_190_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_191, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(191, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_191_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_192, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(192, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_192_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_193, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(193, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_193_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_194, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(194, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_194_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_195, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(195, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_195_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_196, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(196, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_196_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_197, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(197, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_197_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_198, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(198, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_198_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_199, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(199, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_199_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_200, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(200, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_200_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_201, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(201, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_201_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_202, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(202, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_202_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_203, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(203, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_203_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_204, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(204, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_204_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_205, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(205, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_205_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_206, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(206, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_206_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_207, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(207, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_207_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_208, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(208, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_208_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_209, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(209, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_209_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_210, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(210, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_210_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_211, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(211, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_211_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_212, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(212, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_212_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_213, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(213, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_213_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_214, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(214, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_214_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_215, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(215, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_215_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_216, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(216, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_216_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_217, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(217, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_217_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_218, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(218, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_218_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_219, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(219, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_219_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_220, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(220, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_220_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_221, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(221, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_221_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_222, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(222, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_222_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_223, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(223, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_223_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_224, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(224, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_224_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_225, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(225, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_225_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_226, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(226, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_226_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_227, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(227, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_227_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_228, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(228, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_228_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_229, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(229, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_229_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_230, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(230, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_230_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_231, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(231, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_231_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_232, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(232, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_232_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_233, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(233, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_233_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_234, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(234, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_234_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_235, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(235, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_235_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_236, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(236, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_236_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_237, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(237, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_237_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_238, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(238, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_238_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_239, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(239, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_239_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_240, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(240, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_240_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_241, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(241, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_241_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_242, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(242, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_242_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_243, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(243, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_243_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_244, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(244, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_244_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_245, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(245, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_245_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_246, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(246, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_246_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_247, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(247, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_247_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_248, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(248, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_248_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_249, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(249, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_249_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_250, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(250, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_250_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_251, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(251, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_251_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_252, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(252, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_252_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_253, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(253, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_253_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_254, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(254, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_254_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_255, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(255, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_255_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_256, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(256, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+# define BOOST_PP_LIST_FOLD_LEFT_256_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_257, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(257, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/list/detail/edg/fold_right.hpp b/boost/boost/preprocessor/list/detail/edg/fold_right.hpp
new file mode 100644 (file)
index 0000000..431abd2
--- /dev/null
@@ -0,0 +1,794 @@
+# /* Copyright (C) 2001\r
+#  * Housemarque Oy\r
+#  * http://www.housemarque.com\r
+#  *\r
+#  * Distributed under the Boost Software License, Version 1.0. (See\r
+#  * accompanying file LICENSE_1_0.txt or copy at\r
+#  * http://www.boost.org/LICENSE_1_0.txt)\r
+#  */\r
+#\r
+# /* Revised by Paul Mensonides (2002) */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_RIGHT_HPP\r
+# define BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_RIGHT_HPP\r
+#\r
+# include <boost/preprocessor/control/iif.hpp>\r
+# include <boost/preprocessor/list/adt.hpp>\r
+# include <boost/preprocessor/tuple/eat.hpp>\r
+#\r
+# define BOOST_PP_LIST_FOLD_RIGHT_1(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_1_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_2(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_2_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_3(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_3_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_4(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_4_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_5(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_5_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_6(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_6_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_7(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_7_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_8(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_8_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_9(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_9_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_10(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_10_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_11(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_11_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_12(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_12_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_13(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_13_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_14(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_14_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_15(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_15_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_16(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_16_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_17(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_17_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_18(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_18_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_19(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_19_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_20(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_20_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_21(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_21_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_22(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_22_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_23(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_23_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_24(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_24_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_25(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_25_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_26(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_26_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_27(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_27_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_28(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_28_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_29(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_29_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_30(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_30_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_31(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_31_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_32(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_32_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_33(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_33_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_34(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_34_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_35(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_35_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_36(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_36_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_37(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_37_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_38(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_38_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_39(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_39_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_40(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_40_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_41(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_41_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_42(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_42_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_43(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_43_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_44(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_44_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_45(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_45_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_46(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_46_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_47(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_47_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_48(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_48_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_49(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_49_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_50(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_50_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_51(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_51_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_52(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_52_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_53(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_53_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_54(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_54_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_55(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_55_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_56(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_56_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_57(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_57_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_58(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_58_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_59(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_59_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_60(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_60_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_61(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_61_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_62(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_62_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_63(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_63_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_64(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_64_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_65(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_65_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_66(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_66_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_67(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_67_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_68(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_68_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_69(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_69_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_70(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_70_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_71(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_71_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_72(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_72_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_73(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_73_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_74(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_74_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_75(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_75_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_76(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_76_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_77(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_77_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_78(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_78_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_79(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_79_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_80(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_80_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_81(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_81_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_82(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_82_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_83(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_83_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_84(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_84_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_85(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_85_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_86(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_86_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_87(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_87_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_88(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_88_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_89(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_89_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_90(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_90_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_91(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_91_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_92(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_92_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_93(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_93_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_94(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_94_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_95(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_95_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_96(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_96_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_97(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_97_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_98(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_98_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_99(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_99_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_100(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_100_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_101(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_101_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_102(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_102_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_103(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_103_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_104(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_104_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_105(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_105_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_106(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_106_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_107(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_107_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_108(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_108_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_109(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_109_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_110(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_110_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_111(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_111_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_112(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_112_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_113(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_113_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_114(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_114_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_115(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_115_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_116(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_116_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_117(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_117_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_118(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_118_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_119(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_119_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_120(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_120_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_121(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_121_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_122(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_122_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_123(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_123_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_124(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_124_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_125(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_125_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_126(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_126_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_127(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_127_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_128(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_128_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_129(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_129_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_130(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_130_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_131(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_131_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_132(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_132_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_133(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_133_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_134(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_134_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_135(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_135_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_136(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_136_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_137(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_137_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_138(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_138_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_139(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_139_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_140(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_140_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_141(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_141_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_142(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_142_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_143(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_143_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_144(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_144_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_145(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_145_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_146(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_146_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_147(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_147_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_148(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_148_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_149(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_149_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_150(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_150_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_151(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_151_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_152(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_152_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_153(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_153_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_154(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_154_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_155(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_155_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_156(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_156_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_157(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_157_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_158(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_158_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_159(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_159_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_160(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_160_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_161(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_161_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_162(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_162_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_163(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_163_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_164(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_164_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_165(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_165_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_166(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_166_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_167(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_167_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_168(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_168_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_169(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_169_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_170(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_170_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_171(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_171_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_172(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_172_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_173(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_173_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_174(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_174_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_175(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_175_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_176(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_176_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_177(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_177_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_178(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_178_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_179(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_179_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_180(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_180_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_181(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_181_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_182(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_182_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_183(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_183_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_184(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_184_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_185(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_185_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_186(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_186_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_187(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_187_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_188(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_188_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_189(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_189_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_190(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_190_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_191(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_191_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_192(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_192_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_193(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_193_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_194(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_194_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_195(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_195_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_196(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_196_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_197(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_197_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_198(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_198_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_199(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_199_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_200(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_200_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_201(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_201_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_202(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_202_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_203(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_203_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_204(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_204_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_205(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_205_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_206(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_206_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_207(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_207_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_208(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_208_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_209(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_209_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_210(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_210_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_211(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_211_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_212(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_212_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_213(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_213_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_214(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_214_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_215(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_215_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_216(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_216_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_217(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_217_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_218(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_218_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_219(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_219_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_220(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_220_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_221(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_221_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_222(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_222_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_223(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_223_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_224(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_224_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_225(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_225_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_226(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_226_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_227(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_227_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_228(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_228_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_229(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_229_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_230(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_230_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_231(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_231_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_232(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_232_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_233(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_233_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_234(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_234_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_235(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_235_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_236(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_236_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_237(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_237_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_238(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_238_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_239(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_239_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_240(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_240_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_241(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_241_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_242(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_242_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_243(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_243_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_244(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_244_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_245(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_245_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_246(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_246_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_247(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_247_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_248(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_248_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_249(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_249_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_250(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_250_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_251(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_251_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_252(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_252_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_253(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_253_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_254(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_254_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_255(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_255_D(o, s, l)\r
+# define BOOST_PP_LIST_FOLD_RIGHT_256(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_256_D(o, s, l)\r
+#\r
+# define BOOST_PP_LIST_FOLD_RIGHT_1_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(2, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_2, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_2_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(3, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_3, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_3_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(4, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_4, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_4_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(5, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_5, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_5_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(6, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_6, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_6_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(7, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_7, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_7_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(8, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_8, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_8_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(9, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_9, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_9_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(10, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_10, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_10_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(11, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_11, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_11_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(12, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_12, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_12_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(13, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_13, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_13_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(14, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_14, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_14_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(15, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_15, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_15_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(16, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_16, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_16_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(17, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_17, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_17_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(18, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_18, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_18_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(19, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_19, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_19_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(20, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_20, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_20_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(21, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_21, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_21_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(22, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_22, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_22_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(23, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_23, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_23_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(24, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_24, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_24_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(25, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_25, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_25_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(26, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_26, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_26_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(27, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_27, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_27_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(28, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_28, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_28_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(29, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_29, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_29_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(30, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_30, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_30_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(31, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_31, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_31_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(32, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_32, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_32_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(33, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_33, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_33_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(34, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_34, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_34_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(35, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_35, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_35_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(36, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_36, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_36_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(37, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_37, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_37_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(38, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_38, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_38_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(39, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_39, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_39_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(40, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_40, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_40_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(41, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_41, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_41_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(42, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_42, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_42_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(43, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_43, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_43_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(44, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_44, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_44_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(45, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_45, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_45_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(46, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_46, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_46_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(47, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_47, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_47_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(48, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_48, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_48_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(49, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_49, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_49_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(50, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_50, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_50_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(51, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_51, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_51_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(52, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_52, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_52_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(53, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_53, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_53_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(54, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_54, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_54_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(55, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_55, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_55_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(56, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_56, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_56_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(57, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_57, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_57_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(58, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_58, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_58_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(59, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_59, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_59_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(60, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_60, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_60_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(61, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_61, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_61_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(62, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_62, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_62_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(63, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_63, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_63_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(64, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_64, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_64_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(65, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_65, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_65_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(66, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_66, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_66_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(67, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_67, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_67_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(68, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_68, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_68_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(69, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_69, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_69_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(70, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_70, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_70_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(71, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_71, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_71_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(72, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_72, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_72_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(73, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_73, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_73_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(74, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_74, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_74_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(75, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_75, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_75_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(76, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_76, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_76_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(77, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_77, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_77_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(78, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_78, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_78_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(79, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_79, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_79_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(80, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_80, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_80_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(81, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_81, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_81_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(82, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_82, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_82_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(83, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_83, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_83_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(84, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_84, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_84_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(85, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_85, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_85_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(86, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_86, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_86_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(87, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_87, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_87_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(88, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_88, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_88_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(89, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_89, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_89_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(90, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_90, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_90_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(91, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_91, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_91_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(92, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_92, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_92_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(93, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_93, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_93_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(94, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_94, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_94_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(95, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_95, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_95_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(96, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_96, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_96_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(97, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_97, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_97_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(98, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_98, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_98_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(99, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_99, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_99_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(100, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_100, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_100_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(101, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_101, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_101_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(102, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_102, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_102_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(103, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_103, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_103_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(104, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_104, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_104_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(105, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_105, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_105_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(106, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_106, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_106_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(107, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_107, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_107_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(108, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_108, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_108_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(109, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_109, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_109_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(110, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_110, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_110_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(111, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_111, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_111_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(112, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_112, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_112_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(113, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_113, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_113_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(114, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_114, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_114_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(115, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_115, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_115_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(116, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_116, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_116_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(117, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_117, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_117_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(118, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_118, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_118_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(119, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_119, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_119_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(120, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_120, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_120_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(121, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_121, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_121_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(122, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_122, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_122_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(123, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_123, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_123_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(124, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_124, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_124_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(125, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_125, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_125_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(126, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_126, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_126_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(127, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_127, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_127_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(128, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_128, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_128_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(129, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_129, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_129_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(130, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_130, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_130_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(131, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_131, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_131_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(132, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_132, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_132_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(133, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_133, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_133_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(134, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_134, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_134_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(135, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_135, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_135_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(136, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_136, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_136_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(137, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_137, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_137_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(138, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_138, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_138_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(139, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_139, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_139_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(140, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_140, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_140_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(141, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_141, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_141_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(142, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_142, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_142_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(143, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_143, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_143_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(144, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_144, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_144_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(145, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_145, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_145_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(146, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_146, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_146_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(147, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_147, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_147_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(148, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_148, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_148_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(149, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_149, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_149_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(150, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_150, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_150_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(151, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_151, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_151_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(152, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_152, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_152_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(153, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_153, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_153_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(154, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_154, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_154_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(155, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_155, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_155_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(156, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_156, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_156_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(157, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_157, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_157_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(158, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_158, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_158_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(159, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_159, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_159_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(160, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_160, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_160_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(161, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_161, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_161_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(162, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_162, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_162_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(163, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_163, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_163_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(164, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_164, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_164_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(165, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_165, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_165_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(166, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_166, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_166_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(167, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_167, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_167_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(168, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_168, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_168_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(169, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_169, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_169_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(170, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_170, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_170_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(171, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_171, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_171_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(172, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_172, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_172_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(173, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_173, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_173_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(174, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_174, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_174_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(175, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_175, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_175_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(176, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_176, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_176_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(177, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_177, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_177_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(178, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_178, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_178_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(179, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_179, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_179_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(180, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_180, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_180_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(181, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_181, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_181_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(182, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_182, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_182_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(183, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_183, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_183_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(184, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_184, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_184_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(185, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_185, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_185_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(186, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_186, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_186_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(187, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_187, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_187_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(188, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_188, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_188_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(189, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_189, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_189_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(190, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_190, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_190_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(191, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_191, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_191_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(192, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_192, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_192_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(193, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_193, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_193_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(194, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_194, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_194_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(195, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_195, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_195_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(196, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_196, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_196_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(197, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_197, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_197_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(198, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_198, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_198_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(199, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_199, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_199_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(200, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_200, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_200_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(201, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_201, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_201_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(202, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_202, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_202_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(203, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_203, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_203_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(204, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_204, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_204_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(205, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_205, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_205_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(206, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_206, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_206_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(207, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_207, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_207_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(208, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_208, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_208_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(209, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_209, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_209_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(210, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_210, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_210_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(211, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_211, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_211_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(212, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_212, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_212_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(213, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_213, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_213_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(214, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_214, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_214_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(215, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_215, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_215_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(216, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_216, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_216_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(217, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_217, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_217_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(218, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_218, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_218_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(219, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_219, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_219_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(220, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_220, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_220_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(221, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_221, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_221_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(222, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_222, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_222_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(223, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_223, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_223_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(224, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_224, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_224_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(225, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_225, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_225_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(226, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_226, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_226_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(227, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_227, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_227_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(228, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_228, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_228_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(229, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_229, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_229_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(230, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_230, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_230_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(231, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_231, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_231_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(232, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_232, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_232_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(233, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_233, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_233_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(234, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_234, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_234_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(235, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_235, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_235_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(236, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_236, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_236_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(237, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_237, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_237_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(238, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_238, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_238_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(239, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_239, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_239_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(240, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_240, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_240_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(241, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_241, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_241_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(242, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_242, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_242_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(243, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_243, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_243_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(244, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_244, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_244_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(245, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_245, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_245_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(246, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_246, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_246_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(247, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_247, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_247_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(248, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_248, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_248_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(249, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_249, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_249_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(250, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_250, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_250_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(251, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_251, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_251_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(252, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_252, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_252_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(253, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_253, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_253_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(254, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_254, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_254_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(255, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_255, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_255_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(256, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_256, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+# define BOOST_PP_LIST_FOLD_RIGHT_256_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(257, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_257, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))\r
+#\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_NIL 1\r
+#\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_1(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_2(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_3(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_4(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_5(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_6(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_7(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_8(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_9(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_10(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_11(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_12(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_13(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_14(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_15(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_16(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_17(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_18(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_19(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_20(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_21(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_22(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_23(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_24(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_25(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_26(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_27(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_28(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_29(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_30(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_31(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_32(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_33(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_34(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_35(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_36(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_37(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_38(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_39(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_40(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_41(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_42(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_43(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_44(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_45(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_46(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_47(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_48(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_49(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_50(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_51(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_52(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_53(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_54(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_55(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_56(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_57(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_58(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_59(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_60(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_61(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_62(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_63(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_64(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_65(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_66(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_67(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_68(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_69(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_70(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_71(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_72(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_73(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_74(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_75(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_76(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_77(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_78(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_79(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_80(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_81(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_82(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_83(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_84(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_85(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_86(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_87(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_88(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_89(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_90(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_91(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_92(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_93(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_94(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_95(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_96(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_97(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_98(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_99(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_100(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_101(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_102(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_103(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_104(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_105(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_106(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_107(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_108(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_109(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_110(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_111(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_112(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_113(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_114(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_115(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_116(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_117(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_118(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_119(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_120(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_121(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_122(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_123(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_124(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_125(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_126(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_127(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_128(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_129(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_130(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_131(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_132(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_133(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_134(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_135(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_136(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_137(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_138(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_139(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_140(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_141(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_142(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_143(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_144(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_145(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_146(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_147(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_148(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_149(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_150(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_151(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_152(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_153(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_154(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_155(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_156(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_157(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_158(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_159(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_160(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_161(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_162(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_163(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_164(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_165(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_166(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_167(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_168(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_169(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_170(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_171(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_172(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_173(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_174(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_175(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_176(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_177(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_178(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_179(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_180(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_181(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_182(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_183(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_184(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_185(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_186(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_187(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_188(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_189(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_190(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_191(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_192(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_193(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_194(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_195(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_196(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_197(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_198(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_199(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_200(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_201(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_202(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_203(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_204(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_205(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_206(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_207(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_208(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_209(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_210(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_211(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_212(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_213(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_214(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_215(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_216(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_217(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_218(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_219(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_220(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_221(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_222(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_223(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_224(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_225(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_226(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_227(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_228(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_229(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_230(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_231(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_232(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_233(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_234(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_235(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_236(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_237(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_238(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_239(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_240(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_241(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_242(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_243(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_244(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_245(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_246(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_247(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_248(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_249(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_250(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_251(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_252(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_253(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_254(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_255(o, s, l) 0\r
+# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_256(o, s, l) 0\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/logical/bitnor.hpp b/boost/boost/preprocessor/logical/bitnor.hpp
new file mode 100644 (file)
index 0000000..99c3b33
--- /dev/null
@@ -0,0 +1,38 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_LOGICAL_BITNOR_HPP\r
+# define BOOST_PREPROCESSOR_LOGICAL_BITNOR_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+#\r
+# /* BOOST_PP_BITNOR */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
+#    define BOOST_PP_BITNOR(x, y) BOOST_PP_BITNOR_I(x, y)\r
+# else\r
+#    define BOOST_PP_BITNOR(x, y) BOOST_PP_BITNOR_OO((x, y))\r
+#    define BOOST_PP_BITNOR_OO(par) BOOST_PP_BITNOR_I ## par\r
+# endif\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()\r
+#    define BOOST_PP_BITNOR_I(x, y) BOOST_PP_BITNOR_ ## x ## y\r
+# else\r
+#    define BOOST_PP_BITNOR_I(x, y) BOOST_PP_BITNOR_ID(BOOST_PP_BITNOR_ ## x ## y)\r
+#    define BOOST_PP_BITNOR_ID(id) id\r
+# endif\r
+#\r
+# define BOOST_PP_BITNOR_00 1\r
+# define BOOST_PP_BITNOR_01 0\r
+# define BOOST_PP_BITNOR_10 0\r
+# define BOOST_PP_BITNOR_11 0\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/logical/bitor.hpp b/boost/boost/preprocessor/logical/bitor.hpp
new file mode 100644 (file)
index 0000000..806e3c7
--- /dev/null
@@ -0,0 +1,38 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_LOGICAL_BITOR_HPP\r
+# define BOOST_PREPROCESSOR_LOGICAL_BITOR_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+#\r
+# /* BOOST_PP_BITOR */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
+#    define BOOST_PP_BITOR(x, y) BOOST_PP_BITOR_I(x, y)\r
+# else\r
+#    define BOOST_PP_BITOR(x, y) BOOST_PP_BITOR_OO((x, y))\r
+#    define BOOST_PP_BITOR_OO(par) BOOST_PP_BITOR_I ## par\r
+# endif\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()\r
+#    define BOOST_PP_BITOR_I(x, y) BOOST_PP_BITOR_ ## x ## y\r
+# else\r
+#    define BOOST_PP_BITOR_I(x, y) BOOST_PP_BITOR_ID(BOOST_PP_BITOR_ ## x ## y)\r
+#    define BOOST_PP_BITOR_ID(id) id\r
+# endif\r
+#\r
+# define BOOST_PP_BITOR_00 0\r
+# define BOOST_PP_BITOR_01 1\r
+# define BOOST_PP_BITOR_10 1\r
+# define BOOST_PP_BITOR_11 1\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/logical/bitxor.hpp b/boost/boost/preprocessor/logical/bitxor.hpp
new file mode 100644 (file)
index 0000000..3e393c2
--- /dev/null
@@ -0,0 +1,38 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_LOGICAL_BITXOR_HPP\r
+# define BOOST_PREPROCESSOR_LOGICAL_BITXOR_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+#\r
+# /* BOOST_PP_BITXOR */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
+#    define BOOST_PP_BITXOR(x, y) BOOST_PP_BITXOR_I(x, y)\r
+# else\r
+#    define BOOST_PP_BITXOR(x, y) BOOST_PP_BITXOR_OO((x, y))\r
+#    define BOOST_PP_BITXOR_OO(par) BOOST_PP_BITXOR_I ## par\r
+# endif\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()\r
+#    define BOOST_PP_BITXOR_I(x, y) BOOST_PP_BITXOR_ ## x ## y\r
+# else\r
+#    define BOOST_PP_BITXOR_I(x, y) BOOST_PP_BITXOR_ID(BOOST_PP_BITXOR_ ## x ## y)\r
+#    define BOOST_PP_BITXOR_ID(id) id\r
+# endif\r
+#\r
+# define BOOST_PP_BITXOR_00 0\r
+# define BOOST_PP_BITXOR_01 1\r
+# define BOOST_PP_BITXOR_10 1\r
+# define BOOST_PP_BITXOR_11 0\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/punctuation.hpp b/boost/boost/preprocessor/punctuation.hpp
new file mode 100644 (file)
index 0000000..f48db7f
--- /dev/null
@@ -0,0 +1,20 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_PUNCTUATION_HPP\r
+# define BOOST_PREPROCESSOR_PUNCTUATION_HPP\r
+#\r
+# include <boost/preprocessor/punctuation/comma.hpp>\r
+# include <boost/preprocessor/punctuation/comma_if.hpp>\r
+# include <boost/preprocessor/punctuation/paren.hpp>\r
+# include <boost/preprocessor/punctuation/paren_if.hpp>\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/punctuation/paren.hpp b/boost/boost/preprocessor/punctuation/paren.hpp
new file mode 100644 (file)
index 0000000..66b25d8
--- /dev/null
@@ -0,0 +1,23 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_PUNCTUATION_PAREN_HPP\r
+# define BOOST_PREPROCESSOR_PUNCTUATION_PAREN_HPP\r
+#\r
+# /* BOOST_PP_LPAREN */\r
+#\r
+# define BOOST_PP_LPAREN() (\r
+#\r
+# /* BOOST_PP_RPAREN */\r
+#\r
+# define BOOST_PP_RPAREN() )\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/punctuation/paren_if.hpp b/boost/boost/preprocessor/punctuation/paren_if.hpp
new file mode 100644 (file)
index 0000000..665b8be
--- /dev/null
@@ -0,0 +1,38 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_PUNCTUATION_PAREN_IF_HPP\r
+# define BOOST_PREPROCESSOR_PUNCTUATION_PAREN_IF_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/control/if.hpp>\r
+# include <boost/preprocessor/facilities/empty.hpp>\r
+# include <boost/preprocessor/punctuation/paren.hpp>\r
+#\r
+# /* BOOST_PP_LPAREN_IF */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_LPAREN_IF(cond) BOOST_PP_IF(cond, BOOST_PP_LPAREN, BOOST_PP_EMPTY)()\r
+# else\r
+#    define BOOST_PP_LPAREN_IF(cond) BOOST_PP_LPAREN_IF_I(cond)\r
+#    define BOOST_PP_LPAREN_IF_I(cond) BOOST_PP_IF(cond, BOOST_PP_LPAREN, BOOST_PP_EMPTY)()\r
+# endif\r
+#\r
+# /* BOOST_PP_RPAREN_IF */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_RPAREN_IF(cond) BOOST_PP_IF(cond, BOOST_PP_RPAREN, BOOST_PP_EMPTY)()\r
+# else\r
+#    define BOOST_PP_RPAREN_IF(cond) BOOST_PP_RPAREN_IF_I(cond)\r
+#    define BOOST_PP_RPAREN_IF_I(cond) BOOST_PP_IF(cond, BOOST_PP_RPAREN, BOOST_PP_EMPTY)()\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/repetition.hpp b/boost/boost/preprocessor/repetition.hpp
new file mode 100644 (file)
index 0000000..33f74ee
--- /dev/null
@@ -0,0 +1,32 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_REPETITION_HPP\r
+# define BOOST_PREPROCESSOR_REPETITION_HPP\r
+#\r
+# include <boost/preprocessor/repetition/deduce_r.hpp>\r
+# include <boost/preprocessor/repetition/deduce_z.hpp>\r
+# include <boost/preprocessor/repetition/enum.hpp>\r
+# include <boost/preprocessor/repetition/enum_binary_params.hpp>\r
+# include <boost/preprocessor/repetition/enum_params.hpp>\r
+# include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>\r
+# include <boost/preprocessor/repetition/enum_params_with_defaults.hpp>\r
+# include <boost/preprocessor/repetition/enum_shifted.hpp>\r
+# include <boost/preprocessor/repetition/enum_shifted_binary_params.hpp>\r
+# include <boost/preprocessor/repetition/enum_shifted_params.hpp>\r
+# include <boost/preprocessor/repetition/enum_trailing.hpp>\r
+# include <boost/preprocessor/repetition/enum_trailing_binary_params.hpp>\r
+# include <boost/preprocessor/repetition/enum_trailing_params.hpp>\r
+# include <boost/preprocessor/repetition/for.hpp>\r
+# include <boost/preprocessor/repetition/repeat.hpp>\r
+# include <boost/preprocessor/repetition/repeat_from_to.hpp>\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/repetition/deduce_r.hpp b/boost/boost/preprocessor/repetition/deduce_r.hpp
new file mode 100644 (file)
index 0000000..b90cb00
--- /dev/null
@@ -0,0 +1,22 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_REPETITION_DEDUCE_R_HPP\r
+# define BOOST_PREPROCESSOR_REPETITION_DEDUCE_R_HPP\r
+#\r
+# include <boost/preprocessor/detail/auto_rec.hpp>\r
+# include <boost/preprocessor/repetition/for.hpp>\r
+#\r
+# /* BOOST_PP_DEDUCE_R */\r
+#\r
+# define BOOST_PP_DEDUCE_R() BOOST_PP_AUTO_REC(BOOST_PP_FOR_P, 256)\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/repetition/deduce_z.hpp b/boost/boost/preprocessor/repetition/deduce_z.hpp
new file mode 100644 (file)
index 0000000..a1215d0
--- /dev/null
@@ -0,0 +1,22 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_REPETITION_DEDUCE_Z_HPP\r
+# define BOOST_PREPROCESSOR_REPETITION_DEDUCE_Z_HPP\r
+#\r
+# include <boost/preprocessor/detail/auto_rec.hpp>\r
+# include <boost/preprocessor/repetition/repeat.hpp>\r
+#\r
+# /* BOOST_PP_DEDUCE_Z */\r
+#\r
+# define BOOST_PP_DEDUCE_Z() BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4)\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/repetition/detail/dmc/for.hpp b/boost/boost/preprocessor/repetition/detail/dmc/for.hpp
new file mode 100644 (file)
index 0000000..70e506e
--- /dev/null
@@ -0,0 +1,536 @@
+# /* Copyright (C) 2001\r
+#  * Housemarque Oy\r
+#  * http://www.housemarque.com\r
+#  *\r
+#  * Distributed under the Boost Software License, Version 1.0. (See\r
+#  * accompanying file LICENSE_1_0.txt or copy at\r
+#  * http://www.boost.org/LICENSE_1_0.txt)\r
+#  */\r
+#\r
+# /* Revised by Paul Mensonides (2002) */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP\r
+# define BOOST_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP\r
+#\r
+# include <boost/preprocessor/control/expr_iif.hpp>\r
+# include <boost/preprocessor/control/iif.hpp>\r
+# include <boost/preprocessor/logical/bool.hpp>\r
+# include <boost/preprocessor/tuple/eat.hpp>\r
+#\r
+# define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_FOR_1_C(BOOST_PP_BOOL(p##(2, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_2(s, p, o, m) BOOST_PP_FOR_2_C(BOOST_PP_BOOL(p##(3, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_3(s, p, o, m) BOOST_PP_FOR_3_C(BOOST_PP_BOOL(p##(4, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_4(s, p, o, m) BOOST_PP_FOR_4_C(BOOST_PP_BOOL(p##(5, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_5(s, p, o, m) BOOST_PP_FOR_5_C(BOOST_PP_BOOL(p##(6, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_6(s, p, o, m) BOOST_PP_FOR_6_C(BOOST_PP_BOOL(p##(7, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_7(s, p, o, m) BOOST_PP_FOR_7_C(BOOST_PP_BOOL(p##(8, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_8(s, p, o, m) BOOST_PP_FOR_8_C(BOOST_PP_BOOL(p##(9, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_9(s, p, o, m) BOOST_PP_FOR_9_C(BOOST_PP_BOOL(p##(10, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_10(s, p, o, m) BOOST_PP_FOR_10_C(BOOST_PP_BOOL(p##(11, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_11(s, p, o, m) BOOST_PP_FOR_11_C(BOOST_PP_BOOL(p##(12, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_12(s, p, o, m) BOOST_PP_FOR_12_C(BOOST_PP_BOOL(p##(13, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_13(s, p, o, m) BOOST_PP_FOR_13_C(BOOST_PP_BOOL(p##(14, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_14(s, p, o, m) BOOST_PP_FOR_14_C(BOOST_PP_BOOL(p##(15, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_15(s, p, o, m) BOOST_PP_FOR_15_C(BOOST_PP_BOOL(p##(16, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_16(s, p, o, m) BOOST_PP_FOR_16_C(BOOST_PP_BOOL(p##(17, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_17(s, p, o, m) BOOST_PP_FOR_17_C(BOOST_PP_BOOL(p##(18, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_18(s, p, o, m) BOOST_PP_FOR_18_C(BOOST_PP_BOOL(p##(19, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_19(s, p, o, m) BOOST_PP_FOR_19_C(BOOST_PP_BOOL(p##(20, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_20(s, p, o, m) BOOST_PP_FOR_20_C(BOOST_PP_BOOL(p##(21, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_21(s, p, o, m) BOOST_PP_FOR_21_C(BOOST_PP_BOOL(p##(22, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_22(s, p, o, m) BOOST_PP_FOR_22_C(BOOST_PP_BOOL(p##(23, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_23(s, p, o, m) BOOST_PP_FOR_23_C(BOOST_PP_BOOL(p##(24, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_24(s, p, o, m) BOOST_PP_FOR_24_C(BOOST_PP_BOOL(p##(25, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_25(s, p, o, m) BOOST_PP_FOR_25_C(BOOST_PP_BOOL(p##(26, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_26(s, p, o, m) BOOST_PP_FOR_26_C(BOOST_PP_BOOL(p##(27, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_27(s, p, o, m) BOOST_PP_FOR_27_C(BOOST_PP_BOOL(p##(28, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_28(s, p, o, m) BOOST_PP_FOR_28_C(BOOST_PP_BOOL(p##(29, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_29(s, p, o, m) BOOST_PP_FOR_29_C(BOOST_PP_BOOL(p##(30, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_30(s, p, o, m) BOOST_PP_FOR_30_C(BOOST_PP_BOOL(p##(31, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_31(s, p, o, m) BOOST_PP_FOR_31_C(BOOST_PP_BOOL(p##(32, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_32(s, p, o, m) BOOST_PP_FOR_32_C(BOOST_PP_BOOL(p##(33, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_33(s, p, o, m) BOOST_PP_FOR_33_C(BOOST_PP_BOOL(p##(34, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_34(s, p, o, m) BOOST_PP_FOR_34_C(BOOST_PP_BOOL(p##(35, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_35(s, p, o, m) BOOST_PP_FOR_35_C(BOOST_PP_BOOL(p##(36, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_36(s, p, o, m) BOOST_PP_FOR_36_C(BOOST_PP_BOOL(p##(37, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_37(s, p, o, m) BOOST_PP_FOR_37_C(BOOST_PP_BOOL(p##(38, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_38(s, p, o, m) BOOST_PP_FOR_38_C(BOOST_PP_BOOL(p##(39, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_39(s, p, o, m) BOOST_PP_FOR_39_C(BOOST_PP_BOOL(p##(40, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_40(s, p, o, m) BOOST_PP_FOR_40_C(BOOST_PP_BOOL(p##(41, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_41(s, p, o, m) BOOST_PP_FOR_41_C(BOOST_PP_BOOL(p##(42, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_42(s, p, o, m) BOOST_PP_FOR_42_C(BOOST_PP_BOOL(p##(43, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_43(s, p, o, m) BOOST_PP_FOR_43_C(BOOST_PP_BOOL(p##(44, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_44(s, p, o, m) BOOST_PP_FOR_44_C(BOOST_PP_BOOL(p##(45, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_45(s, p, o, m) BOOST_PP_FOR_45_C(BOOST_PP_BOOL(p##(46, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_46(s, p, o, m) BOOST_PP_FOR_46_C(BOOST_PP_BOOL(p##(47, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_47(s, p, o, m) BOOST_PP_FOR_47_C(BOOST_PP_BOOL(p##(48, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_48(s, p, o, m) BOOST_PP_FOR_48_C(BOOST_PP_BOOL(p##(49, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_49(s, p, o, m) BOOST_PP_FOR_49_C(BOOST_PP_BOOL(p##(50, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_50(s, p, o, m) BOOST_PP_FOR_50_C(BOOST_PP_BOOL(p##(51, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_51(s, p, o, m) BOOST_PP_FOR_51_C(BOOST_PP_BOOL(p##(52, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_52(s, p, o, m) BOOST_PP_FOR_52_C(BOOST_PP_BOOL(p##(53, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_53(s, p, o, m) BOOST_PP_FOR_53_C(BOOST_PP_BOOL(p##(54, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_54(s, p, o, m) BOOST_PP_FOR_54_C(BOOST_PP_BOOL(p##(55, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_55(s, p, o, m) BOOST_PP_FOR_55_C(BOOST_PP_BOOL(p##(56, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_56(s, p, o, m) BOOST_PP_FOR_56_C(BOOST_PP_BOOL(p##(57, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_57(s, p, o, m) BOOST_PP_FOR_57_C(BOOST_PP_BOOL(p##(58, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_58(s, p, o, m) BOOST_PP_FOR_58_C(BOOST_PP_BOOL(p##(59, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_59(s, p, o, m) BOOST_PP_FOR_59_C(BOOST_PP_BOOL(p##(60, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_60(s, p, o, m) BOOST_PP_FOR_60_C(BOOST_PP_BOOL(p##(61, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_61(s, p, o, m) BOOST_PP_FOR_61_C(BOOST_PP_BOOL(p##(62, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_62(s, p, o, m) BOOST_PP_FOR_62_C(BOOST_PP_BOOL(p##(63, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_63(s, p, o, m) BOOST_PP_FOR_63_C(BOOST_PP_BOOL(p##(64, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_64(s, p, o, m) BOOST_PP_FOR_64_C(BOOST_PP_BOOL(p##(65, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_65(s, p, o, m) BOOST_PP_FOR_65_C(BOOST_PP_BOOL(p##(66, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_66(s, p, o, m) BOOST_PP_FOR_66_C(BOOST_PP_BOOL(p##(67, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_67(s, p, o, m) BOOST_PP_FOR_67_C(BOOST_PP_BOOL(p##(68, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_68(s, p, o, m) BOOST_PP_FOR_68_C(BOOST_PP_BOOL(p##(69, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_69(s, p, o, m) BOOST_PP_FOR_69_C(BOOST_PP_BOOL(p##(70, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_70(s, p, o, m) BOOST_PP_FOR_70_C(BOOST_PP_BOOL(p##(71, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_71(s, p, o, m) BOOST_PP_FOR_71_C(BOOST_PP_BOOL(p##(72, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_72(s, p, o, m) BOOST_PP_FOR_72_C(BOOST_PP_BOOL(p##(73, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_73(s, p, o, m) BOOST_PP_FOR_73_C(BOOST_PP_BOOL(p##(74, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_74(s, p, o, m) BOOST_PP_FOR_74_C(BOOST_PP_BOOL(p##(75, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_75(s, p, o, m) BOOST_PP_FOR_75_C(BOOST_PP_BOOL(p##(76, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_76(s, p, o, m) BOOST_PP_FOR_76_C(BOOST_PP_BOOL(p##(77, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_77(s, p, o, m) BOOST_PP_FOR_77_C(BOOST_PP_BOOL(p##(78, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_78(s, p, o, m) BOOST_PP_FOR_78_C(BOOST_PP_BOOL(p##(79, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_79(s, p, o, m) BOOST_PP_FOR_79_C(BOOST_PP_BOOL(p##(80, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_80(s, p, o, m) BOOST_PP_FOR_80_C(BOOST_PP_BOOL(p##(81, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_81(s, p, o, m) BOOST_PP_FOR_81_C(BOOST_PP_BOOL(p##(82, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_82(s, p, o, m) BOOST_PP_FOR_82_C(BOOST_PP_BOOL(p##(83, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_83(s, p, o, m) BOOST_PP_FOR_83_C(BOOST_PP_BOOL(p##(84, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_84(s, p, o, m) BOOST_PP_FOR_84_C(BOOST_PP_BOOL(p##(85, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_85(s, p, o, m) BOOST_PP_FOR_85_C(BOOST_PP_BOOL(p##(86, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_86(s, p, o, m) BOOST_PP_FOR_86_C(BOOST_PP_BOOL(p##(87, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_87(s, p, o, m) BOOST_PP_FOR_87_C(BOOST_PP_BOOL(p##(88, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_88(s, p, o, m) BOOST_PP_FOR_88_C(BOOST_PP_BOOL(p##(89, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_89(s, p, o, m) BOOST_PP_FOR_89_C(BOOST_PP_BOOL(p##(90, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_90(s, p, o, m) BOOST_PP_FOR_90_C(BOOST_PP_BOOL(p##(91, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_91(s, p, o, m) BOOST_PP_FOR_91_C(BOOST_PP_BOOL(p##(92, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_92(s, p, o, m) BOOST_PP_FOR_92_C(BOOST_PP_BOOL(p##(93, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_93(s, p, o, m) BOOST_PP_FOR_93_C(BOOST_PP_BOOL(p##(94, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_94(s, p, o, m) BOOST_PP_FOR_94_C(BOOST_PP_BOOL(p##(95, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_95(s, p, o, m) BOOST_PP_FOR_95_C(BOOST_PP_BOOL(p##(96, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_96(s, p, o, m) BOOST_PP_FOR_96_C(BOOST_PP_BOOL(p##(97, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_97(s, p, o, m) BOOST_PP_FOR_97_C(BOOST_PP_BOOL(p##(98, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_98(s, p, o, m) BOOST_PP_FOR_98_C(BOOST_PP_BOOL(p##(99, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_99(s, p, o, m) BOOST_PP_FOR_99_C(BOOST_PP_BOOL(p##(100, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_100(s, p, o, m) BOOST_PP_FOR_100_C(BOOST_PP_BOOL(p##(101, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_101(s, p, o, m) BOOST_PP_FOR_101_C(BOOST_PP_BOOL(p##(102, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_102(s, p, o, m) BOOST_PP_FOR_102_C(BOOST_PP_BOOL(p##(103, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_103(s, p, o, m) BOOST_PP_FOR_103_C(BOOST_PP_BOOL(p##(104, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_104(s, p, o, m) BOOST_PP_FOR_104_C(BOOST_PP_BOOL(p##(105, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_105(s, p, o, m) BOOST_PP_FOR_105_C(BOOST_PP_BOOL(p##(106, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_106(s, p, o, m) BOOST_PP_FOR_106_C(BOOST_PP_BOOL(p##(107, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_107(s, p, o, m) BOOST_PP_FOR_107_C(BOOST_PP_BOOL(p##(108, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_108(s, p, o, m) BOOST_PP_FOR_108_C(BOOST_PP_BOOL(p##(109, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_109(s, p, o, m) BOOST_PP_FOR_109_C(BOOST_PP_BOOL(p##(110, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_110(s, p, o, m) BOOST_PP_FOR_110_C(BOOST_PP_BOOL(p##(111, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_111(s, p, o, m) BOOST_PP_FOR_111_C(BOOST_PP_BOOL(p##(112, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_112(s, p, o, m) BOOST_PP_FOR_112_C(BOOST_PP_BOOL(p##(113, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_113(s, p, o, m) BOOST_PP_FOR_113_C(BOOST_PP_BOOL(p##(114, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_114(s, p, o, m) BOOST_PP_FOR_114_C(BOOST_PP_BOOL(p##(115, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_115(s, p, o, m) BOOST_PP_FOR_115_C(BOOST_PP_BOOL(p##(116, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_116(s, p, o, m) BOOST_PP_FOR_116_C(BOOST_PP_BOOL(p##(117, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_117(s, p, o, m) BOOST_PP_FOR_117_C(BOOST_PP_BOOL(p##(118, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_118(s, p, o, m) BOOST_PP_FOR_118_C(BOOST_PP_BOOL(p##(119, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_119(s, p, o, m) BOOST_PP_FOR_119_C(BOOST_PP_BOOL(p##(120, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_120(s, p, o, m) BOOST_PP_FOR_120_C(BOOST_PP_BOOL(p##(121, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_121(s, p, o, m) BOOST_PP_FOR_121_C(BOOST_PP_BOOL(p##(122, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_122(s, p, o, m) BOOST_PP_FOR_122_C(BOOST_PP_BOOL(p##(123, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_123(s, p, o, m) BOOST_PP_FOR_123_C(BOOST_PP_BOOL(p##(124, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_124(s, p, o, m) BOOST_PP_FOR_124_C(BOOST_PP_BOOL(p##(125, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_125(s, p, o, m) BOOST_PP_FOR_125_C(BOOST_PP_BOOL(p##(126, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_126(s, p, o, m) BOOST_PP_FOR_126_C(BOOST_PP_BOOL(p##(127, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_127(s, p, o, m) BOOST_PP_FOR_127_C(BOOST_PP_BOOL(p##(128, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_128(s, p, o, m) BOOST_PP_FOR_128_C(BOOST_PP_BOOL(p##(129, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_129(s, p, o, m) BOOST_PP_FOR_129_C(BOOST_PP_BOOL(p##(130, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_130(s, p, o, m) BOOST_PP_FOR_130_C(BOOST_PP_BOOL(p##(131, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_131(s, p, o, m) BOOST_PP_FOR_131_C(BOOST_PP_BOOL(p##(132, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_132(s, p, o, m) BOOST_PP_FOR_132_C(BOOST_PP_BOOL(p##(133, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_133(s, p, o, m) BOOST_PP_FOR_133_C(BOOST_PP_BOOL(p##(134, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_134(s, p, o, m) BOOST_PP_FOR_134_C(BOOST_PP_BOOL(p##(135, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_135(s, p, o, m) BOOST_PP_FOR_135_C(BOOST_PP_BOOL(p##(136, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_136(s, p, o, m) BOOST_PP_FOR_136_C(BOOST_PP_BOOL(p##(137, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_137(s, p, o, m) BOOST_PP_FOR_137_C(BOOST_PP_BOOL(p##(138, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_138(s, p, o, m) BOOST_PP_FOR_138_C(BOOST_PP_BOOL(p##(139, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_139(s, p, o, m) BOOST_PP_FOR_139_C(BOOST_PP_BOOL(p##(140, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_140(s, p, o, m) BOOST_PP_FOR_140_C(BOOST_PP_BOOL(p##(141, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_141(s, p, o, m) BOOST_PP_FOR_141_C(BOOST_PP_BOOL(p##(142, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_142(s, p, o, m) BOOST_PP_FOR_142_C(BOOST_PP_BOOL(p##(143, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_143(s, p, o, m) BOOST_PP_FOR_143_C(BOOST_PP_BOOL(p##(144, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_144(s, p, o, m) BOOST_PP_FOR_144_C(BOOST_PP_BOOL(p##(145, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_145(s, p, o, m) BOOST_PP_FOR_145_C(BOOST_PP_BOOL(p##(146, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_146(s, p, o, m) BOOST_PP_FOR_146_C(BOOST_PP_BOOL(p##(147, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_147(s, p, o, m) BOOST_PP_FOR_147_C(BOOST_PP_BOOL(p##(148, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_148(s, p, o, m) BOOST_PP_FOR_148_C(BOOST_PP_BOOL(p##(149, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_149(s, p, o, m) BOOST_PP_FOR_149_C(BOOST_PP_BOOL(p##(150, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_150(s, p, o, m) BOOST_PP_FOR_150_C(BOOST_PP_BOOL(p##(151, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_151(s, p, o, m) BOOST_PP_FOR_151_C(BOOST_PP_BOOL(p##(152, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_152(s, p, o, m) BOOST_PP_FOR_152_C(BOOST_PP_BOOL(p##(153, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_153(s, p, o, m) BOOST_PP_FOR_153_C(BOOST_PP_BOOL(p##(154, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_154(s, p, o, m) BOOST_PP_FOR_154_C(BOOST_PP_BOOL(p##(155, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_155(s, p, o, m) BOOST_PP_FOR_155_C(BOOST_PP_BOOL(p##(156, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_156(s, p, o, m) BOOST_PP_FOR_156_C(BOOST_PP_BOOL(p##(157, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_157(s, p, o, m) BOOST_PP_FOR_157_C(BOOST_PP_BOOL(p##(158, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_158(s, p, o, m) BOOST_PP_FOR_158_C(BOOST_PP_BOOL(p##(159, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_159(s, p, o, m) BOOST_PP_FOR_159_C(BOOST_PP_BOOL(p##(160, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_160(s, p, o, m) BOOST_PP_FOR_160_C(BOOST_PP_BOOL(p##(161, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_161(s, p, o, m) BOOST_PP_FOR_161_C(BOOST_PP_BOOL(p##(162, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_162(s, p, o, m) BOOST_PP_FOR_162_C(BOOST_PP_BOOL(p##(163, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_163(s, p, o, m) BOOST_PP_FOR_163_C(BOOST_PP_BOOL(p##(164, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_164(s, p, o, m) BOOST_PP_FOR_164_C(BOOST_PP_BOOL(p##(165, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_165(s, p, o, m) BOOST_PP_FOR_165_C(BOOST_PP_BOOL(p##(166, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_166(s, p, o, m) BOOST_PP_FOR_166_C(BOOST_PP_BOOL(p##(167, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_167(s, p, o, m) BOOST_PP_FOR_167_C(BOOST_PP_BOOL(p##(168, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_168(s, p, o, m) BOOST_PP_FOR_168_C(BOOST_PP_BOOL(p##(169, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_169(s, p, o, m) BOOST_PP_FOR_169_C(BOOST_PP_BOOL(p##(170, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_170(s, p, o, m) BOOST_PP_FOR_170_C(BOOST_PP_BOOL(p##(171, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_171(s, p, o, m) BOOST_PP_FOR_171_C(BOOST_PP_BOOL(p##(172, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_172(s, p, o, m) BOOST_PP_FOR_172_C(BOOST_PP_BOOL(p##(173, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_173(s, p, o, m) BOOST_PP_FOR_173_C(BOOST_PP_BOOL(p##(174, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_174(s, p, o, m) BOOST_PP_FOR_174_C(BOOST_PP_BOOL(p##(175, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_175(s, p, o, m) BOOST_PP_FOR_175_C(BOOST_PP_BOOL(p##(176, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_176(s, p, o, m) BOOST_PP_FOR_176_C(BOOST_PP_BOOL(p##(177, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_177(s, p, o, m) BOOST_PP_FOR_177_C(BOOST_PP_BOOL(p##(178, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_178(s, p, o, m) BOOST_PP_FOR_178_C(BOOST_PP_BOOL(p##(179, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_179(s, p, o, m) BOOST_PP_FOR_179_C(BOOST_PP_BOOL(p##(180, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_180(s, p, o, m) BOOST_PP_FOR_180_C(BOOST_PP_BOOL(p##(181, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_181(s, p, o, m) BOOST_PP_FOR_181_C(BOOST_PP_BOOL(p##(182, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_182(s, p, o, m) BOOST_PP_FOR_182_C(BOOST_PP_BOOL(p##(183, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_183(s, p, o, m) BOOST_PP_FOR_183_C(BOOST_PP_BOOL(p##(184, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_184(s, p, o, m) BOOST_PP_FOR_184_C(BOOST_PP_BOOL(p##(185, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_185(s, p, o, m) BOOST_PP_FOR_185_C(BOOST_PP_BOOL(p##(186, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_186(s, p, o, m) BOOST_PP_FOR_186_C(BOOST_PP_BOOL(p##(187, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_187(s, p, o, m) BOOST_PP_FOR_187_C(BOOST_PP_BOOL(p##(188, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_188(s, p, o, m) BOOST_PP_FOR_188_C(BOOST_PP_BOOL(p##(189, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_189(s, p, o, m) BOOST_PP_FOR_189_C(BOOST_PP_BOOL(p##(190, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_190(s, p, o, m) BOOST_PP_FOR_190_C(BOOST_PP_BOOL(p##(191, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_191(s, p, o, m) BOOST_PP_FOR_191_C(BOOST_PP_BOOL(p##(192, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_192(s, p, o, m) BOOST_PP_FOR_192_C(BOOST_PP_BOOL(p##(193, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_193(s, p, o, m) BOOST_PP_FOR_193_C(BOOST_PP_BOOL(p##(194, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_194(s, p, o, m) BOOST_PP_FOR_194_C(BOOST_PP_BOOL(p##(195, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_195(s, p, o, m) BOOST_PP_FOR_195_C(BOOST_PP_BOOL(p##(196, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_196(s, p, o, m) BOOST_PP_FOR_196_C(BOOST_PP_BOOL(p##(197, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_197(s, p, o, m) BOOST_PP_FOR_197_C(BOOST_PP_BOOL(p##(198, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_198(s, p, o, m) BOOST_PP_FOR_198_C(BOOST_PP_BOOL(p##(199, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_199(s, p, o, m) BOOST_PP_FOR_199_C(BOOST_PP_BOOL(p##(200, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_200(s, p, o, m) BOOST_PP_FOR_200_C(BOOST_PP_BOOL(p##(201, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_201(s, p, o, m) BOOST_PP_FOR_201_C(BOOST_PP_BOOL(p##(202, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_202(s, p, o, m) BOOST_PP_FOR_202_C(BOOST_PP_BOOL(p##(203, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_203(s, p, o, m) BOOST_PP_FOR_203_C(BOOST_PP_BOOL(p##(204, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_204(s, p, o, m) BOOST_PP_FOR_204_C(BOOST_PP_BOOL(p##(205, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_205(s, p, o, m) BOOST_PP_FOR_205_C(BOOST_PP_BOOL(p##(206, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_206(s, p, o, m) BOOST_PP_FOR_206_C(BOOST_PP_BOOL(p##(207, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_207(s, p, o, m) BOOST_PP_FOR_207_C(BOOST_PP_BOOL(p##(208, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_208(s, p, o, m) BOOST_PP_FOR_208_C(BOOST_PP_BOOL(p##(209, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_209(s, p, o, m) BOOST_PP_FOR_209_C(BOOST_PP_BOOL(p##(210, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_210(s, p, o, m) BOOST_PP_FOR_210_C(BOOST_PP_BOOL(p##(211, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_211(s, p, o, m) BOOST_PP_FOR_211_C(BOOST_PP_BOOL(p##(212, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_212(s, p, o, m) BOOST_PP_FOR_212_C(BOOST_PP_BOOL(p##(213, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_213(s, p, o, m) BOOST_PP_FOR_213_C(BOOST_PP_BOOL(p##(214, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_214(s, p, o, m) BOOST_PP_FOR_214_C(BOOST_PP_BOOL(p##(215, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_215(s, p, o, m) BOOST_PP_FOR_215_C(BOOST_PP_BOOL(p##(216, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_216(s, p, o, m) BOOST_PP_FOR_216_C(BOOST_PP_BOOL(p##(217, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_217(s, p, o, m) BOOST_PP_FOR_217_C(BOOST_PP_BOOL(p##(218, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_218(s, p, o, m) BOOST_PP_FOR_218_C(BOOST_PP_BOOL(p##(219, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_219(s, p, o, m) BOOST_PP_FOR_219_C(BOOST_PP_BOOL(p##(220, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_220(s, p, o, m) BOOST_PP_FOR_220_C(BOOST_PP_BOOL(p##(221, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_221(s, p, o, m) BOOST_PP_FOR_221_C(BOOST_PP_BOOL(p##(222, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_222(s, p, o, m) BOOST_PP_FOR_222_C(BOOST_PP_BOOL(p##(223, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_223(s, p, o, m) BOOST_PP_FOR_223_C(BOOST_PP_BOOL(p##(224, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_224(s, p, o, m) BOOST_PP_FOR_224_C(BOOST_PP_BOOL(p##(225, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_225(s, p, o, m) BOOST_PP_FOR_225_C(BOOST_PP_BOOL(p##(226, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_226(s, p, o, m) BOOST_PP_FOR_226_C(BOOST_PP_BOOL(p##(227, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_227(s, p, o, m) BOOST_PP_FOR_227_C(BOOST_PP_BOOL(p##(228, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_228(s, p, o, m) BOOST_PP_FOR_228_C(BOOST_PP_BOOL(p##(229, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_229(s, p, o, m) BOOST_PP_FOR_229_C(BOOST_PP_BOOL(p##(230, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_230(s, p, o, m) BOOST_PP_FOR_230_C(BOOST_PP_BOOL(p##(231, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_231(s, p, o, m) BOOST_PP_FOR_231_C(BOOST_PP_BOOL(p##(232, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_232(s, p, o, m) BOOST_PP_FOR_232_C(BOOST_PP_BOOL(p##(233, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_233(s, p, o, m) BOOST_PP_FOR_233_C(BOOST_PP_BOOL(p##(234, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_234(s, p, o, m) BOOST_PP_FOR_234_C(BOOST_PP_BOOL(p##(235, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_235(s, p, o, m) BOOST_PP_FOR_235_C(BOOST_PP_BOOL(p##(236, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_236(s, p, o, m) BOOST_PP_FOR_236_C(BOOST_PP_BOOL(p##(237, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_237(s, p, o, m) BOOST_PP_FOR_237_C(BOOST_PP_BOOL(p##(238, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_238(s, p, o, m) BOOST_PP_FOR_238_C(BOOST_PP_BOOL(p##(239, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_239(s, p, o, m) BOOST_PP_FOR_239_C(BOOST_PP_BOOL(p##(240, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_240(s, p, o, m) BOOST_PP_FOR_240_C(BOOST_PP_BOOL(p##(241, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_241(s, p, o, m) BOOST_PP_FOR_241_C(BOOST_PP_BOOL(p##(242, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_242(s, p, o, m) BOOST_PP_FOR_242_C(BOOST_PP_BOOL(p##(243, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_243(s, p, o, m) BOOST_PP_FOR_243_C(BOOST_PP_BOOL(p##(244, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_244(s, p, o, m) BOOST_PP_FOR_244_C(BOOST_PP_BOOL(p##(245, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_245(s, p, o, m) BOOST_PP_FOR_245_C(BOOST_PP_BOOL(p##(246, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_246(s, p, o, m) BOOST_PP_FOR_246_C(BOOST_PP_BOOL(p##(247, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_247(s, p, o, m) BOOST_PP_FOR_247_C(BOOST_PP_BOOL(p##(248, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_248(s, p, o, m) BOOST_PP_FOR_248_C(BOOST_PP_BOOL(p##(249, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_249(s, p, o, m) BOOST_PP_FOR_249_C(BOOST_PP_BOOL(p##(250, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_250(s, p, o, m) BOOST_PP_FOR_250_C(BOOST_PP_BOOL(p##(251, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_251(s, p, o, m) BOOST_PP_FOR_251_C(BOOST_PP_BOOL(p##(252, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_252(s, p, o, m) BOOST_PP_FOR_252_C(BOOST_PP_BOOL(p##(253, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_253(s, p, o, m) BOOST_PP_FOR_253_C(BOOST_PP_BOOL(p##(254, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_254(s, p, o, m) BOOST_PP_FOR_254_C(BOOST_PP_BOOL(p##(255, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_255(s, p, o, m) BOOST_PP_FOR_255_C(BOOST_PP_BOOL(p##(256, s)), s, p, o, m)\r
+# define BOOST_PP_FOR_256(s, p, o, m) BOOST_PP_FOR_256_C(BOOST_PP_BOOL(p##(257, s)), s, p, o, m)\r
+#\r
+# define BOOST_PP_FOR_1_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(2, s) BOOST_PP_IIF(c, BOOST_PP_FOR_2, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(2, s), p, o, m)\r
+# define BOOST_PP_FOR_2_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(3, s) BOOST_PP_IIF(c, BOOST_PP_FOR_3, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(3, s), p, o, m)\r
+# define BOOST_PP_FOR_3_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(4, s) BOOST_PP_IIF(c, BOOST_PP_FOR_4, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(4, s), p, o, m)\r
+# define BOOST_PP_FOR_4_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(5, s) BOOST_PP_IIF(c, BOOST_PP_FOR_5, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(5, s), p, o, m)\r
+# define BOOST_PP_FOR_5_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(6, s) BOOST_PP_IIF(c, BOOST_PP_FOR_6, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(6, s), p, o, m)\r
+# define BOOST_PP_FOR_6_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(7, s) BOOST_PP_IIF(c, BOOST_PP_FOR_7, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(7, s), p, o, m)\r
+# define BOOST_PP_FOR_7_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(8, s) BOOST_PP_IIF(c, BOOST_PP_FOR_8, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(8, s), p, o, m)\r
+# define BOOST_PP_FOR_8_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(9, s) BOOST_PP_IIF(c, BOOST_PP_FOR_9, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(9, s), p, o, m)\r
+# define BOOST_PP_FOR_9_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(10, s) BOOST_PP_IIF(c, BOOST_PP_FOR_10, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(10, s), p, o, m)\r
+# define BOOST_PP_FOR_10_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(11, s) BOOST_PP_IIF(c, BOOST_PP_FOR_11, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(11, s), p, o, m)\r
+# define BOOST_PP_FOR_11_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(12, s) BOOST_PP_IIF(c, BOOST_PP_FOR_12, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(12, s), p, o, m)\r
+# define BOOST_PP_FOR_12_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(13, s) BOOST_PP_IIF(c, BOOST_PP_FOR_13, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(13, s), p, o, m)\r
+# define BOOST_PP_FOR_13_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(14, s) BOOST_PP_IIF(c, BOOST_PP_FOR_14, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(14, s), p, o, m)\r
+# define BOOST_PP_FOR_14_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(15, s) BOOST_PP_IIF(c, BOOST_PP_FOR_15, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(15, s), p, o, m)\r
+# define BOOST_PP_FOR_15_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(16, s) BOOST_PP_IIF(c, BOOST_PP_FOR_16, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(16, s), p, o, m)\r
+# define BOOST_PP_FOR_16_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(17, s) BOOST_PP_IIF(c, BOOST_PP_FOR_17, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(17, s), p, o, m)\r
+# define BOOST_PP_FOR_17_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(18, s) BOOST_PP_IIF(c, BOOST_PP_FOR_18, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(18, s), p, o, m)\r
+# define BOOST_PP_FOR_18_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(19, s) BOOST_PP_IIF(c, BOOST_PP_FOR_19, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(19, s), p, o, m)\r
+# define BOOST_PP_FOR_19_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(20, s) BOOST_PP_IIF(c, BOOST_PP_FOR_20, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(20, s), p, o, m)\r
+# define BOOST_PP_FOR_20_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(21, s) BOOST_PP_IIF(c, BOOST_PP_FOR_21, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(21, s), p, o, m)\r
+# define BOOST_PP_FOR_21_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(22, s) BOOST_PP_IIF(c, BOOST_PP_FOR_22, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(22, s), p, o, m)\r
+# define BOOST_PP_FOR_22_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(23, s) BOOST_PP_IIF(c, BOOST_PP_FOR_23, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(23, s), p, o, m)\r
+# define BOOST_PP_FOR_23_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(24, s) BOOST_PP_IIF(c, BOOST_PP_FOR_24, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(24, s), p, o, m)\r
+# define BOOST_PP_FOR_24_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(25, s) BOOST_PP_IIF(c, BOOST_PP_FOR_25, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(25, s), p, o, m)\r
+# define BOOST_PP_FOR_25_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(26, s) BOOST_PP_IIF(c, BOOST_PP_FOR_26, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(26, s), p, o, m)\r
+# define BOOST_PP_FOR_26_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(27, s) BOOST_PP_IIF(c, BOOST_PP_FOR_27, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(27, s), p, o, m)\r
+# define BOOST_PP_FOR_27_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(28, s) BOOST_PP_IIF(c, BOOST_PP_FOR_28, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(28, s), p, o, m)\r
+# define BOOST_PP_FOR_28_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(29, s) BOOST_PP_IIF(c, BOOST_PP_FOR_29, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(29, s), p, o, m)\r
+# define BOOST_PP_FOR_29_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(30, s) BOOST_PP_IIF(c, BOOST_PP_FOR_30, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(30, s), p, o, m)\r
+# define BOOST_PP_FOR_30_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(31, s) BOOST_PP_IIF(c, BOOST_PP_FOR_31, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(31, s), p, o, m)\r
+# define BOOST_PP_FOR_31_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(32, s) BOOST_PP_IIF(c, BOOST_PP_FOR_32, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(32, s), p, o, m)\r
+# define BOOST_PP_FOR_32_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(33, s) BOOST_PP_IIF(c, BOOST_PP_FOR_33, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(33, s), p, o, m)\r
+# define BOOST_PP_FOR_33_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(34, s) BOOST_PP_IIF(c, BOOST_PP_FOR_34, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(34, s), p, o, m)\r
+# define BOOST_PP_FOR_34_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(35, s) BOOST_PP_IIF(c, BOOST_PP_FOR_35, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(35, s), p, o, m)\r
+# define BOOST_PP_FOR_35_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(36, s) BOOST_PP_IIF(c, BOOST_PP_FOR_36, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(36, s), p, o, m)\r
+# define BOOST_PP_FOR_36_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(37, s) BOOST_PP_IIF(c, BOOST_PP_FOR_37, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(37, s), p, o, m)\r
+# define BOOST_PP_FOR_37_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(38, s) BOOST_PP_IIF(c, BOOST_PP_FOR_38, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(38, s), p, o, m)\r
+# define BOOST_PP_FOR_38_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(39, s) BOOST_PP_IIF(c, BOOST_PP_FOR_39, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(39, s), p, o, m)\r
+# define BOOST_PP_FOR_39_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(40, s) BOOST_PP_IIF(c, BOOST_PP_FOR_40, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(40, s), p, o, m)\r
+# define BOOST_PP_FOR_40_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(41, s) BOOST_PP_IIF(c, BOOST_PP_FOR_41, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(41, s), p, o, m)\r
+# define BOOST_PP_FOR_41_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(42, s) BOOST_PP_IIF(c, BOOST_PP_FOR_42, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(42, s), p, o, m)\r
+# define BOOST_PP_FOR_42_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(43, s) BOOST_PP_IIF(c, BOOST_PP_FOR_43, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(43, s), p, o, m)\r
+# define BOOST_PP_FOR_43_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(44, s) BOOST_PP_IIF(c, BOOST_PP_FOR_44, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(44, s), p, o, m)\r
+# define BOOST_PP_FOR_44_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(45, s) BOOST_PP_IIF(c, BOOST_PP_FOR_45, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(45, s), p, o, m)\r
+# define BOOST_PP_FOR_45_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(46, s) BOOST_PP_IIF(c, BOOST_PP_FOR_46, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(46, s), p, o, m)\r
+# define BOOST_PP_FOR_46_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(47, s) BOOST_PP_IIF(c, BOOST_PP_FOR_47, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(47, s), p, o, m)\r
+# define BOOST_PP_FOR_47_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(48, s) BOOST_PP_IIF(c, BOOST_PP_FOR_48, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(48, s), p, o, m)\r
+# define BOOST_PP_FOR_48_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(49, s) BOOST_PP_IIF(c, BOOST_PP_FOR_49, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(49, s), p, o, m)\r
+# define BOOST_PP_FOR_49_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(50, s) BOOST_PP_IIF(c, BOOST_PP_FOR_50, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(50, s), p, o, m)\r
+# define BOOST_PP_FOR_50_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(51, s) BOOST_PP_IIF(c, BOOST_PP_FOR_51, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(51, s), p, o, m)\r
+# define BOOST_PP_FOR_51_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(52, s) BOOST_PP_IIF(c, BOOST_PP_FOR_52, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(52, s), p, o, m)\r
+# define BOOST_PP_FOR_52_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(53, s) BOOST_PP_IIF(c, BOOST_PP_FOR_53, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(53, s), p, o, m)\r
+# define BOOST_PP_FOR_53_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(54, s) BOOST_PP_IIF(c, BOOST_PP_FOR_54, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(54, s), p, o, m)\r
+# define BOOST_PP_FOR_54_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(55, s) BOOST_PP_IIF(c, BOOST_PP_FOR_55, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(55, s), p, o, m)\r
+# define BOOST_PP_FOR_55_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(56, s) BOOST_PP_IIF(c, BOOST_PP_FOR_56, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(56, s), p, o, m)\r
+# define BOOST_PP_FOR_56_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(57, s) BOOST_PP_IIF(c, BOOST_PP_FOR_57, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(57, s), p, o, m)\r
+# define BOOST_PP_FOR_57_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(58, s) BOOST_PP_IIF(c, BOOST_PP_FOR_58, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(58, s), p, o, m)\r
+# define BOOST_PP_FOR_58_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(59, s) BOOST_PP_IIF(c, BOOST_PP_FOR_59, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(59, s), p, o, m)\r
+# define BOOST_PP_FOR_59_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(60, s) BOOST_PP_IIF(c, BOOST_PP_FOR_60, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(60, s), p, o, m)\r
+# define BOOST_PP_FOR_60_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(61, s) BOOST_PP_IIF(c, BOOST_PP_FOR_61, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(61, s), p, o, m)\r
+# define BOOST_PP_FOR_61_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(62, s) BOOST_PP_IIF(c, BOOST_PP_FOR_62, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(62, s), p, o, m)\r
+# define BOOST_PP_FOR_62_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(63, s) BOOST_PP_IIF(c, BOOST_PP_FOR_63, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(63, s), p, o, m)\r
+# define BOOST_PP_FOR_63_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(64, s) BOOST_PP_IIF(c, BOOST_PP_FOR_64, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(64, s), p, o, m)\r
+# define BOOST_PP_FOR_64_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(65, s) BOOST_PP_IIF(c, BOOST_PP_FOR_65, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(65, s), p, o, m)\r
+# define BOOST_PP_FOR_65_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(66, s) BOOST_PP_IIF(c, BOOST_PP_FOR_66, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(66, s), p, o, m)\r
+# define BOOST_PP_FOR_66_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(67, s) BOOST_PP_IIF(c, BOOST_PP_FOR_67, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(67, s), p, o, m)\r
+# define BOOST_PP_FOR_67_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(68, s) BOOST_PP_IIF(c, BOOST_PP_FOR_68, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(68, s), p, o, m)\r
+# define BOOST_PP_FOR_68_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(69, s) BOOST_PP_IIF(c, BOOST_PP_FOR_69, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(69, s), p, o, m)\r
+# define BOOST_PP_FOR_69_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(70, s) BOOST_PP_IIF(c, BOOST_PP_FOR_70, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(70, s), p, o, m)\r
+# define BOOST_PP_FOR_70_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(71, s) BOOST_PP_IIF(c, BOOST_PP_FOR_71, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(71, s), p, o, m)\r
+# define BOOST_PP_FOR_71_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(72, s) BOOST_PP_IIF(c, BOOST_PP_FOR_72, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(72, s), p, o, m)\r
+# define BOOST_PP_FOR_72_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(73, s) BOOST_PP_IIF(c, BOOST_PP_FOR_73, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(73, s), p, o, m)\r
+# define BOOST_PP_FOR_73_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(74, s) BOOST_PP_IIF(c, BOOST_PP_FOR_74, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(74, s), p, o, m)\r
+# define BOOST_PP_FOR_74_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(75, s) BOOST_PP_IIF(c, BOOST_PP_FOR_75, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(75, s), p, o, m)\r
+# define BOOST_PP_FOR_75_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(76, s) BOOST_PP_IIF(c, BOOST_PP_FOR_76, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(76, s), p, o, m)\r
+# define BOOST_PP_FOR_76_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(77, s) BOOST_PP_IIF(c, BOOST_PP_FOR_77, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(77, s), p, o, m)\r
+# define BOOST_PP_FOR_77_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(78, s) BOOST_PP_IIF(c, BOOST_PP_FOR_78, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(78, s), p, o, m)\r
+# define BOOST_PP_FOR_78_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(79, s) BOOST_PP_IIF(c, BOOST_PP_FOR_79, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(79, s), p, o, m)\r
+# define BOOST_PP_FOR_79_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(80, s) BOOST_PP_IIF(c, BOOST_PP_FOR_80, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(80, s), p, o, m)\r
+# define BOOST_PP_FOR_80_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(81, s) BOOST_PP_IIF(c, BOOST_PP_FOR_81, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(81, s), p, o, m)\r
+# define BOOST_PP_FOR_81_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(82, s) BOOST_PP_IIF(c, BOOST_PP_FOR_82, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(82, s), p, o, m)\r
+# define BOOST_PP_FOR_82_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(83, s) BOOST_PP_IIF(c, BOOST_PP_FOR_83, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(83, s), p, o, m)\r
+# define BOOST_PP_FOR_83_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(84, s) BOOST_PP_IIF(c, BOOST_PP_FOR_84, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(84, s), p, o, m)\r
+# define BOOST_PP_FOR_84_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(85, s) BOOST_PP_IIF(c, BOOST_PP_FOR_85, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(85, s), p, o, m)\r
+# define BOOST_PP_FOR_85_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(86, s) BOOST_PP_IIF(c, BOOST_PP_FOR_86, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(86, s), p, o, m)\r
+# define BOOST_PP_FOR_86_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(87, s) BOOST_PP_IIF(c, BOOST_PP_FOR_87, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(87, s), p, o, m)\r
+# define BOOST_PP_FOR_87_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(88, s) BOOST_PP_IIF(c, BOOST_PP_FOR_88, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(88, s), p, o, m)\r
+# define BOOST_PP_FOR_88_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(89, s) BOOST_PP_IIF(c, BOOST_PP_FOR_89, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(89, s), p, o, m)\r
+# define BOOST_PP_FOR_89_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(90, s) BOOST_PP_IIF(c, BOOST_PP_FOR_90, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(90, s), p, o, m)\r
+# define BOOST_PP_FOR_90_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(91, s) BOOST_PP_IIF(c, BOOST_PP_FOR_91, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(91, s), p, o, m)\r
+# define BOOST_PP_FOR_91_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(92, s) BOOST_PP_IIF(c, BOOST_PP_FOR_92, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(92, s), p, o, m)\r
+# define BOOST_PP_FOR_92_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(93, s) BOOST_PP_IIF(c, BOOST_PP_FOR_93, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(93, s), p, o, m)\r
+# define BOOST_PP_FOR_93_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(94, s) BOOST_PP_IIF(c, BOOST_PP_FOR_94, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(94, s), p, o, m)\r
+# define BOOST_PP_FOR_94_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(95, s) BOOST_PP_IIF(c, BOOST_PP_FOR_95, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(95, s), p, o, m)\r
+# define BOOST_PP_FOR_95_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(96, s) BOOST_PP_IIF(c, BOOST_PP_FOR_96, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(96, s), p, o, m)\r
+# define BOOST_PP_FOR_96_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(97, s) BOOST_PP_IIF(c, BOOST_PP_FOR_97, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(97, s), p, o, m)\r
+# define BOOST_PP_FOR_97_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(98, s) BOOST_PP_IIF(c, BOOST_PP_FOR_98, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(98, s), p, o, m)\r
+# define BOOST_PP_FOR_98_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(99, s) BOOST_PP_IIF(c, BOOST_PP_FOR_99, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(99, s), p, o, m)\r
+# define BOOST_PP_FOR_99_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(100, s) BOOST_PP_IIF(c, BOOST_PP_FOR_100, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(100, s), p, o, m)\r
+# define BOOST_PP_FOR_100_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(101, s) BOOST_PP_IIF(c, BOOST_PP_FOR_101, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(101, s), p, o, m)\r
+# define BOOST_PP_FOR_101_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(102, s) BOOST_PP_IIF(c, BOOST_PP_FOR_102, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(102, s), p, o, m)\r
+# define BOOST_PP_FOR_102_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(103, s) BOOST_PP_IIF(c, BOOST_PP_FOR_103, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(103, s), p, o, m)\r
+# define BOOST_PP_FOR_103_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(104, s) BOOST_PP_IIF(c, BOOST_PP_FOR_104, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(104, s), p, o, m)\r
+# define BOOST_PP_FOR_104_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(105, s) BOOST_PP_IIF(c, BOOST_PP_FOR_105, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(105, s), p, o, m)\r
+# define BOOST_PP_FOR_105_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(106, s) BOOST_PP_IIF(c, BOOST_PP_FOR_106, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(106, s), p, o, m)\r
+# define BOOST_PP_FOR_106_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(107, s) BOOST_PP_IIF(c, BOOST_PP_FOR_107, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(107, s), p, o, m)\r
+# define BOOST_PP_FOR_107_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(108, s) BOOST_PP_IIF(c, BOOST_PP_FOR_108, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(108, s), p, o, m)\r
+# define BOOST_PP_FOR_108_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(109, s) BOOST_PP_IIF(c, BOOST_PP_FOR_109, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(109, s), p, o, m)\r
+# define BOOST_PP_FOR_109_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(110, s) BOOST_PP_IIF(c, BOOST_PP_FOR_110, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(110, s), p, o, m)\r
+# define BOOST_PP_FOR_110_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(111, s) BOOST_PP_IIF(c, BOOST_PP_FOR_111, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(111, s), p, o, m)\r
+# define BOOST_PP_FOR_111_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(112, s) BOOST_PP_IIF(c, BOOST_PP_FOR_112, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(112, s), p, o, m)\r
+# define BOOST_PP_FOR_112_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(113, s) BOOST_PP_IIF(c, BOOST_PP_FOR_113, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(113, s), p, o, m)\r
+# define BOOST_PP_FOR_113_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(114, s) BOOST_PP_IIF(c, BOOST_PP_FOR_114, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(114, s), p, o, m)\r
+# define BOOST_PP_FOR_114_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(115, s) BOOST_PP_IIF(c, BOOST_PP_FOR_115, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(115, s), p, o, m)\r
+# define BOOST_PP_FOR_115_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(116, s) BOOST_PP_IIF(c, BOOST_PP_FOR_116, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(116, s), p, o, m)\r
+# define BOOST_PP_FOR_116_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(117, s) BOOST_PP_IIF(c, BOOST_PP_FOR_117, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(117, s), p, o, m)\r
+# define BOOST_PP_FOR_117_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(118, s) BOOST_PP_IIF(c, BOOST_PP_FOR_118, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(118, s), p, o, m)\r
+# define BOOST_PP_FOR_118_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(119, s) BOOST_PP_IIF(c, BOOST_PP_FOR_119, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(119, s), p, o, m)\r
+# define BOOST_PP_FOR_119_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(120, s) BOOST_PP_IIF(c, BOOST_PP_FOR_120, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(120, s), p, o, m)\r
+# define BOOST_PP_FOR_120_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(121, s) BOOST_PP_IIF(c, BOOST_PP_FOR_121, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(121, s), p, o, m)\r
+# define BOOST_PP_FOR_121_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(122, s) BOOST_PP_IIF(c, BOOST_PP_FOR_122, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(122, s), p, o, m)\r
+# define BOOST_PP_FOR_122_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(123, s) BOOST_PP_IIF(c, BOOST_PP_FOR_123, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(123, s), p, o, m)\r
+# define BOOST_PP_FOR_123_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(124, s) BOOST_PP_IIF(c, BOOST_PP_FOR_124, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(124, s), p, o, m)\r
+# define BOOST_PP_FOR_124_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(125, s) BOOST_PP_IIF(c, BOOST_PP_FOR_125, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(125, s), p, o, m)\r
+# define BOOST_PP_FOR_125_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(126, s) BOOST_PP_IIF(c, BOOST_PP_FOR_126, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(126, s), p, o, m)\r
+# define BOOST_PP_FOR_126_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(127, s) BOOST_PP_IIF(c, BOOST_PP_FOR_127, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(127, s), p, o, m)\r
+# define BOOST_PP_FOR_127_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(128, s) BOOST_PP_IIF(c, BOOST_PP_FOR_128, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(128, s), p, o, m)\r
+# define BOOST_PP_FOR_128_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(129, s) BOOST_PP_IIF(c, BOOST_PP_FOR_129, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(129, s), p, o, m)\r
+# define BOOST_PP_FOR_129_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(130, s) BOOST_PP_IIF(c, BOOST_PP_FOR_130, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(130, s), p, o, m)\r
+# define BOOST_PP_FOR_130_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(131, s) BOOST_PP_IIF(c, BOOST_PP_FOR_131, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(131, s), p, o, m)\r
+# define BOOST_PP_FOR_131_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(132, s) BOOST_PP_IIF(c, BOOST_PP_FOR_132, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(132, s), p, o, m)\r
+# define BOOST_PP_FOR_132_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(133, s) BOOST_PP_IIF(c, BOOST_PP_FOR_133, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(133, s), p, o, m)\r
+# define BOOST_PP_FOR_133_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(134, s) BOOST_PP_IIF(c, BOOST_PP_FOR_134, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(134, s), p, o, m)\r
+# define BOOST_PP_FOR_134_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(135, s) BOOST_PP_IIF(c, BOOST_PP_FOR_135, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(135, s), p, o, m)\r
+# define BOOST_PP_FOR_135_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(136, s) BOOST_PP_IIF(c, BOOST_PP_FOR_136, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(136, s), p, o, m)\r
+# define BOOST_PP_FOR_136_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(137, s) BOOST_PP_IIF(c, BOOST_PP_FOR_137, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(137, s), p, o, m)\r
+# define BOOST_PP_FOR_137_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(138, s) BOOST_PP_IIF(c, BOOST_PP_FOR_138, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(138, s), p, o, m)\r
+# define BOOST_PP_FOR_138_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(139, s) BOOST_PP_IIF(c, BOOST_PP_FOR_139, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(139, s), p, o, m)\r
+# define BOOST_PP_FOR_139_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(140, s) BOOST_PP_IIF(c, BOOST_PP_FOR_140, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(140, s), p, o, m)\r
+# define BOOST_PP_FOR_140_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(141, s) BOOST_PP_IIF(c, BOOST_PP_FOR_141, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(141, s), p, o, m)\r
+# define BOOST_PP_FOR_141_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(142, s) BOOST_PP_IIF(c, BOOST_PP_FOR_142, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(142, s), p, o, m)\r
+# define BOOST_PP_FOR_142_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(143, s) BOOST_PP_IIF(c, BOOST_PP_FOR_143, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(143, s), p, o, m)\r
+# define BOOST_PP_FOR_143_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(144, s) BOOST_PP_IIF(c, BOOST_PP_FOR_144, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(144, s), p, o, m)\r
+# define BOOST_PP_FOR_144_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(145, s) BOOST_PP_IIF(c, BOOST_PP_FOR_145, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(145, s), p, o, m)\r
+# define BOOST_PP_FOR_145_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(146, s) BOOST_PP_IIF(c, BOOST_PP_FOR_146, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(146, s), p, o, m)\r
+# define BOOST_PP_FOR_146_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(147, s) BOOST_PP_IIF(c, BOOST_PP_FOR_147, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(147, s), p, o, m)\r
+# define BOOST_PP_FOR_147_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(148, s) BOOST_PP_IIF(c, BOOST_PP_FOR_148, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(148, s), p, o, m)\r
+# define BOOST_PP_FOR_148_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(149, s) BOOST_PP_IIF(c, BOOST_PP_FOR_149, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(149, s), p, o, m)\r
+# define BOOST_PP_FOR_149_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(150, s) BOOST_PP_IIF(c, BOOST_PP_FOR_150, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(150, s), p, o, m)\r
+# define BOOST_PP_FOR_150_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(151, s) BOOST_PP_IIF(c, BOOST_PP_FOR_151, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(151, s), p, o, m)\r
+# define BOOST_PP_FOR_151_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(152, s) BOOST_PP_IIF(c, BOOST_PP_FOR_152, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(152, s), p, o, m)\r
+# define BOOST_PP_FOR_152_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(153, s) BOOST_PP_IIF(c, BOOST_PP_FOR_153, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(153, s), p, o, m)\r
+# define BOOST_PP_FOR_153_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(154, s) BOOST_PP_IIF(c, BOOST_PP_FOR_154, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(154, s), p, o, m)\r
+# define BOOST_PP_FOR_154_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(155, s) BOOST_PP_IIF(c, BOOST_PP_FOR_155, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(155, s), p, o, m)\r
+# define BOOST_PP_FOR_155_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(156, s) BOOST_PP_IIF(c, BOOST_PP_FOR_156, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(156, s), p, o, m)\r
+# define BOOST_PP_FOR_156_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(157, s) BOOST_PP_IIF(c, BOOST_PP_FOR_157, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(157, s), p, o, m)\r
+# define BOOST_PP_FOR_157_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(158, s) BOOST_PP_IIF(c, BOOST_PP_FOR_158, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(158, s), p, o, m)\r
+# define BOOST_PP_FOR_158_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(159, s) BOOST_PP_IIF(c, BOOST_PP_FOR_159, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(159, s), p, o, m)\r
+# define BOOST_PP_FOR_159_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(160, s) BOOST_PP_IIF(c, BOOST_PP_FOR_160, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(160, s), p, o, m)\r
+# define BOOST_PP_FOR_160_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(161, s) BOOST_PP_IIF(c, BOOST_PP_FOR_161, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(161, s), p, o, m)\r
+# define BOOST_PP_FOR_161_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(162, s) BOOST_PP_IIF(c, BOOST_PP_FOR_162, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(162, s), p, o, m)\r
+# define BOOST_PP_FOR_162_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(163, s) BOOST_PP_IIF(c, BOOST_PP_FOR_163, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(163, s), p, o, m)\r
+# define BOOST_PP_FOR_163_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(164, s) BOOST_PP_IIF(c, BOOST_PP_FOR_164, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(164, s), p, o, m)\r
+# define BOOST_PP_FOR_164_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(165, s) BOOST_PP_IIF(c, BOOST_PP_FOR_165, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(165, s), p, o, m)\r
+# define BOOST_PP_FOR_165_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(166, s) BOOST_PP_IIF(c, BOOST_PP_FOR_166, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(166, s), p, o, m)\r
+# define BOOST_PP_FOR_166_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(167, s) BOOST_PP_IIF(c, BOOST_PP_FOR_167, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(167, s), p, o, m)\r
+# define BOOST_PP_FOR_167_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(168, s) BOOST_PP_IIF(c, BOOST_PP_FOR_168, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(168, s), p, o, m)\r
+# define BOOST_PP_FOR_168_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(169, s) BOOST_PP_IIF(c, BOOST_PP_FOR_169, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(169, s), p, o, m)\r
+# define BOOST_PP_FOR_169_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(170, s) BOOST_PP_IIF(c, BOOST_PP_FOR_170, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(170, s), p, o, m)\r
+# define BOOST_PP_FOR_170_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(171, s) BOOST_PP_IIF(c, BOOST_PP_FOR_171, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(171, s), p, o, m)\r
+# define BOOST_PP_FOR_171_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(172, s) BOOST_PP_IIF(c, BOOST_PP_FOR_172, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(172, s), p, o, m)\r
+# define BOOST_PP_FOR_172_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(173, s) BOOST_PP_IIF(c, BOOST_PP_FOR_173, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(173, s), p, o, m)\r
+# define BOOST_PP_FOR_173_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(174, s) BOOST_PP_IIF(c, BOOST_PP_FOR_174, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(174, s), p, o, m)\r
+# define BOOST_PP_FOR_174_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(175, s) BOOST_PP_IIF(c, BOOST_PP_FOR_175, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(175, s), p, o, m)\r
+# define BOOST_PP_FOR_175_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(176, s) BOOST_PP_IIF(c, BOOST_PP_FOR_176, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(176, s), p, o, m)\r
+# define BOOST_PP_FOR_176_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(177, s) BOOST_PP_IIF(c, BOOST_PP_FOR_177, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(177, s), p, o, m)\r
+# define BOOST_PP_FOR_177_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(178, s) BOOST_PP_IIF(c, BOOST_PP_FOR_178, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(178, s), p, o, m)\r
+# define BOOST_PP_FOR_178_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(179, s) BOOST_PP_IIF(c, BOOST_PP_FOR_179, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(179, s), p, o, m)\r
+# define BOOST_PP_FOR_179_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(180, s) BOOST_PP_IIF(c, BOOST_PP_FOR_180, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(180, s), p, o, m)\r
+# define BOOST_PP_FOR_180_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(181, s) BOOST_PP_IIF(c, BOOST_PP_FOR_181, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(181, s), p, o, m)\r
+# define BOOST_PP_FOR_181_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(182, s) BOOST_PP_IIF(c, BOOST_PP_FOR_182, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(182, s), p, o, m)\r
+# define BOOST_PP_FOR_182_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(183, s) BOOST_PP_IIF(c, BOOST_PP_FOR_183, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(183, s), p, o, m)\r
+# define BOOST_PP_FOR_183_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(184, s) BOOST_PP_IIF(c, BOOST_PP_FOR_184, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(184, s), p, o, m)\r
+# define BOOST_PP_FOR_184_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(185, s) BOOST_PP_IIF(c, BOOST_PP_FOR_185, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(185, s), p, o, m)\r
+# define BOOST_PP_FOR_185_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(186, s) BOOST_PP_IIF(c, BOOST_PP_FOR_186, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(186, s), p, o, m)\r
+# define BOOST_PP_FOR_186_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(187, s) BOOST_PP_IIF(c, BOOST_PP_FOR_187, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(187, s), p, o, m)\r
+# define BOOST_PP_FOR_187_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(188, s) BOOST_PP_IIF(c, BOOST_PP_FOR_188, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(188, s), p, o, m)\r
+# define BOOST_PP_FOR_188_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(189, s) BOOST_PP_IIF(c, BOOST_PP_FOR_189, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(189, s), p, o, m)\r
+# define BOOST_PP_FOR_189_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(190, s) BOOST_PP_IIF(c, BOOST_PP_FOR_190, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(190, s), p, o, m)\r
+# define BOOST_PP_FOR_190_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(191, s) BOOST_PP_IIF(c, BOOST_PP_FOR_191, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(191, s), p, o, m)\r
+# define BOOST_PP_FOR_191_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(192, s) BOOST_PP_IIF(c, BOOST_PP_FOR_192, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(192, s), p, o, m)\r
+# define BOOST_PP_FOR_192_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(193, s) BOOST_PP_IIF(c, BOOST_PP_FOR_193, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(193, s), p, o, m)\r
+# define BOOST_PP_FOR_193_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(194, s) BOOST_PP_IIF(c, BOOST_PP_FOR_194, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(194, s), p, o, m)\r
+# define BOOST_PP_FOR_194_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(195, s) BOOST_PP_IIF(c, BOOST_PP_FOR_195, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(195, s), p, o, m)\r
+# define BOOST_PP_FOR_195_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(196, s) BOOST_PP_IIF(c, BOOST_PP_FOR_196, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(196, s), p, o, m)\r
+# define BOOST_PP_FOR_196_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(197, s) BOOST_PP_IIF(c, BOOST_PP_FOR_197, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(197, s), p, o, m)\r
+# define BOOST_PP_FOR_197_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(198, s) BOOST_PP_IIF(c, BOOST_PP_FOR_198, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(198, s), p, o, m)\r
+# define BOOST_PP_FOR_198_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(199, s) BOOST_PP_IIF(c, BOOST_PP_FOR_199, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(199, s), p, o, m)\r
+# define BOOST_PP_FOR_199_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(200, s) BOOST_PP_IIF(c, BOOST_PP_FOR_200, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(200, s), p, o, m)\r
+# define BOOST_PP_FOR_200_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(201, s) BOOST_PP_IIF(c, BOOST_PP_FOR_201, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(201, s), p, o, m)\r
+# define BOOST_PP_FOR_201_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(202, s) BOOST_PP_IIF(c, BOOST_PP_FOR_202, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(202, s), p, o, m)\r
+# define BOOST_PP_FOR_202_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(203, s) BOOST_PP_IIF(c, BOOST_PP_FOR_203, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(203, s), p, o, m)\r
+# define BOOST_PP_FOR_203_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(204, s) BOOST_PP_IIF(c, BOOST_PP_FOR_204, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(204, s), p, o, m)\r
+# define BOOST_PP_FOR_204_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(205, s) BOOST_PP_IIF(c, BOOST_PP_FOR_205, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(205, s), p, o, m)\r
+# define BOOST_PP_FOR_205_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(206, s) BOOST_PP_IIF(c, BOOST_PP_FOR_206, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(206, s), p, o, m)\r
+# define BOOST_PP_FOR_206_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(207, s) BOOST_PP_IIF(c, BOOST_PP_FOR_207, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(207, s), p, o, m)\r
+# define BOOST_PP_FOR_207_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(208, s) BOOST_PP_IIF(c, BOOST_PP_FOR_208, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(208, s), p, o, m)\r
+# define BOOST_PP_FOR_208_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(209, s) BOOST_PP_IIF(c, BOOST_PP_FOR_209, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(209, s), p, o, m)\r
+# define BOOST_PP_FOR_209_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(210, s) BOOST_PP_IIF(c, BOOST_PP_FOR_210, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(210, s), p, o, m)\r
+# define BOOST_PP_FOR_210_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(211, s) BOOST_PP_IIF(c, BOOST_PP_FOR_211, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(211, s), p, o, m)\r
+# define BOOST_PP_FOR_211_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(212, s) BOOST_PP_IIF(c, BOOST_PP_FOR_212, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(212, s), p, o, m)\r
+# define BOOST_PP_FOR_212_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(213, s) BOOST_PP_IIF(c, BOOST_PP_FOR_213, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(213, s), p, o, m)\r
+# define BOOST_PP_FOR_213_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(214, s) BOOST_PP_IIF(c, BOOST_PP_FOR_214, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(214, s), p, o, m)\r
+# define BOOST_PP_FOR_214_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(215, s) BOOST_PP_IIF(c, BOOST_PP_FOR_215, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(215, s), p, o, m)\r
+# define BOOST_PP_FOR_215_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(216, s) BOOST_PP_IIF(c, BOOST_PP_FOR_216, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(216, s), p, o, m)\r
+# define BOOST_PP_FOR_216_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(217, s) BOOST_PP_IIF(c, BOOST_PP_FOR_217, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(217, s), p, o, m)\r
+# define BOOST_PP_FOR_217_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(218, s) BOOST_PP_IIF(c, BOOST_PP_FOR_218, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(218, s), p, o, m)\r
+# define BOOST_PP_FOR_218_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(219, s) BOOST_PP_IIF(c, BOOST_PP_FOR_219, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(219, s), p, o, m)\r
+# define BOOST_PP_FOR_219_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(220, s) BOOST_PP_IIF(c, BOOST_PP_FOR_220, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(220, s), p, o, m)\r
+# define BOOST_PP_FOR_220_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(221, s) BOOST_PP_IIF(c, BOOST_PP_FOR_221, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(221, s), p, o, m)\r
+# define BOOST_PP_FOR_221_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(222, s) BOOST_PP_IIF(c, BOOST_PP_FOR_222, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(222, s), p, o, m)\r
+# define BOOST_PP_FOR_222_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(223, s) BOOST_PP_IIF(c, BOOST_PP_FOR_223, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(223, s), p, o, m)\r
+# define BOOST_PP_FOR_223_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(224, s) BOOST_PP_IIF(c, BOOST_PP_FOR_224, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(224, s), p, o, m)\r
+# define BOOST_PP_FOR_224_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(225, s) BOOST_PP_IIF(c, BOOST_PP_FOR_225, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(225, s), p, o, m)\r
+# define BOOST_PP_FOR_225_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(226, s) BOOST_PP_IIF(c, BOOST_PP_FOR_226, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(226, s), p, o, m)\r
+# define BOOST_PP_FOR_226_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(227, s) BOOST_PP_IIF(c, BOOST_PP_FOR_227, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(227, s), p, o, m)\r
+# define BOOST_PP_FOR_227_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(228, s) BOOST_PP_IIF(c, BOOST_PP_FOR_228, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(228, s), p, o, m)\r
+# define BOOST_PP_FOR_228_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(229, s) BOOST_PP_IIF(c, BOOST_PP_FOR_229, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(229, s), p, o, m)\r
+# define BOOST_PP_FOR_229_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(230, s) BOOST_PP_IIF(c, BOOST_PP_FOR_230, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(230, s), p, o, m)\r
+# define BOOST_PP_FOR_230_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(231, s) BOOST_PP_IIF(c, BOOST_PP_FOR_231, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(231, s), p, o, m)\r
+# define BOOST_PP_FOR_231_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(232, s) BOOST_PP_IIF(c, BOOST_PP_FOR_232, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(232, s), p, o, m)\r
+# define BOOST_PP_FOR_232_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(233, s) BOOST_PP_IIF(c, BOOST_PP_FOR_233, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(233, s), p, o, m)\r
+# define BOOST_PP_FOR_233_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(234, s) BOOST_PP_IIF(c, BOOST_PP_FOR_234, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(234, s), p, o, m)\r
+# define BOOST_PP_FOR_234_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(235, s) BOOST_PP_IIF(c, BOOST_PP_FOR_235, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(235, s), p, o, m)\r
+# define BOOST_PP_FOR_235_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(236, s) BOOST_PP_IIF(c, BOOST_PP_FOR_236, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(236, s), p, o, m)\r
+# define BOOST_PP_FOR_236_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(237, s) BOOST_PP_IIF(c, BOOST_PP_FOR_237, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(237, s), p, o, m)\r
+# define BOOST_PP_FOR_237_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(238, s) BOOST_PP_IIF(c, BOOST_PP_FOR_238, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(238, s), p, o, m)\r
+# define BOOST_PP_FOR_238_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(239, s) BOOST_PP_IIF(c, BOOST_PP_FOR_239, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(239, s), p, o, m)\r
+# define BOOST_PP_FOR_239_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(240, s) BOOST_PP_IIF(c, BOOST_PP_FOR_240, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(240, s), p, o, m)\r
+# define BOOST_PP_FOR_240_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(241, s) BOOST_PP_IIF(c, BOOST_PP_FOR_241, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(241, s), p, o, m)\r
+# define BOOST_PP_FOR_241_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(242, s) BOOST_PP_IIF(c, BOOST_PP_FOR_242, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(242, s), p, o, m)\r
+# define BOOST_PP_FOR_242_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(243, s) BOOST_PP_IIF(c, BOOST_PP_FOR_243, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(243, s), p, o, m)\r
+# define BOOST_PP_FOR_243_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(244, s) BOOST_PP_IIF(c, BOOST_PP_FOR_244, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(244, s), p, o, m)\r
+# define BOOST_PP_FOR_244_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(245, s) BOOST_PP_IIF(c, BOOST_PP_FOR_245, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(245, s), p, o, m)\r
+# define BOOST_PP_FOR_245_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(246, s) BOOST_PP_IIF(c, BOOST_PP_FOR_246, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(246, s), p, o, m)\r
+# define BOOST_PP_FOR_246_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(247, s) BOOST_PP_IIF(c, BOOST_PP_FOR_247, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(247, s), p, o, m)\r
+# define BOOST_PP_FOR_247_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(248, s) BOOST_PP_IIF(c, BOOST_PP_FOR_248, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(248, s), p, o, m)\r
+# define BOOST_PP_FOR_248_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(249, s) BOOST_PP_IIF(c, BOOST_PP_FOR_249, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(249, s), p, o, m)\r
+# define BOOST_PP_FOR_249_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(250, s) BOOST_PP_IIF(c, BOOST_PP_FOR_250, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(250, s), p, o, m)\r
+# define BOOST_PP_FOR_250_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(251, s) BOOST_PP_IIF(c, BOOST_PP_FOR_251, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(251, s), p, o, m)\r
+# define BOOST_PP_FOR_251_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(252, s) BOOST_PP_IIF(c, BOOST_PP_FOR_252, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(252, s), p, o, m)\r
+# define BOOST_PP_FOR_252_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(253, s) BOOST_PP_IIF(c, BOOST_PP_FOR_253, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(253, s), p, o, m)\r
+# define BOOST_PP_FOR_253_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(254, s) BOOST_PP_IIF(c, BOOST_PP_FOR_254, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(254, s), p, o, m)\r
+# define BOOST_PP_FOR_254_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(255, s) BOOST_PP_IIF(c, BOOST_PP_FOR_255, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(255, s), p, o, m)\r
+# define BOOST_PP_FOR_255_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(256, s) BOOST_PP_IIF(c, BOOST_PP_FOR_256, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(256, s), p, o, m)\r
+# define BOOST_PP_FOR_256_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(257, s) BOOST_PP_IIF(c, BOOST_PP_FOR_257, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(257, s), p, o, m)\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/repetition/enum_params_with_a_default.hpp b/boost/boost/preprocessor/repetition/enum_params_with_a_default.hpp
new file mode 100644 (file)
index 0000000..2281c5c
--- /dev/null
@@ -0,0 +1,25 @@
+# /* Copyright (C) 2001\r
+#  * Housemarque Oy\r
+#  * http://www.housemarque.com\r
+#  *\r
+#  * Distributed under the Boost Software License, Version 1.0. (See\r
+#  * accompanying file LICENSE_1_0.txt or copy at\r
+#  * http://www.boost.org/LICENSE_1_0.txt)\r
+#  */\r
+#\r
+# /* Revised by Paul Mensonides (2002) */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_A_DEFAULT_HPP\r
+# define BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_A_DEFAULT_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/facilities/intercept.hpp>\r
+# include <boost/preprocessor/repetition/enum_binary_params.hpp>\r
+#\r
+# /* BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT */\r
+#\r
+# define BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(count, param, def) BOOST_PP_ENUM_BINARY_PARAMS(count, param, = def BOOST_PP_INTERCEPT)\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/repetition/enum_params_with_defaults.hpp b/boost/boost/preprocessor/repetition/enum_params_with_defaults.hpp
new file mode 100644 (file)
index 0000000..146352f
--- /dev/null
@@ -0,0 +1,24 @@
+# /* Copyright (C) 2001\r
+#  * Housemarque Oy\r
+#  * http://www.housemarque.com\r
+#  *\r
+#  * Distributed under the Boost Software License, Version 1.0. (See\r
+#  * accompanying file LICENSE_1_0.txt or copy at\r
+#  * http://www.boost.org/LICENSE_1_0.txt)\r
+#  */\r
+#\r
+# /* Revised by Paul Mensonides (2002) */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_DEFAULTS_HPP\r
+# define BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_DEFAULTS_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/repetition/enum_binary_params.hpp>\r
+#\r
+# /* BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS */\r
+#\r
+# define BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS(count, param, def) BOOST_PP_ENUM_BINARY_PARAMS(count, param, = def)\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/repetition/enum_shifted.hpp b/boost/boost/preprocessor/repetition/enum_shifted.hpp
new file mode 100644 (file)
index 0000000..f2750b2
--- /dev/null
@@ -0,0 +1,68 @@
+# /* Copyright (C) 2001\r
+#  * Housemarque Oy\r
+#  * http://www.housemarque.com\r
+#  *\r
+#  * Distributed under the Boost Software License, Version 1.0. (See\r
+#  * accompanying file LICENSE_1_0.txt or copy at\r
+#  * http://www.boost.org/LICENSE_1_0.txt)\r
+#  */\r
+#\r
+# /* Revised by Paul Mensonides (2002) */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_HPP\r
+# define BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_HPP\r
+#\r
+# include <boost/preprocessor/cat.hpp>\r
+# include <boost/preprocessor/arithmetic/dec.hpp>\r
+# include <boost/preprocessor/arithmetic/inc.hpp>\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/debug/error.hpp>\r
+# include <boost/preprocessor/detail/auto_rec.hpp>\r
+# include <boost/preprocessor/punctuation/comma_if.hpp>\r
+# include <boost/preprocessor/repetition/repeat.hpp>\r
+# include <boost/preprocessor/tuple/elem.hpp>\r
+# include <boost/preprocessor/tuple/rem.hpp>\r
+#\r
+# /* BOOST_PP_ENUM_SHIFTED */\r
+#\r
+# if 0\r
+#    define BOOST_PP_ENUM_SHIFTED(count, macro, data)\r
+# endif\r
+#\r
+# define BOOST_PP_ENUM_SHIFTED BOOST_PP_CAT(BOOST_PP_ENUM_SHIFTED_, BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4))\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_ENUM_SHIFTED_1(c, m, d) BOOST_PP_REPEAT_1(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_1, (m, d))\r
+#    define BOOST_PP_ENUM_SHIFTED_2(c, m, d) BOOST_PP_REPEAT_2(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_2, (m, d))\r
+#    define BOOST_PP_ENUM_SHIFTED_3(c, m, d) BOOST_PP_REPEAT_3(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_3, (m, d))\r
+# else\r
+#    define BOOST_PP_ENUM_SHIFTED_1(c, m, d) BOOST_PP_ENUM_SHIFTED_1_I(c, m, d)\r
+#    define BOOST_PP_ENUM_SHIFTED_2(c, m, d) BOOST_PP_ENUM_SHIFTED_1_2(c, m, d)\r
+#    define BOOST_PP_ENUM_SHIFTED_3(c, m, d) BOOST_PP_ENUM_SHIFTED_1_3(c, m, d)\r
+#    define BOOST_PP_ENUM_SHIFTED_1_I(c, m, d) BOOST_PP_REPEAT_1(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_1, (m, d))\r
+#    define BOOST_PP_ENUM_SHIFTED_2_I(c, m, d) BOOST_PP_REPEAT_2(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_2, (m, d))\r
+#    define BOOST_PP_ENUM_SHIFTED_3_I(c, m, d) BOOST_PP_REPEAT_3(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_3, (m, d))\r
+# endif\r
+#\r
+# define BOOST_PP_ENUM_SHIFTED_4(c, m, d) BOOST_PP_ERROR(0x0003)\r
+#\r
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
+#    define BOOST_PP_ENUM_SHIFTED_M_1(z, n, md) BOOST_PP_ENUM_SHIFTED_M_1_IM(z, n, BOOST_PP_TUPLE_REM_2 md)\r
+#    define BOOST_PP_ENUM_SHIFTED_M_2(z, n, md) BOOST_PP_ENUM_SHIFTED_M_2_IM(z, n, BOOST_PP_TUPLE_REM_2 md)\r
+#    define BOOST_PP_ENUM_SHIFTED_M_3(z, n, md) BOOST_PP_ENUM_SHIFTED_M_3_IM(z, n, BOOST_PP_TUPLE_REM_2 md)\r
+#    define BOOST_PP_ENUM_SHIFTED_M_1_IM(z, n, im) BOOST_PP_ENUM_SHIFTED_M_1_I(z, n, im)\r
+#    define BOOST_PP_ENUM_SHIFTED_M_2_IM(z, n, im) BOOST_PP_ENUM_SHIFTED_M_2_I(z, n, im)\r
+#    define BOOST_PP_ENUM_SHIFTED_M_3_IM(z, n, im) BOOST_PP_ENUM_SHIFTED_M_3_I(z, n, im)\r
+# else\r
+#    define BOOST_PP_ENUM_SHIFTED_M_1(z, n, md) BOOST_PP_ENUM_SHIFTED_M_1_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))\r
+#    define BOOST_PP_ENUM_SHIFTED_M_2(z, n, md) BOOST_PP_ENUM_SHIFTED_M_2_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))\r
+#    define BOOST_PP_ENUM_SHIFTED_M_3(z, n, md) BOOST_PP_ENUM_SHIFTED_M_3_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))\r
+# endif\r
+#\r
+# define BOOST_PP_ENUM_SHIFTED_M_1_I(z, n, m, d) BOOST_PP_COMMA_IF(n) m(z, BOOST_PP_INC(n), d)\r
+# define BOOST_PP_ENUM_SHIFTED_M_2_I(z, n, m, d) BOOST_PP_COMMA_IF(n) m(z, BOOST_PP_INC(n), d)\r
+# define BOOST_PP_ENUM_SHIFTED_M_3_I(z, n, m, d) BOOST_PP_COMMA_IF(n) m(z, BOOST_PP_INC(n), d)\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/repetition/enum_shifted_binary_params.hpp b/boost/boost/preprocessor/repetition/enum_shifted_binary_params.hpp
new file mode 100644 (file)
index 0000000..d1bd957
--- /dev/null
@@ -0,0 +1,51 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2005.                                  *\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See      *\r
+#  *     accompanying file LICENSE_1_0.txt or copy at                         *\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)                                *\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_BINARY_PARAMS_HPP\r
+# define BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_BINARY_PARAMS_HPP\r
+#\r
+# include <boost/preprocessor/arithmetic/dec.hpp>\r
+# include <boost/preprocessor/arithmetic/inc.hpp>\r
+# include <boost/preprocessor/cat.hpp>\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/punctuation/comma_if.hpp>\r
+# include <boost/preprocessor/repetition/repeat.hpp>\r
+# include <boost/preprocessor/tuple/elem.hpp>\r
+# include <boost/preprocessor/tuple/rem.hpp>\r
+#\r
+# /* BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS(count, p1, p2) BOOST_PP_REPEAT(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2))\r
+# else\r
+#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS(count, p1, p2) BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_I(count, p1, p2)\r
+#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_I(count, p1, p2) BOOST_PP_REPEAT(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2))\r
+# endif\r
+#\r
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
+#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M(z, n, pp) BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M_IM(z, n, BOOST_PP_TUPLE_REM_2 pp)\r
+#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M_IM(z, n, im) BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M_I(z, n, im)\r
+# else\r
+#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M(z, n, pp) BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, pp), BOOST_PP_TUPLE_ELEM(2, 1, pp))\r
+# endif\r
+#\r
+# define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M_I(z, n, p1, p2) BOOST_PP_COMMA_IF(n) BOOST_PP_CAT(p1, BOOST_PP_INC(n)) BOOST_PP_CAT(p2, BOOST_PP_INC(n))\r
+#\r
+# /* BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z(z, count, p1, p2) BOOST_PP_REPEAT_ ## z(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2))\r
+# else\r
+#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z(z, count, p1, p2) BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z_I(z, count, p1, p2)\r
+#    define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z_I(z, count, p1, p2) BOOST_PP_REPEAT_ ## z(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2))\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/repetition/enum_shifted_params.hpp b/boost/boost/preprocessor/repetition/enum_shifted_params.hpp
new file mode 100644 (file)
index 0000000..447a114
--- /dev/null
@@ -0,0 +1,44 @@
+# /* Copyright (C) 2001\r
+#  * Housemarque Oy\r
+#  * http://www.housemarque.com\r
+#  *\r
+#  * Distributed under the Boost Software License, Version 1.0. (See\r
+#  * accompanying file LICENSE_1_0.txt or copy at\r
+#  * http://www.boost.org/LICENSE_1_0.txt)\r
+#  */\r
+#\r
+# /* Revised by Paul Mensonides (2002) */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_PARAMS_HPP\r
+# define BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_PARAMS_HPP\r
+#\r
+# include <boost/preprocessor/arithmetic/dec.hpp>\r
+# include <boost/preprocessor/arithmetic/inc.hpp>\r
+# include <boost/preprocessor/cat.hpp>\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/punctuation/comma_if.hpp>\r
+# include <boost/preprocessor/repetition/repeat.hpp>\r
+#\r
+# /* BOOST_PP_ENUM_SHIFTED_PARAMS */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_ENUM_SHIFTED_PARAMS(count, param) BOOST_PP_REPEAT(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_PARAMS_M, param)\r
+# else\r
+#    define BOOST_PP_ENUM_SHIFTED_PARAMS(count, param) BOOST_PP_ENUM_SHIFTED_PARAMS_I(count, param)\r
+#    define BOOST_PP_ENUM_SHIFTED_PARAMS_I(count, param) BOOST_PP_REPEAT(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_PARAMS_M, param)\r
+# endif\r
+#\r
+# define BOOST_PP_ENUM_SHIFTED_PARAMS_M(z, n, param) BOOST_PP_COMMA_IF(n) BOOST_PP_CAT(param, BOOST_PP_INC(n))\r
+#\r
+# /* BOOST_PP_ENUM_SHIFTED_PARAMS_Z */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_ENUM_SHIFTED_PARAMS_Z(z, count, param) BOOST_PP_REPEAT_ ## z(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_PARAMS_M, param)\r
+# else\r
+#    define BOOST_PP_ENUM_SHIFTED_PARAMS_Z(z, count, param) BOOST_PP_ENUM_SHIFTED_PARAMS_Z_I(z, count, param)\r
+#    define BOOST_PP_ENUM_SHIFTED_PARAMS_Z_I(z, count, param) BOOST_PP_REPEAT_ ## z(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_PARAMS_M, param)\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/repetition/enum_trailing.hpp b/boost/boost/preprocessor/repetition/enum_trailing.hpp
new file mode 100644 (file)
index 0000000..b8d197e
--- /dev/null
@@ -0,0 +1,63 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_HPP\r
+# define BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_HPP\r
+#\r
+# include <boost/preprocessor/cat.hpp>\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/debug/error.hpp>\r
+# include <boost/preprocessor/detail/auto_rec.hpp>\r
+# include <boost/preprocessor/repetition/repeat.hpp>\r
+# include <boost/preprocessor/tuple/elem.hpp>\r
+# include <boost/preprocessor/tuple/rem.hpp>\r
+#\r
+# /* BOOST_PP_ENUM_TRAILING */\r
+#\r
+# if 0\r
+#    define BOOST_PP_ENUM_TRAILING(count, macro, data)\r
+# endif\r
+#\r
+# define BOOST_PP_ENUM_TRAILING BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4))\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_ENUM_TRAILING_1(c, m, d) BOOST_PP_REPEAT_1(c, BOOST_PP_ENUM_TRAILING_M_1, (m, d))\r
+#    define BOOST_PP_ENUM_TRAILING_2(c, m, d) BOOST_PP_REPEAT_2(c, BOOST_PP_ENUM_TRAILING_M_2, (m, d))\r
+#    define BOOST_PP_ENUM_TRAILING_3(c, m, d) BOOST_PP_REPEAT_3(c, BOOST_PP_ENUM_TRAILING_M_3, (m, d))\r
+# else\r
+#    define BOOST_PP_ENUM_TRAILING_1(c, m, d) BOOST_PP_ENUM_TRAILING_1_I(c, m, d)\r
+#    define BOOST_PP_ENUM_TRAILING_2(c, m, d) BOOST_PP_ENUM_TRAILING_2_I(c, m, d)\r
+#    define BOOST_PP_ENUM_TRAILING_3(c, m, d) BOOST_PP_ENUM_TRAILING_3_I(c, m, d)\r
+#    define BOOST_PP_ENUM_TRAILING_1_I(c, m, d) BOOST_PP_REPEAT_1(c, BOOST_PP_ENUM_TRAILING_M_1, (m, d))\r
+#    define BOOST_PP_ENUM_TRAILING_2_I(c, m, d) BOOST_PP_REPEAT_2(c, BOOST_PP_ENUM_TRAILING_M_2, (m, d))\r
+#    define BOOST_PP_ENUM_TRAILING_3_I(c, m, d) BOOST_PP_REPEAT_3(c, BOOST_PP_ENUM_TRAILING_M_3, (m, d))\r
+# endif\r
+#\r
+# define BOOST_PP_ENUM_TRAILING_4(c, m, d) BOOST_PP_ERROR(0x0003)\r
+#\r
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
+#    define BOOST_PP_ENUM_TRAILING_M_1(z, n, md) BOOST_PP_ENUM_TRAILING_M_1_IM(z, n, BOOST_PP_TUPLE_REM_2 md)\r
+#    define BOOST_PP_ENUM_TRAILING_M_2(z, n, md) BOOST_PP_ENUM_TRAILING_M_2_IM(z, n, BOOST_PP_TUPLE_REM_2 md)\r
+#    define BOOST_PP_ENUM_TRAILING_M_3(z, n, md) BOOST_PP_ENUM_TRAILING_M_3_IM(z, n, BOOST_PP_TUPLE_REM_2 md)\r
+#    define BOOST_PP_ENUM_TRAILING_M_1_IM(z, n, im) BOOST_PP_ENUM_TRAILING_M_1_I(z, n, im)\r
+#    define BOOST_PP_ENUM_TRAILING_M_2_IM(z, n, im) BOOST_PP_ENUM_TRAILING_M_2_I(z, n, im)\r
+#    define BOOST_PP_ENUM_TRAILING_M_3_IM(z, n, im) BOOST_PP_ENUM_TRAILING_M_3_I(z, n, im)\r
+# else\r
+#    define BOOST_PP_ENUM_TRAILING_M_1(z, n, md) BOOST_PP_ENUM_TRAILING_M_1_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))\r
+#    define BOOST_PP_ENUM_TRAILING_M_2(z, n, md) BOOST_PP_ENUM_TRAILING_M_2_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))\r
+#    define BOOST_PP_ENUM_TRAILING_M_3(z, n, md) BOOST_PP_ENUM_TRAILING_M_3_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))\r
+# endif\r
+#\r
+# define BOOST_PP_ENUM_TRAILING_M_1_I(z, n, m, d) , m(z, n, d)\r
+# define BOOST_PP_ENUM_TRAILING_M_2_I(z, n, m, d) , m(z, n, d)\r
+# define BOOST_PP_ENUM_TRAILING_M_3_I(z, n, m, d) , m(z, n, d)\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/repetition/enum_trailing_binary_params.hpp b/boost/boost/preprocessor/repetition/enum_trailing_binary_params.hpp
new file mode 100644 (file)
index 0000000..449bdb5
--- /dev/null
@@ -0,0 +1,53 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_BINARY_PARAMS_HPP\r
+# define BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_BINARY_PARAMS_HPP\r
+#\r
+# include <boost/preprocessor/cat.hpp>\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/repetition/repeat.hpp>\r
+# include <boost/preprocessor/tuple/elem.hpp>\r
+# include <boost/preprocessor/tuple/rem.hpp>\r
+#\r
+# /* BOOST_PP_ENUM_TRAILING_BINARY_PARAMS */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS(count, p1, p2) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M, (p1, p2))\r
+# else\r
+#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS(count, p1, p2) BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_I(count, p1, p2)\r
+#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_I(count, p1, p2) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M, (p1, p2))\r
+# endif\r
+#\r
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
+#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M(z, n, pp) BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_IM(z, n, BOOST_PP_TUPLE_REM_2 pp)\r
+#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_IM(z, n, im) BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_I(z, n, im)\r
+# else\r
+#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M(z, n, pp) BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, pp), BOOST_PP_TUPLE_ELEM(2, 1, pp))\r
+# endif\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()\r
+#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_I(z, n, p1, p2) BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_II(z, n, p1, p2)\r
+#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_II(z, n, p1, p2) , p1 ## n p2 ## n\r
+# else\r
+#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_I(z, n, p1, p2) , BOOST_PP_CAT(p1, n) BOOST_PP_CAT(p2, n)\r
+# endif\r
+#\r
+# /* BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z(z, count, p1, p2) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M, (p1, p2))\r
+# else\r
+#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z(z, count, p1, p2) BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z_I(z, count, p1, p2)\r
+#    define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z_I(z, count, p1, p2) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M, (p1, p2))\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/repetition/enum_trailing_params.hpp b/boost/boost/preprocessor/repetition/enum_trailing_params.hpp
new file mode 100644 (file)
index 0000000..33ad8ca
--- /dev/null
@@ -0,0 +1,38 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_PARAMS_HPP\r
+# define BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_PARAMS_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/repetition/repeat.hpp>\r
+#\r
+# /* BOOST_PP_ENUM_TRAILING_PARAMS */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_ENUM_TRAILING_PARAMS(count, param) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_TRAILING_PARAMS_M, param)\r
+# else\r
+#    define BOOST_PP_ENUM_TRAILING_PARAMS(count, param) BOOST_PP_ENUM_TRAILING_PARAMS_I(count, param)\r
+#    define BOOST_PP_ENUM_TRAILING_PARAMS_I(count, param) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_TRAILING_PARAMS_M, param)\r
+# endif\r
+#\r
+# define BOOST_PP_ENUM_TRAILING_PARAMS_M(z, n, param) , param ## n\r
+#\r
+# /* BOOST_PP_ENUM_TRAILING_PARAMS_Z */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, count, param) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_TRAILING_PARAMS_M, param)\r
+# else\r
+#    define BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, count, param) BOOST_PP_ENUM_TRAILING_PARAMS_Z_I(z, count, param)\r
+#    define BOOST_PP_ENUM_TRAILING_PARAMS_Z_I(z, count, param) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_TRAILING_PARAMS_M, param)\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/selection.hpp b/boost/boost/preprocessor/selection.hpp
new file mode 100644 (file)
index 0000000..0813dfc
--- /dev/null
@@ -0,0 +1,18 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SELECTION_HPP\r
+# define BOOST_PREPROCESSOR_SELECTION_HPP\r
+#\r
+# include <boost/preprocessor/selection/max.hpp>\r
+# include <boost/preprocessor/selection/min.hpp>\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/selection/max.hpp b/boost/boost/preprocessor/selection/max.hpp
new file mode 100644 (file)
index 0000000..08e362c
--- /dev/null
@@ -0,0 +1,39 @@
+# /* Copyright (C) 2001\r
+#  * Housemarque Oy\r
+#  * http://www.housemarque.com\r
+#  *\r
+#  * Distributed under the Boost Software License, Version 1.0. (See\r
+#  * accompanying file LICENSE_1_0.txt or copy at\r
+#  * http://www.boost.org/LICENSE_1_0.txt)\r
+#  */\r
+#\r
+# /* Revised by Paul Mensonides (2002) */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SELECTION_MAX_HPP\r
+# define BOOST_PREPROCESSOR_SELECTION_MAX_HPP\r
+#\r
+# include <boost/preprocessor/comparison/less_equal.hpp>\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/control/iif.hpp>\r
+#\r
+# /* BOOST_PP_MAX */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_MAX(x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL(x, y), y, x)\r
+# else\r
+#    define BOOST_PP_MAX(x, y) BOOST_PP_MAX_I(x, y)\r
+#    define BOOST_PP_MAX_I(x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL(x, y), y, x)\r
+# endif\r
+#\r
+# /* BOOST_PP_MAX_D */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_MAX_D(d, x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL_D(d, x, y), y, x)\r
+# else\r
+#    define BOOST_PP_MAX_D(d, x, y) BOOST_PP_MAX_D_I(d, x, y)\r
+#    define BOOST_PP_MAX_D_I(d, x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL_D(d, x, y), y, x)\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/selection/min.hpp b/boost/boost/preprocessor/selection/min.hpp
new file mode 100644 (file)
index 0000000..6cd548d
--- /dev/null
@@ -0,0 +1,39 @@
+# /* Copyright (C) 2001\r
+#  * Housemarque Oy\r
+#  * http://www.housemarque.com\r
+#  *\r
+#  * Distributed under the Boost Software License, Version 1.0. (See\r
+#  * accompanying file LICENSE_1_0.txt or copy at\r
+#  * http://www.boost.org/LICENSE_1_0.txt)\r
+#  */\r
+#\r
+# /* Revised by Paul Mensonides (2002) */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SELECTION_MIN_HPP\r
+# define BOOST_PREPROCESSOR_SELECTION_MIN_HPP\r
+#\r
+# include <boost/preprocessor/comparison/less_equal.hpp>\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/control/iif.hpp>\r
+#\r
+# /* BOOST_PP_MIN */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_MIN(x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL(y, x), y, x)\r
+# else\r
+#    define BOOST_PP_MIN(x, y) BOOST_PP_MIN_I(x, y)\r
+#    define BOOST_PP_MIN_I(x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL(y, x), y, x)\r
+# endif\r
+#\r
+# /* BOOST_PP_MIN_D */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_MIN_D(d, x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL_D(d, y, x), y, x)\r
+# else\r
+#    define BOOST_PP_MIN_D(d, x, y) BOOST_PP_MIN_D_I(d, x, y)\r
+#    define BOOST_PP_MIN_D_I(d, x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL_D(d, y, x), y, x)\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq.hpp b/boost/boost/preprocessor/seq.hpp
new file mode 100644 (file)
index 0000000..12dae9d
--- /dev/null
@@ -0,0 +1,41 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_HPP\r
+#\r
+# include <boost/preprocessor/seq/cat.hpp>\r
+# include <boost/preprocessor/seq/elem.hpp>\r
+# include <boost/preprocessor/seq/enum.hpp>\r
+# include <boost/preprocessor/seq/filter.hpp>\r
+# include <boost/preprocessor/seq/first_n.hpp>\r
+# include <boost/preprocessor/seq/fold_left.hpp>\r
+# include <boost/preprocessor/seq/fold_right.hpp>\r
+# include <boost/preprocessor/seq/for_each.hpp>\r
+# include <boost/preprocessor/seq/for_each_i.hpp>\r
+# include <boost/preprocessor/seq/for_each_product.hpp>\r
+# include <boost/preprocessor/seq/insert.hpp>\r
+# include <boost/preprocessor/seq/pop_back.hpp>\r
+# include <boost/preprocessor/seq/pop_front.hpp>\r
+# include <boost/preprocessor/seq/push_back.hpp>\r
+# include <boost/preprocessor/seq/push_front.hpp>\r
+# include <boost/preprocessor/seq/remove.hpp>\r
+# include <boost/preprocessor/seq/replace.hpp>\r
+# include <boost/preprocessor/seq/rest_n.hpp>\r
+# include <boost/preprocessor/seq/reverse.hpp>\r
+# include <boost/preprocessor/seq/seq.hpp>\r
+# include <boost/preprocessor/seq/size.hpp>\r
+# include <boost/preprocessor/seq/subseq.hpp>\r
+# include <boost/preprocessor/seq/to_array.hpp>\r
+# include <boost/preprocessor/seq/to_tuple.hpp>\r
+# include <boost/preprocessor/seq/transform.hpp>\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/cat.hpp b/boost/boost/preprocessor/seq/cat.hpp
new file mode 100644 (file)
index 0000000..f8280d2
--- /dev/null
@@ -0,0 +1,48 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_CAT_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_CAT_HPP\r
+#\r
+# include <boost/preprocessor/arithmetic/dec.hpp>\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/control/if.hpp>\r
+# include <boost/preprocessor/seq/fold_left.hpp>\r
+# include <boost/preprocessor/seq/seq.hpp>\r
+# include <boost/preprocessor/seq/size.hpp>\r
+# include <boost/preprocessor/tuple/eat.hpp>\r
+#\r
+# /* BOOST_PP_SEQ_CAT */\r
+#\r
+# define BOOST_PP_SEQ_CAT(seq) \\r
+    BOOST_PP_IF( \\r
+        BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq)), \\r
+        BOOST_PP_SEQ_CAT_I, \\r
+        BOOST_PP_SEQ_HEAD(seq) BOOST_PP_TUPLE_EAT_1 \\r
+    )(seq) \\r
+    /**/\r
+# define BOOST_PP_SEQ_CAT_I(seq) BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_CAT_O, BOOST_PP_SEQ_HEAD(seq), BOOST_PP_SEQ_TAIL(seq))\r
+#\r
+# define BOOST_PP_SEQ_CAT_O(s, st, elem) BOOST_PP_SEQ_CAT_O_I(st, elem)\r
+# define BOOST_PP_SEQ_CAT_O_I(a, b) a ## b\r
+#\r
+# /* BOOST_PP_SEQ_CAT_S */\r
+#\r
+# define BOOST_PP_SEQ_CAT_S(s, seq) \\r
+    BOOST_PP_IF( \\r
+        BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq)), \\r
+        BOOST_PP_SEQ_CAT_S_I, \\r
+        BOOST_PP_SEQ_HEAD(seq) BOOST_PP_TUPLE_EAT_2 \\r
+    )(s, seq) \\r
+    /**/\r
+# define BOOST_PP_SEQ_CAT_S_I(s, seq) BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_CAT_O, BOOST_PP_SEQ_HEAD(seq), BOOST_PP_SEQ_TAIL(seq))\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/detail/split.hpp b/boost/boost/preprocessor/seq/detail/split.hpp
new file mode 100644 (file)
index 0000000..ada485e
--- /dev/null
@@ -0,0 +1,284 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_DETAIL_SPLIT_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_DETAIL_SPLIT_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+#\r
+# /* BOOST_PP_SEQ_SPLIT */\r
+#\r
+# define BOOST_PP_SEQ_SPLIT(n, seq) BOOST_PP_SEQ_SPLIT_D(n, seq)\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
+#    define BOOST_PP_SEQ_SPLIT_D(n, seq) (BOOST_PP_SEQ_SPLIT_ ## n seq)\r
+# else\r
+#    define BOOST_PP_SEQ_SPLIT_D(n, seq) (BOOST_PP_SEQ_SPLIT_ ## n ## seq)\r
+# endif\r
+#\r
+# define BOOST_PP_SEQ_SPLIT_1(x) (x),\r
+# define BOOST_PP_SEQ_SPLIT_2(x) (x) BOOST_PP_SEQ_SPLIT_1\r
+# define BOOST_PP_SEQ_SPLIT_3(x) (x) BOOST_PP_SEQ_SPLIT_2\r
+# define BOOST_PP_SEQ_SPLIT_4(x) (x) BOOST_PP_SEQ_SPLIT_3\r
+# define BOOST_PP_SEQ_SPLIT_5(x) (x) BOOST_PP_SEQ_SPLIT_4\r
+# define BOOST_PP_SEQ_SPLIT_6(x) (x) BOOST_PP_SEQ_SPLIT_5\r
+# define BOOST_PP_SEQ_SPLIT_7(x) (x) BOOST_PP_SEQ_SPLIT_6\r
+# define BOOST_PP_SEQ_SPLIT_8(x) (x) BOOST_PP_SEQ_SPLIT_7\r
+# define BOOST_PP_SEQ_SPLIT_9(x) (x) BOOST_PP_SEQ_SPLIT_8\r
+# define BOOST_PP_SEQ_SPLIT_10(x) (x) BOOST_PP_SEQ_SPLIT_9\r
+# define BOOST_PP_SEQ_SPLIT_11(x) (x) BOOST_PP_SEQ_SPLIT_10\r
+# define BOOST_PP_SEQ_SPLIT_12(x) (x) BOOST_PP_SEQ_SPLIT_11\r
+# define BOOST_PP_SEQ_SPLIT_13(x) (x) BOOST_PP_SEQ_SPLIT_12\r
+# define BOOST_PP_SEQ_SPLIT_14(x) (x) BOOST_PP_SEQ_SPLIT_13\r
+# define BOOST_PP_SEQ_SPLIT_15(x) (x) BOOST_PP_SEQ_SPLIT_14\r
+# define BOOST_PP_SEQ_SPLIT_16(x) (x) BOOST_PP_SEQ_SPLIT_15\r
+# define BOOST_PP_SEQ_SPLIT_17(x) (x) BOOST_PP_SEQ_SPLIT_16\r
+# define BOOST_PP_SEQ_SPLIT_18(x) (x) BOOST_PP_SEQ_SPLIT_17\r
+# define BOOST_PP_SEQ_SPLIT_19(x) (x) BOOST_PP_SEQ_SPLIT_18\r
+# define BOOST_PP_SEQ_SPLIT_20(x) (x) BOOST_PP_SEQ_SPLIT_19\r
+# define BOOST_PP_SEQ_SPLIT_21(x) (x) BOOST_PP_SEQ_SPLIT_20\r
+# define BOOST_PP_SEQ_SPLIT_22(x) (x) BOOST_PP_SEQ_SPLIT_21\r
+# define BOOST_PP_SEQ_SPLIT_23(x) (x) BOOST_PP_SEQ_SPLIT_22\r
+# define BOOST_PP_SEQ_SPLIT_24(x) (x) BOOST_PP_SEQ_SPLIT_23\r
+# define BOOST_PP_SEQ_SPLIT_25(x) (x) BOOST_PP_SEQ_SPLIT_24\r
+# define BOOST_PP_SEQ_SPLIT_26(x) (x) BOOST_PP_SEQ_SPLIT_25\r
+# define BOOST_PP_SEQ_SPLIT_27(x) (x) BOOST_PP_SEQ_SPLIT_26\r
+# define BOOST_PP_SEQ_SPLIT_28(x) (x) BOOST_PP_SEQ_SPLIT_27\r
+# define BOOST_PP_SEQ_SPLIT_29(x) (x) BOOST_PP_SEQ_SPLIT_28\r
+# define BOOST_PP_SEQ_SPLIT_30(x) (x) BOOST_PP_SEQ_SPLIT_29\r
+# define BOOST_PP_SEQ_SPLIT_31(x) (x) BOOST_PP_SEQ_SPLIT_30\r
+# define BOOST_PP_SEQ_SPLIT_32(x) (x) BOOST_PP_SEQ_SPLIT_31\r
+# define BOOST_PP_SEQ_SPLIT_33(x) (x) BOOST_PP_SEQ_SPLIT_32\r
+# define BOOST_PP_SEQ_SPLIT_34(x) (x) BOOST_PP_SEQ_SPLIT_33\r
+# define BOOST_PP_SEQ_SPLIT_35(x) (x) BOOST_PP_SEQ_SPLIT_34\r
+# define BOOST_PP_SEQ_SPLIT_36(x) (x) BOOST_PP_SEQ_SPLIT_35\r
+# define BOOST_PP_SEQ_SPLIT_37(x) (x) BOOST_PP_SEQ_SPLIT_36\r
+# define BOOST_PP_SEQ_SPLIT_38(x) (x) BOOST_PP_SEQ_SPLIT_37\r
+# define BOOST_PP_SEQ_SPLIT_39(x) (x) BOOST_PP_SEQ_SPLIT_38\r
+# define BOOST_PP_SEQ_SPLIT_40(x) (x) BOOST_PP_SEQ_SPLIT_39\r
+# define BOOST_PP_SEQ_SPLIT_41(x) (x) BOOST_PP_SEQ_SPLIT_40\r
+# define BOOST_PP_SEQ_SPLIT_42(x) (x) BOOST_PP_SEQ_SPLIT_41\r
+# define BOOST_PP_SEQ_SPLIT_43(x) (x) BOOST_PP_SEQ_SPLIT_42\r
+# define BOOST_PP_SEQ_SPLIT_44(x) (x) BOOST_PP_SEQ_SPLIT_43\r
+# define BOOST_PP_SEQ_SPLIT_45(x) (x) BOOST_PP_SEQ_SPLIT_44\r
+# define BOOST_PP_SEQ_SPLIT_46(x) (x) BOOST_PP_SEQ_SPLIT_45\r
+# define BOOST_PP_SEQ_SPLIT_47(x) (x) BOOST_PP_SEQ_SPLIT_46\r
+# define BOOST_PP_SEQ_SPLIT_48(x) (x) BOOST_PP_SEQ_SPLIT_47\r
+# define BOOST_PP_SEQ_SPLIT_49(x) (x) BOOST_PP_SEQ_SPLIT_48\r
+# define BOOST_PP_SEQ_SPLIT_50(x) (x) BOOST_PP_SEQ_SPLIT_49\r
+# define BOOST_PP_SEQ_SPLIT_51(x) (x) BOOST_PP_SEQ_SPLIT_50\r
+# define BOOST_PP_SEQ_SPLIT_52(x) (x) BOOST_PP_SEQ_SPLIT_51\r
+# define BOOST_PP_SEQ_SPLIT_53(x) (x) BOOST_PP_SEQ_SPLIT_52\r
+# define BOOST_PP_SEQ_SPLIT_54(x) (x) BOOST_PP_SEQ_SPLIT_53\r
+# define BOOST_PP_SEQ_SPLIT_55(x) (x) BOOST_PP_SEQ_SPLIT_54\r
+# define BOOST_PP_SEQ_SPLIT_56(x) (x) BOOST_PP_SEQ_SPLIT_55\r
+# define BOOST_PP_SEQ_SPLIT_57(x) (x) BOOST_PP_SEQ_SPLIT_56\r
+# define BOOST_PP_SEQ_SPLIT_58(x) (x) BOOST_PP_SEQ_SPLIT_57\r
+# define BOOST_PP_SEQ_SPLIT_59(x) (x) BOOST_PP_SEQ_SPLIT_58\r
+# define BOOST_PP_SEQ_SPLIT_60(x) (x) BOOST_PP_SEQ_SPLIT_59\r
+# define BOOST_PP_SEQ_SPLIT_61(x) (x) BOOST_PP_SEQ_SPLIT_60\r
+# define BOOST_PP_SEQ_SPLIT_62(x) (x) BOOST_PP_SEQ_SPLIT_61\r
+# define BOOST_PP_SEQ_SPLIT_63(x) (x) BOOST_PP_SEQ_SPLIT_62\r
+# define BOOST_PP_SEQ_SPLIT_64(x) (x) BOOST_PP_SEQ_SPLIT_63\r
+# define BOOST_PP_SEQ_SPLIT_65(x) (x) BOOST_PP_SEQ_SPLIT_64\r
+# define BOOST_PP_SEQ_SPLIT_66(x) (x) BOOST_PP_SEQ_SPLIT_65\r
+# define BOOST_PP_SEQ_SPLIT_67(x) (x) BOOST_PP_SEQ_SPLIT_66\r
+# define BOOST_PP_SEQ_SPLIT_68(x) (x) BOOST_PP_SEQ_SPLIT_67\r
+# define BOOST_PP_SEQ_SPLIT_69(x) (x) BOOST_PP_SEQ_SPLIT_68\r
+# define BOOST_PP_SEQ_SPLIT_70(x) (x) BOOST_PP_SEQ_SPLIT_69\r
+# define BOOST_PP_SEQ_SPLIT_71(x) (x) BOOST_PP_SEQ_SPLIT_70\r
+# define BOOST_PP_SEQ_SPLIT_72(x) (x) BOOST_PP_SEQ_SPLIT_71\r
+# define BOOST_PP_SEQ_SPLIT_73(x) (x) BOOST_PP_SEQ_SPLIT_72\r
+# define BOOST_PP_SEQ_SPLIT_74(x) (x) BOOST_PP_SEQ_SPLIT_73\r
+# define BOOST_PP_SEQ_SPLIT_75(x) (x) BOOST_PP_SEQ_SPLIT_74\r
+# define BOOST_PP_SEQ_SPLIT_76(x) (x) BOOST_PP_SEQ_SPLIT_75\r
+# define BOOST_PP_SEQ_SPLIT_77(x) (x) BOOST_PP_SEQ_SPLIT_76\r
+# define BOOST_PP_SEQ_SPLIT_78(x) (x) BOOST_PP_SEQ_SPLIT_77\r
+# define BOOST_PP_SEQ_SPLIT_79(x) (x) BOOST_PP_SEQ_SPLIT_78\r
+# define BOOST_PP_SEQ_SPLIT_80(x) (x) BOOST_PP_SEQ_SPLIT_79\r
+# define BOOST_PP_SEQ_SPLIT_81(x) (x) BOOST_PP_SEQ_SPLIT_80\r
+# define BOOST_PP_SEQ_SPLIT_82(x) (x) BOOST_PP_SEQ_SPLIT_81\r
+# define BOOST_PP_SEQ_SPLIT_83(x) (x) BOOST_PP_SEQ_SPLIT_82\r
+# define BOOST_PP_SEQ_SPLIT_84(x) (x) BOOST_PP_SEQ_SPLIT_83\r
+# define BOOST_PP_SEQ_SPLIT_85(x) (x) BOOST_PP_SEQ_SPLIT_84\r
+# define BOOST_PP_SEQ_SPLIT_86(x) (x) BOOST_PP_SEQ_SPLIT_85\r
+# define BOOST_PP_SEQ_SPLIT_87(x) (x) BOOST_PP_SEQ_SPLIT_86\r
+# define BOOST_PP_SEQ_SPLIT_88(x) (x) BOOST_PP_SEQ_SPLIT_87\r
+# define BOOST_PP_SEQ_SPLIT_89(x) (x) BOOST_PP_SEQ_SPLIT_88\r
+# define BOOST_PP_SEQ_SPLIT_90(x) (x) BOOST_PP_SEQ_SPLIT_89\r
+# define BOOST_PP_SEQ_SPLIT_91(x) (x) BOOST_PP_SEQ_SPLIT_90\r
+# define BOOST_PP_SEQ_SPLIT_92(x) (x) BOOST_PP_SEQ_SPLIT_91\r
+# define BOOST_PP_SEQ_SPLIT_93(x) (x) BOOST_PP_SEQ_SPLIT_92\r
+# define BOOST_PP_SEQ_SPLIT_94(x) (x) BOOST_PP_SEQ_SPLIT_93\r
+# define BOOST_PP_SEQ_SPLIT_95(x) (x) BOOST_PP_SEQ_SPLIT_94\r
+# define BOOST_PP_SEQ_SPLIT_96(x) (x) BOOST_PP_SEQ_SPLIT_95\r
+# define BOOST_PP_SEQ_SPLIT_97(x) (x) BOOST_PP_SEQ_SPLIT_96\r
+# define BOOST_PP_SEQ_SPLIT_98(x) (x) BOOST_PP_SEQ_SPLIT_97\r
+# define BOOST_PP_SEQ_SPLIT_99(x) (x) BOOST_PP_SEQ_SPLIT_98\r
+# define BOOST_PP_SEQ_SPLIT_100(x) (x) BOOST_PP_SEQ_SPLIT_99\r
+# define BOOST_PP_SEQ_SPLIT_101(x) (x) BOOST_PP_SEQ_SPLIT_100\r
+# define BOOST_PP_SEQ_SPLIT_102(x) (x) BOOST_PP_SEQ_SPLIT_101\r
+# define BOOST_PP_SEQ_SPLIT_103(x) (x) BOOST_PP_SEQ_SPLIT_102\r
+# define BOOST_PP_SEQ_SPLIT_104(x) (x) BOOST_PP_SEQ_SPLIT_103\r
+# define BOOST_PP_SEQ_SPLIT_105(x) (x) BOOST_PP_SEQ_SPLIT_104\r
+# define BOOST_PP_SEQ_SPLIT_106(x) (x) BOOST_PP_SEQ_SPLIT_105\r
+# define BOOST_PP_SEQ_SPLIT_107(x) (x) BOOST_PP_SEQ_SPLIT_106\r
+# define BOOST_PP_SEQ_SPLIT_108(x) (x) BOOST_PP_SEQ_SPLIT_107\r
+# define BOOST_PP_SEQ_SPLIT_109(x) (x) BOOST_PP_SEQ_SPLIT_108\r
+# define BOOST_PP_SEQ_SPLIT_110(x) (x) BOOST_PP_SEQ_SPLIT_109\r
+# define BOOST_PP_SEQ_SPLIT_111(x) (x) BOOST_PP_SEQ_SPLIT_110\r
+# define BOOST_PP_SEQ_SPLIT_112(x) (x) BOOST_PP_SEQ_SPLIT_111\r
+# define BOOST_PP_SEQ_SPLIT_113(x) (x) BOOST_PP_SEQ_SPLIT_112\r
+# define BOOST_PP_SEQ_SPLIT_114(x) (x) BOOST_PP_SEQ_SPLIT_113\r
+# define BOOST_PP_SEQ_SPLIT_115(x) (x) BOOST_PP_SEQ_SPLIT_114\r
+# define BOOST_PP_SEQ_SPLIT_116(x) (x) BOOST_PP_SEQ_SPLIT_115\r
+# define BOOST_PP_SEQ_SPLIT_117(x) (x) BOOST_PP_SEQ_SPLIT_116\r
+# define BOOST_PP_SEQ_SPLIT_118(x) (x) BOOST_PP_SEQ_SPLIT_117\r
+# define BOOST_PP_SEQ_SPLIT_119(x) (x) BOOST_PP_SEQ_SPLIT_118\r
+# define BOOST_PP_SEQ_SPLIT_120(x) (x) BOOST_PP_SEQ_SPLIT_119\r
+# define BOOST_PP_SEQ_SPLIT_121(x) (x) BOOST_PP_SEQ_SPLIT_120\r
+# define BOOST_PP_SEQ_SPLIT_122(x) (x) BOOST_PP_SEQ_SPLIT_121\r
+# define BOOST_PP_SEQ_SPLIT_123(x) (x) BOOST_PP_SEQ_SPLIT_122\r
+# define BOOST_PP_SEQ_SPLIT_124(x) (x) BOOST_PP_SEQ_SPLIT_123\r
+# define BOOST_PP_SEQ_SPLIT_125(x) (x) BOOST_PP_SEQ_SPLIT_124\r
+# define BOOST_PP_SEQ_SPLIT_126(x) (x) BOOST_PP_SEQ_SPLIT_125\r
+# define BOOST_PP_SEQ_SPLIT_127(x) (x) BOOST_PP_SEQ_SPLIT_126\r
+# define BOOST_PP_SEQ_SPLIT_128(x) (x) BOOST_PP_SEQ_SPLIT_127\r
+# define BOOST_PP_SEQ_SPLIT_129(x) (x) BOOST_PP_SEQ_SPLIT_128\r
+# define BOOST_PP_SEQ_SPLIT_130(x) (x) BOOST_PP_SEQ_SPLIT_129\r
+# define BOOST_PP_SEQ_SPLIT_131(x) (x) BOOST_PP_SEQ_SPLIT_130\r
+# define BOOST_PP_SEQ_SPLIT_132(x) (x) BOOST_PP_SEQ_SPLIT_131\r
+# define BOOST_PP_SEQ_SPLIT_133(x) (x) BOOST_PP_SEQ_SPLIT_132\r
+# define BOOST_PP_SEQ_SPLIT_134(x) (x) BOOST_PP_SEQ_SPLIT_133\r
+# define BOOST_PP_SEQ_SPLIT_135(x) (x) BOOST_PP_SEQ_SPLIT_134\r
+# define BOOST_PP_SEQ_SPLIT_136(x) (x) BOOST_PP_SEQ_SPLIT_135\r
+# define BOOST_PP_SEQ_SPLIT_137(x) (x) BOOST_PP_SEQ_SPLIT_136\r
+# define BOOST_PP_SEQ_SPLIT_138(x) (x) BOOST_PP_SEQ_SPLIT_137\r
+# define BOOST_PP_SEQ_SPLIT_139(x) (x) BOOST_PP_SEQ_SPLIT_138\r
+# define BOOST_PP_SEQ_SPLIT_140(x) (x) BOOST_PP_SEQ_SPLIT_139\r
+# define BOOST_PP_SEQ_SPLIT_141(x) (x) BOOST_PP_SEQ_SPLIT_140\r
+# define BOOST_PP_SEQ_SPLIT_142(x) (x) BOOST_PP_SEQ_SPLIT_141\r
+# define BOOST_PP_SEQ_SPLIT_143(x) (x) BOOST_PP_SEQ_SPLIT_142\r
+# define BOOST_PP_SEQ_SPLIT_144(x) (x) BOOST_PP_SEQ_SPLIT_143\r
+# define BOOST_PP_SEQ_SPLIT_145(x) (x) BOOST_PP_SEQ_SPLIT_144\r
+# define BOOST_PP_SEQ_SPLIT_146(x) (x) BOOST_PP_SEQ_SPLIT_145\r
+# define BOOST_PP_SEQ_SPLIT_147(x) (x) BOOST_PP_SEQ_SPLIT_146\r
+# define BOOST_PP_SEQ_SPLIT_148(x) (x) BOOST_PP_SEQ_SPLIT_147\r
+# define BOOST_PP_SEQ_SPLIT_149(x) (x) BOOST_PP_SEQ_SPLIT_148\r
+# define BOOST_PP_SEQ_SPLIT_150(x) (x) BOOST_PP_SEQ_SPLIT_149\r
+# define BOOST_PP_SEQ_SPLIT_151(x) (x) BOOST_PP_SEQ_SPLIT_150\r
+# define BOOST_PP_SEQ_SPLIT_152(x) (x) BOOST_PP_SEQ_SPLIT_151\r
+# define BOOST_PP_SEQ_SPLIT_153(x) (x) BOOST_PP_SEQ_SPLIT_152\r
+# define BOOST_PP_SEQ_SPLIT_154(x) (x) BOOST_PP_SEQ_SPLIT_153\r
+# define BOOST_PP_SEQ_SPLIT_155(x) (x) BOOST_PP_SEQ_SPLIT_154\r
+# define BOOST_PP_SEQ_SPLIT_156(x) (x) BOOST_PP_SEQ_SPLIT_155\r
+# define BOOST_PP_SEQ_SPLIT_157(x) (x) BOOST_PP_SEQ_SPLIT_156\r
+# define BOOST_PP_SEQ_SPLIT_158(x) (x) BOOST_PP_SEQ_SPLIT_157\r
+# define BOOST_PP_SEQ_SPLIT_159(x) (x) BOOST_PP_SEQ_SPLIT_158\r
+# define BOOST_PP_SEQ_SPLIT_160(x) (x) BOOST_PP_SEQ_SPLIT_159\r
+# define BOOST_PP_SEQ_SPLIT_161(x) (x) BOOST_PP_SEQ_SPLIT_160\r
+# define BOOST_PP_SEQ_SPLIT_162(x) (x) BOOST_PP_SEQ_SPLIT_161\r
+# define BOOST_PP_SEQ_SPLIT_163(x) (x) BOOST_PP_SEQ_SPLIT_162\r
+# define BOOST_PP_SEQ_SPLIT_164(x) (x) BOOST_PP_SEQ_SPLIT_163\r
+# define BOOST_PP_SEQ_SPLIT_165(x) (x) BOOST_PP_SEQ_SPLIT_164\r
+# define BOOST_PP_SEQ_SPLIT_166(x) (x) BOOST_PP_SEQ_SPLIT_165\r
+# define BOOST_PP_SEQ_SPLIT_167(x) (x) BOOST_PP_SEQ_SPLIT_166\r
+# define BOOST_PP_SEQ_SPLIT_168(x) (x) BOOST_PP_SEQ_SPLIT_167\r
+# define BOOST_PP_SEQ_SPLIT_169(x) (x) BOOST_PP_SEQ_SPLIT_168\r
+# define BOOST_PP_SEQ_SPLIT_170(x) (x) BOOST_PP_SEQ_SPLIT_169\r
+# define BOOST_PP_SEQ_SPLIT_171(x) (x) BOOST_PP_SEQ_SPLIT_170\r
+# define BOOST_PP_SEQ_SPLIT_172(x) (x) BOOST_PP_SEQ_SPLIT_171\r
+# define BOOST_PP_SEQ_SPLIT_173(x) (x) BOOST_PP_SEQ_SPLIT_172\r
+# define BOOST_PP_SEQ_SPLIT_174(x) (x) BOOST_PP_SEQ_SPLIT_173\r
+# define BOOST_PP_SEQ_SPLIT_175(x) (x) BOOST_PP_SEQ_SPLIT_174\r
+# define BOOST_PP_SEQ_SPLIT_176(x) (x) BOOST_PP_SEQ_SPLIT_175\r
+# define BOOST_PP_SEQ_SPLIT_177(x) (x) BOOST_PP_SEQ_SPLIT_176\r
+# define BOOST_PP_SEQ_SPLIT_178(x) (x) BOOST_PP_SEQ_SPLIT_177\r
+# define BOOST_PP_SEQ_SPLIT_179(x) (x) BOOST_PP_SEQ_SPLIT_178\r
+# define BOOST_PP_SEQ_SPLIT_180(x) (x) BOOST_PP_SEQ_SPLIT_179\r
+# define BOOST_PP_SEQ_SPLIT_181(x) (x) BOOST_PP_SEQ_SPLIT_180\r
+# define BOOST_PP_SEQ_SPLIT_182(x) (x) BOOST_PP_SEQ_SPLIT_181\r
+# define BOOST_PP_SEQ_SPLIT_183(x) (x) BOOST_PP_SEQ_SPLIT_182\r
+# define BOOST_PP_SEQ_SPLIT_184(x) (x) BOOST_PP_SEQ_SPLIT_183\r
+# define BOOST_PP_SEQ_SPLIT_185(x) (x) BOOST_PP_SEQ_SPLIT_184\r
+# define BOOST_PP_SEQ_SPLIT_186(x) (x) BOOST_PP_SEQ_SPLIT_185\r
+# define BOOST_PP_SEQ_SPLIT_187(x) (x) BOOST_PP_SEQ_SPLIT_186\r
+# define BOOST_PP_SEQ_SPLIT_188(x) (x) BOOST_PP_SEQ_SPLIT_187\r
+# define BOOST_PP_SEQ_SPLIT_189(x) (x) BOOST_PP_SEQ_SPLIT_188\r
+# define BOOST_PP_SEQ_SPLIT_190(x) (x) BOOST_PP_SEQ_SPLIT_189\r
+# define BOOST_PP_SEQ_SPLIT_191(x) (x) BOOST_PP_SEQ_SPLIT_190\r
+# define BOOST_PP_SEQ_SPLIT_192(x) (x) BOOST_PP_SEQ_SPLIT_191\r
+# define BOOST_PP_SEQ_SPLIT_193(x) (x) BOOST_PP_SEQ_SPLIT_192\r
+# define BOOST_PP_SEQ_SPLIT_194(x) (x) BOOST_PP_SEQ_SPLIT_193\r
+# define BOOST_PP_SEQ_SPLIT_195(x) (x) BOOST_PP_SEQ_SPLIT_194\r
+# define BOOST_PP_SEQ_SPLIT_196(x) (x) BOOST_PP_SEQ_SPLIT_195\r
+# define BOOST_PP_SEQ_SPLIT_197(x) (x) BOOST_PP_SEQ_SPLIT_196\r
+# define BOOST_PP_SEQ_SPLIT_198(x) (x) BOOST_PP_SEQ_SPLIT_197\r
+# define BOOST_PP_SEQ_SPLIT_199(x) (x) BOOST_PP_SEQ_SPLIT_198\r
+# define BOOST_PP_SEQ_SPLIT_200(x) (x) BOOST_PP_SEQ_SPLIT_199\r
+# define BOOST_PP_SEQ_SPLIT_201(x) (x) BOOST_PP_SEQ_SPLIT_200\r
+# define BOOST_PP_SEQ_SPLIT_202(x) (x) BOOST_PP_SEQ_SPLIT_201\r
+# define BOOST_PP_SEQ_SPLIT_203(x) (x) BOOST_PP_SEQ_SPLIT_202\r
+# define BOOST_PP_SEQ_SPLIT_204(x) (x) BOOST_PP_SEQ_SPLIT_203\r
+# define BOOST_PP_SEQ_SPLIT_205(x) (x) BOOST_PP_SEQ_SPLIT_204\r
+# define BOOST_PP_SEQ_SPLIT_206(x) (x) BOOST_PP_SEQ_SPLIT_205\r
+# define BOOST_PP_SEQ_SPLIT_207(x) (x) BOOST_PP_SEQ_SPLIT_206\r
+# define BOOST_PP_SEQ_SPLIT_208(x) (x) BOOST_PP_SEQ_SPLIT_207\r
+# define BOOST_PP_SEQ_SPLIT_209(x) (x) BOOST_PP_SEQ_SPLIT_208\r
+# define BOOST_PP_SEQ_SPLIT_210(x) (x) BOOST_PP_SEQ_SPLIT_209\r
+# define BOOST_PP_SEQ_SPLIT_211(x) (x) BOOST_PP_SEQ_SPLIT_210\r
+# define BOOST_PP_SEQ_SPLIT_212(x) (x) BOOST_PP_SEQ_SPLIT_211\r
+# define BOOST_PP_SEQ_SPLIT_213(x) (x) BOOST_PP_SEQ_SPLIT_212\r
+# define BOOST_PP_SEQ_SPLIT_214(x) (x) BOOST_PP_SEQ_SPLIT_213\r
+# define BOOST_PP_SEQ_SPLIT_215(x) (x) BOOST_PP_SEQ_SPLIT_214\r
+# define BOOST_PP_SEQ_SPLIT_216(x) (x) BOOST_PP_SEQ_SPLIT_215\r
+# define BOOST_PP_SEQ_SPLIT_217(x) (x) BOOST_PP_SEQ_SPLIT_216\r
+# define BOOST_PP_SEQ_SPLIT_218(x) (x) BOOST_PP_SEQ_SPLIT_217\r
+# define BOOST_PP_SEQ_SPLIT_219(x) (x) BOOST_PP_SEQ_SPLIT_218\r
+# define BOOST_PP_SEQ_SPLIT_220(x) (x) BOOST_PP_SEQ_SPLIT_219\r
+# define BOOST_PP_SEQ_SPLIT_221(x) (x) BOOST_PP_SEQ_SPLIT_220\r
+# define BOOST_PP_SEQ_SPLIT_222(x) (x) BOOST_PP_SEQ_SPLIT_221\r
+# define BOOST_PP_SEQ_SPLIT_223(x) (x) BOOST_PP_SEQ_SPLIT_222\r
+# define BOOST_PP_SEQ_SPLIT_224(x) (x) BOOST_PP_SEQ_SPLIT_223\r
+# define BOOST_PP_SEQ_SPLIT_225(x) (x) BOOST_PP_SEQ_SPLIT_224\r
+# define BOOST_PP_SEQ_SPLIT_226(x) (x) BOOST_PP_SEQ_SPLIT_225\r
+# define BOOST_PP_SEQ_SPLIT_227(x) (x) BOOST_PP_SEQ_SPLIT_226\r
+# define BOOST_PP_SEQ_SPLIT_228(x) (x) BOOST_PP_SEQ_SPLIT_227\r
+# define BOOST_PP_SEQ_SPLIT_229(x) (x) BOOST_PP_SEQ_SPLIT_228\r
+# define BOOST_PP_SEQ_SPLIT_230(x) (x) BOOST_PP_SEQ_SPLIT_229\r
+# define BOOST_PP_SEQ_SPLIT_231(x) (x) BOOST_PP_SEQ_SPLIT_230\r
+# define BOOST_PP_SEQ_SPLIT_232(x) (x) BOOST_PP_SEQ_SPLIT_231\r
+# define BOOST_PP_SEQ_SPLIT_233(x) (x) BOOST_PP_SEQ_SPLIT_232\r
+# define BOOST_PP_SEQ_SPLIT_234(x) (x) BOOST_PP_SEQ_SPLIT_233\r
+# define BOOST_PP_SEQ_SPLIT_235(x) (x) BOOST_PP_SEQ_SPLIT_234\r
+# define BOOST_PP_SEQ_SPLIT_236(x) (x) BOOST_PP_SEQ_SPLIT_235\r
+# define BOOST_PP_SEQ_SPLIT_237(x) (x) BOOST_PP_SEQ_SPLIT_236\r
+# define BOOST_PP_SEQ_SPLIT_238(x) (x) BOOST_PP_SEQ_SPLIT_237\r
+# define BOOST_PP_SEQ_SPLIT_239(x) (x) BOOST_PP_SEQ_SPLIT_238\r
+# define BOOST_PP_SEQ_SPLIT_240(x) (x) BOOST_PP_SEQ_SPLIT_239\r
+# define BOOST_PP_SEQ_SPLIT_241(x) (x) BOOST_PP_SEQ_SPLIT_240\r
+# define BOOST_PP_SEQ_SPLIT_242(x) (x) BOOST_PP_SEQ_SPLIT_241\r
+# define BOOST_PP_SEQ_SPLIT_243(x) (x) BOOST_PP_SEQ_SPLIT_242\r
+# define BOOST_PP_SEQ_SPLIT_244(x) (x) BOOST_PP_SEQ_SPLIT_243\r
+# define BOOST_PP_SEQ_SPLIT_245(x) (x) BOOST_PP_SEQ_SPLIT_244\r
+# define BOOST_PP_SEQ_SPLIT_246(x) (x) BOOST_PP_SEQ_SPLIT_245\r
+# define BOOST_PP_SEQ_SPLIT_247(x) (x) BOOST_PP_SEQ_SPLIT_246\r
+# define BOOST_PP_SEQ_SPLIT_248(x) (x) BOOST_PP_SEQ_SPLIT_247\r
+# define BOOST_PP_SEQ_SPLIT_249(x) (x) BOOST_PP_SEQ_SPLIT_248\r
+# define BOOST_PP_SEQ_SPLIT_250(x) (x) BOOST_PP_SEQ_SPLIT_249\r
+# define BOOST_PP_SEQ_SPLIT_251(x) (x) BOOST_PP_SEQ_SPLIT_250\r
+# define BOOST_PP_SEQ_SPLIT_252(x) (x) BOOST_PP_SEQ_SPLIT_251\r
+# define BOOST_PP_SEQ_SPLIT_253(x) (x) BOOST_PP_SEQ_SPLIT_252\r
+# define BOOST_PP_SEQ_SPLIT_254(x) (x) BOOST_PP_SEQ_SPLIT_253\r
+# define BOOST_PP_SEQ_SPLIT_255(x) (x) BOOST_PP_SEQ_SPLIT_254\r
+# define BOOST_PP_SEQ_SPLIT_256(x) (x) BOOST_PP_SEQ_SPLIT_255\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/elem.hpp b/boost/boost/preprocessor/seq/elem.hpp
new file mode 100644 (file)
index 0000000..16c2255
--- /dev/null
@@ -0,0 +1,304 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_ELEM_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_ELEM_HPP\r
+#\r
+# include <boost/preprocessor/cat.hpp>\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/facilities/empty.hpp>\r
+#\r
+# /* BOOST_PP_SEQ_ELEM */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
+#    define BOOST_PP_SEQ_ELEM(i, seq) BOOST_PP_SEQ_ELEM_I(i, seq)\r
+# else\r
+#    define BOOST_PP_SEQ_ELEM(i, seq) BOOST_PP_SEQ_ELEM_I((i, seq))\r
+# endif\r
+#\r
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()\r
+#    define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II((BOOST_PP_SEQ_ELEM_ ## i seq))\r
+#    define BOOST_PP_SEQ_ELEM_II(res) BOOST_PP_SEQ_ELEM_IV(BOOST_PP_SEQ_ELEM_III res)\r
+#    define BOOST_PP_SEQ_ELEM_III(x, _) x BOOST_PP_EMPTY()\r
+#    define BOOST_PP_SEQ_ELEM_IV(x) x\r
+# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
+#    define BOOST_PP_SEQ_ELEM_I(par) BOOST_PP_SEQ_ELEM_II ## par\r
+#    define BOOST_PP_SEQ_ELEM_II(i, seq) BOOST_PP_SEQ_ELEM_III(BOOST_PP_SEQ_ELEM_ ## i ## seq)\r
+#    define BOOST_PP_SEQ_ELEM_III(im) BOOST_PP_SEQ_ELEM_IV(im)\r
+#    define BOOST_PP_SEQ_ELEM_IV(x, _) x\r
+# else\r
+#    if defined(__IBMC__) || defined(__IBMCPP__)\r
+#        define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_CAT(BOOST_PP_SEQ_ELEM_ ## i, seq))\r
+#    else\r
+#        define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_SEQ_ELEM_ ## i seq)\r
+#    endif\r
+#    define BOOST_PP_SEQ_ELEM_II(im) BOOST_PP_SEQ_ELEM_III(im)\r
+#    define BOOST_PP_SEQ_ELEM_III(x, _) x\r
+# endif\r
+#\r
+# define BOOST_PP_SEQ_ELEM_0(x) x, BOOST_PP_NIL\r
+# define BOOST_PP_SEQ_ELEM_1(_) BOOST_PP_SEQ_ELEM_0\r
+# define BOOST_PP_SEQ_ELEM_2(_) BOOST_PP_SEQ_ELEM_1\r
+# define BOOST_PP_SEQ_ELEM_3(_) BOOST_PP_SEQ_ELEM_2\r
+# define BOOST_PP_SEQ_ELEM_4(_) BOOST_PP_SEQ_ELEM_3\r
+# define BOOST_PP_SEQ_ELEM_5(_) BOOST_PP_SEQ_ELEM_4\r
+# define BOOST_PP_SEQ_ELEM_6(_) BOOST_PP_SEQ_ELEM_5\r
+# define BOOST_PP_SEQ_ELEM_7(_) BOOST_PP_SEQ_ELEM_6\r
+# define BOOST_PP_SEQ_ELEM_8(_) BOOST_PP_SEQ_ELEM_7\r
+# define BOOST_PP_SEQ_ELEM_9(_) BOOST_PP_SEQ_ELEM_8\r
+# define BOOST_PP_SEQ_ELEM_10(_) BOOST_PP_SEQ_ELEM_9\r
+# define BOOST_PP_SEQ_ELEM_11(_) BOOST_PP_SEQ_ELEM_10\r
+# define BOOST_PP_SEQ_ELEM_12(_) BOOST_PP_SEQ_ELEM_11\r
+# define BOOST_PP_SEQ_ELEM_13(_) BOOST_PP_SEQ_ELEM_12\r
+# define BOOST_PP_SEQ_ELEM_14(_) BOOST_PP_SEQ_ELEM_13\r
+# define BOOST_PP_SEQ_ELEM_15(_) BOOST_PP_SEQ_ELEM_14\r
+# define BOOST_PP_SEQ_ELEM_16(_) BOOST_PP_SEQ_ELEM_15\r
+# define BOOST_PP_SEQ_ELEM_17(_) BOOST_PP_SEQ_ELEM_16\r
+# define BOOST_PP_SEQ_ELEM_18(_) BOOST_PP_SEQ_ELEM_17\r
+# define BOOST_PP_SEQ_ELEM_19(_) BOOST_PP_SEQ_ELEM_18\r
+# define BOOST_PP_SEQ_ELEM_20(_) BOOST_PP_SEQ_ELEM_19\r
+# define BOOST_PP_SEQ_ELEM_21(_) BOOST_PP_SEQ_ELEM_20\r
+# define BOOST_PP_SEQ_ELEM_22(_) BOOST_PP_SEQ_ELEM_21\r
+# define BOOST_PP_SEQ_ELEM_23(_) BOOST_PP_SEQ_ELEM_22\r
+# define BOOST_PP_SEQ_ELEM_24(_) BOOST_PP_SEQ_ELEM_23\r
+# define BOOST_PP_SEQ_ELEM_25(_) BOOST_PP_SEQ_ELEM_24\r
+# define BOOST_PP_SEQ_ELEM_26(_) BOOST_PP_SEQ_ELEM_25\r
+# define BOOST_PP_SEQ_ELEM_27(_) BOOST_PP_SEQ_ELEM_26\r
+# define BOOST_PP_SEQ_ELEM_28(_) BOOST_PP_SEQ_ELEM_27\r
+# define BOOST_PP_SEQ_ELEM_29(_) BOOST_PP_SEQ_ELEM_28\r
+# define BOOST_PP_SEQ_ELEM_30(_) BOOST_PP_SEQ_ELEM_29\r
+# define BOOST_PP_SEQ_ELEM_31(_) BOOST_PP_SEQ_ELEM_30\r
+# define BOOST_PP_SEQ_ELEM_32(_) BOOST_PP_SEQ_ELEM_31\r
+# define BOOST_PP_SEQ_ELEM_33(_) BOOST_PP_SEQ_ELEM_32\r
+# define BOOST_PP_SEQ_ELEM_34(_) BOOST_PP_SEQ_ELEM_33\r
+# define BOOST_PP_SEQ_ELEM_35(_) BOOST_PP_SEQ_ELEM_34\r
+# define BOOST_PP_SEQ_ELEM_36(_) BOOST_PP_SEQ_ELEM_35\r
+# define BOOST_PP_SEQ_ELEM_37(_) BOOST_PP_SEQ_ELEM_36\r
+# define BOOST_PP_SEQ_ELEM_38(_) BOOST_PP_SEQ_ELEM_37\r
+# define BOOST_PP_SEQ_ELEM_39(_) BOOST_PP_SEQ_ELEM_38\r
+# define BOOST_PP_SEQ_ELEM_40(_) BOOST_PP_SEQ_ELEM_39\r
+# define BOOST_PP_SEQ_ELEM_41(_) BOOST_PP_SEQ_ELEM_40\r
+# define BOOST_PP_SEQ_ELEM_42(_) BOOST_PP_SEQ_ELEM_41\r
+# define BOOST_PP_SEQ_ELEM_43(_) BOOST_PP_SEQ_ELEM_42\r
+# define BOOST_PP_SEQ_ELEM_44(_) BOOST_PP_SEQ_ELEM_43\r
+# define BOOST_PP_SEQ_ELEM_45(_) BOOST_PP_SEQ_ELEM_44\r
+# define BOOST_PP_SEQ_ELEM_46(_) BOOST_PP_SEQ_ELEM_45\r
+# define BOOST_PP_SEQ_ELEM_47(_) BOOST_PP_SEQ_ELEM_46\r
+# define BOOST_PP_SEQ_ELEM_48(_) BOOST_PP_SEQ_ELEM_47\r
+# define BOOST_PP_SEQ_ELEM_49(_) BOOST_PP_SEQ_ELEM_48\r
+# define BOOST_PP_SEQ_ELEM_50(_) BOOST_PP_SEQ_ELEM_49\r
+# define BOOST_PP_SEQ_ELEM_51(_) BOOST_PP_SEQ_ELEM_50\r
+# define BOOST_PP_SEQ_ELEM_52(_) BOOST_PP_SEQ_ELEM_51\r
+# define BOOST_PP_SEQ_ELEM_53(_) BOOST_PP_SEQ_ELEM_52\r
+# define BOOST_PP_SEQ_ELEM_54(_) BOOST_PP_SEQ_ELEM_53\r
+# define BOOST_PP_SEQ_ELEM_55(_) BOOST_PP_SEQ_ELEM_54\r
+# define BOOST_PP_SEQ_ELEM_56(_) BOOST_PP_SEQ_ELEM_55\r
+# define BOOST_PP_SEQ_ELEM_57(_) BOOST_PP_SEQ_ELEM_56\r
+# define BOOST_PP_SEQ_ELEM_58(_) BOOST_PP_SEQ_ELEM_57\r
+# define BOOST_PP_SEQ_ELEM_59(_) BOOST_PP_SEQ_ELEM_58\r
+# define BOOST_PP_SEQ_ELEM_60(_) BOOST_PP_SEQ_ELEM_59\r
+# define BOOST_PP_SEQ_ELEM_61(_) BOOST_PP_SEQ_ELEM_60\r
+# define BOOST_PP_SEQ_ELEM_62(_) BOOST_PP_SEQ_ELEM_61\r
+# define BOOST_PP_SEQ_ELEM_63(_) BOOST_PP_SEQ_ELEM_62\r
+# define BOOST_PP_SEQ_ELEM_64(_) BOOST_PP_SEQ_ELEM_63\r
+# define BOOST_PP_SEQ_ELEM_65(_) BOOST_PP_SEQ_ELEM_64\r
+# define BOOST_PP_SEQ_ELEM_66(_) BOOST_PP_SEQ_ELEM_65\r
+# define BOOST_PP_SEQ_ELEM_67(_) BOOST_PP_SEQ_ELEM_66\r
+# define BOOST_PP_SEQ_ELEM_68(_) BOOST_PP_SEQ_ELEM_67\r
+# define BOOST_PP_SEQ_ELEM_69(_) BOOST_PP_SEQ_ELEM_68\r
+# define BOOST_PP_SEQ_ELEM_70(_) BOOST_PP_SEQ_ELEM_69\r
+# define BOOST_PP_SEQ_ELEM_71(_) BOOST_PP_SEQ_ELEM_70\r
+# define BOOST_PP_SEQ_ELEM_72(_) BOOST_PP_SEQ_ELEM_71\r
+# define BOOST_PP_SEQ_ELEM_73(_) BOOST_PP_SEQ_ELEM_72\r
+# define BOOST_PP_SEQ_ELEM_74(_) BOOST_PP_SEQ_ELEM_73\r
+# define BOOST_PP_SEQ_ELEM_75(_) BOOST_PP_SEQ_ELEM_74\r
+# define BOOST_PP_SEQ_ELEM_76(_) BOOST_PP_SEQ_ELEM_75\r
+# define BOOST_PP_SEQ_ELEM_77(_) BOOST_PP_SEQ_ELEM_76\r
+# define BOOST_PP_SEQ_ELEM_78(_) BOOST_PP_SEQ_ELEM_77\r
+# define BOOST_PP_SEQ_ELEM_79(_) BOOST_PP_SEQ_ELEM_78\r
+# define BOOST_PP_SEQ_ELEM_80(_) BOOST_PP_SEQ_ELEM_79\r
+# define BOOST_PP_SEQ_ELEM_81(_) BOOST_PP_SEQ_ELEM_80\r
+# define BOOST_PP_SEQ_ELEM_82(_) BOOST_PP_SEQ_ELEM_81\r
+# define BOOST_PP_SEQ_ELEM_83(_) BOOST_PP_SEQ_ELEM_82\r
+# define BOOST_PP_SEQ_ELEM_84(_) BOOST_PP_SEQ_ELEM_83\r
+# define BOOST_PP_SEQ_ELEM_85(_) BOOST_PP_SEQ_ELEM_84\r
+# define BOOST_PP_SEQ_ELEM_86(_) BOOST_PP_SEQ_ELEM_85\r
+# define BOOST_PP_SEQ_ELEM_87(_) BOOST_PP_SEQ_ELEM_86\r
+# define BOOST_PP_SEQ_ELEM_88(_) BOOST_PP_SEQ_ELEM_87\r
+# define BOOST_PP_SEQ_ELEM_89(_) BOOST_PP_SEQ_ELEM_88\r
+# define BOOST_PP_SEQ_ELEM_90(_) BOOST_PP_SEQ_ELEM_89\r
+# define BOOST_PP_SEQ_ELEM_91(_) BOOST_PP_SEQ_ELEM_90\r
+# define BOOST_PP_SEQ_ELEM_92(_) BOOST_PP_SEQ_ELEM_91\r
+# define BOOST_PP_SEQ_ELEM_93(_) BOOST_PP_SEQ_ELEM_92\r
+# define BOOST_PP_SEQ_ELEM_94(_) BOOST_PP_SEQ_ELEM_93\r
+# define BOOST_PP_SEQ_ELEM_95(_) BOOST_PP_SEQ_ELEM_94\r
+# define BOOST_PP_SEQ_ELEM_96(_) BOOST_PP_SEQ_ELEM_95\r
+# define BOOST_PP_SEQ_ELEM_97(_) BOOST_PP_SEQ_ELEM_96\r
+# define BOOST_PP_SEQ_ELEM_98(_) BOOST_PP_SEQ_ELEM_97\r
+# define BOOST_PP_SEQ_ELEM_99(_) BOOST_PP_SEQ_ELEM_98\r
+# define BOOST_PP_SEQ_ELEM_100(_) BOOST_PP_SEQ_ELEM_99\r
+# define BOOST_PP_SEQ_ELEM_101(_) BOOST_PP_SEQ_ELEM_100\r
+# define BOOST_PP_SEQ_ELEM_102(_) BOOST_PP_SEQ_ELEM_101\r
+# define BOOST_PP_SEQ_ELEM_103(_) BOOST_PP_SEQ_ELEM_102\r
+# define BOOST_PP_SEQ_ELEM_104(_) BOOST_PP_SEQ_ELEM_103\r
+# define BOOST_PP_SEQ_ELEM_105(_) BOOST_PP_SEQ_ELEM_104\r
+# define BOOST_PP_SEQ_ELEM_106(_) BOOST_PP_SEQ_ELEM_105\r
+# define BOOST_PP_SEQ_ELEM_107(_) BOOST_PP_SEQ_ELEM_106\r
+# define BOOST_PP_SEQ_ELEM_108(_) BOOST_PP_SEQ_ELEM_107\r
+# define BOOST_PP_SEQ_ELEM_109(_) BOOST_PP_SEQ_ELEM_108\r
+# define BOOST_PP_SEQ_ELEM_110(_) BOOST_PP_SEQ_ELEM_109\r
+# define BOOST_PP_SEQ_ELEM_111(_) BOOST_PP_SEQ_ELEM_110\r
+# define BOOST_PP_SEQ_ELEM_112(_) BOOST_PP_SEQ_ELEM_111\r
+# define BOOST_PP_SEQ_ELEM_113(_) BOOST_PP_SEQ_ELEM_112\r
+# define BOOST_PP_SEQ_ELEM_114(_) BOOST_PP_SEQ_ELEM_113\r
+# define BOOST_PP_SEQ_ELEM_115(_) BOOST_PP_SEQ_ELEM_114\r
+# define BOOST_PP_SEQ_ELEM_116(_) BOOST_PP_SEQ_ELEM_115\r
+# define BOOST_PP_SEQ_ELEM_117(_) BOOST_PP_SEQ_ELEM_116\r
+# define BOOST_PP_SEQ_ELEM_118(_) BOOST_PP_SEQ_ELEM_117\r
+# define BOOST_PP_SEQ_ELEM_119(_) BOOST_PP_SEQ_ELEM_118\r
+# define BOOST_PP_SEQ_ELEM_120(_) BOOST_PP_SEQ_ELEM_119\r
+# define BOOST_PP_SEQ_ELEM_121(_) BOOST_PP_SEQ_ELEM_120\r
+# define BOOST_PP_SEQ_ELEM_122(_) BOOST_PP_SEQ_ELEM_121\r
+# define BOOST_PP_SEQ_ELEM_123(_) BOOST_PP_SEQ_ELEM_122\r
+# define BOOST_PP_SEQ_ELEM_124(_) BOOST_PP_SEQ_ELEM_123\r
+# define BOOST_PP_SEQ_ELEM_125(_) BOOST_PP_SEQ_ELEM_124\r
+# define BOOST_PP_SEQ_ELEM_126(_) BOOST_PP_SEQ_ELEM_125\r
+# define BOOST_PP_SEQ_ELEM_127(_) BOOST_PP_SEQ_ELEM_126\r
+# define BOOST_PP_SEQ_ELEM_128(_) BOOST_PP_SEQ_ELEM_127\r
+# define BOOST_PP_SEQ_ELEM_129(_) BOOST_PP_SEQ_ELEM_128\r
+# define BOOST_PP_SEQ_ELEM_130(_) BOOST_PP_SEQ_ELEM_129\r
+# define BOOST_PP_SEQ_ELEM_131(_) BOOST_PP_SEQ_ELEM_130\r
+# define BOOST_PP_SEQ_ELEM_132(_) BOOST_PP_SEQ_ELEM_131\r
+# define BOOST_PP_SEQ_ELEM_133(_) BOOST_PP_SEQ_ELEM_132\r
+# define BOOST_PP_SEQ_ELEM_134(_) BOOST_PP_SEQ_ELEM_133\r
+# define BOOST_PP_SEQ_ELEM_135(_) BOOST_PP_SEQ_ELEM_134\r
+# define BOOST_PP_SEQ_ELEM_136(_) BOOST_PP_SEQ_ELEM_135\r
+# define BOOST_PP_SEQ_ELEM_137(_) BOOST_PP_SEQ_ELEM_136\r
+# define BOOST_PP_SEQ_ELEM_138(_) BOOST_PP_SEQ_ELEM_137\r
+# define BOOST_PP_SEQ_ELEM_139(_) BOOST_PP_SEQ_ELEM_138\r
+# define BOOST_PP_SEQ_ELEM_140(_) BOOST_PP_SEQ_ELEM_139\r
+# define BOOST_PP_SEQ_ELEM_141(_) BOOST_PP_SEQ_ELEM_140\r
+# define BOOST_PP_SEQ_ELEM_142(_) BOOST_PP_SEQ_ELEM_141\r
+# define BOOST_PP_SEQ_ELEM_143(_) BOOST_PP_SEQ_ELEM_142\r
+# define BOOST_PP_SEQ_ELEM_144(_) BOOST_PP_SEQ_ELEM_143\r
+# define BOOST_PP_SEQ_ELEM_145(_) BOOST_PP_SEQ_ELEM_144\r
+# define BOOST_PP_SEQ_ELEM_146(_) BOOST_PP_SEQ_ELEM_145\r
+# define BOOST_PP_SEQ_ELEM_147(_) BOOST_PP_SEQ_ELEM_146\r
+# define BOOST_PP_SEQ_ELEM_148(_) BOOST_PP_SEQ_ELEM_147\r
+# define BOOST_PP_SEQ_ELEM_149(_) BOOST_PP_SEQ_ELEM_148\r
+# define BOOST_PP_SEQ_ELEM_150(_) BOOST_PP_SEQ_ELEM_149\r
+# define BOOST_PP_SEQ_ELEM_151(_) BOOST_PP_SEQ_ELEM_150\r
+# define BOOST_PP_SEQ_ELEM_152(_) BOOST_PP_SEQ_ELEM_151\r
+# define BOOST_PP_SEQ_ELEM_153(_) BOOST_PP_SEQ_ELEM_152\r
+# define BOOST_PP_SEQ_ELEM_154(_) BOOST_PP_SEQ_ELEM_153\r
+# define BOOST_PP_SEQ_ELEM_155(_) BOOST_PP_SEQ_ELEM_154\r
+# define BOOST_PP_SEQ_ELEM_156(_) BOOST_PP_SEQ_ELEM_155\r
+# define BOOST_PP_SEQ_ELEM_157(_) BOOST_PP_SEQ_ELEM_156\r
+# define BOOST_PP_SEQ_ELEM_158(_) BOOST_PP_SEQ_ELEM_157\r
+# define BOOST_PP_SEQ_ELEM_159(_) BOOST_PP_SEQ_ELEM_158\r
+# define BOOST_PP_SEQ_ELEM_160(_) BOOST_PP_SEQ_ELEM_159\r
+# define BOOST_PP_SEQ_ELEM_161(_) BOOST_PP_SEQ_ELEM_160\r
+# define BOOST_PP_SEQ_ELEM_162(_) BOOST_PP_SEQ_ELEM_161\r
+# define BOOST_PP_SEQ_ELEM_163(_) BOOST_PP_SEQ_ELEM_162\r
+# define BOOST_PP_SEQ_ELEM_164(_) BOOST_PP_SEQ_ELEM_163\r
+# define BOOST_PP_SEQ_ELEM_165(_) BOOST_PP_SEQ_ELEM_164\r
+# define BOOST_PP_SEQ_ELEM_166(_) BOOST_PP_SEQ_ELEM_165\r
+# define BOOST_PP_SEQ_ELEM_167(_) BOOST_PP_SEQ_ELEM_166\r
+# define BOOST_PP_SEQ_ELEM_168(_) BOOST_PP_SEQ_ELEM_167\r
+# define BOOST_PP_SEQ_ELEM_169(_) BOOST_PP_SEQ_ELEM_168\r
+# define BOOST_PP_SEQ_ELEM_170(_) BOOST_PP_SEQ_ELEM_169\r
+# define BOOST_PP_SEQ_ELEM_171(_) BOOST_PP_SEQ_ELEM_170\r
+# define BOOST_PP_SEQ_ELEM_172(_) BOOST_PP_SEQ_ELEM_171\r
+# define BOOST_PP_SEQ_ELEM_173(_) BOOST_PP_SEQ_ELEM_172\r
+# define BOOST_PP_SEQ_ELEM_174(_) BOOST_PP_SEQ_ELEM_173\r
+# define BOOST_PP_SEQ_ELEM_175(_) BOOST_PP_SEQ_ELEM_174\r
+# define BOOST_PP_SEQ_ELEM_176(_) BOOST_PP_SEQ_ELEM_175\r
+# define BOOST_PP_SEQ_ELEM_177(_) BOOST_PP_SEQ_ELEM_176\r
+# define BOOST_PP_SEQ_ELEM_178(_) BOOST_PP_SEQ_ELEM_177\r
+# define BOOST_PP_SEQ_ELEM_179(_) BOOST_PP_SEQ_ELEM_178\r
+# define BOOST_PP_SEQ_ELEM_180(_) BOOST_PP_SEQ_ELEM_179\r
+# define BOOST_PP_SEQ_ELEM_181(_) BOOST_PP_SEQ_ELEM_180\r
+# define BOOST_PP_SEQ_ELEM_182(_) BOOST_PP_SEQ_ELEM_181\r
+# define BOOST_PP_SEQ_ELEM_183(_) BOOST_PP_SEQ_ELEM_182\r
+# define BOOST_PP_SEQ_ELEM_184(_) BOOST_PP_SEQ_ELEM_183\r
+# define BOOST_PP_SEQ_ELEM_185(_) BOOST_PP_SEQ_ELEM_184\r
+# define BOOST_PP_SEQ_ELEM_186(_) BOOST_PP_SEQ_ELEM_185\r
+# define BOOST_PP_SEQ_ELEM_187(_) BOOST_PP_SEQ_ELEM_186\r
+# define BOOST_PP_SEQ_ELEM_188(_) BOOST_PP_SEQ_ELEM_187\r
+# define BOOST_PP_SEQ_ELEM_189(_) BOOST_PP_SEQ_ELEM_188\r
+# define BOOST_PP_SEQ_ELEM_190(_) BOOST_PP_SEQ_ELEM_189\r
+# define BOOST_PP_SEQ_ELEM_191(_) BOOST_PP_SEQ_ELEM_190\r
+# define BOOST_PP_SEQ_ELEM_192(_) BOOST_PP_SEQ_ELEM_191\r
+# define BOOST_PP_SEQ_ELEM_193(_) BOOST_PP_SEQ_ELEM_192\r
+# define BOOST_PP_SEQ_ELEM_194(_) BOOST_PP_SEQ_ELEM_193\r
+# define BOOST_PP_SEQ_ELEM_195(_) BOOST_PP_SEQ_ELEM_194\r
+# define BOOST_PP_SEQ_ELEM_196(_) BOOST_PP_SEQ_ELEM_195\r
+# define BOOST_PP_SEQ_ELEM_197(_) BOOST_PP_SEQ_ELEM_196\r
+# define BOOST_PP_SEQ_ELEM_198(_) BOOST_PP_SEQ_ELEM_197\r
+# define BOOST_PP_SEQ_ELEM_199(_) BOOST_PP_SEQ_ELEM_198\r
+# define BOOST_PP_SEQ_ELEM_200(_) BOOST_PP_SEQ_ELEM_199\r
+# define BOOST_PP_SEQ_ELEM_201(_) BOOST_PP_SEQ_ELEM_200\r
+# define BOOST_PP_SEQ_ELEM_202(_) BOOST_PP_SEQ_ELEM_201\r
+# define BOOST_PP_SEQ_ELEM_203(_) BOOST_PP_SEQ_ELEM_202\r
+# define BOOST_PP_SEQ_ELEM_204(_) BOOST_PP_SEQ_ELEM_203\r
+# define BOOST_PP_SEQ_ELEM_205(_) BOOST_PP_SEQ_ELEM_204\r
+# define BOOST_PP_SEQ_ELEM_206(_) BOOST_PP_SEQ_ELEM_205\r
+# define BOOST_PP_SEQ_ELEM_207(_) BOOST_PP_SEQ_ELEM_206\r
+# define BOOST_PP_SEQ_ELEM_208(_) BOOST_PP_SEQ_ELEM_207\r
+# define BOOST_PP_SEQ_ELEM_209(_) BOOST_PP_SEQ_ELEM_208\r
+# define BOOST_PP_SEQ_ELEM_210(_) BOOST_PP_SEQ_ELEM_209\r
+# define BOOST_PP_SEQ_ELEM_211(_) BOOST_PP_SEQ_ELEM_210\r
+# define BOOST_PP_SEQ_ELEM_212(_) BOOST_PP_SEQ_ELEM_211\r
+# define BOOST_PP_SEQ_ELEM_213(_) BOOST_PP_SEQ_ELEM_212\r
+# define BOOST_PP_SEQ_ELEM_214(_) BOOST_PP_SEQ_ELEM_213\r
+# define BOOST_PP_SEQ_ELEM_215(_) BOOST_PP_SEQ_ELEM_214\r
+# define BOOST_PP_SEQ_ELEM_216(_) BOOST_PP_SEQ_ELEM_215\r
+# define BOOST_PP_SEQ_ELEM_217(_) BOOST_PP_SEQ_ELEM_216\r
+# define BOOST_PP_SEQ_ELEM_218(_) BOOST_PP_SEQ_ELEM_217\r
+# define BOOST_PP_SEQ_ELEM_219(_) BOOST_PP_SEQ_ELEM_218\r
+# define BOOST_PP_SEQ_ELEM_220(_) BOOST_PP_SEQ_ELEM_219\r
+# define BOOST_PP_SEQ_ELEM_221(_) BOOST_PP_SEQ_ELEM_220\r
+# define BOOST_PP_SEQ_ELEM_222(_) BOOST_PP_SEQ_ELEM_221\r
+# define BOOST_PP_SEQ_ELEM_223(_) BOOST_PP_SEQ_ELEM_222\r
+# define BOOST_PP_SEQ_ELEM_224(_) BOOST_PP_SEQ_ELEM_223\r
+# define BOOST_PP_SEQ_ELEM_225(_) BOOST_PP_SEQ_ELEM_224\r
+# define BOOST_PP_SEQ_ELEM_226(_) BOOST_PP_SEQ_ELEM_225\r
+# define BOOST_PP_SEQ_ELEM_227(_) BOOST_PP_SEQ_ELEM_226\r
+# define BOOST_PP_SEQ_ELEM_228(_) BOOST_PP_SEQ_ELEM_227\r
+# define BOOST_PP_SEQ_ELEM_229(_) BOOST_PP_SEQ_ELEM_228\r
+# define BOOST_PP_SEQ_ELEM_230(_) BOOST_PP_SEQ_ELEM_229\r
+# define BOOST_PP_SEQ_ELEM_231(_) BOOST_PP_SEQ_ELEM_230\r
+# define BOOST_PP_SEQ_ELEM_232(_) BOOST_PP_SEQ_ELEM_231\r
+# define BOOST_PP_SEQ_ELEM_233(_) BOOST_PP_SEQ_ELEM_232\r
+# define BOOST_PP_SEQ_ELEM_234(_) BOOST_PP_SEQ_ELEM_233\r
+# define BOOST_PP_SEQ_ELEM_235(_) BOOST_PP_SEQ_ELEM_234\r
+# define BOOST_PP_SEQ_ELEM_236(_) BOOST_PP_SEQ_ELEM_235\r
+# define BOOST_PP_SEQ_ELEM_237(_) BOOST_PP_SEQ_ELEM_236\r
+# define BOOST_PP_SEQ_ELEM_238(_) BOOST_PP_SEQ_ELEM_237\r
+# define BOOST_PP_SEQ_ELEM_239(_) BOOST_PP_SEQ_ELEM_238\r
+# define BOOST_PP_SEQ_ELEM_240(_) BOOST_PP_SEQ_ELEM_239\r
+# define BOOST_PP_SEQ_ELEM_241(_) BOOST_PP_SEQ_ELEM_240\r
+# define BOOST_PP_SEQ_ELEM_242(_) BOOST_PP_SEQ_ELEM_241\r
+# define BOOST_PP_SEQ_ELEM_243(_) BOOST_PP_SEQ_ELEM_242\r
+# define BOOST_PP_SEQ_ELEM_244(_) BOOST_PP_SEQ_ELEM_243\r
+# define BOOST_PP_SEQ_ELEM_245(_) BOOST_PP_SEQ_ELEM_244\r
+# define BOOST_PP_SEQ_ELEM_246(_) BOOST_PP_SEQ_ELEM_245\r
+# define BOOST_PP_SEQ_ELEM_247(_) BOOST_PP_SEQ_ELEM_246\r
+# define BOOST_PP_SEQ_ELEM_248(_) BOOST_PP_SEQ_ELEM_247\r
+# define BOOST_PP_SEQ_ELEM_249(_) BOOST_PP_SEQ_ELEM_248\r
+# define BOOST_PP_SEQ_ELEM_250(_) BOOST_PP_SEQ_ELEM_249\r
+# define BOOST_PP_SEQ_ELEM_251(_) BOOST_PP_SEQ_ELEM_250\r
+# define BOOST_PP_SEQ_ELEM_252(_) BOOST_PP_SEQ_ELEM_251\r
+# define BOOST_PP_SEQ_ELEM_253(_) BOOST_PP_SEQ_ELEM_252\r
+# define BOOST_PP_SEQ_ELEM_254(_) BOOST_PP_SEQ_ELEM_253\r
+# define BOOST_PP_SEQ_ELEM_255(_) BOOST_PP_SEQ_ELEM_254\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/enum.hpp b/boost/boost/preprocessor/seq/enum.hpp
new file mode 100644 (file)
index 0000000..b3a9f1e
--- /dev/null
@@ -0,0 +1,288 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_ENUM_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_ENUM_HPP\r
+#\r
+# include <boost/preprocessor/cat.hpp>\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/seq/size.hpp>\r
+#\r
+# /* BOOST_PP_SEQ_ENUM */\r
+#\r
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_SEQ_ENUM(seq) BOOST_PP_SEQ_ENUM_I(seq)\r
+#    define BOOST_PP_SEQ_ENUM_I(seq) BOOST_PP_CAT(BOOST_PP_SEQ_ENUM_, BOOST_PP_SEQ_SIZE(seq)) seq\r
+# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
+#    define BOOST_PP_SEQ_ENUM(seq) BOOST_PP_SEQ_ENUM_I(BOOST_PP_SEQ_SIZE(seq), seq)\r
+#    define BOOST_PP_SEQ_ENUM_I(size, seq) BOOST_PP_CAT(BOOST_PP_SEQ_ENUM_, size) seq\r
+# else\r
+#    define BOOST_PP_SEQ_ENUM(seq) BOOST_PP_CAT(BOOST_PP_SEQ_ENUM_, BOOST_PP_SEQ_SIZE(seq)) seq\r
+# endif\r
+#\r
+# define BOOST_PP_SEQ_ENUM_1(x) x\r
+# define BOOST_PP_SEQ_ENUM_2(x) x, BOOST_PP_SEQ_ENUM_1\r
+# define BOOST_PP_SEQ_ENUM_3(x) x, BOOST_PP_SEQ_ENUM_2\r
+# define BOOST_PP_SEQ_ENUM_4(x) x, BOOST_PP_SEQ_ENUM_3\r
+# define BOOST_PP_SEQ_ENUM_5(x) x, BOOST_PP_SEQ_ENUM_4\r
+# define BOOST_PP_SEQ_ENUM_6(x) x, BOOST_PP_SEQ_ENUM_5\r
+# define BOOST_PP_SEQ_ENUM_7(x) x, BOOST_PP_SEQ_ENUM_6\r
+# define BOOST_PP_SEQ_ENUM_8(x) x, BOOST_PP_SEQ_ENUM_7\r
+# define BOOST_PP_SEQ_ENUM_9(x) x, BOOST_PP_SEQ_ENUM_8\r
+# define BOOST_PP_SEQ_ENUM_10(x) x, BOOST_PP_SEQ_ENUM_9\r
+# define BOOST_PP_SEQ_ENUM_11(x) x, BOOST_PP_SEQ_ENUM_10\r
+# define BOOST_PP_SEQ_ENUM_12(x) x, BOOST_PP_SEQ_ENUM_11\r
+# define BOOST_PP_SEQ_ENUM_13(x) x, BOOST_PP_SEQ_ENUM_12\r
+# define BOOST_PP_SEQ_ENUM_14(x) x, BOOST_PP_SEQ_ENUM_13\r
+# define BOOST_PP_SEQ_ENUM_15(x) x, BOOST_PP_SEQ_ENUM_14\r
+# define BOOST_PP_SEQ_ENUM_16(x) x, BOOST_PP_SEQ_ENUM_15\r
+# define BOOST_PP_SEQ_ENUM_17(x) x, BOOST_PP_SEQ_ENUM_16\r
+# define BOOST_PP_SEQ_ENUM_18(x) x, BOOST_PP_SEQ_ENUM_17\r
+# define BOOST_PP_SEQ_ENUM_19(x) x, BOOST_PP_SEQ_ENUM_18\r
+# define BOOST_PP_SEQ_ENUM_20(x) x, BOOST_PP_SEQ_ENUM_19\r
+# define BOOST_PP_SEQ_ENUM_21(x) x, BOOST_PP_SEQ_ENUM_20\r
+# define BOOST_PP_SEQ_ENUM_22(x) x, BOOST_PP_SEQ_ENUM_21\r
+# define BOOST_PP_SEQ_ENUM_23(x) x, BOOST_PP_SEQ_ENUM_22\r
+# define BOOST_PP_SEQ_ENUM_24(x) x, BOOST_PP_SEQ_ENUM_23\r
+# define BOOST_PP_SEQ_ENUM_25(x) x, BOOST_PP_SEQ_ENUM_24\r
+# define BOOST_PP_SEQ_ENUM_26(x) x, BOOST_PP_SEQ_ENUM_25\r
+# define BOOST_PP_SEQ_ENUM_27(x) x, BOOST_PP_SEQ_ENUM_26\r
+# define BOOST_PP_SEQ_ENUM_28(x) x, BOOST_PP_SEQ_ENUM_27\r
+# define BOOST_PP_SEQ_ENUM_29(x) x, BOOST_PP_SEQ_ENUM_28\r
+# define BOOST_PP_SEQ_ENUM_30(x) x, BOOST_PP_SEQ_ENUM_29\r
+# define BOOST_PP_SEQ_ENUM_31(x) x, BOOST_PP_SEQ_ENUM_30\r
+# define BOOST_PP_SEQ_ENUM_32(x) x, BOOST_PP_SEQ_ENUM_31\r
+# define BOOST_PP_SEQ_ENUM_33(x) x, BOOST_PP_SEQ_ENUM_32\r
+# define BOOST_PP_SEQ_ENUM_34(x) x, BOOST_PP_SEQ_ENUM_33\r
+# define BOOST_PP_SEQ_ENUM_35(x) x, BOOST_PP_SEQ_ENUM_34\r
+# define BOOST_PP_SEQ_ENUM_36(x) x, BOOST_PP_SEQ_ENUM_35\r
+# define BOOST_PP_SEQ_ENUM_37(x) x, BOOST_PP_SEQ_ENUM_36\r
+# define BOOST_PP_SEQ_ENUM_38(x) x, BOOST_PP_SEQ_ENUM_37\r
+# define BOOST_PP_SEQ_ENUM_39(x) x, BOOST_PP_SEQ_ENUM_38\r
+# define BOOST_PP_SEQ_ENUM_40(x) x, BOOST_PP_SEQ_ENUM_39\r
+# define BOOST_PP_SEQ_ENUM_41(x) x, BOOST_PP_SEQ_ENUM_40\r
+# define BOOST_PP_SEQ_ENUM_42(x) x, BOOST_PP_SEQ_ENUM_41\r
+# define BOOST_PP_SEQ_ENUM_43(x) x, BOOST_PP_SEQ_ENUM_42\r
+# define BOOST_PP_SEQ_ENUM_44(x) x, BOOST_PP_SEQ_ENUM_43\r
+# define BOOST_PP_SEQ_ENUM_45(x) x, BOOST_PP_SEQ_ENUM_44\r
+# define BOOST_PP_SEQ_ENUM_46(x) x, BOOST_PP_SEQ_ENUM_45\r
+# define BOOST_PP_SEQ_ENUM_47(x) x, BOOST_PP_SEQ_ENUM_46\r
+# define BOOST_PP_SEQ_ENUM_48(x) x, BOOST_PP_SEQ_ENUM_47\r
+# define BOOST_PP_SEQ_ENUM_49(x) x, BOOST_PP_SEQ_ENUM_48\r
+# define BOOST_PP_SEQ_ENUM_50(x) x, BOOST_PP_SEQ_ENUM_49\r
+# define BOOST_PP_SEQ_ENUM_51(x) x, BOOST_PP_SEQ_ENUM_50\r
+# define BOOST_PP_SEQ_ENUM_52(x) x, BOOST_PP_SEQ_ENUM_51\r
+# define BOOST_PP_SEQ_ENUM_53(x) x, BOOST_PP_SEQ_ENUM_52\r
+# define BOOST_PP_SEQ_ENUM_54(x) x, BOOST_PP_SEQ_ENUM_53\r
+# define BOOST_PP_SEQ_ENUM_55(x) x, BOOST_PP_SEQ_ENUM_54\r
+# define BOOST_PP_SEQ_ENUM_56(x) x, BOOST_PP_SEQ_ENUM_55\r
+# define BOOST_PP_SEQ_ENUM_57(x) x, BOOST_PP_SEQ_ENUM_56\r
+# define BOOST_PP_SEQ_ENUM_58(x) x, BOOST_PP_SEQ_ENUM_57\r
+# define BOOST_PP_SEQ_ENUM_59(x) x, BOOST_PP_SEQ_ENUM_58\r
+# define BOOST_PP_SEQ_ENUM_60(x) x, BOOST_PP_SEQ_ENUM_59\r
+# define BOOST_PP_SEQ_ENUM_61(x) x, BOOST_PP_SEQ_ENUM_60\r
+# define BOOST_PP_SEQ_ENUM_62(x) x, BOOST_PP_SEQ_ENUM_61\r
+# define BOOST_PP_SEQ_ENUM_63(x) x, BOOST_PP_SEQ_ENUM_62\r
+# define BOOST_PP_SEQ_ENUM_64(x) x, BOOST_PP_SEQ_ENUM_63\r
+# define BOOST_PP_SEQ_ENUM_65(x) x, BOOST_PP_SEQ_ENUM_64\r
+# define BOOST_PP_SEQ_ENUM_66(x) x, BOOST_PP_SEQ_ENUM_65\r
+# define BOOST_PP_SEQ_ENUM_67(x) x, BOOST_PP_SEQ_ENUM_66\r
+# define BOOST_PP_SEQ_ENUM_68(x) x, BOOST_PP_SEQ_ENUM_67\r
+# define BOOST_PP_SEQ_ENUM_69(x) x, BOOST_PP_SEQ_ENUM_68\r
+# define BOOST_PP_SEQ_ENUM_70(x) x, BOOST_PP_SEQ_ENUM_69\r
+# define BOOST_PP_SEQ_ENUM_71(x) x, BOOST_PP_SEQ_ENUM_70\r
+# define BOOST_PP_SEQ_ENUM_72(x) x, BOOST_PP_SEQ_ENUM_71\r
+# define BOOST_PP_SEQ_ENUM_73(x) x, BOOST_PP_SEQ_ENUM_72\r
+# define BOOST_PP_SEQ_ENUM_74(x) x, BOOST_PP_SEQ_ENUM_73\r
+# define BOOST_PP_SEQ_ENUM_75(x) x, BOOST_PP_SEQ_ENUM_74\r
+# define BOOST_PP_SEQ_ENUM_76(x) x, BOOST_PP_SEQ_ENUM_75\r
+# define BOOST_PP_SEQ_ENUM_77(x) x, BOOST_PP_SEQ_ENUM_76\r
+# define BOOST_PP_SEQ_ENUM_78(x) x, BOOST_PP_SEQ_ENUM_77\r
+# define BOOST_PP_SEQ_ENUM_79(x) x, BOOST_PP_SEQ_ENUM_78\r
+# define BOOST_PP_SEQ_ENUM_80(x) x, BOOST_PP_SEQ_ENUM_79\r
+# define BOOST_PP_SEQ_ENUM_81(x) x, BOOST_PP_SEQ_ENUM_80\r
+# define BOOST_PP_SEQ_ENUM_82(x) x, BOOST_PP_SEQ_ENUM_81\r
+# define BOOST_PP_SEQ_ENUM_83(x) x, BOOST_PP_SEQ_ENUM_82\r
+# define BOOST_PP_SEQ_ENUM_84(x) x, BOOST_PP_SEQ_ENUM_83\r
+# define BOOST_PP_SEQ_ENUM_85(x) x, BOOST_PP_SEQ_ENUM_84\r
+# define BOOST_PP_SEQ_ENUM_86(x) x, BOOST_PP_SEQ_ENUM_85\r
+# define BOOST_PP_SEQ_ENUM_87(x) x, BOOST_PP_SEQ_ENUM_86\r
+# define BOOST_PP_SEQ_ENUM_88(x) x, BOOST_PP_SEQ_ENUM_87\r
+# define BOOST_PP_SEQ_ENUM_89(x) x, BOOST_PP_SEQ_ENUM_88\r
+# define BOOST_PP_SEQ_ENUM_90(x) x, BOOST_PP_SEQ_ENUM_89\r
+# define BOOST_PP_SEQ_ENUM_91(x) x, BOOST_PP_SEQ_ENUM_90\r
+# define BOOST_PP_SEQ_ENUM_92(x) x, BOOST_PP_SEQ_ENUM_91\r
+# define BOOST_PP_SEQ_ENUM_93(x) x, BOOST_PP_SEQ_ENUM_92\r
+# define BOOST_PP_SEQ_ENUM_94(x) x, BOOST_PP_SEQ_ENUM_93\r
+# define BOOST_PP_SEQ_ENUM_95(x) x, BOOST_PP_SEQ_ENUM_94\r
+# define BOOST_PP_SEQ_ENUM_96(x) x, BOOST_PP_SEQ_ENUM_95\r
+# define BOOST_PP_SEQ_ENUM_97(x) x, BOOST_PP_SEQ_ENUM_96\r
+# define BOOST_PP_SEQ_ENUM_98(x) x, BOOST_PP_SEQ_ENUM_97\r
+# define BOOST_PP_SEQ_ENUM_99(x) x, BOOST_PP_SEQ_ENUM_98\r
+# define BOOST_PP_SEQ_ENUM_100(x) x, BOOST_PP_SEQ_ENUM_99\r
+# define BOOST_PP_SEQ_ENUM_101(x) x, BOOST_PP_SEQ_ENUM_100\r
+# define BOOST_PP_SEQ_ENUM_102(x) x, BOOST_PP_SEQ_ENUM_101\r
+# define BOOST_PP_SEQ_ENUM_103(x) x, BOOST_PP_SEQ_ENUM_102\r
+# define BOOST_PP_SEQ_ENUM_104(x) x, BOOST_PP_SEQ_ENUM_103\r
+# define BOOST_PP_SEQ_ENUM_105(x) x, BOOST_PP_SEQ_ENUM_104\r
+# define BOOST_PP_SEQ_ENUM_106(x) x, BOOST_PP_SEQ_ENUM_105\r
+# define BOOST_PP_SEQ_ENUM_107(x) x, BOOST_PP_SEQ_ENUM_106\r
+# define BOOST_PP_SEQ_ENUM_108(x) x, BOOST_PP_SEQ_ENUM_107\r
+# define BOOST_PP_SEQ_ENUM_109(x) x, BOOST_PP_SEQ_ENUM_108\r
+# define BOOST_PP_SEQ_ENUM_110(x) x, BOOST_PP_SEQ_ENUM_109\r
+# define BOOST_PP_SEQ_ENUM_111(x) x, BOOST_PP_SEQ_ENUM_110\r
+# define BOOST_PP_SEQ_ENUM_112(x) x, BOOST_PP_SEQ_ENUM_111\r
+# define BOOST_PP_SEQ_ENUM_113(x) x, BOOST_PP_SEQ_ENUM_112\r
+# define BOOST_PP_SEQ_ENUM_114(x) x, BOOST_PP_SEQ_ENUM_113\r
+# define BOOST_PP_SEQ_ENUM_115(x) x, BOOST_PP_SEQ_ENUM_114\r
+# define BOOST_PP_SEQ_ENUM_116(x) x, BOOST_PP_SEQ_ENUM_115\r
+# define BOOST_PP_SEQ_ENUM_117(x) x, BOOST_PP_SEQ_ENUM_116\r
+# define BOOST_PP_SEQ_ENUM_118(x) x, BOOST_PP_SEQ_ENUM_117\r
+# define BOOST_PP_SEQ_ENUM_119(x) x, BOOST_PP_SEQ_ENUM_118\r
+# define BOOST_PP_SEQ_ENUM_120(x) x, BOOST_PP_SEQ_ENUM_119\r
+# define BOOST_PP_SEQ_ENUM_121(x) x, BOOST_PP_SEQ_ENUM_120\r
+# define BOOST_PP_SEQ_ENUM_122(x) x, BOOST_PP_SEQ_ENUM_121\r
+# define BOOST_PP_SEQ_ENUM_123(x) x, BOOST_PP_SEQ_ENUM_122\r
+# define BOOST_PP_SEQ_ENUM_124(x) x, BOOST_PP_SEQ_ENUM_123\r
+# define BOOST_PP_SEQ_ENUM_125(x) x, BOOST_PP_SEQ_ENUM_124\r
+# define BOOST_PP_SEQ_ENUM_126(x) x, BOOST_PP_SEQ_ENUM_125\r
+# define BOOST_PP_SEQ_ENUM_127(x) x, BOOST_PP_SEQ_ENUM_126\r
+# define BOOST_PP_SEQ_ENUM_128(x) x, BOOST_PP_SEQ_ENUM_127\r
+# define BOOST_PP_SEQ_ENUM_129(x) x, BOOST_PP_SEQ_ENUM_128\r
+# define BOOST_PP_SEQ_ENUM_130(x) x, BOOST_PP_SEQ_ENUM_129\r
+# define BOOST_PP_SEQ_ENUM_131(x) x, BOOST_PP_SEQ_ENUM_130\r
+# define BOOST_PP_SEQ_ENUM_132(x) x, BOOST_PP_SEQ_ENUM_131\r
+# define BOOST_PP_SEQ_ENUM_133(x) x, BOOST_PP_SEQ_ENUM_132\r
+# define BOOST_PP_SEQ_ENUM_134(x) x, BOOST_PP_SEQ_ENUM_133\r
+# define BOOST_PP_SEQ_ENUM_135(x) x, BOOST_PP_SEQ_ENUM_134\r
+# define BOOST_PP_SEQ_ENUM_136(x) x, BOOST_PP_SEQ_ENUM_135\r
+# define BOOST_PP_SEQ_ENUM_137(x) x, BOOST_PP_SEQ_ENUM_136\r
+# define BOOST_PP_SEQ_ENUM_138(x) x, BOOST_PP_SEQ_ENUM_137\r
+# define BOOST_PP_SEQ_ENUM_139(x) x, BOOST_PP_SEQ_ENUM_138\r
+# define BOOST_PP_SEQ_ENUM_140(x) x, BOOST_PP_SEQ_ENUM_139\r
+# define BOOST_PP_SEQ_ENUM_141(x) x, BOOST_PP_SEQ_ENUM_140\r
+# define BOOST_PP_SEQ_ENUM_142(x) x, BOOST_PP_SEQ_ENUM_141\r
+# define BOOST_PP_SEQ_ENUM_143(x) x, BOOST_PP_SEQ_ENUM_142\r
+# define BOOST_PP_SEQ_ENUM_144(x) x, BOOST_PP_SEQ_ENUM_143\r
+# define BOOST_PP_SEQ_ENUM_145(x) x, BOOST_PP_SEQ_ENUM_144\r
+# define BOOST_PP_SEQ_ENUM_146(x) x, BOOST_PP_SEQ_ENUM_145\r
+# define BOOST_PP_SEQ_ENUM_147(x) x, BOOST_PP_SEQ_ENUM_146\r
+# define BOOST_PP_SEQ_ENUM_148(x) x, BOOST_PP_SEQ_ENUM_147\r
+# define BOOST_PP_SEQ_ENUM_149(x) x, BOOST_PP_SEQ_ENUM_148\r
+# define BOOST_PP_SEQ_ENUM_150(x) x, BOOST_PP_SEQ_ENUM_149\r
+# define BOOST_PP_SEQ_ENUM_151(x) x, BOOST_PP_SEQ_ENUM_150\r
+# define BOOST_PP_SEQ_ENUM_152(x) x, BOOST_PP_SEQ_ENUM_151\r
+# define BOOST_PP_SEQ_ENUM_153(x) x, BOOST_PP_SEQ_ENUM_152\r
+# define BOOST_PP_SEQ_ENUM_154(x) x, BOOST_PP_SEQ_ENUM_153\r
+# define BOOST_PP_SEQ_ENUM_155(x) x, BOOST_PP_SEQ_ENUM_154\r
+# define BOOST_PP_SEQ_ENUM_156(x) x, BOOST_PP_SEQ_ENUM_155\r
+# define BOOST_PP_SEQ_ENUM_157(x) x, BOOST_PP_SEQ_ENUM_156\r
+# define BOOST_PP_SEQ_ENUM_158(x) x, BOOST_PP_SEQ_ENUM_157\r
+# define BOOST_PP_SEQ_ENUM_159(x) x, BOOST_PP_SEQ_ENUM_158\r
+# define BOOST_PP_SEQ_ENUM_160(x) x, BOOST_PP_SEQ_ENUM_159\r
+# define BOOST_PP_SEQ_ENUM_161(x) x, BOOST_PP_SEQ_ENUM_160\r
+# define BOOST_PP_SEQ_ENUM_162(x) x, BOOST_PP_SEQ_ENUM_161\r
+# define BOOST_PP_SEQ_ENUM_163(x) x, BOOST_PP_SEQ_ENUM_162\r
+# define BOOST_PP_SEQ_ENUM_164(x) x, BOOST_PP_SEQ_ENUM_163\r
+# define BOOST_PP_SEQ_ENUM_165(x) x, BOOST_PP_SEQ_ENUM_164\r
+# define BOOST_PP_SEQ_ENUM_166(x) x, BOOST_PP_SEQ_ENUM_165\r
+# define BOOST_PP_SEQ_ENUM_167(x) x, BOOST_PP_SEQ_ENUM_166\r
+# define BOOST_PP_SEQ_ENUM_168(x) x, BOOST_PP_SEQ_ENUM_167\r
+# define BOOST_PP_SEQ_ENUM_169(x) x, BOOST_PP_SEQ_ENUM_168\r
+# define BOOST_PP_SEQ_ENUM_170(x) x, BOOST_PP_SEQ_ENUM_169\r
+# define BOOST_PP_SEQ_ENUM_171(x) x, BOOST_PP_SEQ_ENUM_170\r
+# define BOOST_PP_SEQ_ENUM_172(x) x, BOOST_PP_SEQ_ENUM_171\r
+# define BOOST_PP_SEQ_ENUM_173(x) x, BOOST_PP_SEQ_ENUM_172\r
+# define BOOST_PP_SEQ_ENUM_174(x) x, BOOST_PP_SEQ_ENUM_173\r
+# define BOOST_PP_SEQ_ENUM_175(x) x, BOOST_PP_SEQ_ENUM_174\r
+# define BOOST_PP_SEQ_ENUM_176(x) x, BOOST_PP_SEQ_ENUM_175\r
+# define BOOST_PP_SEQ_ENUM_177(x) x, BOOST_PP_SEQ_ENUM_176\r
+# define BOOST_PP_SEQ_ENUM_178(x) x, BOOST_PP_SEQ_ENUM_177\r
+# define BOOST_PP_SEQ_ENUM_179(x) x, BOOST_PP_SEQ_ENUM_178\r
+# define BOOST_PP_SEQ_ENUM_180(x) x, BOOST_PP_SEQ_ENUM_179\r
+# define BOOST_PP_SEQ_ENUM_181(x) x, BOOST_PP_SEQ_ENUM_180\r
+# define BOOST_PP_SEQ_ENUM_182(x) x, BOOST_PP_SEQ_ENUM_181\r
+# define BOOST_PP_SEQ_ENUM_183(x) x, BOOST_PP_SEQ_ENUM_182\r
+# define BOOST_PP_SEQ_ENUM_184(x) x, BOOST_PP_SEQ_ENUM_183\r
+# define BOOST_PP_SEQ_ENUM_185(x) x, BOOST_PP_SEQ_ENUM_184\r
+# define BOOST_PP_SEQ_ENUM_186(x) x, BOOST_PP_SEQ_ENUM_185\r
+# define BOOST_PP_SEQ_ENUM_187(x) x, BOOST_PP_SEQ_ENUM_186\r
+# define BOOST_PP_SEQ_ENUM_188(x) x, BOOST_PP_SEQ_ENUM_187\r
+# define BOOST_PP_SEQ_ENUM_189(x) x, BOOST_PP_SEQ_ENUM_188\r
+# define BOOST_PP_SEQ_ENUM_190(x) x, BOOST_PP_SEQ_ENUM_189\r
+# define BOOST_PP_SEQ_ENUM_191(x) x, BOOST_PP_SEQ_ENUM_190\r
+# define BOOST_PP_SEQ_ENUM_192(x) x, BOOST_PP_SEQ_ENUM_191\r
+# define BOOST_PP_SEQ_ENUM_193(x) x, BOOST_PP_SEQ_ENUM_192\r
+# define BOOST_PP_SEQ_ENUM_194(x) x, BOOST_PP_SEQ_ENUM_193\r
+# define BOOST_PP_SEQ_ENUM_195(x) x, BOOST_PP_SEQ_ENUM_194\r
+# define BOOST_PP_SEQ_ENUM_196(x) x, BOOST_PP_SEQ_ENUM_195\r
+# define BOOST_PP_SEQ_ENUM_197(x) x, BOOST_PP_SEQ_ENUM_196\r
+# define BOOST_PP_SEQ_ENUM_198(x) x, BOOST_PP_SEQ_ENUM_197\r
+# define BOOST_PP_SEQ_ENUM_199(x) x, BOOST_PP_SEQ_ENUM_198\r
+# define BOOST_PP_SEQ_ENUM_200(x) x, BOOST_PP_SEQ_ENUM_199\r
+# define BOOST_PP_SEQ_ENUM_201(x) x, BOOST_PP_SEQ_ENUM_200\r
+# define BOOST_PP_SEQ_ENUM_202(x) x, BOOST_PP_SEQ_ENUM_201\r
+# define BOOST_PP_SEQ_ENUM_203(x) x, BOOST_PP_SEQ_ENUM_202\r
+# define BOOST_PP_SEQ_ENUM_204(x) x, BOOST_PP_SEQ_ENUM_203\r
+# define BOOST_PP_SEQ_ENUM_205(x) x, BOOST_PP_SEQ_ENUM_204\r
+# define BOOST_PP_SEQ_ENUM_206(x) x, BOOST_PP_SEQ_ENUM_205\r
+# define BOOST_PP_SEQ_ENUM_207(x) x, BOOST_PP_SEQ_ENUM_206\r
+# define BOOST_PP_SEQ_ENUM_208(x) x, BOOST_PP_SEQ_ENUM_207\r
+# define BOOST_PP_SEQ_ENUM_209(x) x, BOOST_PP_SEQ_ENUM_208\r
+# define BOOST_PP_SEQ_ENUM_210(x) x, BOOST_PP_SEQ_ENUM_209\r
+# define BOOST_PP_SEQ_ENUM_211(x) x, BOOST_PP_SEQ_ENUM_210\r
+# define BOOST_PP_SEQ_ENUM_212(x) x, BOOST_PP_SEQ_ENUM_211\r
+# define BOOST_PP_SEQ_ENUM_213(x) x, BOOST_PP_SEQ_ENUM_212\r
+# define BOOST_PP_SEQ_ENUM_214(x) x, BOOST_PP_SEQ_ENUM_213\r
+# define BOOST_PP_SEQ_ENUM_215(x) x, BOOST_PP_SEQ_ENUM_214\r
+# define BOOST_PP_SEQ_ENUM_216(x) x, BOOST_PP_SEQ_ENUM_215\r
+# define BOOST_PP_SEQ_ENUM_217(x) x, BOOST_PP_SEQ_ENUM_216\r
+# define BOOST_PP_SEQ_ENUM_218(x) x, BOOST_PP_SEQ_ENUM_217\r
+# define BOOST_PP_SEQ_ENUM_219(x) x, BOOST_PP_SEQ_ENUM_218\r
+# define BOOST_PP_SEQ_ENUM_220(x) x, BOOST_PP_SEQ_ENUM_219\r
+# define BOOST_PP_SEQ_ENUM_221(x) x, BOOST_PP_SEQ_ENUM_220\r
+# define BOOST_PP_SEQ_ENUM_222(x) x, BOOST_PP_SEQ_ENUM_221\r
+# define BOOST_PP_SEQ_ENUM_223(x) x, BOOST_PP_SEQ_ENUM_222\r
+# define BOOST_PP_SEQ_ENUM_224(x) x, BOOST_PP_SEQ_ENUM_223\r
+# define BOOST_PP_SEQ_ENUM_225(x) x, BOOST_PP_SEQ_ENUM_224\r
+# define BOOST_PP_SEQ_ENUM_226(x) x, BOOST_PP_SEQ_ENUM_225\r
+# define BOOST_PP_SEQ_ENUM_227(x) x, BOOST_PP_SEQ_ENUM_226\r
+# define BOOST_PP_SEQ_ENUM_228(x) x, BOOST_PP_SEQ_ENUM_227\r
+# define BOOST_PP_SEQ_ENUM_229(x) x, BOOST_PP_SEQ_ENUM_228\r
+# define BOOST_PP_SEQ_ENUM_230(x) x, BOOST_PP_SEQ_ENUM_229\r
+# define BOOST_PP_SEQ_ENUM_231(x) x, BOOST_PP_SEQ_ENUM_230\r
+# define BOOST_PP_SEQ_ENUM_232(x) x, BOOST_PP_SEQ_ENUM_231\r
+# define BOOST_PP_SEQ_ENUM_233(x) x, BOOST_PP_SEQ_ENUM_232\r
+# define BOOST_PP_SEQ_ENUM_234(x) x, BOOST_PP_SEQ_ENUM_233\r
+# define BOOST_PP_SEQ_ENUM_235(x) x, BOOST_PP_SEQ_ENUM_234\r
+# define BOOST_PP_SEQ_ENUM_236(x) x, BOOST_PP_SEQ_ENUM_235\r
+# define BOOST_PP_SEQ_ENUM_237(x) x, BOOST_PP_SEQ_ENUM_236\r
+# define BOOST_PP_SEQ_ENUM_238(x) x, BOOST_PP_SEQ_ENUM_237\r
+# define BOOST_PP_SEQ_ENUM_239(x) x, BOOST_PP_SEQ_ENUM_238\r
+# define BOOST_PP_SEQ_ENUM_240(x) x, BOOST_PP_SEQ_ENUM_239\r
+# define BOOST_PP_SEQ_ENUM_241(x) x, BOOST_PP_SEQ_ENUM_240\r
+# define BOOST_PP_SEQ_ENUM_242(x) x, BOOST_PP_SEQ_ENUM_241\r
+# define BOOST_PP_SEQ_ENUM_243(x) x, BOOST_PP_SEQ_ENUM_242\r
+# define BOOST_PP_SEQ_ENUM_244(x) x, BOOST_PP_SEQ_ENUM_243\r
+# define BOOST_PP_SEQ_ENUM_245(x) x, BOOST_PP_SEQ_ENUM_244\r
+# define BOOST_PP_SEQ_ENUM_246(x) x, BOOST_PP_SEQ_ENUM_245\r
+# define BOOST_PP_SEQ_ENUM_247(x) x, BOOST_PP_SEQ_ENUM_246\r
+# define BOOST_PP_SEQ_ENUM_248(x) x, BOOST_PP_SEQ_ENUM_247\r
+# define BOOST_PP_SEQ_ENUM_249(x) x, BOOST_PP_SEQ_ENUM_248\r
+# define BOOST_PP_SEQ_ENUM_250(x) x, BOOST_PP_SEQ_ENUM_249\r
+# define BOOST_PP_SEQ_ENUM_251(x) x, BOOST_PP_SEQ_ENUM_250\r
+# define BOOST_PP_SEQ_ENUM_252(x) x, BOOST_PP_SEQ_ENUM_251\r
+# define BOOST_PP_SEQ_ENUM_253(x) x, BOOST_PP_SEQ_ENUM_252\r
+# define BOOST_PP_SEQ_ENUM_254(x) x, BOOST_PP_SEQ_ENUM_253\r
+# define BOOST_PP_SEQ_ENUM_255(x) x, BOOST_PP_SEQ_ENUM_254\r
+# define BOOST_PP_SEQ_ENUM_256(x) x, BOOST_PP_SEQ_ENUM_255\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/filter.hpp b/boost/boost/preprocessor/seq/filter.hpp
new file mode 100644 (file)
index 0000000..896ae95
--- /dev/null
@@ -0,0 +1,54 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_FILTER_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_FILTER_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/control/expr_if.hpp>\r
+# include <boost/preprocessor/facilities/empty.hpp>\r
+# include <boost/preprocessor/seq/fold_left.hpp>\r
+# include <boost/preprocessor/seq/seq.hpp>\r
+# include <boost/preprocessor/tuple/elem.hpp>\r
+# include <boost/preprocessor/tuple/rem.hpp>\r
+#\r
+# /* BOOST_PP_SEQ_FILTER */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_SEQ_FILTER(pred, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_FILTER_O, (pred, data, (nil)), seq)))\r
+# else\r
+#    define BOOST_PP_SEQ_FILTER(pred, data, seq) BOOST_PP_SEQ_FILTER_I(pred, data, seq)\r
+#    define BOOST_PP_SEQ_FILTER_I(pred, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_FILTER_O, (pred, data, (nil)), seq)))\r
+# endif\r
+#\r
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
+#    define BOOST_PP_SEQ_FILTER_O(s, st, elem) BOOST_PP_SEQ_FILTER_O_IM(s, BOOST_PP_TUPLE_REM_3 st, elem)\r
+#    define BOOST_PP_SEQ_FILTER_O_IM(s, im, elem) BOOST_PP_SEQ_FILTER_O_I(s, im, elem)\r
+# else\r
+#    define BOOST_PP_SEQ_FILTER_O(s, st, elem) BOOST_PP_SEQ_FILTER_O_I(s, BOOST_PP_TUPLE_ELEM(3, 0, st), BOOST_PP_TUPLE_ELEM(3, 1, st), BOOST_PP_TUPLE_ELEM(3, 2, st), elem)\r
+# endif\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()\r
+#   define BOOST_PP_SEQ_FILTER_O_I(s, pred, data, res, elem) (pred, data, res BOOST_PP_EXPR_IF(pred(s, data, elem), (elem)))\r
+# else\r
+#   define BOOST_PP_SEQ_FILTER_O_I(s, pred, data, res, elem) (pred, data, res BOOST_PP_EXPR_IF(pred##(s, data, elem), (elem)))\r
+# endif\r
+#\r
+# /* BOOST_PP_SEQ_FILTER_S */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_SEQ_FILTER_S(s, pred, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_FILTER_O, (pred, data, (nil)), seq)))\r
+# else\r
+#    define BOOST_PP_SEQ_FILTER_S(s, pred, data, seq) BOOST_PP_SEQ_FILTER_S_I(s, pred, data, seq)\r
+#    define BOOST_PP_SEQ_FILTER_S_I(s, pred, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_FILTER_O, (pred, data, (nil)), seq)))\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/first_n.hpp b/boost/boost/preprocessor/seq/first_n.hpp
new file mode 100644 (file)
index 0000000..5f88281
--- /dev/null
@@ -0,0 +1,30 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_FIRST_N_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_FIRST_N_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/control/if.hpp>\r
+# include <boost/preprocessor/seq/detail/split.hpp>\r
+# include <boost/preprocessor/tuple/eat.hpp>\r
+# include <boost/preprocessor/tuple/elem.hpp>\r
+#\r
+# /* BOOST_PP_SEQ_FIRST_N */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_SEQ_FIRST_N(n, seq) BOOST_PP_IF(n, BOOST_PP_TUPLE_ELEM, BOOST_PP_TUPLE_EAT_3)(2, 0, BOOST_PP_SEQ_SPLIT(n, seq (nil)))\r
+# else\r
+#    define BOOST_PP_SEQ_FIRST_N(n, seq) BOOST_PP_SEQ_FIRST_N_I(n, seq)\r
+#    define BOOST_PP_SEQ_FIRST_N_I(n, seq) BOOST_PP_IF(n, BOOST_PP_TUPLE_ELEM, BOOST_PP_TUPLE_EAT_3)(2, 0, BOOST_PP_SEQ_SPLIT(n, seq (nil)))\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/fold_left.hpp b/boost/boost/preprocessor/seq/fold_left.hpp
new file mode 100644 (file)
index 0000000..ea05882
--- /dev/null
@@ -0,0 +1,1070 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_FOLD_LEFT_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_FOLD_LEFT_HPP\r
+#\r
+# include <boost/preprocessor/arithmetic/dec.hpp>\r
+# include <boost/preprocessor/cat.hpp>\r
+# include <boost/preprocessor/control/if.hpp>\r
+# include <boost/preprocessor/debug/error.hpp>\r
+# include <boost/preprocessor/detail/auto_rec.hpp>\r
+# include <boost/preprocessor/seq/seq.hpp>\r
+# include <boost/preprocessor/seq/size.hpp>\r
+#\r
+# /* BOOST_PP_SEQ_FOLD_LEFT */\r
+#\r
+# if 0\r
+#    define BOOST_PP_SEQ_FOLD_LEFT(op, state, seq) ...\r
+# endif\r
+#\r
+# define BOOST_PP_SEQ_FOLD_LEFT BOOST_PP_CAT(BOOST_PP_SEQ_FOLD_LEFT_, BOOST_PP_AUTO_REC(BOOST_PP_SEQ_FOLD_LEFT_P, 256))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_P(n) BOOST_PP_CAT(BOOST_PP_SEQ_FOLD_LEFT_CHECK_, BOOST_PP_SEQ_FOLD_LEFT_I_ ## n(BOOST_PP_SEQ_FOLD_LEFT_O, BOOST_PP_NIL, (nil), 1))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_O(s, st, _) st\r
+#\r
+# define BOOST_PP_SEQ_FOLD_LEFT_257(op, st, ss) BOOST_PP_ERROR(0x0005)\r
+# define BOOST_PP_SEQ_FOLD_LEFT_I_257(op, st, ss, sz) BOOST_PP_ERROR(0x0005)\r
+#\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_NIL 1\r
+#\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) 0\r
+# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) 0\r
+#\r
+# define BOOST_PP_SEQ_FOLD_LEFT_F(op, st, ss, sz) st\r
+#\r
+# define BOOST_PP_SEQ_FOLD_LEFT_1(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_2(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_3(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_4(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_5(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_6(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_7(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_8(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_9(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_10(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_11(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_12(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_13(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_14(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_15(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_16(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_17(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_18(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_19(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_20(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_21(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_22(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_23(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_24(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_25(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_26(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_27(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_28(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_29(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_30(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_31(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_32(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_33(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_34(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_35(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_36(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_37(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_38(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_39(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_40(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_41(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_42(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_43(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_44(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_45(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_46(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_47(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_48(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_49(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_50(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_51(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_52(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_53(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_54(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_55(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_56(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_57(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_58(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_59(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_60(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_61(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_62(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_63(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_64(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_65(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_66(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_67(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_68(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_69(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_70(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_71(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_72(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_73(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_74(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_75(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_76(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_77(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_78(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_79(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_80(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_81(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_82(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_83(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_84(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_85(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_86(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_87(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_88(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_89(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_90(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_91(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_92(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_93(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_94(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_95(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_96(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_97(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_98(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_99(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_100(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_101(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_102(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_103(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_104(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_105(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_106(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_107(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_108(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_109(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_110(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_111(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_112(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_113(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_114(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_115(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_116(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_117(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_118(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_119(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_120(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_121(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_122(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_123(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_124(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_125(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_126(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_127(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_128(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_129(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_130(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_131(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_132(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_133(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_134(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_135(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_136(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_137(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_138(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_139(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_140(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_141(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_142(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_143(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_144(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_145(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_146(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_147(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_148(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_149(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_150(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_151(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_152(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_153(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_154(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_155(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_156(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_157(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_158(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_159(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_160(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_161(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_162(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_163(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_164(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_165(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_166(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_167(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_168(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_169(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_170(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_171(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_172(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_173(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_174(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_175(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_176(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_177(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_178(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_179(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_180(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_181(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_182(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_183(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_184(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_185(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_186(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_187(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_188(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_189(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_190(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_191(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_192(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_193(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_194(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_195(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_196(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_197(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_198(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_199(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_200(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_201(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_202(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_203(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_204(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_205(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_206(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_207(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_208(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_209(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_210(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_211(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_212(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_213(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_214(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_215(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_216(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_217(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_218(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_219(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_220(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_221(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_222(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_223(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_224(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_225(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_226(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_227(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_228(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_229(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_230(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_231(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_232(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_233(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_234(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_235(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_236(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_237(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_238(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_239(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_240(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_241(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_242(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_243(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_244(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_245(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_246(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_247(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_248(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_249(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_250(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_251(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_252(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_253(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_254(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_255(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_LEFT_256(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, BOOST_PP_SEQ_SIZE(ss))\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_2, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(2, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_3, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(3, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_4, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(4, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_5, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(5, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_6, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(6, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_7, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(7, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_8, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(8, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_9, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(9, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_10, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(10, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_11, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(11, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_12, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(12, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_13, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(13, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_14, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(14, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_15, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(15, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_16, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(16, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_17, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(17, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_18, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(18, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_19, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(19, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_20, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(20, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_21, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(21, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_22, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(22, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_23, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(23, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_24, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(24, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_25, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(25, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_26, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(26, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_27, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(27, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_28, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(28, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_29, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(29, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_30, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(30, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_31, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(31, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_32, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(32, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_33, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(33, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_34, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(34, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_35, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(35, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_36, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(36, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_37, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(37, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_38, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(38, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_39, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(39, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_40, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(40, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_41, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(41, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_42, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(42, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_43, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(43, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_44, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(44, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_45, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(45, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_46, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(46, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_47, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(47, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_48, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(48, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_49, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(49, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_50, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(50, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_51, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(51, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_52, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(52, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_53, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(53, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_54, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(54, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_55, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(55, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_56, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(56, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_57, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(57, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_58, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(58, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_59, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(59, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_60, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(60, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_61, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(61, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_62, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(62, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_63, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(63, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_64, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(64, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_65, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(65, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_66, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(66, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_67, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(67, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_68, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(68, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_69, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(69, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_70, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(70, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_71, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(71, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_72, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(72, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_73, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(73, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_74, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(74, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_75, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(75, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_76, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(76, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_77, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(77, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_78, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(78, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_79, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(79, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_80, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(80, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_81, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(81, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_82, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(82, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_83, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(83, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_84, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(84, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_85, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(85, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_86, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(86, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_87, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(87, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_88, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(88, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_89, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(89, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_90, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(90, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_91, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(91, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_92, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(92, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_93, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(93, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_94, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(94, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_95, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(95, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_96, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(96, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_97, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(97, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_98, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(98, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_99, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(99, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_100, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(100, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_101, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(101, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_102, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(102, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_103, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(103, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_104, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(104, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_105, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(105, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_106, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(106, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_107, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(107, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_108, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(108, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_109, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(109, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_110, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(110, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_111, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(111, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_112, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(112, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_113, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(113, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_114, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(114, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_115, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(115, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_116, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(116, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_117, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(117, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_118, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(118, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_119, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(119, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_120, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(120, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_121, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(121, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_122, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(122, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_123, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(123, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_124, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(124, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_125, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(125, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_126, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(126, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_127, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(127, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_128, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(128, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_129, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(129, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_130, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(130, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_131, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(131, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_132, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(132, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_133, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(133, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_134, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(134, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_135, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(135, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_136, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(136, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_137, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(137, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_138, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(138, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_139, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(139, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_140, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(140, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_141, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(141, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_142, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(142, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_143, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(143, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_144, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(144, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_145, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(145, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_146, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(146, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_147, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(147, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_148, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(148, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_149, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(149, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_150, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(150, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_151, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(151, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_152, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(152, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_153, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(153, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_154, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(154, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_155, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(155, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_156, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(156, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_157, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(157, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_158, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(158, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_159, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(159, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_160, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(160, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_161, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(161, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_162, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(162, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_163, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(163, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_164, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(164, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_165, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(165, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_166, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(166, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_167, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(167, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_168, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(168, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_169, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(169, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_170, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(170, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_171, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(171, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_172, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(172, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_173, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(173, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_174, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(174, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_175, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(175, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_176, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(176, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_177, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(177, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_178, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(178, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_179, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(179, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_180, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(180, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_181, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(181, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_182, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(182, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_183, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(183, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_184, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(184, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_185, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(185, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_186, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(186, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_187, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(187, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_188, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(188, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_189, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(189, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_190, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(190, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_191, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(191, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_192, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(192, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_193, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(193, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_194, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(194, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_195, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(195, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_196, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(196, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_197, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(197, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_198, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(198, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_199, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(199, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_200, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(200, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_201, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(201, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_202, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(202, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_203, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(203, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_204, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(204, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_205, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(205, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_206, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(206, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_207, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(207, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_208, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(208, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_209, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(209, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_210, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(210, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_211, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(211, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_212, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(212, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_213, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(213, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_214, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(214, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_215, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(215, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_216, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(216, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_217, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(217, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_218, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(218, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_219, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(219, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_220, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(220, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_221, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(221, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_222, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(222, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_223, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(223, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_224, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(224, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_225, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(225, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_226, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(226, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_227, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(227, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_228, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(228, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_229, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(229, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_230, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(230, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_231, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(231, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_232, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(232, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_233, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(233, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_234, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(234, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_235, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(235, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_236, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(236, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_237, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(237, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_238, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(238, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_239, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(239, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_240, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(240, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_241, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(241, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_242, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(242, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_243, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(243, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_244, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(244, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_245, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(245, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_246, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(246, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_247, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(247, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_248, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(248, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_249, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(249, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_250, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(250, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_251, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(251, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_252, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(252, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_253, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(253, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_254, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(254, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_255, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(255, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_256, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(256, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_257, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(257, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+# else\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_2, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(2, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_3, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(3, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_4, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(4, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_5, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(5, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_6, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(6, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_7, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(7, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_8, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(8, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_9, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(9, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_10, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(10, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_11, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(11, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_12, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(12, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_13, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(13, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_14, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(14, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_15, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(15, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_16, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(16, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_17, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(17, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_18, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(18, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_19, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(19, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_20, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(20, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_21, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(21, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_22, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(22, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_23, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(23, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_24, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(24, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_25, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(25, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_26, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(26, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_27, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(27, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_28, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(28, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_29, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(29, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_30, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(30, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_31, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(31, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_32, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(32, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_33, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(33, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_34, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(34, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_35, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(35, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_36, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(36, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_37, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(37, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_38, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(38, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_39, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(39, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_40, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(40, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_41, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(41, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_42, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(42, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_43, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(43, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_44, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(44, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_45, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(45, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_46, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(46, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_47, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(47, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_48, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(48, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_49, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(49, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_50, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(50, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_51, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(51, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_52, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(52, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_53, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(53, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_54, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(54, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_55, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(55, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_56, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(56, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_57, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(57, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_58, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(58, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_59, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(59, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_60, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(60, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_61, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(61, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_62, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(62, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_63, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(63, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_64, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(64, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_65, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(65, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_66, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(66, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_67, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(67, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_68, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(68, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_69, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(69, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_70, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(70, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_71, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(71, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_72, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(72, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_73, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(73, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_74, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(74, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_75, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(75, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_76, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(76, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_77, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(77, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_78, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(78, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_79, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(79, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_80, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(80, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_81, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(81, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_82, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(82, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_83, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(83, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_84, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(84, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_85, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(85, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_86, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(86, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_87, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(87, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_88, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(88, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_89, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(89, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_90, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(90, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_91, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(91, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_92, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(92, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_93, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(93, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_94, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(94, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_95, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(95, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_96, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(96, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_97, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(97, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_98, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(98, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_99, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(99, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_100, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(100, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_101, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(101, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_102, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(102, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_103, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(103, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_104, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(104, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_105, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(105, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_106, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(106, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_107, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(107, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_108, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(108, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_109, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(109, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_110, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(110, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_111, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(111, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_112, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(112, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_113, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(113, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_114, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(114, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_115, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(115, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_116, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(116, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_117, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(117, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_118, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(118, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_119, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(119, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_120, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(120, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_121, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(121, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_122, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(122, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_123, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(123, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_124, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(124, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_125, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(125, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_126, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(126, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_127, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(127, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_128, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(128, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_129, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(129, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_130, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(130, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_131, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(131, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_132, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(132, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_133, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(133, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_134, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(134, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_135, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(135, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_136, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(136, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_137, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(137, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_138, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(138, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_139, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(139, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_140, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(140, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_141, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(141, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_142, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(142, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_143, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(143, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_144, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(144, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_145, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(145, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_146, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(146, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_147, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(147, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_148, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(148, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_149, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(149, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_150, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(150, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_151, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(151, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_152, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(152, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_153, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(153, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_154, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(154, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_155, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(155, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_156, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(156, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_157, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(157, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_158, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(158, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_159, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(159, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_160, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(160, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_161, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(161, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_162, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(162, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_163, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(163, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_164, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(164, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_165, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(165, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_166, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(166, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_167, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(167, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_168, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(168, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_169, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(169, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_170, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(170, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_171, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(171, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_172, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(172, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_173, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(173, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_174, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(174, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_175, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(175, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_176, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(176, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_177, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(177, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_178, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(178, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_179, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(179, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_180, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(180, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_181, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(181, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_182, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(182, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_183, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(183, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_184, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(184, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_185, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(185, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_186, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(186, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_187, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(187, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_188, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(188, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_189, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(189, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_190, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(190, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_191, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(191, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_192, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(192, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_193, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(193, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_194, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(194, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_195, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(195, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_196, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(196, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_197, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(197, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_198, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(198, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_199, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(199, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_200, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(200, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_201, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(201, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_202, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(202, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_203, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(203, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_204, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(204, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_205, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(205, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_206, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(206, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_207, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(207, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_208, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(208, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_209, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(209, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_210, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(210, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_211, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(211, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_212, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(212, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_213, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(213, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_214, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(214, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_215, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(215, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_216, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(216, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_217, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(217, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_218, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(218, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_219, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(219, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_220, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(220, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_221, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(221, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_222, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(222, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_223, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(223, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_224, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(224, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_225, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(225, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_226, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(226, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_227, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(227, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_228, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(228, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_229, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(229, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_230, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(230, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_231, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(231, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_232, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(232, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_233, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(233, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_234, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(234, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_235, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(235, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_236, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(236, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_237, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(237, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_238, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(238, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_239, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(239, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_240, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(240, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_241, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(241, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_242, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(242, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_243, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(243, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_244, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(244, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_245, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(245, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_246, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(246, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_247, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(247, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_248, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(248, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_249, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(249, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_250, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(250, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_251, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(251, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_252, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(252, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_253, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(253, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_254, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(254, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_255, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(255, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_256, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(256, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+#    define BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_257, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(257, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/fold_right.hpp b/boost/boost/preprocessor/seq/fold_right.hpp
new file mode 100644 (file)
index 0000000..180e97c
--- /dev/null
@@ -0,0 +1,288 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_FOLD_RIGHT_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_FOLD_RIGHT_HPP\r
+#\r
+# include <boost/preprocessor/cat.hpp>\r
+# include <boost/preprocessor/detail/auto_rec.hpp>\r
+# include <boost/preprocessor/seq/fold_left.hpp>\r
+# include <boost/preprocessor/seq/reverse.hpp>\r
+# include <boost/preprocessor/seq/seq.hpp>\r
+#\r
+# /* BOOST_PP_SEQ_FOLD_RIGHT */\r
+#\r
+# if 0\r
+#    define BOOST_PP_SEQ_FOLD_RIGHT(op, state, seq) ...\r
+# endif\r
+#\r
+# define BOOST_PP_SEQ_FOLD_RIGHT BOOST_PP_CAT(BOOST_PP_SEQ_FOLD_RIGHT_, BOOST_PP_AUTO_REC(BOOST_PP_SEQ_FOLD_LEFT_P, 256))\r
+#\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_257(op, st, ss) BOOST_PP_ERROR(0x0005)\r
+#\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_1(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, BOOST_PP_SEQ_REVERSE_S(2, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_2(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, BOOST_PP_SEQ_REVERSE_S(3, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_3(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, BOOST_PP_SEQ_REVERSE_S(4, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_4(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, BOOST_PP_SEQ_REVERSE_S(5, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_5(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, BOOST_PP_SEQ_REVERSE_S(6, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_6(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, BOOST_PP_SEQ_REVERSE_S(7, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_7(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, BOOST_PP_SEQ_REVERSE_S(8, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_8(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, BOOST_PP_SEQ_REVERSE_S(9, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_9(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, BOOST_PP_SEQ_REVERSE_S(10, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_10(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, BOOST_PP_SEQ_REVERSE_S(11, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_11(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, BOOST_PP_SEQ_REVERSE_S(12, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_12(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, BOOST_PP_SEQ_REVERSE_S(13, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_13(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, BOOST_PP_SEQ_REVERSE_S(14, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_14(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, BOOST_PP_SEQ_REVERSE_S(15, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_15(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, BOOST_PP_SEQ_REVERSE_S(16, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_16(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, BOOST_PP_SEQ_REVERSE_S(17, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_17(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, BOOST_PP_SEQ_REVERSE_S(18, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_18(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, BOOST_PP_SEQ_REVERSE_S(19, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_19(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, BOOST_PP_SEQ_REVERSE_S(20, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_20(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, BOOST_PP_SEQ_REVERSE_S(21, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_21(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, BOOST_PP_SEQ_REVERSE_S(22, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_22(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, BOOST_PP_SEQ_REVERSE_S(23, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_23(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, BOOST_PP_SEQ_REVERSE_S(24, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_24(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, BOOST_PP_SEQ_REVERSE_S(25, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_25(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, BOOST_PP_SEQ_REVERSE_S(26, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_26(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, BOOST_PP_SEQ_REVERSE_S(27, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_27(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, BOOST_PP_SEQ_REVERSE_S(28, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_28(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, BOOST_PP_SEQ_REVERSE_S(29, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_29(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, BOOST_PP_SEQ_REVERSE_S(30, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_30(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, BOOST_PP_SEQ_REVERSE_S(31, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_31(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, BOOST_PP_SEQ_REVERSE_S(32, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_32(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, BOOST_PP_SEQ_REVERSE_S(33, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_33(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, BOOST_PP_SEQ_REVERSE_S(34, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_34(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, BOOST_PP_SEQ_REVERSE_S(35, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_35(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, BOOST_PP_SEQ_REVERSE_S(36, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_36(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, BOOST_PP_SEQ_REVERSE_S(37, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_37(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, BOOST_PP_SEQ_REVERSE_S(38, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_38(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, BOOST_PP_SEQ_REVERSE_S(39, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_39(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, BOOST_PP_SEQ_REVERSE_S(40, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_40(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, BOOST_PP_SEQ_REVERSE_S(41, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_41(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, BOOST_PP_SEQ_REVERSE_S(42, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_42(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, BOOST_PP_SEQ_REVERSE_S(43, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_43(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, BOOST_PP_SEQ_REVERSE_S(44, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_44(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, BOOST_PP_SEQ_REVERSE_S(45, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_45(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, BOOST_PP_SEQ_REVERSE_S(46, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_46(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, BOOST_PP_SEQ_REVERSE_S(47, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_47(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, BOOST_PP_SEQ_REVERSE_S(48, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_48(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, BOOST_PP_SEQ_REVERSE_S(49, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_49(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, BOOST_PP_SEQ_REVERSE_S(50, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_50(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, BOOST_PP_SEQ_REVERSE_S(51, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_51(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, BOOST_PP_SEQ_REVERSE_S(52, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_52(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, BOOST_PP_SEQ_REVERSE_S(53, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_53(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, BOOST_PP_SEQ_REVERSE_S(54, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_54(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, BOOST_PP_SEQ_REVERSE_S(55, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_55(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, BOOST_PP_SEQ_REVERSE_S(56, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_56(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, BOOST_PP_SEQ_REVERSE_S(57, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_57(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, BOOST_PP_SEQ_REVERSE_S(58, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_58(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, BOOST_PP_SEQ_REVERSE_S(59, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_59(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, BOOST_PP_SEQ_REVERSE_S(60, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_60(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, BOOST_PP_SEQ_REVERSE_S(61, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_61(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, BOOST_PP_SEQ_REVERSE_S(62, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_62(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, BOOST_PP_SEQ_REVERSE_S(63, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_63(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, BOOST_PP_SEQ_REVERSE_S(64, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_64(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, BOOST_PP_SEQ_REVERSE_S(65, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_65(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, BOOST_PP_SEQ_REVERSE_S(66, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_66(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, BOOST_PP_SEQ_REVERSE_S(67, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_67(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, BOOST_PP_SEQ_REVERSE_S(68, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_68(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, BOOST_PP_SEQ_REVERSE_S(69, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_69(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, BOOST_PP_SEQ_REVERSE_S(70, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_70(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, BOOST_PP_SEQ_REVERSE_S(71, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_71(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, BOOST_PP_SEQ_REVERSE_S(72, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_72(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, BOOST_PP_SEQ_REVERSE_S(73, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_73(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, BOOST_PP_SEQ_REVERSE_S(74, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_74(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, BOOST_PP_SEQ_REVERSE_S(75, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_75(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, BOOST_PP_SEQ_REVERSE_S(76, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_76(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, BOOST_PP_SEQ_REVERSE_S(77, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_77(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, BOOST_PP_SEQ_REVERSE_S(78, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_78(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, BOOST_PP_SEQ_REVERSE_S(79, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_79(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, BOOST_PP_SEQ_REVERSE_S(80, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_80(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, BOOST_PP_SEQ_REVERSE_S(81, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_81(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, BOOST_PP_SEQ_REVERSE_S(82, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_82(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, BOOST_PP_SEQ_REVERSE_S(83, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_83(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, BOOST_PP_SEQ_REVERSE_S(84, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_84(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, BOOST_PP_SEQ_REVERSE_S(85, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_85(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, BOOST_PP_SEQ_REVERSE_S(86, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_86(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, BOOST_PP_SEQ_REVERSE_S(87, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_87(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, BOOST_PP_SEQ_REVERSE_S(88, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_88(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, BOOST_PP_SEQ_REVERSE_S(89, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_89(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, BOOST_PP_SEQ_REVERSE_S(90, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_90(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, BOOST_PP_SEQ_REVERSE_S(91, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_91(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, BOOST_PP_SEQ_REVERSE_S(92, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_92(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, BOOST_PP_SEQ_REVERSE_S(93, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_93(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, BOOST_PP_SEQ_REVERSE_S(94, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_94(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, BOOST_PP_SEQ_REVERSE_S(95, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_95(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, BOOST_PP_SEQ_REVERSE_S(96, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_96(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, BOOST_PP_SEQ_REVERSE_S(97, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_97(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, BOOST_PP_SEQ_REVERSE_S(98, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_98(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, BOOST_PP_SEQ_REVERSE_S(99, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_99(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, BOOST_PP_SEQ_REVERSE_S(100, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_100(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, BOOST_PP_SEQ_REVERSE_S(101, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_101(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, BOOST_PP_SEQ_REVERSE_S(102, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_102(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, BOOST_PP_SEQ_REVERSE_S(103, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_103(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, BOOST_PP_SEQ_REVERSE_S(104, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_104(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, BOOST_PP_SEQ_REVERSE_S(105, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_105(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, BOOST_PP_SEQ_REVERSE_S(106, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_106(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, BOOST_PP_SEQ_REVERSE_S(107, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_107(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, BOOST_PP_SEQ_REVERSE_S(108, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_108(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, BOOST_PP_SEQ_REVERSE_S(109, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_109(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, BOOST_PP_SEQ_REVERSE_S(110, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_110(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, BOOST_PP_SEQ_REVERSE_S(111, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_111(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, BOOST_PP_SEQ_REVERSE_S(112, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_112(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, BOOST_PP_SEQ_REVERSE_S(113, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_113(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, BOOST_PP_SEQ_REVERSE_S(114, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_114(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, BOOST_PP_SEQ_REVERSE_S(115, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_115(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, BOOST_PP_SEQ_REVERSE_S(116, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_116(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, BOOST_PP_SEQ_REVERSE_S(117, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_117(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, BOOST_PP_SEQ_REVERSE_S(118, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_118(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, BOOST_PP_SEQ_REVERSE_S(119, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_119(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, BOOST_PP_SEQ_REVERSE_S(120, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_120(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, BOOST_PP_SEQ_REVERSE_S(121, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_121(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, BOOST_PP_SEQ_REVERSE_S(122, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_122(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, BOOST_PP_SEQ_REVERSE_S(123, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_123(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, BOOST_PP_SEQ_REVERSE_S(124, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_124(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, BOOST_PP_SEQ_REVERSE_S(125, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_125(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, BOOST_PP_SEQ_REVERSE_S(126, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_126(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, BOOST_PP_SEQ_REVERSE_S(127, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_127(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, BOOST_PP_SEQ_REVERSE_S(128, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_128(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, BOOST_PP_SEQ_REVERSE_S(129, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_129(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, BOOST_PP_SEQ_REVERSE_S(130, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_130(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, BOOST_PP_SEQ_REVERSE_S(131, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_131(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, BOOST_PP_SEQ_REVERSE_S(132, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_132(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, BOOST_PP_SEQ_REVERSE_S(133, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_133(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, BOOST_PP_SEQ_REVERSE_S(134, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_134(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, BOOST_PP_SEQ_REVERSE_S(135, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_135(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, BOOST_PP_SEQ_REVERSE_S(136, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_136(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, BOOST_PP_SEQ_REVERSE_S(137, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_137(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, BOOST_PP_SEQ_REVERSE_S(138, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_138(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, BOOST_PP_SEQ_REVERSE_S(139, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_139(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, BOOST_PP_SEQ_REVERSE_S(140, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_140(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, BOOST_PP_SEQ_REVERSE_S(141, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_141(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, BOOST_PP_SEQ_REVERSE_S(142, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_142(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, BOOST_PP_SEQ_REVERSE_S(143, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_143(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, BOOST_PP_SEQ_REVERSE_S(144, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_144(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, BOOST_PP_SEQ_REVERSE_S(145, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_145(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, BOOST_PP_SEQ_REVERSE_S(146, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_146(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, BOOST_PP_SEQ_REVERSE_S(147, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_147(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, BOOST_PP_SEQ_REVERSE_S(148, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_148(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, BOOST_PP_SEQ_REVERSE_S(149, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_149(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, BOOST_PP_SEQ_REVERSE_S(150, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_150(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, BOOST_PP_SEQ_REVERSE_S(151, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_151(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, BOOST_PP_SEQ_REVERSE_S(152, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_152(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, BOOST_PP_SEQ_REVERSE_S(153, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_153(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, BOOST_PP_SEQ_REVERSE_S(154, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_154(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, BOOST_PP_SEQ_REVERSE_S(155, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_155(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, BOOST_PP_SEQ_REVERSE_S(156, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_156(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, BOOST_PP_SEQ_REVERSE_S(157, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_157(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, BOOST_PP_SEQ_REVERSE_S(158, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_158(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, BOOST_PP_SEQ_REVERSE_S(159, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_159(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, BOOST_PP_SEQ_REVERSE_S(160, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_160(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, BOOST_PP_SEQ_REVERSE_S(161, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_161(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, BOOST_PP_SEQ_REVERSE_S(162, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_162(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, BOOST_PP_SEQ_REVERSE_S(163, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_163(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, BOOST_PP_SEQ_REVERSE_S(164, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_164(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, BOOST_PP_SEQ_REVERSE_S(165, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_165(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, BOOST_PP_SEQ_REVERSE_S(166, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_166(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, BOOST_PP_SEQ_REVERSE_S(167, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_167(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, BOOST_PP_SEQ_REVERSE_S(168, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_168(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, BOOST_PP_SEQ_REVERSE_S(169, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_169(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, BOOST_PP_SEQ_REVERSE_S(170, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_170(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, BOOST_PP_SEQ_REVERSE_S(171, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_171(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, BOOST_PP_SEQ_REVERSE_S(172, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_172(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, BOOST_PP_SEQ_REVERSE_S(173, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_173(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, BOOST_PP_SEQ_REVERSE_S(174, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_174(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, BOOST_PP_SEQ_REVERSE_S(175, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_175(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, BOOST_PP_SEQ_REVERSE_S(176, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_176(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, BOOST_PP_SEQ_REVERSE_S(177, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_177(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, BOOST_PP_SEQ_REVERSE_S(178, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_178(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, BOOST_PP_SEQ_REVERSE_S(179, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_179(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, BOOST_PP_SEQ_REVERSE_S(180, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_180(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, BOOST_PP_SEQ_REVERSE_S(181, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_181(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, BOOST_PP_SEQ_REVERSE_S(182, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_182(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, BOOST_PP_SEQ_REVERSE_S(183, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_183(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, BOOST_PP_SEQ_REVERSE_S(184, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_184(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, BOOST_PP_SEQ_REVERSE_S(185, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_185(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, BOOST_PP_SEQ_REVERSE_S(186, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_186(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, BOOST_PP_SEQ_REVERSE_S(187, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_187(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, BOOST_PP_SEQ_REVERSE_S(188, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_188(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, BOOST_PP_SEQ_REVERSE_S(189, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_189(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, BOOST_PP_SEQ_REVERSE_S(190, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_190(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, BOOST_PP_SEQ_REVERSE_S(191, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_191(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, BOOST_PP_SEQ_REVERSE_S(192, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_192(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, BOOST_PP_SEQ_REVERSE_S(193, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_193(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, BOOST_PP_SEQ_REVERSE_S(194, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_194(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, BOOST_PP_SEQ_REVERSE_S(195, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_195(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, BOOST_PP_SEQ_REVERSE_S(196, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_196(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, BOOST_PP_SEQ_REVERSE_S(197, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_197(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, BOOST_PP_SEQ_REVERSE_S(198, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_198(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, BOOST_PP_SEQ_REVERSE_S(199, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_199(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, BOOST_PP_SEQ_REVERSE_S(200, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_200(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, BOOST_PP_SEQ_REVERSE_S(201, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_201(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, BOOST_PP_SEQ_REVERSE_S(202, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_202(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, BOOST_PP_SEQ_REVERSE_S(203, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_203(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, BOOST_PP_SEQ_REVERSE_S(204, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_204(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, BOOST_PP_SEQ_REVERSE_S(205, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_205(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, BOOST_PP_SEQ_REVERSE_S(206, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_206(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, BOOST_PP_SEQ_REVERSE_S(207, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_207(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, BOOST_PP_SEQ_REVERSE_S(208, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_208(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, BOOST_PP_SEQ_REVERSE_S(209, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_209(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, BOOST_PP_SEQ_REVERSE_S(210, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_210(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, BOOST_PP_SEQ_REVERSE_S(211, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_211(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, BOOST_PP_SEQ_REVERSE_S(212, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_212(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, BOOST_PP_SEQ_REVERSE_S(213, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_213(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, BOOST_PP_SEQ_REVERSE_S(214, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_214(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, BOOST_PP_SEQ_REVERSE_S(215, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_215(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, BOOST_PP_SEQ_REVERSE_S(216, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_216(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, BOOST_PP_SEQ_REVERSE_S(217, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_217(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, BOOST_PP_SEQ_REVERSE_S(218, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_218(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, BOOST_PP_SEQ_REVERSE_S(219, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_219(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, BOOST_PP_SEQ_REVERSE_S(220, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_220(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, BOOST_PP_SEQ_REVERSE_S(221, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_221(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, BOOST_PP_SEQ_REVERSE_S(222, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_222(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, BOOST_PP_SEQ_REVERSE_S(223, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_223(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, BOOST_PP_SEQ_REVERSE_S(224, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_224(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, BOOST_PP_SEQ_REVERSE_S(225, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_225(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, BOOST_PP_SEQ_REVERSE_S(226, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_226(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, BOOST_PP_SEQ_REVERSE_S(227, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_227(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, BOOST_PP_SEQ_REVERSE_S(228, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_228(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, BOOST_PP_SEQ_REVERSE_S(229, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_229(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, BOOST_PP_SEQ_REVERSE_S(230, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_230(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, BOOST_PP_SEQ_REVERSE_S(231, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_231(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, BOOST_PP_SEQ_REVERSE_S(232, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_232(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, BOOST_PP_SEQ_REVERSE_S(233, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_233(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, BOOST_PP_SEQ_REVERSE_S(234, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_234(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, BOOST_PP_SEQ_REVERSE_S(235, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_235(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, BOOST_PP_SEQ_REVERSE_S(236, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_236(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, BOOST_PP_SEQ_REVERSE_S(237, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_237(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, BOOST_PP_SEQ_REVERSE_S(238, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_238(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, BOOST_PP_SEQ_REVERSE_S(239, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_239(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, BOOST_PP_SEQ_REVERSE_S(240, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_240(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, BOOST_PP_SEQ_REVERSE_S(241, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_241(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, BOOST_PP_SEQ_REVERSE_S(242, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_242(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, BOOST_PP_SEQ_REVERSE_S(243, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_243(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, BOOST_PP_SEQ_REVERSE_S(244, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_244(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, BOOST_PP_SEQ_REVERSE_S(245, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_245(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, BOOST_PP_SEQ_REVERSE_S(246, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_246(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, BOOST_PP_SEQ_REVERSE_S(247, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_247(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, BOOST_PP_SEQ_REVERSE_S(248, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_248(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, BOOST_PP_SEQ_REVERSE_S(249, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_249(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, BOOST_PP_SEQ_REVERSE_S(250, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_250(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, BOOST_PP_SEQ_REVERSE_S(251, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_251(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, BOOST_PP_SEQ_REVERSE_S(252, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_252(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, BOOST_PP_SEQ_REVERSE_S(253, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_253(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, BOOST_PP_SEQ_REVERSE_S(254, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_254(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, BOOST_PP_SEQ_REVERSE_S(255, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_255(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, BOOST_PP_SEQ_REVERSE_S(256, ss), BOOST_PP_SEQ_SIZE(ss))\r
+# define BOOST_PP_SEQ_FOLD_RIGHT_256(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, BOOST_PP_SEQ_REVERSE_S(257, ss), BOOST_PP_SEQ_SIZE(ss))\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/for_each.hpp b/boost/boost/preprocessor/seq/for_each.hpp
new file mode 100644 (file)
index 0000000..3cb7474
--- /dev/null
@@ -0,0 +1,60 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_FOR_EACH_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_FOR_EACH_HPP\r
+#\r
+# include <boost/preprocessor/arithmetic/dec.hpp>\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/repetition/for.hpp>\r
+# include <boost/preprocessor/seq/seq.hpp>\r
+# include <boost/preprocessor/seq/size.hpp>\r
+# include <boost/preprocessor/tuple/elem.hpp>\r
+# include <boost/preprocessor/tuple/rem.hpp>\r
+#\r
+# /* BOOST_PP_SEQ_FOR_EACH */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_SEQ_FOR_EACH(macro, data, seq) BOOST_PP_FOR((macro, data, seq (nil)), BOOST_PP_SEQ_FOR_EACH_P, BOOST_PP_SEQ_FOR_EACH_O, BOOST_PP_SEQ_FOR_EACH_M)\r
+# else\r
+#    define BOOST_PP_SEQ_FOR_EACH(macro, data, seq) BOOST_PP_SEQ_FOR_EACH_D(macro, data, seq)\r
+#    define BOOST_PP_SEQ_FOR_EACH_D(macro, data, seq) BOOST_PP_FOR((macro, data, seq (nil)), BOOST_PP_SEQ_FOR_EACH_P, BOOST_PP_SEQ_FOR_EACH_O, BOOST_PP_SEQ_FOR_EACH_M)\r
+# endif\r
+#\r
+# define BOOST_PP_SEQ_FOR_EACH_P(r, x) BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(3, 2, x)))\r
+#\r
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
+#    define BOOST_PP_SEQ_FOR_EACH_O(r, x) BOOST_PP_SEQ_FOR_EACH_O_I x\r
+# else\r
+#    define BOOST_PP_SEQ_FOR_EACH_O(r, x) BOOST_PP_SEQ_FOR_EACH_O_I(BOOST_PP_TUPLE_ELEM(3, 0, x), BOOST_PP_TUPLE_ELEM(3, 1, x), BOOST_PP_TUPLE_ELEM(3, 2, x))\r
+# endif\r
+#\r
+# define BOOST_PP_SEQ_FOR_EACH_O_I(macro, data, seq) (macro, data, BOOST_PP_SEQ_TAIL(seq))\r
+#\r
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
+#    define BOOST_PP_SEQ_FOR_EACH_M(r, x) BOOST_PP_SEQ_FOR_EACH_M_IM(r, BOOST_PP_TUPLE_REM_3 x)\r
+#    define BOOST_PP_SEQ_FOR_EACH_M_IM(r, im) BOOST_PP_SEQ_FOR_EACH_M_I(r, im)\r
+# else\r
+#    define BOOST_PP_SEQ_FOR_EACH_M(r, x) BOOST_PP_SEQ_FOR_EACH_M_I(r, BOOST_PP_TUPLE_ELEM(3, 0, x), BOOST_PP_TUPLE_ELEM(3, 1, x), BOOST_PP_TUPLE_ELEM(3, 2, x))\r
+# endif\r
+#\r
+# define BOOST_PP_SEQ_FOR_EACH_M_I(r, macro, data, seq) macro(r, data, BOOST_PP_SEQ_HEAD(seq))\r
+#\r
+# /* BOOST_PP_SEQ_FOR_EACH_R */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_SEQ_FOR_EACH_R(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq (nil)), BOOST_PP_SEQ_FOR_EACH_P, BOOST_PP_SEQ_FOR_EACH_O, BOOST_PP_SEQ_FOR_EACH_M)\r
+# else\r
+#    define BOOST_PP_SEQ_FOR_EACH_R(r, macro, data, seq) BOOST_PP_SEQ_FOR_EACH_R_I(r, macro, data, seq)\r
+#    define BOOST_PP_SEQ_FOR_EACH_R_I(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq (nil)), BOOST_PP_SEQ_FOR_EACH_P, BOOST_PP_SEQ_FOR_EACH_O, BOOST_PP_SEQ_FOR_EACH_M)\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/for_each_i.hpp b/boost/boost/preprocessor/seq/for_each_i.hpp
new file mode 100644 (file)
index 0000000..023645f
--- /dev/null
@@ -0,0 +1,61 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_FOR_EACH_I_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_FOR_EACH_I_HPP\r
+#\r
+# include <boost/preprocessor/arithmetic/dec.hpp>\r
+# include <boost/preprocessor/arithmetic/inc.hpp>\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/repetition/for.hpp>\r
+# include <boost/preprocessor/seq/seq.hpp>\r
+# include <boost/preprocessor/seq/size.hpp>\r
+# include <boost/preprocessor/tuple/elem.hpp>\r
+# include <boost/preprocessor/tuple/rem.hpp>\r
+#\r
+# /* BOOST_PP_SEQ_FOR_EACH_I */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_SEQ_FOR_EACH_I(macro, data, seq) BOOST_PP_FOR((macro, data, seq (nil), 0), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M)\r
+# else\r
+#    define BOOST_PP_SEQ_FOR_EACH_I(macro, data, seq) BOOST_PP_SEQ_FOR_EACH_I_I(macro, data, seq)\r
+#    define BOOST_PP_SEQ_FOR_EACH_I_I(macro, data, seq) BOOST_PP_FOR((macro, data, seq (nil), 0), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M)\r
+# endif\r
+#\r
+# define BOOST_PP_SEQ_FOR_EACH_I_P(r, x) BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(4, 2, x)))\r
+#\r
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
+#    define BOOST_PP_SEQ_FOR_EACH_I_O(r, x) BOOST_PP_SEQ_FOR_EACH_I_O_I x\r
+# else\r
+#    define BOOST_PP_SEQ_FOR_EACH_I_O(r, x) BOOST_PP_SEQ_FOR_EACH_I_O_I(BOOST_PP_TUPLE_ELEM(4, 0, x), BOOST_PP_TUPLE_ELEM(4, 1, x), BOOST_PP_TUPLE_ELEM(4, 2, x), BOOST_PP_TUPLE_ELEM(4, 3, x))\r
+# endif\r
+#\r
+# define BOOST_PP_SEQ_FOR_EACH_I_O_I(macro, data, seq, i) (macro, data, BOOST_PP_SEQ_TAIL(seq), BOOST_PP_INC(i))\r
+#\r
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
+#    define BOOST_PP_SEQ_FOR_EACH_I_M(r, x) BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, BOOST_PP_TUPLE_REM_4 x)\r
+#    define BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, im) BOOST_PP_SEQ_FOR_EACH_I_M_I(r, im)\r
+# else\r
+#    define BOOST_PP_SEQ_FOR_EACH_I_M(r, x) BOOST_PP_SEQ_FOR_EACH_I_M_I(r, BOOST_PP_TUPLE_ELEM(4, 0, x), BOOST_PP_TUPLE_ELEM(4, 1, x), BOOST_PP_TUPLE_ELEM(4, 2, x), BOOST_PP_TUPLE_ELEM(4, 3, x))\r
+# endif\r
+#\r
+# define BOOST_PP_SEQ_FOR_EACH_I_M_I(r, macro, data, seq, i) macro(r, data, i, BOOST_PP_SEQ_HEAD(seq))\r
+#\r
+# /* BOOST_PP_SEQ_FOR_EACH_I_R */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_SEQ_FOR_EACH_I_R(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq (nil), 0), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M)\r
+# else\r
+#    define BOOST_PP_SEQ_FOR_EACH_I_R(r, macro, data, seq) BOOST_PP_SEQ_FOR_EACH_I_R_I(r, macro, data, seq)\r
+#    define BOOST_PP_SEQ_FOR_EACH_I_R_I(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq (nil), 0), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M)\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/for_each_product.hpp b/boost/boost/preprocessor/seq/for_each_product.hpp
new file mode 100644 (file)
index 0000000..95f7415
--- /dev/null
@@ -0,0 +1,126 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_FOR_EACH_PRODUCT_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_FOR_EACH_PRODUCT_HPP\r
+#\r
+# include <boost/preprocessor/arithmetic/dec.hpp>\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/control/if.hpp>\r
+# include <boost/preprocessor/repetition/for.hpp>\r
+# include <boost/preprocessor/seq/seq.hpp>\r
+# include <boost/preprocessor/seq/size.hpp>\r
+# include <boost/preprocessor/tuple/elem.hpp>\r
+# include <boost/preprocessor/tuple/rem.hpp>\r
+#\r
+# /* BOOST_PP_SEQ_FOR_EACH_PRODUCT */\r
+#\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT(macro, sets) BOOST_PP_SEQ_FOR_EACH_PRODUCT_E(BOOST_PP_FOR, macro, sets)\r
+#\r
+# /* BOOST_PP_SEQ_FOR_EACH_PRODUCT_R */\r
+#\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_R(r, macro, sets) BOOST_PP_SEQ_FOR_EACH_PRODUCT_E(BOOST_PP_FOR_ ## r, macro, sets)\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_E(impl, macro, sets) impl((BOOST_PP_SEQ_HEAD(sets)(nil), BOOST_PP_SEQ_TAIL(sets)(nil), (nil), macro), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_0)\r
+# else\r
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_E(impl, macro, sets) BOOST_PP_SEQ_FOR_EACH_PRODUCT_E_I(impl, macro, sets)\r
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_E_I(impl, macro, sets) impl((BOOST_PP_SEQ_HEAD(sets)(nil), BOOST_PP_SEQ_TAIL(sets)(nil), (nil), macro), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_0)\r
+# endif\r
+#\r
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_P(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_P_I data\r
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_P_I(cset, rset, res, macro) BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(cset))\r
+# else\r
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_P(r, data) BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(4, 0, data)))\r
+# endif\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_O(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_O_I data\r
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_O_I(cset, rset, res, macro) (BOOST_PP_SEQ_TAIL(cset), rset, res, macro)\r
+# else\r
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_O(r, data) (BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(4, 0, data)), BOOST_PP_TUPLE_ELEM(4, 1, data), BOOST_PP_TUPLE_ELEM(4, 2, data), BOOST_PP_TUPLE_ELEM(4, 3, data))\r
+# endif\r
+#\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, i) BOOST_PP_IF(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(4, 1, data))), BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_ ## i, BOOST_PP_SEQ_FOR_EACH_PRODUCT_I)\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_I(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_I_I(r, BOOST_PP_TUPLE_ELEM(4, 0, data), BOOST_PP_TUPLE_ELEM(4, 1, data), BOOST_PP_TUPLE_ELEM(4, 2, data), BOOST_PP_TUPLE_ELEM(4, 3, data))\r
+# else\r
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_I(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_I_IM(r, BOOST_PP_TUPLE_REM_4 data)\r
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_I_IM(r, im) BOOST_PP_SEQ_FOR_EACH_PRODUCT_I_I(r, im)\r
+# endif\r
+#\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_I_I(r, cset, rset, res, macro) macro(r, BOOST_PP_SEQ_TAIL(res (BOOST_PP_SEQ_HEAD(cset))))\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_H_I data\r
+# else\r
+#    define BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_H_I(BOOST_PP_TUPLE_ELEM(4, 0, data), BOOST_PP_TUPLE_ELEM(4, 1, data), BOOST_PP_TUPLE_ELEM(4, 2, data), BOOST_PP_TUPLE_ELEM(4, 3, data))\r
+# endif\r
+#\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_H_I(cset, rset, res, macro) (BOOST_PP_SEQ_HEAD(rset)(nil), BOOST_PP_SEQ_TAIL(rset), res (BOOST_PP_SEQ_HEAD(cset)), macro)\r
+#\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_0(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 0)(r, data)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_1(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 1)(r, data)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_2(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 2)(r, data)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_3(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 3)(r, data)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_4(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 4)(r, data)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_5(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 5)(r, data)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_6(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 6)(r, data)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_7(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 7)(r, data)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_8(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 8)(r, data)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_9(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 9)(r, data)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_10(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 10)(r, data)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_11(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 11)(r, data)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_12(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 12)(r, data)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_13(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 13)(r, data)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_14(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 14)(r, data)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_15(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 15)(r, data)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_16(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 16)(r, data)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_17(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 17)(r, data)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_18(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 18)(r, data)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_19(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 19)(r, data)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_20(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 20)(r, data)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_21(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 21)(r, data)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_22(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 22)(r, data)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_23(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 23)(r, data)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_24(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 24)(r, data)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_25(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 25)(r, data)\r
+#\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_0(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_1)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_1(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_2)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_2(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_3)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_3(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_4)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_4(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_5)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_5(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_6)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_6(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_7)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_7(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_8)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_8(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_9)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_9(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_10)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_10(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_11)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_11(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_12)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_12(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_13)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_13(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_14)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_14(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_15)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_15(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_16)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_16(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_17)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_17(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_18)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_18(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_19)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_19(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_20)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_20(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_21)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_21(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_22)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_22(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_23)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_23(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_24)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_24(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_25)\r
+# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_25(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_26)\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/insert.hpp b/boost/boost/preprocessor/seq/insert.hpp
new file mode 100644 (file)
index 0000000..2889a15
--- /dev/null
@@ -0,0 +1,28 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_INSERT_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_INSERT_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/seq/first_n.hpp>\r
+# include <boost/preprocessor/seq/rest_n.hpp>\r
+#\r
+# /* BOOST_PP_SEQ_INSERT */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_SEQ_INSERT(seq, i, elem) BOOST_PP_SEQ_FIRST_N(i, seq) (elem) BOOST_PP_SEQ_REST_N(i, seq)\r
+# else\r
+#    define BOOST_PP_SEQ_INSERT(seq, i, elem) BOOST_PP_SEQ_INSERT_I(seq, i, elem)\r
+#    define BOOST_PP_SEQ_INSERT_I(seq, i, elem) BOOST_PP_SEQ_FIRST_N(i, seq) (elem) BOOST_PP_SEQ_REST_N(i, seq)\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/pop_back.hpp b/boost/boost/preprocessor/seq/pop_back.hpp
new file mode 100644 (file)
index 0000000..2014ea5
--- /dev/null
@@ -0,0 +1,29 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_POP_BACK_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_POP_BACK_HPP\r
+#\r
+# include <boost/preprocessor/arithmetic/dec.hpp>\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/seq/first_n.hpp>\r
+# include <boost/preprocessor/seq/size.hpp>\r
+#\r
+# /* BOOST_PP_SEQ_POP_BACK */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_SEQ_POP_BACK(seq) BOOST_PP_SEQ_FIRST_N(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq)), seq)\r
+# else\r
+#    define BOOST_PP_SEQ_POP_BACK(seq) BOOST_PP_SEQ_POP_BACK_I(seq)\r
+#    define BOOST_PP_SEQ_POP_BACK_I(seq) BOOST_PP_SEQ_FIRST_N(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq)), seq)\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/pop_front.hpp b/boost/boost/preprocessor/seq/pop_front.hpp
new file mode 100644 (file)
index 0000000..f2ab4d9
--- /dev/null
@@ -0,0 +1,27 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_POP_FRONT_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_POP_FRONT_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/seq/seq.hpp>\r
+#\r
+# /* BOOST_PP_SEQ_POP_FRONT */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_SEQ_POP_FRONT(seq) BOOST_PP_SEQ_TAIL(seq)\r
+# else\r
+#    define BOOST_PP_SEQ_POP_FRONT(seq) BOOST_PP_SEQ_POP_FRONT_I(seq)\r
+#    define BOOST_PP_SEQ_POP_FRONT_I(seq) BOOST_PP_SEQ_TAIL(seq)\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/push_back.hpp b/boost/boost/preprocessor/seq/push_back.hpp
new file mode 100644 (file)
index 0000000..28f1e42
--- /dev/null
@@ -0,0 +1,19 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_PUSH_BACK_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_PUSH_BACK_HPP\r
+#\r
+# /* BOOST_PP_SEQ_PUSH_BACK */\r
+#\r
+# define BOOST_PP_SEQ_PUSH_BACK(seq, elem) seq(elem)\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/push_front.hpp b/boost/boost/preprocessor/seq/push_front.hpp
new file mode 100644 (file)
index 0000000..d5ee994
--- /dev/null
@@ -0,0 +1,19 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_PUSH_FRONT_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_PUSH_FRONT_HPP\r
+#\r
+# /* BOOST_PP_SEQ_PUSH_FRONT */\r
+#\r
+# define BOOST_PP_SEQ_PUSH_FRONT(seq, elem) (elem)seq\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/remove.hpp b/boost/boost/preprocessor/seq/remove.hpp
new file mode 100644 (file)
index 0000000..64fabe0
--- /dev/null
@@ -0,0 +1,29 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_REMOVE_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_REMOVE_HPP\r
+#\r
+# include <boost/preprocessor/arithmetic/inc.hpp>\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/seq/first_n.hpp>\r
+# include <boost/preprocessor/seq/rest_n.hpp>\r
+#\r
+# /* BOOST_PP_SEQ_REMOVE */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_SEQ_REMOVE(seq, i) BOOST_PP_SEQ_FIRST_N(i, seq) BOOST_PP_SEQ_REST_N(BOOST_PP_INC(i), seq)\r
+# else\r
+#    define BOOST_PP_SEQ_REMOVE(seq, i) BOOST_PP_SEQ_REMOVE_I(seq, i)\r
+#    define BOOST_PP_SEQ_REMOVE_I(seq, i) BOOST_PP_SEQ_FIRST_N(i, seq) BOOST_PP_SEQ_REST_N(BOOST_PP_INC(i), seq)\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/replace.hpp b/boost/boost/preprocessor/seq/replace.hpp
new file mode 100644 (file)
index 0000000..70f484f
--- /dev/null
@@ -0,0 +1,29 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_REPLACE_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_REPLACE_HPP\r
+#\r
+# include <boost/preprocessor/arithmetic/inc.hpp>\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/seq/first_n.hpp>\r
+# include <boost/preprocessor/seq/rest_n.hpp>\r
+#\r
+# /* BOOST_PP_SEQ_REPLACE */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_SEQ_REPLACE(seq, i, elem) BOOST_PP_SEQ_FIRST_N(i, seq) (elem) BOOST_PP_SEQ_REST_N(BOOST_PP_INC(i), seq)\r
+# else\r
+#    define BOOST_PP_SEQ_REPLACE(seq, i, elem) BOOST_PP_SEQ_REPLACE_I(seq, i, elem)\r
+#    define BOOST_PP_SEQ_REPLACE_I(seq, i, elem) BOOST_PP_SEQ_FIRST_N(i, seq) (elem) BOOST_PP_SEQ_REST_N(BOOST_PP_INC(i), seq)\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/rest_n.hpp b/boost/boost/preprocessor/seq/rest_n.hpp
new file mode 100644 (file)
index 0000000..291749a
--- /dev/null
@@ -0,0 +1,30 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_REST_N_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_REST_N_HPP\r
+#\r
+# include <boost/preprocessor/arithmetic/inc.hpp>\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/facilities/empty.hpp>\r
+# include <boost/preprocessor/seq/detail/split.hpp>\r
+# include <boost/preprocessor/tuple/elem.hpp>\r
+#\r
+# /* BOOST_PP_SEQ_REST_N */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_SEQ_REST_N(n, seq) BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_SEQ_SPLIT(BOOST_PP_INC(n), (nil) seq BOOST_PP_EMPTY))()\r
+# else\r
+#    define BOOST_PP_SEQ_REST_N(n, seq) BOOST_PP_SEQ_REST_N_I(n, seq)\r
+#    define BOOST_PP_SEQ_REST_N_I(n, seq) BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_SEQ_SPLIT(BOOST_PP_INC(n), (nil) seq BOOST_PP_EMPTY))()\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/reverse.hpp b/boost/boost/preprocessor/seq/reverse.hpp
new file mode 100644 (file)
index 0000000..48cada0
--- /dev/null
@@ -0,0 +1,39 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_REVERSE_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_REVERSE_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/facilities/empty.hpp>\r
+# include <boost/preprocessor/seq/fold_left.hpp>\r
+#\r
+# /* BOOST_PP_SEQ_REVERSE */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_SEQ_REVERSE(seq) BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_REVERSE_O, BOOST_PP_EMPTY, seq)()\r
+# else\r
+#    define BOOST_PP_SEQ_REVERSE(seq) BOOST_PP_SEQ_REVERSE_I(seq)\r
+#    define BOOST_PP_SEQ_REVERSE_I(seq) BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_REVERSE_O, BOOST_PP_EMPTY, seq)()\r
+# endif\r
+#\r
+# define BOOST_PP_SEQ_REVERSE_O(s, state, elem) (elem) state\r
+#\r
+# /* BOOST_PP_SEQ_REVERSE_S */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_SEQ_REVERSE_S(s, seq) BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_REVERSE_O, BOOST_PP_EMPTY, seq)()\r
+# else\r
+#    define BOOST_PP_SEQ_REVERSE_S(s, seq) BOOST_PP_SEQ_REVERSE_S_I(s, seq)\r
+#    define BOOST_PP_SEQ_REVERSE_S_I(s, seq) BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_REVERSE_O, BOOST_PP_EMPTY, seq)()\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/seq.hpp b/boost/boost/preprocessor/seq/seq.hpp
new file mode 100644 (file)
index 0000000..1ae331d
--- /dev/null
@@ -0,0 +1,44 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_SEQ_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_SEQ_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/seq/elem.hpp>\r
+#\r
+# /* BOOST_PP_SEQ_HEAD */\r
+#\r
+# define BOOST_PP_SEQ_HEAD(seq) BOOST_PP_SEQ_ELEM(0, seq)\r
+#\r
+# /* BOOST_PP_SEQ_TAIL */\r
+#\r
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
+#    define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_1((seq))\r
+#    define BOOST_PP_SEQ_TAIL_1(par) BOOST_PP_SEQ_TAIL_2 ## par\r
+#    define BOOST_PP_SEQ_TAIL_2(seq) BOOST_PP_SEQ_TAIL_I ## seq\r
+# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()\r
+#    define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_ID(BOOST_PP_SEQ_TAIL_I seq)\r
+#    define BOOST_PP_SEQ_TAIL_ID(id) id\r
+# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_D(seq)\r
+#    define BOOST_PP_SEQ_TAIL_D(seq) BOOST_PP_SEQ_TAIL_I seq\r
+# else\r
+#    define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_I seq\r
+# endif\r
+#\r
+# define BOOST_PP_SEQ_TAIL_I(x)\r
+#\r
+# /* BOOST_PP_SEQ_NIL */\r
+#\r
+# define BOOST_PP_SEQ_NIL(x) (x)\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/size.hpp b/boost/boost/preprocessor/seq/size.hpp
new file mode 100644 (file)
index 0000000..f2141af
--- /dev/null
@@ -0,0 +1,548 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_SIZE_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_SIZE_HPP\r
+#\r
+# include <boost/preprocessor/cat.hpp>\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/tuple/eat.hpp>\r
+#\r
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
+#    define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_SEQ_SIZE_I((seq))\r
+#    define BOOST_PP_SEQ_SIZE_I(par) BOOST_PP_SEQ_SIZE_II ## par\r
+#    define BOOST_PP_SEQ_SIZE_II(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_SEQ_SIZE_0 ## seq)\r
+# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() || BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()\r
+#    define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_SEQ_SIZE_I(seq)\r
+#    define BOOST_PP_SEQ_SIZE_I(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_SEQ_SIZE_0 seq)\r
+# elif defined(__IBMC__) || defined(__IBMCPP__)\r
+#    define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_0, seq))\r
+# else\r
+#    define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_SEQ_SIZE_0 seq)\r
+# endif\r
+#\r
+# define BOOST_PP_SEQ_SIZE_0(_) BOOST_PP_SEQ_SIZE_1\r
+# define BOOST_PP_SEQ_SIZE_1(_) BOOST_PP_SEQ_SIZE_2\r
+# define BOOST_PP_SEQ_SIZE_2(_) BOOST_PP_SEQ_SIZE_3\r
+# define BOOST_PP_SEQ_SIZE_3(_) BOOST_PP_SEQ_SIZE_4\r
+# define BOOST_PP_SEQ_SIZE_4(_) BOOST_PP_SEQ_SIZE_5\r
+# define BOOST_PP_SEQ_SIZE_5(_) BOOST_PP_SEQ_SIZE_6\r
+# define BOOST_PP_SEQ_SIZE_6(_) BOOST_PP_SEQ_SIZE_7\r
+# define BOOST_PP_SEQ_SIZE_7(_) BOOST_PP_SEQ_SIZE_8\r
+# define BOOST_PP_SEQ_SIZE_8(_) BOOST_PP_SEQ_SIZE_9\r
+# define BOOST_PP_SEQ_SIZE_9(_) BOOST_PP_SEQ_SIZE_10\r
+# define BOOST_PP_SEQ_SIZE_10(_) BOOST_PP_SEQ_SIZE_11\r
+# define BOOST_PP_SEQ_SIZE_11(_) BOOST_PP_SEQ_SIZE_12\r
+# define BOOST_PP_SEQ_SIZE_12(_) BOOST_PP_SEQ_SIZE_13\r
+# define BOOST_PP_SEQ_SIZE_13(_) BOOST_PP_SEQ_SIZE_14\r
+# define BOOST_PP_SEQ_SIZE_14(_) BOOST_PP_SEQ_SIZE_15\r
+# define BOOST_PP_SEQ_SIZE_15(_) BOOST_PP_SEQ_SIZE_16\r
+# define BOOST_PP_SEQ_SIZE_16(_) BOOST_PP_SEQ_SIZE_17\r
+# define BOOST_PP_SEQ_SIZE_17(_) BOOST_PP_SEQ_SIZE_18\r
+# define BOOST_PP_SEQ_SIZE_18(_) BOOST_PP_SEQ_SIZE_19\r
+# define BOOST_PP_SEQ_SIZE_19(_) BOOST_PP_SEQ_SIZE_20\r
+# define BOOST_PP_SEQ_SIZE_20(_) BOOST_PP_SEQ_SIZE_21\r
+# define BOOST_PP_SEQ_SIZE_21(_) BOOST_PP_SEQ_SIZE_22\r
+# define BOOST_PP_SEQ_SIZE_22(_) BOOST_PP_SEQ_SIZE_23\r
+# define BOOST_PP_SEQ_SIZE_23(_) BOOST_PP_SEQ_SIZE_24\r
+# define BOOST_PP_SEQ_SIZE_24(_) BOOST_PP_SEQ_SIZE_25\r
+# define BOOST_PP_SEQ_SIZE_25(_) BOOST_PP_SEQ_SIZE_26\r
+# define BOOST_PP_SEQ_SIZE_26(_) BOOST_PP_SEQ_SIZE_27\r
+# define BOOST_PP_SEQ_SIZE_27(_) BOOST_PP_SEQ_SIZE_28\r
+# define BOOST_PP_SEQ_SIZE_28(_) BOOST_PP_SEQ_SIZE_29\r
+# define BOOST_PP_SEQ_SIZE_29(_) BOOST_PP_SEQ_SIZE_30\r
+# define BOOST_PP_SEQ_SIZE_30(_) BOOST_PP_SEQ_SIZE_31\r
+# define BOOST_PP_SEQ_SIZE_31(_) BOOST_PP_SEQ_SIZE_32\r
+# define BOOST_PP_SEQ_SIZE_32(_) BOOST_PP_SEQ_SIZE_33\r
+# define BOOST_PP_SEQ_SIZE_33(_) BOOST_PP_SEQ_SIZE_34\r
+# define BOOST_PP_SEQ_SIZE_34(_) BOOST_PP_SEQ_SIZE_35\r
+# define BOOST_PP_SEQ_SIZE_35(_) BOOST_PP_SEQ_SIZE_36\r
+# define BOOST_PP_SEQ_SIZE_36(_) BOOST_PP_SEQ_SIZE_37\r
+# define BOOST_PP_SEQ_SIZE_37(_) BOOST_PP_SEQ_SIZE_38\r
+# define BOOST_PP_SEQ_SIZE_38(_) BOOST_PP_SEQ_SIZE_39\r
+# define BOOST_PP_SEQ_SIZE_39(_) BOOST_PP_SEQ_SIZE_40\r
+# define BOOST_PP_SEQ_SIZE_40(_) BOOST_PP_SEQ_SIZE_41\r
+# define BOOST_PP_SEQ_SIZE_41(_) BOOST_PP_SEQ_SIZE_42\r
+# define BOOST_PP_SEQ_SIZE_42(_) BOOST_PP_SEQ_SIZE_43\r
+# define BOOST_PP_SEQ_SIZE_43(_) BOOST_PP_SEQ_SIZE_44\r
+# define BOOST_PP_SEQ_SIZE_44(_) BOOST_PP_SEQ_SIZE_45\r
+# define BOOST_PP_SEQ_SIZE_45(_) BOOST_PP_SEQ_SIZE_46\r
+# define BOOST_PP_SEQ_SIZE_46(_) BOOST_PP_SEQ_SIZE_47\r
+# define BOOST_PP_SEQ_SIZE_47(_) BOOST_PP_SEQ_SIZE_48\r
+# define BOOST_PP_SEQ_SIZE_48(_) BOOST_PP_SEQ_SIZE_49\r
+# define BOOST_PP_SEQ_SIZE_49(_) BOOST_PP_SEQ_SIZE_50\r
+# define BOOST_PP_SEQ_SIZE_50(_) BOOST_PP_SEQ_SIZE_51\r
+# define BOOST_PP_SEQ_SIZE_51(_) BOOST_PP_SEQ_SIZE_52\r
+# define BOOST_PP_SEQ_SIZE_52(_) BOOST_PP_SEQ_SIZE_53\r
+# define BOOST_PP_SEQ_SIZE_53(_) BOOST_PP_SEQ_SIZE_54\r
+# define BOOST_PP_SEQ_SIZE_54(_) BOOST_PP_SEQ_SIZE_55\r
+# define BOOST_PP_SEQ_SIZE_55(_) BOOST_PP_SEQ_SIZE_56\r
+# define BOOST_PP_SEQ_SIZE_56(_) BOOST_PP_SEQ_SIZE_57\r
+# define BOOST_PP_SEQ_SIZE_57(_) BOOST_PP_SEQ_SIZE_58\r
+# define BOOST_PP_SEQ_SIZE_58(_) BOOST_PP_SEQ_SIZE_59\r
+# define BOOST_PP_SEQ_SIZE_59(_) BOOST_PP_SEQ_SIZE_60\r
+# define BOOST_PP_SEQ_SIZE_60(_) BOOST_PP_SEQ_SIZE_61\r
+# define BOOST_PP_SEQ_SIZE_61(_) BOOST_PP_SEQ_SIZE_62\r
+# define BOOST_PP_SEQ_SIZE_62(_) BOOST_PP_SEQ_SIZE_63\r
+# define BOOST_PP_SEQ_SIZE_63(_) BOOST_PP_SEQ_SIZE_64\r
+# define BOOST_PP_SEQ_SIZE_64(_) BOOST_PP_SEQ_SIZE_65\r
+# define BOOST_PP_SEQ_SIZE_65(_) BOOST_PP_SEQ_SIZE_66\r
+# define BOOST_PP_SEQ_SIZE_66(_) BOOST_PP_SEQ_SIZE_67\r
+# define BOOST_PP_SEQ_SIZE_67(_) BOOST_PP_SEQ_SIZE_68\r
+# define BOOST_PP_SEQ_SIZE_68(_) BOOST_PP_SEQ_SIZE_69\r
+# define BOOST_PP_SEQ_SIZE_69(_) BOOST_PP_SEQ_SIZE_70\r
+# define BOOST_PP_SEQ_SIZE_70(_) BOOST_PP_SEQ_SIZE_71\r
+# define BOOST_PP_SEQ_SIZE_71(_) BOOST_PP_SEQ_SIZE_72\r
+# define BOOST_PP_SEQ_SIZE_72(_) BOOST_PP_SEQ_SIZE_73\r
+# define BOOST_PP_SEQ_SIZE_73(_) BOOST_PP_SEQ_SIZE_74\r
+# define BOOST_PP_SEQ_SIZE_74(_) BOOST_PP_SEQ_SIZE_75\r
+# define BOOST_PP_SEQ_SIZE_75(_) BOOST_PP_SEQ_SIZE_76\r
+# define BOOST_PP_SEQ_SIZE_76(_) BOOST_PP_SEQ_SIZE_77\r
+# define BOOST_PP_SEQ_SIZE_77(_) BOOST_PP_SEQ_SIZE_78\r
+# define BOOST_PP_SEQ_SIZE_78(_) BOOST_PP_SEQ_SIZE_79\r
+# define BOOST_PP_SEQ_SIZE_79(_) BOOST_PP_SEQ_SIZE_80\r
+# define BOOST_PP_SEQ_SIZE_80(_) BOOST_PP_SEQ_SIZE_81\r
+# define BOOST_PP_SEQ_SIZE_81(_) BOOST_PP_SEQ_SIZE_82\r
+# define BOOST_PP_SEQ_SIZE_82(_) BOOST_PP_SEQ_SIZE_83\r
+# define BOOST_PP_SEQ_SIZE_83(_) BOOST_PP_SEQ_SIZE_84\r
+# define BOOST_PP_SEQ_SIZE_84(_) BOOST_PP_SEQ_SIZE_85\r
+# define BOOST_PP_SEQ_SIZE_85(_) BOOST_PP_SEQ_SIZE_86\r
+# define BOOST_PP_SEQ_SIZE_86(_) BOOST_PP_SEQ_SIZE_87\r
+# define BOOST_PP_SEQ_SIZE_87(_) BOOST_PP_SEQ_SIZE_88\r
+# define BOOST_PP_SEQ_SIZE_88(_) BOOST_PP_SEQ_SIZE_89\r
+# define BOOST_PP_SEQ_SIZE_89(_) BOOST_PP_SEQ_SIZE_90\r
+# define BOOST_PP_SEQ_SIZE_90(_) BOOST_PP_SEQ_SIZE_91\r
+# define BOOST_PP_SEQ_SIZE_91(_) BOOST_PP_SEQ_SIZE_92\r
+# define BOOST_PP_SEQ_SIZE_92(_) BOOST_PP_SEQ_SIZE_93\r
+# define BOOST_PP_SEQ_SIZE_93(_) BOOST_PP_SEQ_SIZE_94\r
+# define BOOST_PP_SEQ_SIZE_94(_) BOOST_PP_SEQ_SIZE_95\r
+# define BOOST_PP_SEQ_SIZE_95(_) BOOST_PP_SEQ_SIZE_96\r
+# define BOOST_PP_SEQ_SIZE_96(_) BOOST_PP_SEQ_SIZE_97\r
+# define BOOST_PP_SEQ_SIZE_97(_) BOOST_PP_SEQ_SIZE_98\r
+# define BOOST_PP_SEQ_SIZE_98(_) BOOST_PP_SEQ_SIZE_99\r
+# define BOOST_PP_SEQ_SIZE_99(_) BOOST_PP_SEQ_SIZE_100\r
+# define BOOST_PP_SEQ_SIZE_100(_) BOOST_PP_SEQ_SIZE_101\r
+# define BOOST_PP_SEQ_SIZE_101(_) BOOST_PP_SEQ_SIZE_102\r
+# define BOOST_PP_SEQ_SIZE_102(_) BOOST_PP_SEQ_SIZE_103\r
+# define BOOST_PP_SEQ_SIZE_103(_) BOOST_PP_SEQ_SIZE_104\r
+# define BOOST_PP_SEQ_SIZE_104(_) BOOST_PP_SEQ_SIZE_105\r
+# define BOOST_PP_SEQ_SIZE_105(_) BOOST_PP_SEQ_SIZE_106\r
+# define BOOST_PP_SEQ_SIZE_106(_) BOOST_PP_SEQ_SIZE_107\r
+# define BOOST_PP_SEQ_SIZE_107(_) BOOST_PP_SEQ_SIZE_108\r
+# define BOOST_PP_SEQ_SIZE_108(_) BOOST_PP_SEQ_SIZE_109\r
+# define BOOST_PP_SEQ_SIZE_109(_) BOOST_PP_SEQ_SIZE_110\r
+# define BOOST_PP_SEQ_SIZE_110(_) BOOST_PP_SEQ_SIZE_111\r
+# define BOOST_PP_SEQ_SIZE_111(_) BOOST_PP_SEQ_SIZE_112\r
+# define BOOST_PP_SEQ_SIZE_112(_) BOOST_PP_SEQ_SIZE_113\r
+# define BOOST_PP_SEQ_SIZE_113(_) BOOST_PP_SEQ_SIZE_114\r
+# define BOOST_PP_SEQ_SIZE_114(_) BOOST_PP_SEQ_SIZE_115\r
+# define BOOST_PP_SEQ_SIZE_115(_) BOOST_PP_SEQ_SIZE_116\r
+# define BOOST_PP_SEQ_SIZE_116(_) BOOST_PP_SEQ_SIZE_117\r
+# define BOOST_PP_SEQ_SIZE_117(_) BOOST_PP_SEQ_SIZE_118\r
+# define BOOST_PP_SEQ_SIZE_118(_) BOOST_PP_SEQ_SIZE_119\r
+# define BOOST_PP_SEQ_SIZE_119(_) BOOST_PP_SEQ_SIZE_120\r
+# define BOOST_PP_SEQ_SIZE_120(_) BOOST_PP_SEQ_SIZE_121\r
+# define BOOST_PP_SEQ_SIZE_121(_) BOOST_PP_SEQ_SIZE_122\r
+# define BOOST_PP_SEQ_SIZE_122(_) BOOST_PP_SEQ_SIZE_123\r
+# define BOOST_PP_SEQ_SIZE_123(_) BOOST_PP_SEQ_SIZE_124\r
+# define BOOST_PP_SEQ_SIZE_124(_) BOOST_PP_SEQ_SIZE_125\r
+# define BOOST_PP_SEQ_SIZE_125(_) BOOST_PP_SEQ_SIZE_126\r
+# define BOOST_PP_SEQ_SIZE_126(_) BOOST_PP_SEQ_SIZE_127\r
+# define BOOST_PP_SEQ_SIZE_127(_) BOOST_PP_SEQ_SIZE_128\r
+# define BOOST_PP_SEQ_SIZE_128(_) BOOST_PP_SEQ_SIZE_129\r
+# define BOOST_PP_SEQ_SIZE_129(_) BOOST_PP_SEQ_SIZE_130\r
+# define BOOST_PP_SEQ_SIZE_130(_) BOOST_PP_SEQ_SIZE_131\r
+# define BOOST_PP_SEQ_SIZE_131(_) BOOST_PP_SEQ_SIZE_132\r
+# define BOOST_PP_SEQ_SIZE_132(_) BOOST_PP_SEQ_SIZE_133\r
+# define BOOST_PP_SEQ_SIZE_133(_) BOOST_PP_SEQ_SIZE_134\r
+# define BOOST_PP_SEQ_SIZE_134(_) BOOST_PP_SEQ_SIZE_135\r
+# define BOOST_PP_SEQ_SIZE_135(_) BOOST_PP_SEQ_SIZE_136\r
+# define BOOST_PP_SEQ_SIZE_136(_) BOOST_PP_SEQ_SIZE_137\r
+# define BOOST_PP_SEQ_SIZE_137(_) BOOST_PP_SEQ_SIZE_138\r
+# define BOOST_PP_SEQ_SIZE_138(_) BOOST_PP_SEQ_SIZE_139\r
+# define BOOST_PP_SEQ_SIZE_139(_) BOOST_PP_SEQ_SIZE_140\r
+# define BOOST_PP_SEQ_SIZE_140(_) BOOST_PP_SEQ_SIZE_141\r
+# define BOOST_PP_SEQ_SIZE_141(_) BOOST_PP_SEQ_SIZE_142\r
+# define BOOST_PP_SEQ_SIZE_142(_) BOOST_PP_SEQ_SIZE_143\r
+# define BOOST_PP_SEQ_SIZE_143(_) BOOST_PP_SEQ_SIZE_144\r
+# define BOOST_PP_SEQ_SIZE_144(_) BOOST_PP_SEQ_SIZE_145\r
+# define BOOST_PP_SEQ_SIZE_145(_) BOOST_PP_SEQ_SIZE_146\r
+# define BOOST_PP_SEQ_SIZE_146(_) BOOST_PP_SEQ_SIZE_147\r
+# define BOOST_PP_SEQ_SIZE_147(_) BOOST_PP_SEQ_SIZE_148\r
+# define BOOST_PP_SEQ_SIZE_148(_) BOOST_PP_SEQ_SIZE_149\r
+# define BOOST_PP_SEQ_SIZE_149(_) BOOST_PP_SEQ_SIZE_150\r
+# define BOOST_PP_SEQ_SIZE_150(_) BOOST_PP_SEQ_SIZE_151\r
+# define BOOST_PP_SEQ_SIZE_151(_) BOOST_PP_SEQ_SIZE_152\r
+# define BOOST_PP_SEQ_SIZE_152(_) BOOST_PP_SEQ_SIZE_153\r
+# define BOOST_PP_SEQ_SIZE_153(_) BOOST_PP_SEQ_SIZE_154\r
+# define BOOST_PP_SEQ_SIZE_154(_) BOOST_PP_SEQ_SIZE_155\r
+# define BOOST_PP_SEQ_SIZE_155(_) BOOST_PP_SEQ_SIZE_156\r
+# define BOOST_PP_SEQ_SIZE_156(_) BOOST_PP_SEQ_SIZE_157\r
+# define BOOST_PP_SEQ_SIZE_157(_) BOOST_PP_SEQ_SIZE_158\r
+# define BOOST_PP_SEQ_SIZE_158(_) BOOST_PP_SEQ_SIZE_159\r
+# define BOOST_PP_SEQ_SIZE_159(_) BOOST_PP_SEQ_SIZE_160\r
+# define BOOST_PP_SEQ_SIZE_160(_) BOOST_PP_SEQ_SIZE_161\r
+# define BOOST_PP_SEQ_SIZE_161(_) BOOST_PP_SEQ_SIZE_162\r
+# define BOOST_PP_SEQ_SIZE_162(_) BOOST_PP_SEQ_SIZE_163\r
+# define BOOST_PP_SEQ_SIZE_163(_) BOOST_PP_SEQ_SIZE_164\r
+# define BOOST_PP_SEQ_SIZE_164(_) BOOST_PP_SEQ_SIZE_165\r
+# define BOOST_PP_SEQ_SIZE_165(_) BOOST_PP_SEQ_SIZE_166\r
+# define BOOST_PP_SEQ_SIZE_166(_) BOOST_PP_SEQ_SIZE_167\r
+# define BOOST_PP_SEQ_SIZE_167(_) BOOST_PP_SEQ_SIZE_168\r
+# define BOOST_PP_SEQ_SIZE_168(_) BOOST_PP_SEQ_SIZE_169\r
+# define BOOST_PP_SEQ_SIZE_169(_) BOOST_PP_SEQ_SIZE_170\r
+# define BOOST_PP_SEQ_SIZE_170(_) BOOST_PP_SEQ_SIZE_171\r
+# define BOOST_PP_SEQ_SIZE_171(_) BOOST_PP_SEQ_SIZE_172\r
+# define BOOST_PP_SEQ_SIZE_172(_) BOOST_PP_SEQ_SIZE_173\r
+# define BOOST_PP_SEQ_SIZE_173(_) BOOST_PP_SEQ_SIZE_174\r
+# define BOOST_PP_SEQ_SIZE_174(_) BOOST_PP_SEQ_SIZE_175\r
+# define BOOST_PP_SEQ_SIZE_175(_) BOOST_PP_SEQ_SIZE_176\r
+# define BOOST_PP_SEQ_SIZE_176(_) BOOST_PP_SEQ_SIZE_177\r
+# define BOOST_PP_SEQ_SIZE_177(_) BOOST_PP_SEQ_SIZE_178\r
+# define BOOST_PP_SEQ_SIZE_178(_) BOOST_PP_SEQ_SIZE_179\r
+# define BOOST_PP_SEQ_SIZE_179(_) BOOST_PP_SEQ_SIZE_180\r
+# define BOOST_PP_SEQ_SIZE_180(_) BOOST_PP_SEQ_SIZE_181\r
+# define BOOST_PP_SEQ_SIZE_181(_) BOOST_PP_SEQ_SIZE_182\r
+# define BOOST_PP_SEQ_SIZE_182(_) BOOST_PP_SEQ_SIZE_183\r
+# define BOOST_PP_SEQ_SIZE_183(_) BOOST_PP_SEQ_SIZE_184\r
+# define BOOST_PP_SEQ_SIZE_184(_) BOOST_PP_SEQ_SIZE_185\r
+# define BOOST_PP_SEQ_SIZE_185(_) BOOST_PP_SEQ_SIZE_186\r
+# define BOOST_PP_SEQ_SIZE_186(_) BOOST_PP_SEQ_SIZE_187\r
+# define BOOST_PP_SEQ_SIZE_187(_) BOOST_PP_SEQ_SIZE_188\r
+# define BOOST_PP_SEQ_SIZE_188(_) BOOST_PP_SEQ_SIZE_189\r
+# define BOOST_PP_SEQ_SIZE_189(_) BOOST_PP_SEQ_SIZE_190\r
+# define BOOST_PP_SEQ_SIZE_190(_) BOOST_PP_SEQ_SIZE_191\r
+# define BOOST_PP_SEQ_SIZE_191(_) BOOST_PP_SEQ_SIZE_192\r
+# define BOOST_PP_SEQ_SIZE_192(_) BOOST_PP_SEQ_SIZE_193\r
+# define BOOST_PP_SEQ_SIZE_193(_) BOOST_PP_SEQ_SIZE_194\r
+# define BOOST_PP_SEQ_SIZE_194(_) BOOST_PP_SEQ_SIZE_195\r
+# define BOOST_PP_SEQ_SIZE_195(_) BOOST_PP_SEQ_SIZE_196\r
+# define BOOST_PP_SEQ_SIZE_196(_) BOOST_PP_SEQ_SIZE_197\r
+# define BOOST_PP_SEQ_SIZE_197(_) BOOST_PP_SEQ_SIZE_198\r
+# define BOOST_PP_SEQ_SIZE_198(_) BOOST_PP_SEQ_SIZE_199\r
+# define BOOST_PP_SEQ_SIZE_199(_) BOOST_PP_SEQ_SIZE_200\r
+# define BOOST_PP_SEQ_SIZE_200(_) BOOST_PP_SEQ_SIZE_201\r
+# define BOOST_PP_SEQ_SIZE_201(_) BOOST_PP_SEQ_SIZE_202\r
+# define BOOST_PP_SEQ_SIZE_202(_) BOOST_PP_SEQ_SIZE_203\r
+# define BOOST_PP_SEQ_SIZE_203(_) BOOST_PP_SEQ_SIZE_204\r
+# define BOOST_PP_SEQ_SIZE_204(_) BOOST_PP_SEQ_SIZE_205\r
+# define BOOST_PP_SEQ_SIZE_205(_) BOOST_PP_SEQ_SIZE_206\r
+# define BOOST_PP_SEQ_SIZE_206(_) BOOST_PP_SEQ_SIZE_207\r
+# define BOOST_PP_SEQ_SIZE_207(_) BOOST_PP_SEQ_SIZE_208\r
+# define BOOST_PP_SEQ_SIZE_208(_) BOOST_PP_SEQ_SIZE_209\r
+# define BOOST_PP_SEQ_SIZE_209(_) BOOST_PP_SEQ_SIZE_210\r
+# define BOOST_PP_SEQ_SIZE_210(_) BOOST_PP_SEQ_SIZE_211\r
+# define BOOST_PP_SEQ_SIZE_211(_) BOOST_PP_SEQ_SIZE_212\r
+# define BOOST_PP_SEQ_SIZE_212(_) BOOST_PP_SEQ_SIZE_213\r
+# define BOOST_PP_SEQ_SIZE_213(_) BOOST_PP_SEQ_SIZE_214\r
+# define BOOST_PP_SEQ_SIZE_214(_) BOOST_PP_SEQ_SIZE_215\r
+# define BOOST_PP_SEQ_SIZE_215(_) BOOST_PP_SEQ_SIZE_216\r
+# define BOOST_PP_SEQ_SIZE_216(_) BOOST_PP_SEQ_SIZE_217\r
+# define BOOST_PP_SEQ_SIZE_217(_) BOOST_PP_SEQ_SIZE_218\r
+# define BOOST_PP_SEQ_SIZE_218(_) BOOST_PP_SEQ_SIZE_219\r
+# define BOOST_PP_SEQ_SIZE_219(_) BOOST_PP_SEQ_SIZE_220\r
+# define BOOST_PP_SEQ_SIZE_220(_) BOOST_PP_SEQ_SIZE_221\r
+# define BOOST_PP_SEQ_SIZE_221(_) BOOST_PP_SEQ_SIZE_222\r
+# define BOOST_PP_SEQ_SIZE_222(_) BOOST_PP_SEQ_SIZE_223\r
+# define BOOST_PP_SEQ_SIZE_223(_) BOOST_PP_SEQ_SIZE_224\r
+# define BOOST_PP_SEQ_SIZE_224(_) BOOST_PP_SEQ_SIZE_225\r
+# define BOOST_PP_SEQ_SIZE_225(_) BOOST_PP_SEQ_SIZE_226\r
+# define BOOST_PP_SEQ_SIZE_226(_) BOOST_PP_SEQ_SIZE_227\r
+# define BOOST_PP_SEQ_SIZE_227(_) BOOST_PP_SEQ_SIZE_228\r
+# define BOOST_PP_SEQ_SIZE_228(_) BOOST_PP_SEQ_SIZE_229\r
+# define BOOST_PP_SEQ_SIZE_229(_) BOOST_PP_SEQ_SIZE_230\r
+# define BOOST_PP_SEQ_SIZE_230(_) BOOST_PP_SEQ_SIZE_231\r
+# define BOOST_PP_SEQ_SIZE_231(_) BOOST_PP_SEQ_SIZE_232\r
+# define BOOST_PP_SEQ_SIZE_232(_) BOOST_PP_SEQ_SIZE_233\r
+# define BOOST_PP_SEQ_SIZE_233(_) BOOST_PP_SEQ_SIZE_234\r
+# define BOOST_PP_SEQ_SIZE_234(_) BOOST_PP_SEQ_SIZE_235\r
+# define BOOST_PP_SEQ_SIZE_235(_) BOOST_PP_SEQ_SIZE_236\r
+# define BOOST_PP_SEQ_SIZE_236(_) BOOST_PP_SEQ_SIZE_237\r
+# define BOOST_PP_SEQ_SIZE_237(_) BOOST_PP_SEQ_SIZE_238\r
+# define BOOST_PP_SEQ_SIZE_238(_) BOOST_PP_SEQ_SIZE_239\r
+# define BOOST_PP_SEQ_SIZE_239(_) BOOST_PP_SEQ_SIZE_240\r
+# define BOOST_PP_SEQ_SIZE_240(_) BOOST_PP_SEQ_SIZE_241\r
+# define BOOST_PP_SEQ_SIZE_241(_) BOOST_PP_SEQ_SIZE_242\r
+# define BOOST_PP_SEQ_SIZE_242(_) BOOST_PP_SEQ_SIZE_243\r
+# define BOOST_PP_SEQ_SIZE_243(_) BOOST_PP_SEQ_SIZE_244\r
+# define BOOST_PP_SEQ_SIZE_244(_) BOOST_PP_SEQ_SIZE_245\r
+# define BOOST_PP_SEQ_SIZE_245(_) BOOST_PP_SEQ_SIZE_246\r
+# define BOOST_PP_SEQ_SIZE_246(_) BOOST_PP_SEQ_SIZE_247\r
+# define BOOST_PP_SEQ_SIZE_247(_) BOOST_PP_SEQ_SIZE_248\r
+# define BOOST_PP_SEQ_SIZE_248(_) BOOST_PP_SEQ_SIZE_249\r
+# define BOOST_PP_SEQ_SIZE_249(_) BOOST_PP_SEQ_SIZE_250\r
+# define BOOST_PP_SEQ_SIZE_250(_) BOOST_PP_SEQ_SIZE_251\r
+# define BOOST_PP_SEQ_SIZE_251(_) BOOST_PP_SEQ_SIZE_252\r
+# define BOOST_PP_SEQ_SIZE_252(_) BOOST_PP_SEQ_SIZE_253\r
+# define BOOST_PP_SEQ_SIZE_253(_) BOOST_PP_SEQ_SIZE_254\r
+# define BOOST_PP_SEQ_SIZE_254(_) BOOST_PP_SEQ_SIZE_255\r
+# define BOOST_PP_SEQ_SIZE_255(_) BOOST_PP_SEQ_SIZE_256\r
+# define BOOST_PP_SEQ_SIZE_256(_) BOOST_PP_SEQ_SIZE_257\r
+#\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_0 0\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_1 1\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_2 2\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_3 3\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_4 4\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_5 5\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_6 6\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_7 7\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_8 8\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_9 9\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_10 10\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_11 11\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_12 12\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_13 13\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_14 14\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_15 15\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_16 16\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_17 17\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_18 18\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_19 19\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_20 20\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_21 21\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_22 22\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_23 23\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_24 24\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_25 25\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_26 26\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_27 27\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_28 28\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_29 29\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_30 30\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_31 31\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_32 32\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_33 33\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_34 34\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_35 35\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_36 36\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_37 37\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_38 38\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_39 39\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_40 40\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_41 41\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_42 42\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_43 43\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_44 44\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_45 45\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_46 46\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_47 47\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_48 48\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_49 49\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_50 50\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_51 51\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_52 52\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_53 53\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_54 54\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_55 55\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_56 56\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_57 57\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_58 58\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_59 59\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_60 60\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_61 61\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_62 62\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_63 63\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_64 64\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_65 65\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_66 66\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_67 67\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_68 68\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_69 69\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_70 70\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_71 71\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_72 72\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_73 73\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_74 74\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_75 75\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_76 76\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_77 77\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_78 78\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_79 79\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_80 80\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_81 81\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_82 82\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_83 83\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_84 84\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_85 85\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_86 86\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_87 87\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_88 88\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_89 89\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_90 90\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_91 91\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_92 92\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_93 93\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_94 94\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_95 95\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_96 96\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_97 97\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_98 98\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_99 99\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_100 100\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_101 101\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_102 102\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_103 103\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_104 104\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_105 105\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_106 106\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_107 107\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_108 108\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_109 109\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_110 110\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_111 111\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_112 112\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_113 113\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_114 114\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_115 115\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_116 116\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_117 117\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_118 118\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_119 119\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_120 120\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_121 121\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_122 122\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_123 123\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_124 124\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_125 125\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_126 126\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_127 127\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_128 128\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_129 129\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_130 130\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_131 131\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_132 132\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_133 133\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_134 134\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_135 135\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_136 136\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_137 137\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_138 138\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_139 139\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_140 140\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_141 141\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_142 142\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_143 143\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_144 144\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_145 145\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_146 146\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_147 147\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_148 148\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_149 149\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_150 150\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_151 151\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_152 152\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_153 153\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_154 154\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_155 155\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_156 156\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_157 157\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_158 158\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_159 159\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_160 160\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_161 161\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_162 162\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_163 163\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_164 164\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_165 165\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_166 166\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_167 167\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_168 168\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_169 169\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_170 170\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_171 171\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_172 172\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_173 173\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_174 174\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_175 175\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_176 176\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_177 177\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_178 178\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_179 179\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_180 180\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_181 181\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_182 182\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_183 183\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_184 184\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_185 185\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_186 186\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_187 187\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_188 188\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_189 189\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_190 190\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_191 191\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_192 192\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_193 193\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_194 194\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_195 195\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_196 196\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_197 197\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_198 198\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_199 199\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_200 200\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_201 201\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_202 202\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_203 203\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_204 204\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_205 205\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_206 206\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_207 207\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_208 208\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_209 209\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_210 210\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_211 211\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_212 212\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_213 213\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_214 214\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_215 215\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_216 216\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_217 217\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_218 218\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_219 219\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_220 220\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_221 221\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_222 222\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_223 223\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_224 224\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_225 225\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_226 226\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_227 227\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_228 228\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_229 229\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_230 230\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_231 231\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_232 232\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_233 233\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_234 234\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_235 235\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_236 236\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_237 237\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_238 238\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_239 239\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_240 240\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_241 241\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_242 242\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_243 243\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_244 244\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_245 245\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_246 246\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_247 247\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_248 248\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_249 249\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_250 250\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_251 251\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_252 252\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_253 253\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_254 254\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_255 255\r
+# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_256 256\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/subseq.hpp b/boost/boost/preprocessor/seq/subseq.hpp
new file mode 100644 (file)
index 0000000..aee81a0
--- /dev/null
@@ -0,0 +1,28 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_SUBSEQ_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_SUBSEQ_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/seq/first_n.hpp>\r
+# include <boost/preprocessor/seq/rest_n.hpp>\r
+#\r
+# /* BOOST_PP_SEQ_SUBSEQ */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_SEQ_SUBSEQ(seq, i, len) BOOST_PP_SEQ_FIRST_N(len, BOOST_PP_SEQ_REST_N(i, seq))\r
+# else\r
+#    define BOOST_PP_SEQ_SUBSEQ(seq, i, len) BOOST_PP_SEQ_SUBSEQ_I(seq, i, len)\r
+#    define BOOST_PP_SEQ_SUBSEQ_I(seq, i, len) BOOST_PP_SEQ_FIRST_N(len, BOOST_PP_SEQ_REST_N(i, seq))\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/to_array.hpp b/boost/boost/preprocessor/seq/to_array.hpp
new file mode 100644 (file)
index 0000000..d20d45e
--- /dev/null
@@ -0,0 +1,28 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_TO_ARRAY_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_TO_ARRAY_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/seq/enum.hpp>\r
+# include <boost/preprocessor/seq/size.hpp>\r
+#\r
+# /* BOOST_PP_SEQ_TO_ARRAY */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_SEQ_TO_ARRAY(seq) (BOOST_PP_SEQ_SIZE(seq), (BOOST_PP_SEQ_ENUM(seq)))\r
+# else\r
+#    define BOOST_PP_SEQ_TO_ARRAY(seq) BOOST_PP_SEQ_TO_ARRAY_I(seq)\r
+#    define BOOST_PP_SEQ_TO_ARRAY_I(seq) (BOOST_PP_SEQ_SIZE(seq), (BOOST_PP_SEQ_ENUM(seq)))\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/to_tuple.hpp b/boost/boost/preprocessor/seq/to_tuple.hpp
new file mode 100644 (file)
index 0000000..828dcd5
--- /dev/null
@@ -0,0 +1,27 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_TO_TUPLE_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_TO_TUPLE_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/seq/enum.hpp>\r
+#\r
+# /* BOOST_PP_SEQ_TO_TUPLE */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_SEQ_TO_TUPLE(seq) (BOOST_PP_SEQ_ENUM(seq))\r
+# else\r
+#    define BOOST_PP_SEQ_TO_TUPLE(seq) BOOST_PP_SEQ_TO_TUPLE_I(seq)\r
+#    define BOOST_PP_SEQ_TO_TUPLE_I(seq) (BOOST_PP_SEQ_ENUM(seq))\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/seq/transform.hpp b/boost/boost/preprocessor/seq/transform.hpp
new file mode 100644 (file)
index 0000000..70f89e1
--- /dev/null
@@ -0,0 +1,48 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SEQ_TRANSFORM_HPP\r
+# define BOOST_PREPROCESSOR_SEQ_TRANSFORM_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+# include <boost/preprocessor/seq/fold_left.hpp>\r
+# include <boost/preprocessor/seq/seq.hpp>\r
+# include <boost/preprocessor/tuple/elem.hpp>\r
+# include <boost/preprocessor/tuple/rem.hpp>\r
+#\r
+# /* BOOST_PP_SEQ_TRANSFORM */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_SEQ_TRANSFORM(op, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))\r
+# else\r
+#    define BOOST_PP_SEQ_TRANSFORM(op, data, seq) BOOST_PP_SEQ_TRANSFORM_I(op, data, seq)\r
+#    define BOOST_PP_SEQ_TRANSFORM_I(op, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))\r
+# endif\r
+#\r
+# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()\r
+#    define BOOST_PP_SEQ_TRANSFORM_O(s, state, elem) BOOST_PP_SEQ_TRANSFORM_O_IM(s, BOOST_PP_TUPLE_REM_3 state, elem)\r
+#    define BOOST_PP_SEQ_TRANSFORM_O_IM(s, im, elem) BOOST_PP_SEQ_TRANSFORM_O_I(s, im, elem)\r
+# else\r
+#    define BOOST_PP_SEQ_TRANSFORM_O(s, state, elem) BOOST_PP_SEQ_TRANSFORM_O_I(s, BOOST_PP_TUPLE_ELEM(3, 0, state), BOOST_PP_TUPLE_ELEM(3, 1, state), BOOST_PP_TUPLE_ELEM(3, 2, state), elem)\r
+# endif\r
+#\r
+# define BOOST_PP_SEQ_TRANSFORM_O_I(s, op, data, res, elem) (op, data, res (op(s, data, elem)))\r
+#\r
+# /* BOOST_PP_SEQ_TRANSFORM_S */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()\r
+#    define BOOST_PP_SEQ_TRANSFORM_S(s, op, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))\r
+# else\r
+#    define BOOST_PP_SEQ_TRANSFORM_S(s, op, data, seq) BOOST_PP_SEQ_TRANSFORM_S_I(s, op, data, seq)\r
+#    define BOOST_PP_SEQ_TRANSFORM_S_I(s, op, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))\r
+# endif\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/slot/counter.hpp b/boost/boost/preprocessor/slot/counter.hpp
new file mode 100644 (file)
index 0000000..e1d5863
--- /dev/null
@@ -0,0 +1,25 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2005.                                  *\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See      *\r
+#  *     accompanying file LICENSE_1_0.txt or copy at                         *\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)                                *\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_SLOT_COUNTER_HPP\r
+# define BOOST_PREPROCESSOR_SLOT_COUNTER_HPP\r
+#\r
+# include <boost/preprocessor/slot/detail/def.hpp>\r
+#\r
+# /* BOOST_PP_COUNTER */\r
+#\r
+# define BOOST_PP_COUNTER 0\r
+#\r
+# /* BOOST_PP_UPDATE_COUNTER */\r
+#\r
+# define BOOST_PP_UPDATE_COUNTER() <boost/preprocessor/slot/detail/counter.hpp>\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/slot/detail/counter.hpp b/boost/boost/preprocessor/slot/detail/counter.hpp
new file mode 100644 (file)
index 0000000..c15b542
--- /dev/null
@@ -0,0 +1,269 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2005.                                  *\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See      *\r
+#  *     accompanying file LICENSE_1_0.txt or copy at                         *\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)                                *\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# define BOOST_PP_VALUE BOOST_PP_COUNTER + 1\r
+#\r
+# include <boost/preprocessor/slot/detail/shared.hpp>\r
+#\r
+# undef BOOST_PP_COUNTER\r
+#\r
+# undef BOOST_PP_COUNTER_DIGIT_1\r
+# undef BOOST_PP_COUNTER_DIGIT_2\r
+# undef BOOST_PP_COUNTER_DIGIT_3\r
+# undef BOOST_PP_COUNTER_DIGIT_4\r
+# undef BOOST_PP_COUNTER_DIGIT_5\r
+# undef BOOST_PP_COUNTER_DIGIT_6\r
+# undef BOOST_PP_COUNTER_DIGIT_7\r
+# undef BOOST_PP_COUNTER_DIGIT_8\r
+# undef BOOST_PP_COUNTER_DIGIT_9\r
+# undef BOOST_PP_COUNTER_DIGIT_10\r
+#\r
+# if BOOST_PP_SLOT_TEMP_10 == 0\r
+#    define BOOST_PP_COUNTER_DIGIT_10 0\r
+# elif BOOST_PP_SLOT_TEMP_10 == 1\r
+#    define BOOST_PP_COUNTER_DIGIT_10 1\r
+# elif BOOST_PP_SLOT_TEMP_10 == 2\r
+#    define BOOST_PP_COUNTER_DIGIT_10 2\r
+# elif BOOST_PP_SLOT_TEMP_10 == 3\r
+#    define BOOST_PP_COUNTER_DIGIT_10 3\r
+# elif BOOST_PP_SLOT_TEMP_10 == 4\r
+#    define BOOST_PP_COUNTER_DIGIT_10 4\r
+# elif BOOST_PP_SLOT_TEMP_10 == 5\r
+#    define BOOST_PP_COUNTER_DIGIT_10 5\r
+# elif BOOST_PP_SLOT_TEMP_10 == 6\r
+#    define BOOST_PP_COUNTER_DIGIT_10 6\r
+# elif BOOST_PP_SLOT_TEMP_10 == 7\r
+#    define BOOST_PP_COUNTER_DIGIT_10 7\r
+# elif BOOST_PP_SLOT_TEMP_10 == 8\r
+#    define BOOST_PP_COUNTER_DIGIT_10 8\r
+# elif BOOST_PP_SLOT_TEMP_10 == 9\r
+#    define BOOST_PP_COUNTER_DIGIT_10 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_9 == 0\r
+#    define BOOST_PP_COUNTER_DIGIT_9 0\r
+# elif BOOST_PP_SLOT_TEMP_9 == 1\r
+#    define BOOST_PP_COUNTER_DIGIT_9 1\r
+# elif BOOST_PP_SLOT_TEMP_9 == 2\r
+#    define BOOST_PP_COUNTER_DIGIT_9 2\r
+# elif BOOST_PP_SLOT_TEMP_9 == 3\r
+#    define BOOST_PP_COUNTER_DIGIT_9 3\r
+# elif BOOST_PP_SLOT_TEMP_9 == 4\r
+#    define BOOST_PP_COUNTER_DIGIT_9 4\r
+# elif BOOST_PP_SLOT_TEMP_9 == 5\r
+#    define BOOST_PP_COUNTER_DIGIT_9 5\r
+# elif BOOST_PP_SLOT_TEMP_9 == 6\r
+#    define BOOST_PP_COUNTER_DIGIT_9 6\r
+# elif BOOST_PP_SLOT_TEMP_9 == 7\r
+#    define BOOST_PP_COUNTER_DIGIT_9 7\r
+# elif BOOST_PP_SLOT_TEMP_9 == 8\r
+#    define BOOST_PP_COUNTER_DIGIT_9 8\r
+# elif BOOST_PP_SLOT_TEMP_9 == 9\r
+#    define BOOST_PP_COUNTER_DIGIT_9 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_8 == 0\r
+#    define BOOST_PP_COUNTER_DIGIT_8 0\r
+# elif BOOST_PP_SLOT_TEMP_8 == 1\r
+#    define BOOST_PP_COUNTER_DIGIT_8 1\r
+# elif BOOST_PP_SLOT_TEMP_8 == 2\r
+#    define BOOST_PP_COUNTER_DIGIT_8 2\r
+# elif BOOST_PP_SLOT_TEMP_8 == 3\r
+#    define BOOST_PP_COUNTER_DIGIT_8 3\r
+# elif BOOST_PP_SLOT_TEMP_8 == 4\r
+#    define BOOST_PP_COUNTER_DIGIT_8 4\r
+# elif BOOST_PP_SLOT_TEMP_8 == 5\r
+#    define BOOST_PP_COUNTER_DIGIT_8 5\r
+# elif BOOST_PP_SLOT_TEMP_8 == 6\r
+#    define BOOST_PP_COUNTER_DIGIT_8 6\r
+# elif BOOST_PP_SLOT_TEMP_8 == 7\r
+#    define BOOST_PP_COUNTER_DIGIT_8 7\r
+# elif BOOST_PP_SLOT_TEMP_8 == 8\r
+#    define BOOST_PP_COUNTER_DIGIT_8 8\r
+# elif BOOST_PP_SLOT_TEMP_8 == 9\r
+#    define BOOST_PP_COUNTER_DIGIT_8 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_7 == 0\r
+#    define BOOST_PP_COUNTER_DIGIT_7 0\r
+# elif BOOST_PP_SLOT_TEMP_7 == 1\r
+#    define BOOST_PP_COUNTER_DIGIT_7 1\r
+# elif BOOST_PP_SLOT_TEMP_7 == 2\r
+#    define BOOST_PP_COUNTER_DIGIT_7 2\r
+# elif BOOST_PP_SLOT_TEMP_7 == 3\r
+#    define BOOST_PP_COUNTER_DIGIT_7 3\r
+# elif BOOST_PP_SLOT_TEMP_7 == 4\r
+#    define BOOST_PP_COUNTER_DIGIT_7 4\r
+# elif BOOST_PP_SLOT_TEMP_7 == 5\r
+#    define BOOST_PP_COUNTER_DIGIT_7 5\r
+# elif BOOST_PP_SLOT_TEMP_7 == 6\r
+#    define BOOST_PP_COUNTER_DIGIT_7 6\r
+# elif BOOST_PP_SLOT_TEMP_7 == 7\r
+#    define BOOST_PP_COUNTER_DIGIT_7 7\r
+# elif BOOST_PP_SLOT_TEMP_7 == 8\r
+#    define BOOST_PP_COUNTER_DIGIT_7 8\r
+# elif BOOST_PP_SLOT_TEMP_7 == 9\r
+#    define BOOST_PP_COUNTER_DIGIT_7 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_6 == 0\r
+#    define BOOST_PP_COUNTER_DIGIT_6 0\r
+# elif BOOST_PP_SLOT_TEMP_6 == 1\r
+#    define BOOST_PP_COUNTER_DIGIT_6 1\r
+# elif BOOST_PP_SLOT_TEMP_6 == 2\r
+#    define BOOST_PP_COUNTER_DIGIT_6 2\r
+# elif BOOST_PP_SLOT_TEMP_6 == 3\r
+#    define BOOST_PP_COUNTER_DIGIT_6 3\r
+# elif BOOST_PP_SLOT_TEMP_6 == 4\r
+#    define BOOST_PP_COUNTER_DIGIT_6 4\r
+# elif BOOST_PP_SLOT_TEMP_6 == 5\r
+#    define BOOST_PP_COUNTER_DIGIT_6 5\r
+# elif BOOST_PP_SLOT_TEMP_6 == 6\r
+#    define BOOST_PP_COUNTER_DIGIT_6 6\r
+# elif BOOST_PP_SLOT_TEMP_6 == 7\r
+#    define BOOST_PP_COUNTER_DIGIT_6 7\r
+# elif BOOST_PP_SLOT_TEMP_6 == 8\r
+#    define BOOST_PP_COUNTER_DIGIT_6 8\r
+# elif BOOST_PP_SLOT_TEMP_6 == 9\r
+#    define BOOST_PP_COUNTER_DIGIT_6 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_5 == 0\r
+#    define BOOST_PP_COUNTER_DIGIT_5 0\r
+# elif BOOST_PP_SLOT_TEMP_5 == 1\r
+#    define BOOST_PP_COUNTER_DIGIT_5 1\r
+# elif BOOST_PP_SLOT_TEMP_5 == 2\r
+#    define BOOST_PP_COUNTER_DIGIT_5 2\r
+# elif BOOST_PP_SLOT_TEMP_5 == 3\r
+#    define BOOST_PP_COUNTER_DIGIT_5 3\r
+# elif BOOST_PP_SLOT_TEMP_5 == 4\r
+#    define BOOST_PP_COUNTER_DIGIT_5 4\r
+# elif BOOST_PP_SLOT_TEMP_5 == 5\r
+#    define BOOST_PP_COUNTER_DIGIT_5 5\r
+# elif BOOST_PP_SLOT_TEMP_5 == 6\r
+#    define BOOST_PP_COUNTER_DIGIT_5 6\r
+# elif BOOST_PP_SLOT_TEMP_5 == 7\r
+#    define BOOST_PP_COUNTER_DIGIT_5 7\r
+# elif BOOST_PP_SLOT_TEMP_5 == 8\r
+#    define BOOST_PP_COUNTER_DIGIT_5 8\r
+# elif BOOST_PP_SLOT_TEMP_5 == 9\r
+#    define BOOST_PP_COUNTER_DIGIT_5 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_4 == 0\r
+#    define BOOST_PP_COUNTER_DIGIT_4 0\r
+# elif BOOST_PP_SLOT_TEMP_4 == 1\r
+#    define BOOST_PP_COUNTER_DIGIT_4 1\r
+# elif BOOST_PP_SLOT_TEMP_4 == 2\r
+#    define BOOST_PP_COUNTER_DIGIT_4 2\r
+# elif BOOST_PP_SLOT_TEMP_4 == 3\r
+#    define BOOST_PP_COUNTER_DIGIT_4 3\r
+# elif BOOST_PP_SLOT_TEMP_4 == 4\r
+#    define BOOST_PP_COUNTER_DIGIT_4 4\r
+# elif BOOST_PP_SLOT_TEMP_4 == 5\r
+#    define BOOST_PP_COUNTER_DIGIT_4 5\r
+# elif BOOST_PP_SLOT_TEMP_4 == 6\r
+#    define BOOST_PP_COUNTER_DIGIT_4 6\r
+# elif BOOST_PP_SLOT_TEMP_4 == 7\r
+#    define BOOST_PP_COUNTER_DIGIT_4 7\r
+# elif BOOST_PP_SLOT_TEMP_4 == 8\r
+#    define BOOST_PP_COUNTER_DIGIT_4 8\r
+# elif BOOST_PP_SLOT_TEMP_4 == 9\r
+#    define BOOST_PP_COUNTER_DIGIT_4 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_3 == 0\r
+#    define BOOST_PP_COUNTER_DIGIT_3 0\r
+# elif BOOST_PP_SLOT_TEMP_3 == 1\r
+#    define BOOST_PP_COUNTER_DIGIT_3 1\r
+# elif BOOST_PP_SLOT_TEMP_3 == 2\r
+#    define BOOST_PP_COUNTER_DIGIT_3 2\r
+# elif BOOST_PP_SLOT_TEMP_3 == 3\r
+#    define BOOST_PP_COUNTER_DIGIT_3 3\r
+# elif BOOST_PP_SLOT_TEMP_3 == 4\r
+#    define BOOST_PP_COUNTER_DIGIT_3 4\r
+# elif BOOST_PP_SLOT_TEMP_3 == 5\r
+#    define BOOST_PP_COUNTER_DIGIT_3 5\r
+# elif BOOST_PP_SLOT_TEMP_3 == 6\r
+#    define BOOST_PP_COUNTER_DIGIT_3 6\r
+# elif BOOST_PP_SLOT_TEMP_3 == 7\r
+#    define BOOST_PP_COUNTER_DIGIT_3 7\r
+# elif BOOST_PP_SLOT_TEMP_3 == 8\r
+#    define BOOST_PP_COUNTER_DIGIT_3 8\r
+# elif BOOST_PP_SLOT_TEMP_3 == 9\r
+#    define BOOST_PP_COUNTER_DIGIT_3 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_2 == 0\r
+#    define BOOST_PP_COUNTER_DIGIT_2 0\r
+# elif BOOST_PP_SLOT_TEMP_2 == 1\r
+#    define BOOST_PP_COUNTER_DIGIT_2 1\r
+# elif BOOST_PP_SLOT_TEMP_2 == 2\r
+#    define BOOST_PP_COUNTER_DIGIT_2 2\r
+# elif BOOST_PP_SLOT_TEMP_2 == 3\r
+#    define BOOST_PP_COUNTER_DIGIT_2 3\r
+# elif BOOST_PP_SLOT_TEMP_2 == 4\r
+#    define BOOST_PP_COUNTER_DIGIT_2 4\r
+# elif BOOST_PP_SLOT_TEMP_2 == 5\r
+#    define BOOST_PP_COUNTER_DIGIT_2 5\r
+# elif BOOST_PP_SLOT_TEMP_2 == 6\r
+#    define BOOST_PP_COUNTER_DIGIT_2 6\r
+# elif BOOST_PP_SLOT_TEMP_2 == 7\r
+#    define BOOST_PP_COUNTER_DIGIT_2 7\r
+# elif BOOST_PP_SLOT_TEMP_2 == 8\r
+#    define BOOST_PP_COUNTER_DIGIT_2 8\r
+# elif BOOST_PP_SLOT_TEMP_2 == 9\r
+#    define BOOST_PP_COUNTER_DIGIT_2 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_1 == 0\r
+#    define BOOST_PP_COUNTER_DIGIT_1 0\r
+# elif BOOST_PP_SLOT_TEMP_1 == 1\r
+#    define BOOST_PP_COUNTER_DIGIT_1 1\r
+# elif BOOST_PP_SLOT_TEMP_1 == 2\r
+#    define BOOST_PP_COUNTER_DIGIT_1 2\r
+# elif BOOST_PP_SLOT_TEMP_1 == 3\r
+#    define BOOST_PP_COUNTER_DIGIT_1 3\r
+# elif BOOST_PP_SLOT_TEMP_1 == 4\r
+#    define BOOST_PP_COUNTER_DIGIT_1 4\r
+# elif BOOST_PP_SLOT_TEMP_1 == 5\r
+#    define BOOST_PP_COUNTER_DIGIT_1 5\r
+# elif BOOST_PP_SLOT_TEMP_1 == 6\r
+#    define BOOST_PP_COUNTER_DIGIT_1 6\r
+# elif BOOST_PP_SLOT_TEMP_1 == 7\r
+#    define BOOST_PP_COUNTER_DIGIT_1 7\r
+# elif BOOST_PP_SLOT_TEMP_1 == 8\r
+#    define BOOST_PP_COUNTER_DIGIT_1 8\r
+# elif BOOST_PP_SLOT_TEMP_1 == 9\r
+#    define BOOST_PP_COUNTER_DIGIT_1 9\r
+# endif\r
+#\r
+# if BOOST_PP_COUNTER_DIGIT_10\r
+#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_10(BOOST_PP_COUNTER_DIGIT_10, BOOST_PP_COUNTER_DIGIT_9, BOOST_PP_COUNTER_DIGIT_8, BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)\r
+# elif BOOST_PP_COUNTER_DIGIT_9\r
+#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_9(BOOST_PP_COUNTER_DIGIT_9, BOOST_PP_COUNTER_DIGIT_8, BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)\r
+# elif BOOST_PP_COUNTER_DIGIT_8\r
+#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_8(BOOST_PP_COUNTER_DIGIT_8, BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)\r
+# elif BOOST_PP_COUNTER_DIGIT_7\r
+#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_7(BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)\r
+# elif BOOST_PP_COUNTER_DIGIT_6\r
+#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_6(BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)\r
+# elif BOOST_PP_COUNTER_DIGIT_5\r
+#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_5(BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)\r
+# elif BOOST_PP_COUNTER_DIGIT_4\r
+#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_4(BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)\r
+# elif BOOST_PP_COUNTER_DIGIT_3\r
+#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_3(BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)\r
+# elif BOOST_PP_COUNTER_DIGIT_2\r
+#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_2(BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)\r
+# else\r
+#    define BOOST_PP_COUNTER BOOST_PP_COUNTER_DIGIT_1\r
+# endif\r
diff --git a/boost/boost/preprocessor/slot/detail/slot1.hpp b/boost/boost/preprocessor/slot/detail/slot1.hpp
new file mode 100644 (file)
index 0000000..66d209a
--- /dev/null
@@ -0,0 +1,267 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# include <boost/preprocessor/slot/detail/shared.hpp>\r
+#\r
+# undef BOOST_PP_SLOT_1\r
+#\r
+# undef BOOST_PP_SLOT_1_DIGIT_1\r
+# undef BOOST_PP_SLOT_1_DIGIT_2\r
+# undef BOOST_PP_SLOT_1_DIGIT_3\r
+# undef BOOST_PP_SLOT_1_DIGIT_4\r
+# undef BOOST_PP_SLOT_1_DIGIT_5\r
+# undef BOOST_PP_SLOT_1_DIGIT_6\r
+# undef BOOST_PP_SLOT_1_DIGIT_7\r
+# undef BOOST_PP_SLOT_1_DIGIT_8\r
+# undef BOOST_PP_SLOT_1_DIGIT_9\r
+# undef BOOST_PP_SLOT_1_DIGIT_10\r
+#\r
+# if BOOST_PP_SLOT_TEMP_10 == 0\r
+#    define BOOST_PP_SLOT_1_DIGIT_10 0\r
+# elif BOOST_PP_SLOT_TEMP_10 == 1\r
+#    define BOOST_PP_SLOT_1_DIGIT_10 1\r
+# elif BOOST_PP_SLOT_TEMP_10 == 2\r
+#    define BOOST_PP_SLOT_1_DIGIT_10 2\r
+# elif BOOST_PP_SLOT_TEMP_10 == 3\r
+#    define BOOST_PP_SLOT_1_DIGIT_10 3\r
+# elif BOOST_PP_SLOT_TEMP_10 == 4\r
+#    define BOOST_PP_SLOT_1_DIGIT_10 4\r
+# elif BOOST_PP_SLOT_TEMP_10 == 5\r
+#    define BOOST_PP_SLOT_1_DIGIT_10 5\r
+# elif BOOST_PP_SLOT_TEMP_10 == 6\r
+#    define BOOST_PP_SLOT_1_DIGIT_10 6\r
+# elif BOOST_PP_SLOT_TEMP_10 == 7\r
+#    define BOOST_PP_SLOT_1_DIGIT_10 7\r
+# elif BOOST_PP_SLOT_TEMP_10 == 8\r
+#    define BOOST_PP_SLOT_1_DIGIT_10 8\r
+# elif BOOST_PP_SLOT_TEMP_10 == 9\r
+#    define BOOST_PP_SLOT_1_DIGIT_10 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_9 == 0\r
+#    define BOOST_PP_SLOT_1_DIGIT_9 0\r
+# elif BOOST_PP_SLOT_TEMP_9 == 1\r
+#    define BOOST_PP_SLOT_1_DIGIT_9 1\r
+# elif BOOST_PP_SLOT_TEMP_9 == 2\r
+#    define BOOST_PP_SLOT_1_DIGIT_9 2\r
+# elif BOOST_PP_SLOT_TEMP_9 == 3\r
+#    define BOOST_PP_SLOT_1_DIGIT_9 3\r
+# elif BOOST_PP_SLOT_TEMP_9 == 4\r
+#    define BOOST_PP_SLOT_1_DIGIT_9 4\r
+# elif BOOST_PP_SLOT_TEMP_9 == 5\r
+#    define BOOST_PP_SLOT_1_DIGIT_9 5\r
+# elif BOOST_PP_SLOT_TEMP_9 == 6\r
+#    define BOOST_PP_SLOT_1_DIGIT_9 6\r
+# elif BOOST_PP_SLOT_TEMP_9 == 7\r
+#    define BOOST_PP_SLOT_1_DIGIT_9 7\r
+# elif BOOST_PP_SLOT_TEMP_9 == 8\r
+#    define BOOST_PP_SLOT_1_DIGIT_9 8\r
+# elif BOOST_PP_SLOT_TEMP_9 == 9\r
+#    define BOOST_PP_SLOT_1_DIGIT_9 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_8 == 0\r
+#    define BOOST_PP_SLOT_1_DIGIT_8 0\r
+# elif BOOST_PP_SLOT_TEMP_8 == 1\r
+#    define BOOST_PP_SLOT_1_DIGIT_8 1\r
+# elif BOOST_PP_SLOT_TEMP_8 == 2\r
+#    define BOOST_PP_SLOT_1_DIGIT_8 2\r
+# elif BOOST_PP_SLOT_TEMP_8 == 3\r
+#    define BOOST_PP_SLOT_1_DIGIT_8 3\r
+# elif BOOST_PP_SLOT_TEMP_8 == 4\r
+#    define BOOST_PP_SLOT_1_DIGIT_8 4\r
+# elif BOOST_PP_SLOT_TEMP_8 == 5\r
+#    define BOOST_PP_SLOT_1_DIGIT_8 5\r
+# elif BOOST_PP_SLOT_TEMP_8 == 6\r
+#    define BOOST_PP_SLOT_1_DIGIT_8 6\r
+# elif BOOST_PP_SLOT_TEMP_8 == 7\r
+#    define BOOST_PP_SLOT_1_DIGIT_8 7\r
+# elif BOOST_PP_SLOT_TEMP_8 == 8\r
+#    define BOOST_PP_SLOT_1_DIGIT_8 8\r
+# elif BOOST_PP_SLOT_TEMP_8 == 9\r
+#    define BOOST_PP_SLOT_1_DIGIT_8 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_7 == 0\r
+#    define BOOST_PP_SLOT_1_DIGIT_7 0\r
+# elif BOOST_PP_SLOT_TEMP_7 == 1\r
+#    define BOOST_PP_SLOT_1_DIGIT_7 1\r
+# elif BOOST_PP_SLOT_TEMP_7 == 2\r
+#    define BOOST_PP_SLOT_1_DIGIT_7 2\r
+# elif BOOST_PP_SLOT_TEMP_7 == 3\r
+#    define BOOST_PP_SLOT_1_DIGIT_7 3\r
+# elif BOOST_PP_SLOT_TEMP_7 == 4\r
+#    define BOOST_PP_SLOT_1_DIGIT_7 4\r
+# elif BOOST_PP_SLOT_TEMP_7 == 5\r
+#    define BOOST_PP_SLOT_1_DIGIT_7 5\r
+# elif BOOST_PP_SLOT_TEMP_7 == 6\r
+#    define BOOST_PP_SLOT_1_DIGIT_7 6\r
+# elif BOOST_PP_SLOT_TEMP_7 == 7\r
+#    define BOOST_PP_SLOT_1_DIGIT_7 7\r
+# elif BOOST_PP_SLOT_TEMP_7 == 8\r
+#    define BOOST_PP_SLOT_1_DIGIT_7 8\r
+# elif BOOST_PP_SLOT_TEMP_7 == 9\r
+#    define BOOST_PP_SLOT_1_DIGIT_7 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_6 == 0\r
+#    define BOOST_PP_SLOT_1_DIGIT_6 0\r
+# elif BOOST_PP_SLOT_TEMP_6 == 1\r
+#    define BOOST_PP_SLOT_1_DIGIT_6 1\r
+# elif BOOST_PP_SLOT_TEMP_6 == 2\r
+#    define BOOST_PP_SLOT_1_DIGIT_6 2\r
+# elif BOOST_PP_SLOT_TEMP_6 == 3\r
+#    define BOOST_PP_SLOT_1_DIGIT_6 3\r
+# elif BOOST_PP_SLOT_TEMP_6 == 4\r
+#    define BOOST_PP_SLOT_1_DIGIT_6 4\r
+# elif BOOST_PP_SLOT_TEMP_6 == 5\r
+#    define BOOST_PP_SLOT_1_DIGIT_6 5\r
+# elif BOOST_PP_SLOT_TEMP_6 == 6\r
+#    define BOOST_PP_SLOT_1_DIGIT_6 6\r
+# elif BOOST_PP_SLOT_TEMP_6 == 7\r
+#    define BOOST_PP_SLOT_1_DIGIT_6 7\r
+# elif BOOST_PP_SLOT_TEMP_6 == 8\r
+#    define BOOST_PP_SLOT_1_DIGIT_6 8\r
+# elif BOOST_PP_SLOT_TEMP_6 == 9\r
+#    define BOOST_PP_SLOT_1_DIGIT_6 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_5 == 0\r
+#    define BOOST_PP_SLOT_1_DIGIT_5 0\r
+# elif BOOST_PP_SLOT_TEMP_5 == 1\r
+#    define BOOST_PP_SLOT_1_DIGIT_5 1\r
+# elif BOOST_PP_SLOT_TEMP_5 == 2\r
+#    define BOOST_PP_SLOT_1_DIGIT_5 2\r
+# elif BOOST_PP_SLOT_TEMP_5 == 3\r
+#    define BOOST_PP_SLOT_1_DIGIT_5 3\r
+# elif BOOST_PP_SLOT_TEMP_5 == 4\r
+#    define BOOST_PP_SLOT_1_DIGIT_5 4\r
+# elif BOOST_PP_SLOT_TEMP_5 == 5\r
+#    define BOOST_PP_SLOT_1_DIGIT_5 5\r
+# elif BOOST_PP_SLOT_TEMP_5 == 6\r
+#    define BOOST_PP_SLOT_1_DIGIT_5 6\r
+# elif BOOST_PP_SLOT_TEMP_5 == 7\r
+#    define BOOST_PP_SLOT_1_DIGIT_5 7\r
+# elif BOOST_PP_SLOT_TEMP_5 == 8\r
+#    define BOOST_PP_SLOT_1_DIGIT_5 8\r
+# elif BOOST_PP_SLOT_TEMP_5 == 9\r
+#    define BOOST_PP_SLOT_1_DIGIT_5 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_4 == 0\r
+#    define BOOST_PP_SLOT_1_DIGIT_4 0\r
+# elif BOOST_PP_SLOT_TEMP_4 == 1\r
+#    define BOOST_PP_SLOT_1_DIGIT_4 1\r
+# elif BOOST_PP_SLOT_TEMP_4 == 2\r
+#    define BOOST_PP_SLOT_1_DIGIT_4 2\r
+# elif BOOST_PP_SLOT_TEMP_4 == 3\r
+#    define BOOST_PP_SLOT_1_DIGIT_4 3\r
+# elif BOOST_PP_SLOT_TEMP_4 == 4\r
+#    define BOOST_PP_SLOT_1_DIGIT_4 4\r
+# elif BOOST_PP_SLOT_TEMP_4 == 5\r
+#    define BOOST_PP_SLOT_1_DIGIT_4 5\r
+# elif BOOST_PP_SLOT_TEMP_4 == 6\r
+#    define BOOST_PP_SLOT_1_DIGIT_4 6\r
+# elif BOOST_PP_SLOT_TEMP_4 == 7\r
+#    define BOOST_PP_SLOT_1_DIGIT_4 7\r
+# elif BOOST_PP_SLOT_TEMP_4 == 8\r
+#    define BOOST_PP_SLOT_1_DIGIT_4 8\r
+# elif BOOST_PP_SLOT_TEMP_4 == 9\r
+#    define BOOST_PP_SLOT_1_DIGIT_4 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_3 == 0\r
+#    define BOOST_PP_SLOT_1_DIGIT_3 0\r
+# elif BOOST_PP_SLOT_TEMP_3 == 1\r
+#    define BOOST_PP_SLOT_1_DIGIT_3 1\r
+# elif BOOST_PP_SLOT_TEMP_3 == 2\r
+#    define BOOST_PP_SLOT_1_DIGIT_3 2\r
+# elif BOOST_PP_SLOT_TEMP_3 == 3\r
+#    define BOOST_PP_SLOT_1_DIGIT_3 3\r
+# elif BOOST_PP_SLOT_TEMP_3 == 4\r
+#    define BOOST_PP_SLOT_1_DIGIT_3 4\r
+# elif BOOST_PP_SLOT_TEMP_3 == 5\r
+#    define BOOST_PP_SLOT_1_DIGIT_3 5\r
+# elif BOOST_PP_SLOT_TEMP_3 == 6\r
+#    define BOOST_PP_SLOT_1_DIGIT_3 6\r
+# elif BOOST_PP_SLOT_TEMP_3 == 7\r
+#    define BOOST_PP_SLOT_1_DIGIT_3 7\r
+# elif BOOST_PP_SLOT_TEMP_3 == 8\r
+#    define BOOST_PP_SLOT_1_DIGIT_3 8\r
+# elif BOOST_PP_SLOT_TEMP_3 == 9\r
+#    define BOOST_PP_SLOT_1_DIGIT_3 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_2 == 0\r
+#    define BOOST_PP_SLOT_1_DIGIT_2 0\r
+# elif BOOST_PP_SLOT_TEMP_2 == 1\r
+#    define BOOST_PP_SLOT_1_DIGIT_2 1\r
+# elif BOOST_PP_SLOT_TEMP_2 == 2\r
+#    define BOOST_PP_SLOT_1_DIGIT_2 2\r
+# elif BOOST_PP_SLOT_TEMP_2 == 3\r
+#    define BOOST_PP_SLOT_1_DIGIT_2 3\r
+# elif BOOST_PP_SLOT_TEMP_2 == 4\r
+#    define BOOST_PP_SLOT_1_DIGIT_2 4\r
+# elif BOOST_PP_SLOT_TEMP_2 == 5\r
+#    define BOOST_PP_SLOT_1_DIGIT_2 5\r
+# elif BOOST_PP_SLOT_TEMP_2 == 6\r
+#    define BOOST_PP_SLOT_1_DIGIT_2 6\r
+# elif BOOST_PP_SLOT_TEMP_2 == 7\r
+#    define BOOST_PP_SLOT_1_DIGIT_2 7\r
+# elif BOOST_PP_SLOT_TEMP_2 == 8\r
+#    define BOOST_PP_SLOT_1_DIGIT_2 8\r
+# elif BOOST_PP_SLOT_TEMP_2 == 9\r
+#    define BOOST_PP_SLOT_1_DIGIT_2 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_1 == 0\r
+#    define BOOST_PP_SLOT_1_DIGIT_1 0\r
+# elif BOOST_PP_SLOT_TEMP_1 == 1\r
+#    define BOOST_PP_SLOT_1_DIGIT_1 1\r
+# elif BOOST_PP_SLOT_TEMP_1 == 2\r
+#    define BOOST_PP_SLOT_1_DIGIT_1 2\r
+# elif BOOST_PP_SLOT_TEMP_1 == 3\r
+#    define BOOST_PP_SLOT_1_DIGIT_1 3\r
+# elif BOOST_PP_SLOT_TEMP_1 == 4\r
+#    define BOOST_PP_SLOT_1_DIGIT_1 4\r
+# elif BOOST_PP_SLOT_TEMP_1 == 5\r
+#    define BOOST_PP_SLOT_1_DIGIT_1 5\r
+# elif BOOST_PP_SLOT_TEMP_1 == 6\r
+#    define BOOST_PP_SLOT_1_DIGIT_1 6\r
+# elif BOOST_PP_SLOT_TEMP_1 == 7\r
+#    define BOOST_PP_SLOT_1_DIGIT_1 7\r
+# elif BOOST_PP_SLOT_TEMP_1 == 8\r
+#    define BOOST_PP_SLOT_1_DIGIT_1 8\r
+# elif BOOST_PP_SLOT_TEMP_1 == 9\r
+#    define BOOST_PP_SLOT_1_DIGIT_1 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_1_DIGIT_10\r
+#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_1_DIGIT_10, BOOST_PP_SLOT_1_DIGIT_9, BOOST_PP_SLOT_1_DIGIT_8, BOOST_PP_SLOT_1_DIGIT_7, BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)\r
+# elif BOOST_PP_SLOT_1_DIGIT_9\r
+#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_1_DIGIT_9, BOOST_PP_SLOT_1_DIGIT_8, BOOST_PP_SLOT_1_DIGIT_7, BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)\r
+# elif BOOST_PP_SLOT_1_DIGIT_8\r
+#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_1_DIGIT_8, BOOST_PP_SLOT_1_DIGIT_7, BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)\r
+# elif BOOST_PP_SLOT_1_DIGIT_7\r
+#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_1_DIGIT_7, BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)\r
+# elif BOOST_PP_SLOT_1_DIGIT_6\r
+#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)\r
+# elif BOOST_PP_SLOT_1_DIGIT_5\r
+#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)\r
+# elif BOOST_PP_SLOT_1_DIGIT_4\r
+#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)\r
+# elif BOOST_PP_SLOT_1_DIGIT_3\r
+#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)\r
+# elif BOOST_PP_SLOT_1_DIGIT_2\r
+#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)\r
+# else\r
+#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_1_DIGIT_1\r
+# endif\r
diff --git a/boost/boost/preprocessor/slot/detail/slot2.hpp b/boost/boost/preprocessor/slot/detail/slot2.hpp
new file mode 100644 (file)
index 0000000..8eccc88
--- /dev/null
@@ -0,0 +1,267 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# include <boost/preprocessor/slot/detail/shared.hpp>\r
+#\r
+# undef BOOST_PP_SLOT_2\r
+#\r
+# undef BOOST_PP_SLOT_2_DIGIT_1\r
+# undef BOOST_PP_SLOT_2_DIGIT_2\r
+# undef BOOST_PP_SLOT_2_DIGIT_3\r
+# undef BOOST_PP_SLOT_2_DIGIT_4\r
+# undef BOOST_PP_SLOT_2_DIGIT_5\r
+# undef BOOST_PP_SLOT_2_DIGIT_6\r
+# undef BOOST_PP_SLOT_2_DIGIT_7\r
+# undef BOOST_PP_SLOT_2_DIGIT_8\r
+# undef BOOST_PP_SLOT_2_DIGIT_9\r
+# undef BOOST_PP_SLOT_2_DIGIT_10\r
+#\r
+# if BOOST_PP_SLOT_TEMP_10 == 0\r
+#    define BOOST_PP_SLOT_2_DIGIT_10 0\r
+# elif BOOST_PP_SLOT_TEMP_10 == 1\r
+#    define BOOST_PP_SLOT_2_DIGIT_10 1\r
+# elif BOOST_PP_SLOT_TEMP_10 == 2\r
+#    define BOOST_PP_SLOT_2_DIGIT_10 2\r
+# elif BOOST_PP_SLOT_TEMP_10 == 3\r
+#    define BOOST_PP_SLOT_2_DIGIT_10 3\r
+# elif BOOST_PP_SLOT_TEMP_10 == 4\r
+#    define BOOST_PP_SLOT_2_DIGIT_10 4\r
+# elif BOOST_PP_SLOT_TEMP_10 == 5\r
+#    define BOOST_PP_SLOT_2_DIGIT_10 5\r
+# elif BOOST_PP_SLOT_TEMP_10 == 6\r
+#    define BOOST_PP_SLOT_2_DIGIT_10 6\r
+# elif BOOST_PP_SLOT_TEMP_10 == 7\r
+#    define BOOST_PP_SLOT_2_DIGIT_10 7\r
+# elif BOOST_PP_SLOT_TEMP_10 == 8\r
+#    define BOOST_PP_SLOT_2_DIGIT_10 8\r
+# elif BOOST_PP_SLOT_TEMP_10 == 9\r
+#    define BOOST_PP_SLOT_2_DIGIT_10 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_9 == 0\r
+#    define BOOST_PP_SLOT_2_DIGIT_9 0\r
+# elif BOOST_PP_SLOT_TEMP_9 == 1\r
+#    define BOOST_PP_SLOT_2_DIGIT_9 1\r
+# elif BOOST_PP_SLOT_TEMP_9 == 2\r
+#    define BOOST_PP_SLOT_2_DIGIT_9 2\r
+# elif BOOST_PP_SLOT_TEMP_9 == 3\r
+#    define BOOST_PP_SLOT_2_DIGIT_9 3\r
+# elif BOOST_PP_SLOT_TEMP_9 == 4\r
+#    define BOOST_PP_SLOT_2_DIGIT_9 4\r
+# elif BOOST_PP_SLOT_TEMP_9 == 5\r
+#    define BOOST_PP_SLOT_2_DIGIT_9 5\r
+# elif BOOST_PP_SLOT_TEMP_9 == 6\r
+#    define BOOST_PP_SLOT_2_DIGIT_9 6\r
+# elif BOOST_PP_SLOT_TEMP_9 == 7\r
+#    define BOOST_PP_SLOT_2_DIGIT_9 7\r
+# elif BOOST_PP_SLOT_TEMP_9 == 8\r
+#    define BOOST_PP_SLOT_2_DIGIT_9 8\r
+# elif BOOST_PP_SLOT_TEMP_9 == 9\r
+#    define BOOST_PP_SLOT_2_DIGIT_9 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_8 == 0\r
+#    define BOOST_PP_SLOT_2_DIGIT_8 0\r
+# elif BOOST_PP_SLOT_TEMP_8 == 1\r
+#    define BOOST_PP_SLOT_2_DIGIT_8 1\r
+# elif BOOST_PP_SLOT_TEMP_8 == 2\r
+#    define BOOST_PP_SLOT_2_DIGIT_8 2\r
+# elif BOOST_PP_SLOT_TEMP_8 == 3\r
+#    define BOOST_PP_SLOT_2_DIGIT_8 3\r
+# elif BOOST_PP_SLOT_TEMP_8 == 4\r
+#    define BOOST_PP_SLOT_2_DIGIT_8 4\r
+# elif BOOST_PP_SLOT_TEMP_8 == 5\r
+#    define BOOST_PP_SLOT_2_DIGIT_8 5\r
+# elif BOOST_PP_SLOT_TEMP_8 == 6\r
+#    define BOOST_PP_SLOT_2_DIGIT_8 6\r
+# elif BOOST_PP_SLOT_TEMP_8 == 7\r
+#    define BOOST_PP_SLOT_2_DIGIT_8 7\r
+# elif BOOST_PP_SLOT_TEMP_8 == 8\r
+#    define BOOST_PP_SLOT_2_DIGIT_8 8\r
+# elif BOOST_PP_SLOT_TEMP_8 == 9\r
+#    define BOOST_PP_SLOT_2_DIGIT_8 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_7 == 0\r
+#    define BOOST_PP_SLOT_2_DIGIT_7 0\r
+# elif BOOST_PP_SLOT_TEMP_7 == 1\r
+#    define BOOST_PP_SLOT_2_DIGIT_7 1\r
+# elif BOOST_PP_SLOT_TEMP_7 == 2\r
+#    define BOOST_PP_SLOT_2_DIGIT_7 2\r
+# elif BOOST_PP_SLOT_TEMP_7 == 3\r
+#    define BOOST_PP_SLOT_2_DIGIT_7 3\r
+# elif BOOST_PP_SLOT_TEMP_7 == 4\r
+#    define BOOST_PP_SLOT_2_DIGIT_7 4\r
+# elif BOOST_PP_SLOT_TEMP_7 == 5\r
+#    define BOOST_PP_SLOT_2_DIGIT_7 5\r
+# elif BOOST_PP_SLOT_TEMP_7 == 6\r
+#    define BOOST_PP_SLOT_2_DIGIT_7 6\r
+# elif BOOST_PP_SLOT_TEMP_7 == 7\r
+#    define BOOST_PP_SLOT_2_DIGIT_7 7\r
+# elif BOOST_PP_SLOT_TEMP_7 == 8\r
+#    define BOOST_PP_SLOT_2_DIGIT_7 8\r
+# elif BOOST_PP_SLOT_TEMP_7 == 9\r
+#    define BOOST_PP_SLOT_2_DIGIT_7 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_6 == 0\r
+#    define BOOST_PP_SLOT_2_DIGIT_6 0\r
+# elif BOOST_PP_SLOT_TEMP_6 == 1\r
+#    define BOOST_PP_SLOT_2_DIGIT_6 1\r
+# elif BOOST_PP_SLOT_TEMP_6 == 2\r
+#    define BOOST_PP_SLOT_2_DIGIT_6 2\r
+# elif BOOST_PP_SLOT_TEMP_6 == 3\r
+#    define BOOST_PP_SLOT_2_DIGIT_6 3\r
+# elif BOOST_PP_SLOT_TEMP_6 == 4\r
+#    define BOOST_PP_SLOT_2_DIGIT_6 4\r
+# elif BOOST_PP_SLOT_TEMP_6 == 5\r
+#    define BOOST_PP_SLOT_2_DIGIT_6 5\r
+# elif BOOST_PP_SLOT_TEMP_6 == 6\r
+#    define BOOST_PP_SLOT_2_DIGIT_6 6\r
+# elif BOOST_PP_SLOT_TEMP_6 == 7\r
+#    define BOOST_PP_SLOT_2_DIGIT_6 7\r
+# elif BOOST_PP_SLOT_TEMP_6 == 8\r
+#    define BOOST_PP_SLOT_2_DIGIT_6 8\r
+# elif BOOST_PP_SLOT_TEMP_6 == 9\r
+#    define BOOST_PP_SLOT_2_DIGIT_6 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_5 == 0\r
+#    define BOOST_PP_SLOT_2_DIGIT_5 0\r
+# elif BOOST_PP_SLOT_TEMP_5 == 1\r
+#    define BOOST_PP_SLOT_2_DIGIT_5 1\r
+# elif BOOST_PP_SLOT_TEMP_5 == 2\r
+#    define BOOST_PP_SLOT_2_DIGIT_5 2\r
+# elif BOOST_PP_SLOT_TEMP_5 == 3\r
+#    define BOOST_PP_SLOT_2_DIGIT_5 3\r
+# elif BOOST_PP_SLOT_TEMP_5 == 4\r
+#    define BOOST_PP_SLOT_2_DIGIT_5 4\r
+# elif BOOST_PP_SLOT_TEMP_5 == 5\r
+#    define BOOST_PP_SLOT_2_DIGIT_5 5\r
+# elif BOOST_PP_SLOT_TEMP_5 == 6\r
+#    define BOOST_PP_SLOT_2_DIGIT_5 6\r
+# elif BOOST_PP_SLOT_TEMP_5 == 7\r
+#    define BOOST_PP_SLOT_2_DIGIT_5 7\r
+# elif BOOST_PP_SLOT_TEMP_5 == 8\r
+#    define BOOST_PP_SLOT_2_DIGIT_5 8\r
+# elif BOOST_PP_SLOT_TEMP_5 == 9\r
+#    define BOOST_PP_SLOT_2_DIGIT_5 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_4 == 0\r
+#    define BOOST_PP_SLOT_2_DIGIT_4 0\r
+# elif BOOST_PP_SLOT_TEMP_4 == 1\r
+#    define BOOST_PP_SLOT_2_DIGIT_4 1\r
+# elif BOOST_PP_SLOT_TEMP_4 == 2\r
+#    define BOOST_PP_SLOT_2_DIGIT_4 2\r
+# elif BOOST_PP_SLOT_TEMP_4 == 3\r
+#    define BOOST_PP_SLOT_2_DIGIT_4 3\r
+# elif BOOST_PP_SLOT_TEMP_4 == 4\r
+#    define BOOST_PP_SLOT_2_DIGIT_4 4\r
+# elif BOOST_PP_SLOT_TEMP_4 == 5\r
+#    define BOOST_PP_SLOT_2_DIGIT_4 5\r
+# elif BOOST_PP_SLOT_TEMP_4 == 6\r
+#    define BOOST_PP_SLOT_2_DIGIT_4 6\r
+# elif BOOST_PP_SLOT_TEMP_4 == 7\r
+#    define BOOST_PP_SLOT_2_DIGIT_4 7\r
+# elif BOOST_PP_SLOT_TEMP_4 == 8\r
+#    define BOOST_PP_SLOT_2_DIGIT_4 8\r
+# elif BOOST_PP_SLOT_TEMP_4 == 9\r
+#    define BOOST_PP_SLOT_2_DIGIT_4 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_3 == 0\r
+#    define BOOST_PP_SLOT_2_DIGIT_3 0\r
+# elif BOOST_PP_SLOT_TEMP_3 == 1\r
+#    define BOOST_PP_SLOT_2_DIGIT_3 1\r
+# elif BOOST_PP_SLOT_TEMP_3 == 2\r
+#    define BOOST_PP_SLOT_2_DIGIT_3 2\r
+# elif BOOST_PP_SLOT_TEMP_3 == 3\r
+#    define BOOST_PP_SLOT_2_DIGIT_3 3\r
+# elif BOOST_PP_SLOT_TEMP_3 == 4\r
+#    define BOOST_PP_SLOT_2_DIGIT_3 4\r
+# elif BOOST_PP_SLOT_TEMP_3 == 5\r
+#    define BOOST_PP_SLOT_2_DIGIT_3 5\r
+# elif BOOST_PP_SLOT_TEMP_3 == 6\r
+#    define BOOST_PP_SLOT_2_DIGIT_3 6\r
+# elif BOOST_PP_SLOT_TEMP_3 == 7\r
+#    define BOOST_PP_SLOT_2_DIGIT_3 7\r
+# elif BOOST_PP_SLOT_TEMP_3 == 8\r
+#    define BOOST_PP_SLOT_2_DIGIT_3 8\r
+# elif BOOST_PP_SLOT_TEMP_3 == 9\r
+#    define BOOST_PP_SLOT_2_DIGIT_3 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_2 == 0\r
+#    define BOOST_PP_SLOT_2_DIGIT_2 0\r
+# elif BOOST_PP_SLOT_TEMP_2 == 1\r
+#    define BOOST_PP_SLOT_2_DIGIT_2 1\r
+# elif BOOST_PP_SLOT_TEMP_2 == 2\r
+#    define BOOST_PP_SLOT_2_DIGIT_2 2\r
+# elif BOOST_PP_SLOT_TEMP_2 == 3\r
+#    define BOOST_PP_SLOT_2_DIGIT_2 3\r
+# elif BOOST_PP_SLOT_TEMP_2 == 4\r
+#    define BOOST_PP_SLOT_2_DIGIT_2 4\r
+# elif BOOST_PP_SLOT_TEMP_2 == 5\r
+#    define BOOST_PP_SLOT_2_DIGIT_2 5\r
+# elif BOOST_PP_SLOT_TEMP_2 == 6\r
+#    define BOOST_PP_SLOT_2_DIGIT_2 6\r
+# elif BOOST_PP_SLOT_TEMP_2 == 7\r
+#    define BOOST_PP_SLOT_2_DIGIT_2 7\r
+# elif BOOST_PP_SLOT_TEMP_2 == 8\r
+#    define BOOST_PP_SLOT_2_DIGIT_2 8\r
+# elif BOOST_PP_SLOT_TEMP_2 == 9\r
+#    define BOOST_PP_SLOT_2_DIGIT_2 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_1 == 0\r
+#    define BOOST_PP_SLOT_2_DIGIT_1 0\r
+# elif BOOST_PP_SLOT_TEMP_1 == 1\r
+#    define BOOST_PP_SLOT_2_DIGIT_1 1\r
+# elif BOOST_PP_SLOT_TEMP_1 == 2\r
+#    define BOOST_PP_SLOT_2_DIGIT_1 2\r
+# elif BOOST_PP_SLOT_TEMP_1 == 3\r
+#    define BOOST_PP_SLOT_2_DIGIT_1 3\r
+# elif BOOST_PP_SLOT_TEMP_1 == 4\r
+#    define BOOST_PP_SLOT_2_DIGIT_1 4\r
+# elif BOOST_PP_SLOT_TEMP_1 == 5\r
+#    define BOOST_PP_SLOT_2_DIGIT_1 5\r
+# elif BOOST_PP_SLOT_TEMP_1 == 6\r
+#    define BOOST_PP_SLOT_2_DIGIT_1 6\r
+# elif BOOST_PP_SLOT_TEMP_1 == 7\r
+#    define BOOST_PP_SLOT_2_DIGIT_1 7\r
+# elif BOOST_PP_SLOT_TEMP_1 == 8\r
+#    define BOOST_PP_SLOT_2_DIGIT_1 8\r
+# elif BOOST_PP_SLOT_TEMP_1 == 9\r
+#    define BOOST_PP_SLOT_2_DIGIT_1 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_2_DIGIT_10\r
+#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_2_DIGIT_10, BOOST_PP_SLOT_2_DIGIT_9, BOOST_PP_SLOT_2_DIGIT_8, BOOST_PP_SLOT_2_DIGIT_7, BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)\r
+# elif BOOST_PP_SLOT_2_DIGIT_9\r
+#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_2_DIGIT_9, BOOST_PP_SLOT_2_DIGIT_8, BOOST_PP_SLOT_2_DIGIT_7, BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)\r
+# elif BOOST_PP_SLOT_2_DIGIT_8\r
+#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_2_DIGIT_8, BOOST_PP_SLOT_2_DIGIT_7, BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)\r
+# elif BOOST_PP_SLOT_2_DIGIT_7\r
+#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_2_DIGIT_7, BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)\r
+# elif BOOST_PP_SLOT_2_DIGIT_6\r
+#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)\r
+# elif BOOST_PP_SLOT_2_DIGIT_5\r
+#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)\r
+# elif BOOST_PP_SLOT_2_DIGIT_4\r
+#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)\r
+# elif BOOST_PP_SLOT_2_DIGIT_3\r
+#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)\r
+# elif BOOST_PP_SLOT_2_DIGIT_2\r
+#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)\r
+# else\r
+#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_2_DIGIT_1\r
+# endif\r
diff --git a/boost/boost/preprocessor/slot/detail/slot3.hpp b/boost/boost/preprocessor/slot/detail/slot3.hpp
new file mode 100644 (file)
index 0000000..2f29ac3
--- /dev/null
@@ -0,0 +1,267 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# include <boost/preprocessor/slot/detail/shared.hpp>\r
+#\r
+# undef BOOST_PP_SLOT_3\r
+#\r
+# undef BOOST_PP_SLOT_3_DIGIT_1\r
+# undef BOOST_PP_SLOT_3_DIGIT_2\r
+# undef BOOST_PP_SLOT_3_DIGIT_3\r
+# undef BOOST_PP_SLOT_3_DIGIT_4\r
+# undef BOOST_PP_SLOT_3_DIGIT_5\r
+# undef BOOST_PP_SLOT_3_DIGIT_6\r
+# undef BOOST_PP_SLOT_3_DIGIT_7\r
+# undef BOOST_PP_SLOT_3_DIGIT_8\r
+# undef BOOST_PP_SLOT_3_DIGIT_9\r
+# undef BOOST_PP_SLOT_3_DIGIT_10\r
+#\r
+# if BOOST_PP_SLOT_TEMP_10 == 0\r
+#    define BOOST_PP_SLOT_3_DIGIT_10 0\r
+# elif BOOST_PP_SLOT_TEMP_10 == 1\r
+#    define BOOST_PP_SLOT_3_DIGIT_10 1\r
+# elif BOOST_PP_SLOT_TEMP_10 == 2\r
+#    define BOOST_PP_SLOT_3_DIGIT_10 2\r
+# elif BOOST_PP_SLOT_TEMP_10 == 3\r
+#    define BOOST_PP_SLOT_3_DIGIT_10 3\r
+# elif BOOST_PP_SLOT_TEMP_10 == 4\r
+#    define BOOST_PP_SLOT_3_DIGIT_10 4\r
+# elif BOOST_PP_SLOT_TEMP_10 == 5\r
+#    define BOOST_PP_SLOT_3_DIGIT_10 5\r
+# elif BOOST_PP_SLOT_TEMP_10 == 6\r
+#    define BOOST_PP_SLOT_3_DIGIT_10 6\r
+# elif BOOST_PP_SLOT_TEMP_10 == 7\r
+#    define BOOST_PP_SLOT_3_DIGIT_10 7\r
+# elif BOOST_PP_SLOT_TEMP_10 == 8\r
+#    define BOOST_PP_SLOT_3_DIGIT_10 8\r
+# elif BOOST_PP_SLOT_TEMP_10 == 9\r
+#    define BOOST_PP_SLOT_3_DIGIT_10 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_9 == 0\r
+#    define BOOST_PP_SLOT_3_DIGIT_9 0\r
+# elif BOOST_PP_SLOT_TEMP_9 == 1\r
+#    define BOOST_PP_SLOT_3_DIGIT_9 1\r
+# elif BOOST_PP_SLOT_TEMP_9 == 2\r
+#    define BOOST_PP_SLOT_3_DIGIT_9 2\r
+# elif BOOST_PP_SLOT_TEMP_9 == 3\r
+#    define BOOST_PP_SLOT_3_DIGIT_9 3\r
+# elif BOOST_PP_SLOT_TEMP_9 == 4\r
+#    define BOOST_PP_SLOT_3_DIGIT_9 4\r
+# elif BOOST_PP_SLOT_TEMP_9 == 5\r
+#    define BOOST_PP_SLOT_3_DIGIT_9 5\r
+# elif BOOST_PP_SLOT_TEMP_9 == 6\r
+#    define BOOST_PP_SLOT_3_DIGIT_9 6\r
+# elif BOOST_PP_SLOT_TEMP_9 == 7\r
+#    define BOOST_PP_SLOT_3_DIGIT_9 7\r
+# elif BOOST_PP_SLOT_TEMP_9 == 8\r
+#    define BOOST_PP_SLOT_3_DIGIT_9 8\r
+# elif BOOST_PP_SLOT_TEMP_9 == 9\r
+#    define BOOST_PP_SLOT_3_DIGIT_9 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_8 == 0\r
+#    define BOOST_PP_SLOT_3_DIGIT_8 0\r
+# elif BOOST_PP_SLOT_TEMP_8 == 1\r
+#    define BOOST_PP_SLOT_3_DIGIT_8 1\r
+# elif BOOST_PP_SLOT_TEMP_8 == 2\r
+#    define BOOST_PP_SLOT_3_DIGIT_8 2\r
+# elif BOOST_PP_SLOT_TEMP_8 == 3\r
+#    define BOOST_PP_SLOT_3_DIGIT_8 3\r
+# elif BOOST_PP_SLOT_TEMP_8 == 4\r
+#    define BOOST_PP_SLOT_3_DIGIT_8 4\r
+# elif BOOST_PP_SLOT_TEMP_8 == 5\r
+#    define BOOST_PP_SLOT_3_DIGIT_8 5\r
+# elif BOOST_PP_SLOT_TEMP_8 == 6\r
+#    define BOOST_PP_SLOT_3_DIGIT_8 6\r
+# elif BOOST_PP_SLOT_TEMP_8 == 7\r
+#    define BOOST_PP_SLOT_3_DIGIT_8 7\r
+# elif BOOST_PP_SLOT_TEMP_8 == 8\r
+#    define BOOST_PP_SLOT_3_DIGIT_8 8\r
+# elif BOOST_PP_SLOT_TEMP_8 == 9\r
+#    define BOOST_PP_SLOT_3_DIGIT_8 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_7 == 0\r
+#    define BOOST_PP_SLOT_3_DIGIT_7 0\r
+# elif BOOST_PP_SLOT_TEMP_7 == 1\r
+#    define BOOST_PP_SLOT_3_DIGIT_7 1\r
+# elif BOOST_PP_SLOT_TEMP_7 == 2\r
+#    define BOOST_PP_SLOT_3_DIGIT_7 2\r
+# elif BOOST_PP_SLOT_TEMP_7 == 3\r
+#    define BOOST_PP_SLOT_3_DIGIT_7 3\r
+# elif BOOST_PP_SLOT_TEMP_7 == 4\r
+#    define BOOST_PP_SLOT_3_DIGIT_7 4\r
+# elif BOOST_PP_SLOT_TEMP_7 == 5\r
+#    define BOOST_PP_SLOT_3_DIGIT_7 5\r
+# elif BOOST_PP_SLOT_TEMP_7 == 6\r
+#    define BOOST_PP_SLOT_3_DIGIT_7 6\r
+# elif BOOST_PP_SLOT_TEMP_7 == 7\r
+#    define BOOST_PP_SLOT_3_DIGIT_7 7\r
+# elif BOOST_PP_SLOT_TEMP_7 == 8\r
+#    define BOOST_PP_SLOT_3_DIGIT_7 8\r
+# elif BOOST_PP_SLOT_TEMP_7 == 9\r
+#    define BOOST_PP_SLOT_3_DIGIT_7 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_6 == 0\r
+#    define BOOST_PP_SLOT_3_DIGIT_6 0\r
+# elif BOOST_PP_SLOT_TEMP_6 == 1\r
+#    define BOOST_PP_SLOT_3_DIGIT_6 1\r
+# elif BOOST_PP_SLOT_TEMP_6 == 2\r
+#    define BOOST_PP_SLOT_3_DIGIT_6 2\r
+# elif BOOST_PP_SLOT_TEMP_6 == 3\r
+#    define BOOST_PP_SLOT_3_DIGIT_6 3\r
+# elif BOOST_PP_SLOT_TEMP_6 == 4\r
+#    define BOOST_PP_SLOT_3_DIGIT_6 4\r
+# elif BOOST_PP_SLOT_TEMP_6 == 5\r
+#    define BOOST_PP_SLOT_3_DIGIT_6 5\r
+# elif BOOST_PP_SLOT_TEMP_6 == 6\r
+#    define BOOST_PP_SLOT_3_DIGIT_6 6\r
+# elif BOOST_PP_SLOT_TEMP_6 == 7\r
+#    define BOOST_PP_SLOT_3_DIGIT_6 7\r
+# elif BOOST_PP_SLOT_TEMP_6 == 8\r
+#    define BOOST_PP_SLOT_3_DIGIT_6 8\r
+# elif BOOST_PP_SLOT_TEMP_6 == 9\r
+#    define BOOST_PP_SLOT_3_DIGIT_6 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_5 == 0\r
+#    define BOOST_PP_SLOT_3_DIGIT_5 0\r
+# elif BOOST_PP_SLOT_TEMP_5 == 1\r
+#    define BOOST_PP_SLOT_3_DIGIT_5 1\r
+# elif BOOST_PP_SLOT_TEMP_5 == 2\r
+#    define BOOST_PP_SLOT_3_DIGIT_5 2\r
+# elif BOOST_PP_SLOT_TEMP_5 == 3\r
+#    define BOOST_PP_SLOT_3_DIGIT_5 3\r
+# elif BOOST_PP_SLOT_TEMP_5 == 4\r
+#    define BOOST_PP_SLOT_3_DIGIT_5 4\r
+# elif BOOST_PP_SLOT_TEMP_5 == 5\r
+#    define BOOST_PP_SLOT_3_DIGIT_5 5\r
+# elif BOOST_PP_SLOT_TEMP_5 == 6\r
+#    define BOOST_PP_SLOT_3_DIGIT_5 6\r
+# elif BOOST_PP_SLOT_TEMP_5 == 7\r
+#    define BOOST_PP_SLOT_3_DIGIT_5 7\r
+# elif BOOST_PP_SLOT_TEMP_5 == 8\r
+#    define BOOST_PP_SLOT_3_DIGIT_5 8\r
+# elif BOOST_PP_SLOT_TEMP_5 == 9\r
+#    define BOOST_PP_SLOT_3_DIGIT_5 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_4 == 0\r
+#    define BOOST_PP_SLOT_3_DIGIT_4 0\r
+# elif BOOST_PP_SLOT_TEMP_4 == 1\r
+#    define BOOST_PP_SLOT_3_DIGIT_4 1\r
+# elif BOOST_PP_SLOT_TEMP_4 == 2\r
+#    define BOOST_PP_SLOT_3_DIGIT_4 2\r
+# elif BOOST_PP_SLOT_TEMP_4 == 3\r
+#    define BOOST_PP_SLOT_3_DIGIT_4 3\r
+# elif BOOST_PP_SLOT_TEMP_4 == 4\r
+#    define BOOST_PP_SLOT_3_DIGIT_4 4\r
+# elif BOOST_PP_SLOT_TEMP_4 == 5\r
+#    define BOOST_PP_SLOT_3_DIGIT_4 5\r
+# elif BOOST_PP_SLOT_TEMP_4 == 6\r
+#    define BOOST_PP_SLOT_3_DIGIT_4 6\r
+# elif BOOST_PP_SLOT_TEMP_4 == 7\r
+#    define BOOST_PP_SLOT_3_DIGIT_4 7\r
+# elif BOOST_PP_SLOT_TEMP_4 == 8\r
+#    define BOOST_PP_SLOT_3_DIGIT_4 8\r
+# elif BOOST_PP_SLOT_TEMP_4 == 9\r
+#    define BOOST_PP_SLOT_3_DIGIT_4 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_3 == 0\r
+#    define BOOST_PP_SLOT_3_DIGIT_3 0\r
+# elif BOOST_PP_SLOT_TEMP_3 == 1\r
+#    define BOOST_PP_SLOT_3_DIGIT_3 1\r
+# elif BOOST_PP_SLOT_TEMP_3 == 2\r
+#    define BOOST_PP_SLOT_3_DIGIT_3 2\r
+# elif BOOST_PP_SLOT_TEMP_3 == 3\r
+#    define BOOST_PP_SLOT_3_DIGIT_3 3\r
+# elif BOOST_PP_SLOT_TEMP_3 == 4\r
+#    define BOOST_PP_SLOT_3_DIGIT_3 4\r
+# elif BOOST_PP_SLOT_TEMP_3 == 5\r
+#    define BOOST_PP_SLOT_3_DIGIT_3 5\r
+# elif BOOST_PP_SLOT_TEMP_3 == 6\r
+#    define BOOST_PP_SLOT_3_DIGIT_3 6\r
+# elif BOOST_PP_SLOT_TEMP_3 == 7\r
+#    define BOOST_PP_SLOT_3_DIGIT_3 7\r
+# elif BOOST_PP_SLOT_TEMP_3 == 8\r
+#    define BOOST_PP_SLOT_3_DIGIT_3 8\r
+# elif BOOST_PP_SLOT_TEMP_3 == 9\r
+#    define BOOST_PP_SLOT_3_DIGIT_3 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_2 == 0\r
+#    define BOOST_PP_SLOT_3_DIGIT_2 0\r
+# elif BOOST_PP_SLOT_TEMP_2 == 1\r
+#    define BOOST_PP_SLOT_3_DIGIT_2 1\r
+# elif BOOST_PP_SLOT_TEMP_2 == 2\r
+#    define BOOST_PP_SLOT_3_DIGIT_2 2\r
+# elif BOOST_PP_SLOT_TEMP_2 == 3\r
+#    define BOOST_PP_SLOT_3_DIGIT_2 3\r
+# elif BOOST_PP_SLOT_TEMP_2 == 4\r
+#    define BOOST_PP_SLOT_3_DIGIT_2 4\r
+# elif BOOST_PP_SLOT_TEMP_2 == 5\r
+#    define BOOST_PP_SLOT_3_DIGIT_2 5\r
+# elif BOOST_PP_SLOT_TEMP_2 == 6\r
+#    define BOOST_PP_SLOT_3_DIGIT_2 6\r
+# elif BOOST_PP_SLOT_TEMP_2 == 7\r
+#    define BOOST_PP_SLOT_3_DIGIT_2 7\r
+# elif BOOST_PP_SLOT_TEMP_2 == 8\r
+#    define BOOST_PP_SLOT_3_DIGIT_2 8\r
+# elif BOOST_PP_SLOT_TEMP_2 == 9\r
+#    define BOOST_PP_SLOT_3_DIGIT_2 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_1 == 0\r
+#    define BOOST_PP_SLOT_3_DIGIT_1 0\r
+# elif BOOST_PP_SLOT_TEMP_1 == 1\r
+#    define BOOST_PP_SLOT_3_DIGIT_1 1\r
+# elif BOOST_PP_SLOT_TEMP_1 == 2\r
+#    define BOOST_PP_SLOT_3_DIGIT_1 2\r
+# elif BOOST_PP_SLOT_TEMP_1 == 3\r
+#    define BOOST_PP_SLOT_3_DIGIT_1 3\r
+# elif BOOST_PP_SLOT_TEMP_1 == 4\r
+#    define BOOST_PP_SLOT_3_DIGIT_1 4\r
+# elif BOOST_PP_SLOT_TEMP_1 == 5\r
+#    define BOOST_PP_SLOT_3_DIGIT_1 5\r
+# elif BOOST_PP_SLOT_TEMP_1 == 6\r
+#    define BOOST_PP_SLOT_3_DIGIT_1 6\r
+# elif BOOST_PP_SLOT_TEMP_1 == 7\r
+#    define BOOST_PP_SLOT_3_DIGIT_1 7\r
+# elif BOOST_PP_SLOT_TEMP_1 == 8\r
+#    define BOOST_PP_SLOT_3_DIGIT_1 8\r
+# elif BOOST_PP_SLOT_TEMP_1 == 9\r
+#    define BOOST_PP_SLOT_3_DIGIT_1 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_3_DIGIT_10\r
+#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_3_DIGIT_10, BOOST_PP_SLOT_3_DIGIT_9, BOOST_PP_SLOT_3_DIGIT_8, BOOST_PP_SLOT_3_DIGIT_7, BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)\r
+# elif BOOST_PP_SLOT_3_DIGIT_9\r
+#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_3_DIGIT_9, BOOST_PP_SLOT_3_DIGIT_8, BOOST_PP_SLOT_3_DIGIT_7, BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)\r
+# elif BOOST_PP_SLOT_3_DIGIT_8\r
+#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_3_DIGIT_8, BOOST_PP_SLOT_3_DIGIT_7, BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)\r
+# elif BOOST_PP_SLOT_3_DIGIT_7\r
+#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_3_DIGIT_7, BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)\r
+# elif BOOST_PP_SLOT_3_DIGIT_6\r
+#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)\r
+# elif BOOST_PP_SLOT_3_DIGIT_5\r
+#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)\r
+# elif BOOST_PP_SLOT_3_DIGIT_4\r
+#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)\r
+# elif BOOST_PP_SLOT_3_DIGIT_3\r
+#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)\r
+# elif BOOST_PP_SLOT_3_DIGIT_2\r
+#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)\r
+# else\r
+#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_3_DIGIT_1\r
+# endif\r
diff --git a/boost/boost/preprocessor/slot/detail/slot4.hpp b/boost/boost/preprocessor/slot/detail/slot4.hpp
new file mode 100644 (file)
index 0000000..ddcbb71
--- /dev/null
@@ -0,0 +1,267 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# include <boost/preprocessor/slot/detail/shared.hpp>\r
+#\r
+# undef BOOST_PP_SLOT_4\r
+#\r
+# undef BOOST_PP_SLOT_4_DIGIT_1\r
+# undef BOOST_PP_SLOT_4_DIGIT_2\r
+# undef BOOST_PP_SLOT_4_DIGIT_3\r
+# undef BOOST_PP_SLOT_4_DIGIT_4\r
+# undef BOOST_PP_SLOT_4_DIGIT_5\r
+# undef BOOST_PP_SLOT_4_DIGIT_6\r
+# undef BOOST_PP_SLOT_4_DIGIT_7\r
+# undef BOOST_PP_SLOT_4_DIGIT_8\r
+# undef BOOST_PP_SLOT_4_DIGIT_9\r
+# undef BOOST_PP_SLOT_4_DIGIT_10\r
+#\r
+# if BOOST_PP_SLOT_TEMP_10 == 0\r
+#    define BOOST_PP_SLOT_4_DIGIT_10 0\r
+# elif BOOST_PP_SLOT_TEMP_10 == 1\r
+#    define BOOST_PP_SLOT_4_DIGIT_10 1\r
+# elif BOOST_PP_SLOT_TEMP_10 == 2\r
+#    define BOOST_PP_SLOT_4_DIGIT_10 2\r
+# elif BOOST_PP_SLOT_TEMP_10 == 3\r
+#    define BOOST_PP_SLOT_4_DIGIT_10 3\r
+# elif BOOST_PP_SLOT_TEMP_10 == 4\r
+#    define BOOST_PP_SLOT_4_DIGIT_10 4\r
+# elif BOOST_PP_SLOT_TEMP_10 == 5\r
+#    define BOOST_PP_SLOT_4_DIGIT_10 5\r
+# elif BOOST_PP_SLOT_TEMP_10 == 6\r
+#    define BOOST_PP_SLOT_4_DIGIT_10 6\r
+# elif BOOST_PP_SLOT_TEMP_10 == 7\r
+#    define BOOST_PP_SLOT_4_DIGIT_10 7\r
+# elif BOOST_PP_SLOT_TEMP_10 == 8\r
+#    define BOOST_PP_SLOT_4_DIGIT_10 8\r
+# elif BOOST_PP_SLOT_TEMP_10 == 9\r
+#    define BOOST_PP_SLOT_4_DIGIT_10 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_9 == 0\r
+#    define BOOST_PP_SLOT_4_DIGIT_9 0\r
+# elif BOOST_PP_SLOT_TEMP_9 == 1\r
+#    define BOOST_PP_SLOT_4_DIGIT_9 1\r
+# elif BOOST_PP_SLOT_TEMP_9 == 2\r
+#    define BOOST_PP_SLOT_4_DIGIT_9 2\r
+# elif BOOST_PP_SLOT_TEMP_9 == 3\r
+#    define BOOST_PP_SLOT_4_DIGIT_9 3\r
+# elif BOOST_PP_SLOT_TEMP_9 == 4\r
+#    define BOOST_PP_SLOT_4_DIGIT_9 4\r
+# elif BOOST_PP_SLOT_TEMP_9 == 5\r
+#    define BOOST_PP_SLOT_4_DIGIT_9 5\r
+# elif BOOST_PP_SLOT_TEMP_9 == 6\r
+#    define BOOST_PP_SLOT_4_DIGIT_9 6\r
+# elif BOOST_PP_SLOT_TEMP_9 == 7\r
+#    define BOOST_PP_SLOT_4_DIGIT_9 7\r
+# elif BOOST_PP_SLOT_TEMP_9 == 8\r
+#    define BOOST_PP_SLOT_4_DIGIT_9 8\r
+# elif BOOST_PP_SLOT_TEMP_9 == 9\r
+#    define BOOST_PP_SLOT_4_DIGIT_9 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_8 == 0\r
+#    define BOOST_PP_SLOT_4_DIGIT_8 0\r
+# elif BOOST_PP_SLOT_TEMP_8 == 1\r
+#    define BOOST_PP_SLOT_4_DIGIT_8 1\r
+# elif BOOST_PP_SLOT_TEMP_8 == 2\r
+#    define BOOST_PP_SLOT_4_DIGIT_8 2\r
+# elif BOOST_PP_SLOT_TEMP_8 == 3\r
+#    define BOOST_PP_SLOT_4_DIGIT_8 3\r
+# elif BOOST_PP_SLOT_TEMP_8 == 4\r
+#    define BOOST_PP_SLOT_4_DIGIT_8 4\r
+# elif BOOST_PP_SLOT_TEMP_8 == 5\r
+#    define BOOST_PP_SLOT_4_DIGIT_8 5\r
+# elif BOOST_PP_SLOT_TEMP_8 == 6\r
+#    define BOOST_PP_SLOT_4_DIGIT_8 6\r
+# elif BOOST_PP_SLOT_TEMP_8 == 7\r
+#    define BOOST_PP_SLOT_4_DIGIT_8 7\r
+# elif BOOST_PP_SLOT_TEMP_8 == 8\r
+#    define BOOST_PP_SLOT_4_DIGIT_8 8\r
+# elif BOOST_PP_SLOT_TEMP_8 == 9\r
+#    define BOOST_PP_SLOT_4_DIGIT_8 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_7 == 0\r
+#    define BOOST_PP_SLOT_4_DIGIT_7 0\r
+# elif BOOST_PP_SLOT_TEMP_7 == 1\r
+#    define BOOST_PP_SLOT_4_DIGIT_7 1\r
+# elif BOOST_PP_SLOT_TEMP_7 == 2\r
+#    define BOOST_PP_SLOT_4_DIGIT_7 2\r
+# elif BOOST_PP_SLOT_TEMP_7 == 3\r
+#    define BOOST_PP_SLOT_4_DIGIT_7 3\r
+# elif BOOST_PP_SLOT_TEMP_7 == 4\r
+#    define BOOST_PP_SLOT_4_DIGIT_7 4\r
+# elif BOOST_PP_SLOT_TEMP_7 == 5\r
+#    define BOOST_PP_SLOT_4_DIGIT_7 5\r
+# elif BOOST_PP_SLOT_TEMP_7 == 6\r
+#    define BOOST_PP_SLOT_4_DIGIT_7 6\r
+# elif BOOST_PP_SLOT_TEMP_7 == 7\r
+#    define BOOST_PP_SLOT_4_DIGIT_7 7\r
+# elif BOOST_PP_SLOT_TEMP_7 == 8\r
+#    define BOOST_PP_SLOT_4_DIGIT_7 8\r
+# elif BOOST_PP_SLOT_TEMP_7 == 9\r
+#    define BOOST_PP_SLOT_4_DIGIT_7 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_6 == 0\r
+#    define BOOST_PP_SLOT_4_DIGIT_6 0\r
+# elif BOOST_PP_SLOT_TEMP_6 == 1\r
+#    define BOOST_PP_SLOT_4_DIGIT_6 1\r
+# elif BOOST_PP_SLOT_TEMP_6 == 2\r
+#    define BOOST_PP_SLOT_4_DIGIT_6 2\r
+# elif BOOST_PP_SLOT_TEMP_6 == 3\r
+#    define BOOST_PP_SLOT_4_DIGIT_6 3\r
+# elif BOOST_PP_SLOT_TEMP_6 == 4\r
+#    define BOOST_PP_SLOT_4_DIGIT_6 4\r
+# elif BOOST_PP_SLOT_TEMP_6 == 5\r
+#    define BOOST_PP_SLOT_4_DIGIT_6 5\r
+# elif BOOST_PP_SLOT_TEMP_6 == 6\r
+#    define BOOST_PP_SLOT_4_DIGIT_6 6\r
+# elif BOOST_PP_SLOT_TEMP_6 == 7\r
+#    define BOOST_PP_SLOT_4_DIGIT_6 7\r
+# elif BOOST_PP_SLOT_TEMP_6 == 8\r
+#    define BOOST_PP_SLOT_4_DIGIT_6 8\r
+# elif BOOST_PP_SLOT_TEMP_6 == 9\r
+#    define BOOST_PP_SLOT_4_DIGIT_6 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_5 == 0\r
+#    define BOOST_PP_SLOT_4_DIGIT_5 0\r
+# elif BOOST_PP_SLOT_TEMP_5 == 1\r
+#    define BOOST_PP_SLOT_4_DIGIT_5 1\r
+# elif BOOST_PP_SLOT_TEMP_5 == 2\r
+#    define BOOST_PP_SLOT_4_DIGIT_5 2\r
+# elif BOOST_PP_SLOT_TEMP_5 == 3\r
+#    define BOOST_PP_SLOT_4_DIGIT_5 3\r
+# elif BOOST_PP_SLOT_TEMP_5 == 4\r
+#    define BOOST_PP_SLOT_4_DIGIT_5 4\r
+# elif BOOST_PP_SLOT_TEMP_5 == 5\r
+#    define BOOST_PP_SLOT_4_DIGIT_5 5\r
+# elif BOOST_PP_SLOT_TEMP_5 == 6\r
+#    define BOOST_PP_SLOT_4_DIGIT_5 6\r
+# elif BOOST_PP_SLOT_TEMP_5 == 7\r
+#    define BOOST_PP_SLOT_4_DIGIT_5 7\r
+# elif BOOST_PP_SLOT_TEMP_5 == 8\r
+#    define BOOST_PP_SLOT_4_DIGIT_5 8\r
+# elif BOOST_PP_SLOT_TEMP_5 == 9\r
+#    define BOOST_PP_SLOT_4_DIGIT_5 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_4 == 0\r
+#    define BOOST_PP_SLOT_4_DIGIT_4 0\r
+# elif BOOST_PP_SLOT_TEMP_4 == 1\r
+#    define BOOST_PP_SLOT_4_DIGIT_4 1\r
+# elif BOOST_PP_SLOT_TEMP_4 == 2\r
+#    define BOOST_PP_SLOT_4_DIGIT_4 2\r
+# elif BOOST_PP_SLOT_TEMP_4 == 3\r
+#    define BOOST_PP_SLOT_4_DIGIT_4 3\r
+# elif BOOST_PP_SLOT_TEMP_4 == 4\r
+#    define BOOST_PP_SLOT_4_DIGIT_4 4\r
+# elif BOOST_PP_SLOT_TEMP_4 == 5\r
+#    define BOOST_PP_SLOT_4_DIGIT_4 5\r
+# elif BOOST_PP_SLOT_TEMP_4 == 6\r
+#    define BOOST_PP_SLOT_4_DIGIT_4 6\r
+# elif BOOST_PP_SLOT_TEMP_4 == 7\r
+#    define BOOST_PP_SLOT_4_DIGIT_4 7\r
+# elif BOOST_PP_SLOT_TEMP_4 == 8\r
+#    define BOOST_PP_SLOT_4_DIGIT_4 8\r
+# elif BOOST_PP_SLOT_TEMP_4 == 9\r
+#    define BOOST_PP_SLOT_4_DIGIT_4 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_3 == 0\r
+#    define BOOST_PP_SLOT_4_DIGIT_3 0\r
+# elif BOOST_PP_SLOT_TEMP_3 == 1\r
+#    define BOOST_PP_SLOT_4_DIGIT_3 1\r
+# elif BOOST_PP_SLOT_TEMP_3 == 2\r
+#    define BOOST_PP_SLOT_4_DIGIT_3 2\r
+# elif BOOST_PP_SLOT_TEMP_3 == 3\r
+#    define BOOST_PP_SLOT_4_DIGIT_3 3\r
+# elif BOOST_PP_SLOT_TEMP_3 == 4\r
+#    define BOOST_PP_SLOT_4_DIGIT_3 4\r
+# elif BOOST_PP_SLOT_TEMP_3 == 5\r
+#    define BOOST_PP_SLOT_4_DIGIT_3 5\r
+# elif BOOST_PP_SLOT_TEMP_3 == 6\r
+#    define BOOST_PP_SLOT_4_DIGIT_3 6\r
+# elif BOOST_PP_SLOT_TEMP_3 == 7\r
+#    define BOOST_PP_SLOT_4_DIGIT_3 7\r
+# elif BOOST_PP_SLOT_TEMP_3 == 8\r
+#    define BOOST_PP_SLOT_4_DIGIT_3 8\r
+# elif BOOST_PP_SLOT_TEMP_3 == 9\r
+#    define BOOST_PP_SLOT_4_DIGIT_3 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_2 == 0\r
+#    define BOOST_PP_SLOT_4_DIGIT_2 0\r
+# elif BOOST_PP_SLOT_TEMP_2 == 1\r
+#    define BOOST_PP_SLOT_4_DIGIT_2 1\r
+# elif BOOST_PP_SLOT_TEMP_2 == 2\r
+#    define BOOST_PP_SLOT_4_DIGIT_2 2\r
+# elif BOOST_PP_SLOT_TEMP_2 == 3\r
+#    define BOOST_PP_SLOT_4_DIGIT_2 3\r
+# elif BOOST_PP_SLOT_TEMP_2 == 4\r
+#    define BOOST_PP_SLOT_4_DIGIT_2 4\r
+# elif BOOST_PP_SLOT_TEMP_2 == 5\r
+#    define BOOST_PP_SLOT_4_DIGIT_2 5\r
+# elif BOOST_PP_SLOT_TEMP_2 == 6\r
+#    define BOOST_PP_SLOT_4_DIGIT_2 6\r
+# elif BOOST_PP_SLOT_TEMP_2 == 7\r
+#    define BOOST_PP_SLOT_4_DIGIT_2 7\r
+# elif BOOST_PP_SLOT_TEMP_2 == 8\r
+#    define BOOST_PP_SLOT_4_DIGIT_2 8\r
+# elif BOOST_PP_SLOT_TEMP_2 == 9\r
+#    define BOOST_PP_SLOT_4_DIGIT_2 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_1 == 0\r
+#    define BOOST_PP_SLOT_4_DIGIT_1 0\r
+# elif BOOST_PP_SLOT_TEMP_1 == 1\r
+#    define BOOST_PP_SLOT_4_DIGIT_1 1\r
+# elif BOOST_PP_SLOT_TEMP_1 == 2\r
+#    define BOOST_PP_SLOT_4_DIGIT_1 2\r
+# elif BOOST_PP_SLOT_TEMP_1 == 3\r
+#    define BOOST_PP_SLOT_4_DIGIT_1 3\r
+# elif BOOST_PP_SLOT_TEMP_1 == 4\r
+#    define BOOST_PP_SLOT_4_DIGIT_1 4\r
+# elif BOOST_PP_SLOT_TEMP_1 == 5\r
+#    define BOOST_PP_SLOT_4_DIGIT_1 5\r
+# elif BOOST_PP_SLOT_TEMP_1 == 6\r
+#    define BOOST_PP_SLOT_4_DIGIT_1 6\r
+# elif BOOST_PP_SLOT_TEMP_1 == 7\r
+#    define BOOST_PP_SLOT_4_DIGIT_1 7\r
+# elif BOOST_PP_SLOT_TEMP_1 == 8\r
+#    define BOOST_PP_SLOT_4_DIGIT_1 8\r
+# elif BOOST_PP_SLOT_TEMP_1 == 9\r
+#    define BOOST_PP_SLOT_4_DIGIT_1 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_4_DIGIT_10\r
+#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_4_DIGIT_10, BOOST_PP_SLOT_4_DIGIT_9, BOOST_PP_SLOT_4_DIGIT_8, BOOST_PP_SLOT_4_DIGIT_7, BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)\r
+# elif BOOST_PP_SLOT_4_DIGIT_9\r
+#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_4_DIGIT_9, BOOST_PP_SLOT_4_DIGIT_8, BOOST_PP_SLOT_4_DIGIT_7, BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)\r
+# elif BOOST_PP_SLOT_4_DIGIT_8\r
+#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_4_DIGIT_8, BOOST_PP_SLOT_4_DIGIT_7, BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)\r
+# elif BOOST_PP_SLOT_4_DIGIT_7\r
+#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_4_DIGIT_7, BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)\r
+# elif BOOST_PP_SLOT_4_DIGIT_6\r
+#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)\r
+# elif BOOST_PP_SLOT_4_DIGIT_5\r
+#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)\r
+# elif BOOST_PP_SLOT_4_DIGIT_4\r
+#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)\r
+# elif BOOST_PP_SLOT_4_DIGIT_3\r
+#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)\r
+# elif BOOST_PP_SLOT_4_DIGIT_2\r
+#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)\r
+# else\r
+#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_4_DIGIT_1\r
+# endif\r
diff --git a/boost/boost/preprocessor/slot/detail/slot5.hpp b/boost/boost/preprocessor/slot/detail/slot5.hpp
new file mode 100644 (file)
index 0000000..9763461
--- /dev/null
@@ -0,0 +1,267 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# include <boost/preprocessor/slot/detail/shared.hpp>\r
+#\r
+# undef BOOST_PP_SLOT_5\r
+#\r
+# undef BOOST_PP_SLOT_5_DIGIT_1\r
+# undef BOOST_PP_SLOT_5_DIGIT_2\r
+# undef BOOST_PP_SLOT_5_DIGIT_3\r
+# undef BOOST_PP_SLOT_5_DIGIT_4\r
+# undef BOOST_PP_SLOT_5_DIGIT_5\r
+# undef BOOST_PP_SLOT_5_DIGIT_6\r
+# undef BOOST_PP_SLOT_5_DIGIT_7\r
+# undef BOOST_PP_SLOT_5_DIGIT_8\r
+# undef BOOST_PP_SLOT_5_DIGIT_9\r
+# undef BOOST_PP_SLOT_5_DIGIT_10\r
+#\r
+# if BOOST_PP_SLOT_TEMP_10 == 0\r
+#    define BOOST_PP_SLOT_5_DIGIT_10 0\r
+# elif BOOST_PP_SLOT_TEMP_10 == 1\r
+#    define BOOST_PP_SLOT_5_DIGIT_10 1\r
+# elif BOOST_PP_SLOT_TEMP_10 == 2\r
+#    define BOOST_PP_SLOT_5_DIGIT_10 2\r
+# elif BOOST_PP_SLOT_TEMP_10 == 3\r
+#    define BOOST_PP_SLOT_5_DIGIT_10 3\r
+# elif BOOST_PP_SLOT_TEMP_10 == 4\r
+#    define BOOST_PP_SLOT_5_DIGIT_10 4\r
+# elif BOOST_PP_SLOT_TEMP_10 == 5\r
+#    define BOOST_PP_SLOT_5_DIGIT_10 5\r
+# elif BOOST_PP_SLOT_TEMP_10 == 6\r
+#    define BOOST_PP_SLOT_5_DIGIT_10 6\r
+# elif BOOST_PP_SLOT_TEMP_10 == 7\r
+#    define BOOST_PP_SLOT_5_DIGIT_10 7\r
+# elif BOOST_PP_SLOT_TEMP_10 == 8\r
+#    define BOOST_PP_SLOT_5_DIGIT_10 8\r
+# elif BOOST_PP_SLOT_TEMP_10 == 9\r
+#    define BOOST_PP_SLOT_5_DIGIT_10 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_9 == 0\r
+#    define BOOST_PP_SLOT_5_DIGIT_9 0\r
+# elif BOOST_PP_SLOT_TEMP_9 == 1\r
+#    define BOOST_PP_SLOT_5_DIGIT_9 1\r
+# elif BOOST_PP_SLOT_TEMP_9 == 2\r
+#    define BOOST_PP_SLOT_5_DIGIT_9 2\r
+# elif BOOST_PP_SLOT_TEMP_9 == 3\r
+#    define BOOST_PP_SLOT_5_DIGIT_9 3\r
+# elif BOOST_PP_SLOT_TEMP_9 == 4\r
+#    define BOOST_PP_SLOT_5_DIGIT_9 4\r
+# elif BOOST_PP_SLOT_TEMP_9 == 5\r
+#    define BOOST_PP_SLOT_5_DIGIT_9 5\r
+# elif BOOST_PP_SLOT_TEMP_9 == 6\r
+#    define BOOST_PP_SLOT_5_DIGIT_9 6\r
+# elif BOOST_PP_SLOT_TEMP_9 == 7\r
+#    define BOOST_PP_SLOT_5_DIGIT_9 7\r
+# elif BOOST_PP_SLOT_TEMP_9 == 8\r
+#    define BOOST_PP_SLOT_5_DIGIT_9 8\r
+# elif BOOST_PP_SLOT_TEMP_9 == 9\r
+#    define BOOST_PP_SLOT_5_DIGIT_9 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_8 == 0\r
+#    define BOOST_PP_SLOT_5_DIGIT_8 0\r
+# elif BOOST_PP_SLOT_TEMP_8 == 1\r
+#    define BOOST_PP_SLOT_5_DIGIT_8 1\r
+# elif BOOST_PP_SLOT_TEMP_8 == 2\r
+#    define BOOST_PP_SLOT_5_DIGIT_8 2\r
+# elif BOOST_PP_SLOT_TEMP_8 == 3\r
+#    define BOOST_PP_SLOT_5_DIGIT_8 3\r
+# elif BOOST_PP_SLOT_TEMP_8 == 4\r
+#    define BOOST_PP_SLOT_5_DIGIT_8 4\r
+# elif BOOST_PP_SLOT_TEMP_8 == 5\r
+#    define BOOST_PP_SLOT_5_DIGIT_8 5\r
+# elif BOOST_PP_SLOT_TEMP_8 == 6\r
+#    define BOOST_PP_SLOT_5_DIGIT_8 6\r
+# elif BOOST_PP_SLOT_TEMP_8 == 7\r
+#    define BOOST_PP_SLOT_5_DIGIT_8 7\r
+# elif BOOST_PP_SLOT_TEMP_8 == 8\r
+#    define BOOST_PP_SLOT_5_DIGIT_8 8\r
+# elif BOOST_PP_SLOT_TEMP_8 == 9\r
+#    define BOOST_PP_SLOT_5_DIGIT_8 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_7 == 0\r
+#    define BOOST_PP_SLOT_5_DIGIT_7 0\r
+# elif BOOST_PP_SLOT_TEMP_7 == 1\r
+#    define BOOST_PP_SLOT_5_DIGIT_7 1\r
+# elif BOOST_PP_SLOT_TEMP_7 == 2\r
+#    define BOOST_PP_SLOT_5_DIGIT_7 2\r
+# elif BOOST_PP_SLOT_TEMP_7 == 3\r
+#    define BOOST_PP_SLOT_5_DIGIT_7 3\r
+# elif BOOST_PP_SLOT_TEMP_7 == 4\r
+#    define BOOST_PP_SLOT_5_DIGIT_7 4\r
+# elif BOOST_PP_SLOT_TEMP_7 == 5\r
+#    define BOOST_PP_SLOT_5_DIGIT_7 5\r
+# elif BOOST_PP_SLOT_TEMP_7 == 6\r
+#    define BOOST_PP_SLOT_5_DIGIT_7 6\r
+# elif BOOST_PP_SLOT_TEMP_7 == 7\r
+#    define BOOST_PP_SLOT_5_DIGIT_7 7\r
+# elif BOOST_PP_SLOT_TEMP_7 == 8\r
+#    define BOOST_PP_SLOT_5_DIGIT_7 8\r
+# elif BOOST_PP_SLOT_TEMP_7 == 9\r
+#    define BOOST_PP_SLOT_5_DIGIT_7 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_6 == 0\r
+#    define BOOST_PP_SLOT_5_DIGIT_6 0\r
+# elif BOOST_PP_SLOT_TEMP_6 == 1\r
+#    define BOOST_PP_SLOT_5_DIGIT_6 1\r
+# elif BOOST_PP_SLOT_TEMP_6 == 2\r
+#    define BOOST_PP_SLOT_5_DIGIT_6 2\r
+# elif BOOST_PP_SLOT_TEMP_6 == 3\r
+#    define BOOST_PP_SLOT_5_DIGIT_6 3\r
+# elif BOOST_PP_SLOT_TEMP_6 == 4\r
+#    define BOOST_PP_SLOT_5_DIGIT_6 4\r
+# elif BOOST_PP_SLOT_TEMP_6 == 5\r
+#    define BOOST_PP_SLOT_5_DIGIT_6 5\r
+# elif BOOST_PP_SLOT_TEMP_6 == 6\r
+#    define BOOST_PP_SLOT_5_DIGIT_6 6\r
+# elif BOOST_PP_SLOT_TEMP_6 == 7\r
+#    define BOOST_PP_SLOT_5_DIGIT_6 7\r
+# elif BOOST_PP_SLOT_TEMP_6 == 8\r
+#    define BOOST_PP_SLOT_5_DIGIT_6 8\r
+# elif BOOST_PP_SLOT_TEMP_6 == 9\r
+#    define BOOST_PP_SLOT_5_DIGIT_6 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_5 == 0\r
+#    define BOOST_PP_SLOT_5_DIGIT_5 0\r
+# elif BOOST_PP_SLOT_TEMP_5 == 1\r
+#    define BOOST_PP_SLOT_5_DIGIT_5 1\r
+# elif BOOST_PP_SLOT_TEMP_5 == 2\r
+#    define BOOST_PP_SLOT_5_DIGIT_5 2\r
+# elif BOOST_PP_SLOT_TEMP_5 == 3\r
+#    define BOOST_PP_SLOT_5_DIGIT_5 3\r
+# elif BOOST_PP_SLOT_TEMP_5 == 4\r
+#    define BOOST_PP_SLOT_5_DIGIT_5 4\r
+# elif BOOST_PP_SLOT_TEMP_5 == 5\r
+#    define BOOST_PP_SLOT_5_DIGIT_5 5\r
+# elif BOOST_PP_SLOT_TEMP_5 == 6\r
+#    define BOOST_PP_SLOT_5_DIGIT_5 6\r
+# elif BOOST_PP_SLOT_TEMP_5 == 7\r
+#    define BOOST_PP_SLOT_5_DIGIT_5 7\r
+# elif BOOST_PP_SLOT_TEMP_5 == 8\r
+#    define BOOST_PP_SLOT_5_DIGIT_5 8\r
+# elif BOOST_PP_SLOT_TEMP_5 == 9\r
+#    define BOOST_PP_SLOT_5_DIGIT_5 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_4 == 0\r
+#    define BOOST_PP_SLOT_5_DIGIT_4 0\r
+# elif BOOST_PP_SLOT_TEMP_4 == 1\r
+#    define BOOST_PP_SLOT_5_DIGIT_4 1\r
+# elif BOOST_PP_SLOT_TEMP_4 == 2\r
+#    define BOOST_PP_SLOT_5_DIGIT_4 2\r
+# elif BOOST_PP_SLOT_TEMP_4 == 3\r
+#    define BOOST_PP_SLOT_5_DIGIT_4 3\r
+# elif BOOST_PP_SLOT_TEMP_4 == 4\r
+#    define BOOST_PP_SLOT_5_DIGIT_4 4\r
+# elif BOOST_PP_SLOT_TEMP_4 == 5\r
+#    define BOOST_PP_SLOT_5_DIGIT_4 5\r
+# elif BOOST_PP_SLOT_TEMP_4 == 6\r
+#    define BOOST_PP_SLOT_5_DIGIT_4 6\r
+# elif BOOST_PP_SLOT_TEMP_4 == 7\r
+#    define BOOST_PP_SLOT_5_DIGIT_4 7\r
+# elif BOOST_PP_SLOT_TEMP_4 == 8\r
+#    define BOOST_PP_SLOT_5_DIGIT_4 8\r
+# elif BOOST_PP_SLOT_TEMP_4 == 9\r
+#    define BOOST_PP_SLOT_5_DIGIT_4 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_3 == 0\r
+#    define BOOST_PP_SLOT_5_DIGIT_3 0\r
+# elif BOOST_PP_SLOT_TEMP_3 == 1\r
+#    define BOOST_PP_SLOT_5_DIGIT_3 1\r
+# elif BOOST_PP_SLOT_TEMP_3 == 2\r
+#    define BOOST_PP_SLOT_5_DIGIT_3 2\r
+# elif BOOST_PP_SLOT_TEMP_3 == 3\r
+#    define BOOST_PP_SLOT_5_DIGIT_3 3\r
+# elif BOOST_PP_SLOT_TEMP_3 == 4\r
+#    define BOOST_PP_SLOT_5_DIGIT_3 4\r
+# elif BOOST_PP_SLOT_TEMP_3 == 5\r
+#    define BOOST_PP_SLOT_5_DIGIT_3 5\r
+# elif BOOST_PP_SLOT_TEMP_3 == 6\r
+#    define BOOST_PP_SLOT_5_DIGIT_3 6\r
+# elif BOOST_PP_SLOT_TEMP_3 == 7\r
+#    define BOOST_PP_SLOT_5_DIGIT_3 7\r
+# elif BOOST_PP_SLOT_TEMP_3 == 8\r
+#    define BOOST_PP_SLOT_5_DIGIT_3 8\r
+# elif BOOST_PP_SLOT_TEMP_3 == 9\r
+#    define BOOST_PP_SLOT_5_DIGIT_3 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_2 == 0\r
+#    define BOOST_PP_SLOT_5_DIGIT_2 0\r
+# elif BOOST_PP_SLOT_TEMP_2 == 1\r
+#    define BOOST_PP_SLOT_5_DIGIT_2 1\r
+# elif BOOST_PP_SLOT_TEMP_2 == 2\r
+#    define BOOST_PP_SLOT_5_DIGIT_2 2\r
+# elif BOOST_PP_SLOT_TEMP_2 == 3\r
+#    define BOOST_PP_SLOT_5_DIGIT_2 3\r
+# elif BOOST_PP_SLOT_TEMP_2 == 4\r
+#    define BOOST_PP_SLOT_5_DIGIT_2 4\r
+# elif BOOST_PP_SLOT_TEMP_2 == 5\r
+#    define BOOST_PP_SLOT_5_DIGIT_2 5\r
+# elif BOOST_PP_SLOT_TEMP_2 == 6\r
+#    define BOOST_PP_SLOT_5_DIGIT_2 6\r
+# elif BOOST_PP_SLOT_TEMP_2 == 7\r
+#    define BOOST_PP_SLOT_5_DIGIT_2 7\r
+# elif BOOST_PP_SLOT_TEMP_2 == 8\r
+#    define BOOST_PP_SLOT_5_DIGIT_2 8\r
+# elif BOOST_PP_SLOT_TEMP_2 == 9\r
+#    define BOOST_PP_SLOT_5_DIGIT_2 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_TEMP_1 == 0\r
+#    define BOOST_PP_SLOT_5_DIGIT_1 0\r
+# elif BOOST_PP_SLOT_TEMP_1 == 1\r
+#    define BOOST_PP_SLOT_5_DIGIT_1 1\r
+# elif BOOST_PP_SLOT_TEMP_1 == 2\r
+#    define BOOST_PP_SLOT_5_DIGIT_1 2\r
+# elif BOOST_PP_SLOT_TEMP_1 == 3\r
+#    define BOOST_PP_SLOT_5_DIGIT_1 3\r
+# elif BOOST_PP_SLOT_TEMP_1 == 4\r
+#    define BOOST_PP_SLOT_5_DIGIT_1 4\r
+# elif BOOST_PP_SLOT_TEMP_1 == 5\r
+#    define BOOST_PP_SLOT_5_DIGIT_1 5\r
+# elif BOOST_PP_SLOT_TEMP_1 == 6\r
+#    define BOOST_PP_SLOT_5_DIGIT_1 6\r
+# elif BOOST_PP_SLOT_TEMP_1 == 7\r
+#    define BOOST_PP_SLOT_5_DIGIT_1 7\r
+# elif BOOST_PP_SLOT_TEMP_1 == 8\r
+#    define BOOST_PP_SLOT_5_DIGIT_1 8\r
+# elif BOOST_PP_SLOT_TEMP_1 == 9\r
+#    define BOOST_PP_SLOT_5_DIGIT_1 9\r
+# endif\r
+#\r
+# if BOOST_PP_SLOT_5_DIGIT_10\r
+#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_5_DIGIT_10, BOOST_PP_SLOT_5_DIGIT_9, BOOST_PP_SLOT_5_DIGIT_8, BOOST_PP_SLOT_5_DIGIT_7, BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)\r
+# elif BOOST_PP_SLOT_5_DIGIT_9\r
+#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_5_DIGIT_9, BOOST_PP_SLOT_5_DIGIT_8, BOOST_PP_SLOT_5_DIGIT_7, BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)\r
+# elif BOOST_PP_SLOT_5_DIGIT_8\r
+#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_5_DIGIT_8, BOOST_PP_SLOT_5_DIGIT_7, BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)\r
+# elif BOOST_PP_SLOT_5_DIGIT_7\r
+#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_5_DIGIT_7, BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)\r
+# elif BOOST_PP_SLOT_5_DIGIT_6\r
+#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)\r
+# elif BOOST_PP_SLOT_5_DIGIT_5\r
+#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)\r
+# elif BOOST_PP_SLOT_5_DIGIT_4\r
+#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)\r
+# elif BOOST_PP_SLOT_5_DIGIT_3\r
+#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)\r
+# elif BOOST_PP_SLOT_5_DIGIT_2\r
+#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)\r
+# else\r
+#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_5_DIGIT_1\r
+# endif\r
diff --git a/boost/boost/preprocessor/tuple/to_seq.hpp b/boost/boost/preprocessor/tuple/to_seq.hpp
new file mode 100644 (file)
index 0000000..efb421f
--- /dev/null
@@ -0,0 +1,60 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_TUPLE_TO_SEQ_HPP\r
+# define BOOST_PREPROCESSOR_TUPLE_TO_SEQ_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+#\r
+# /* BOOST_PP_TUPLE_TO_SEQ */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
+#    define BOOST_PP_TUPLE_TO_SEQ(size, tuple) BOOST_PP_TUPLE_TO_SEQ_I(size, tuple)\r
+#    if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()\r
+#        define BOOST_PP_TUPLE_TO_SEQ_I(s, t) BOOST_PP_TUPLE_TO_SEQ_ ## s t\r
+#    else\r
+#        define BOOST_PP_TUPLE_TO_SEQ_I(s, t) BOOST_PP_TUPLE_TO_SEQ_II(BOOST_PP_TUPLE_TO_SEQ_ ## s t)\r
+#        define BOOST_PP_TUPLE_TO_SEQ_II(res) res\r
+#    endif\r
+# else\r
+#    define BOOST_PP_TUPLE_TO_SEQ(size, tuple) BOOST_PP_TUPLE_TO_SEQ_OO((size, tuple))\r
+#    define BOOST_PP_TUPLE_TO_SEQ_OO(par) BOOST_PP_TUPLE_TO_SEQ_I ## par\r
+#    define BOOST_PP_TUPLE_TO_SEQ_I(s, t) BOOST_PP_TUPLE_TO_SEQ_ ## s ## t\r
+# endif\r
+#\r
+# define BOOST_PP_TUPLE_TO_SEQ_0()\r
+# define BOOST_PP_TUPLE_TO_SEQ_1(a) (a)\r
+# define BOOST_PP_TUPLE_TO_SEQ_2(a, b) (a)(b)\r
+# define BOOST_PP_TUPLE_TO_SEQ_3(a, b, c) (a)(b)(c)\r
+# define BOOST_PP_TUPLE_TO_SEQ_4(a, b, c, d) (a)(b)(c)(d)\r
+# define BOOST_PP_TUPLE_TO_SEQ_5(a, b, c, d, e) (a)(b)(c)(d)(e)\r
+# define BOOST_PP_TUPLE_TO_SEQ_6(a, b, c, d, e, f) (a)(b)(c)(d)(e)(f)\r
+# define BOOST_PP_TUPLE_TO_SEQ_7(a, b, c, d, e, f, g) (a)(b)(c)(d)(e)(f)(g)\r
+# define BOOST_PP_TUPLE_TO_SEQ_8(a, b, c, d, e, f, g, h) (a)(b)(c)(d)(e)(f)(g)(h)\r
+# define BOOST_PP_TUPLE_TO_SEQ_9(a, b, c, d, e, f, g, h, i) (a)(b)(c)(d)(e)(f)(g)(h)(i)\r
+# define BOOST_PP_TUPLE_TO_SEQ_10(a, b, c, d, e, f, g, h, i, j) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)\r
+# define BOOST_PP_TUPLE_TO_SEQ_11(a, b, c, d, e, f, g, h, i, j, k) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\r
+# define BOOST_PP_TUPLE_TO_SEQ_12(a, b, c, d, e, f, g, h, i, j, k, l) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\r
+# define BOOST_PP_TUPLE_TO_SEQ_13(a, b, c, d, e, f, g, h, i, j, k, l, m) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)\r
+# define BOOST_PP_TUPLE_TO_SEQ_14(a, b, c, d, e, f, g, h, i, j, k, l, m, n) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)\r
+# define BOOST_PP_TUPLE_TO_SEQ_15(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)\r
+# define BOOST_PP_TUPLE_TO_SEQ_16(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)\r
+# define BOOST_PP_TUPLE_TO_SEQ_17(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)\r
+# define BOOST_PP_TUPLE_TO_SEQ_18(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)\r
+# define BOOST_PP_TUPLE_TO_SEQ_19(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)\r
+# define BOOST_PP_TUPLE_TO_SEQ_20(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)\r
+# define BOOST_PP_TUPLE_TO_SEQ_21(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)\r
+# define BOOST_PP_TUPLE_TO_SEQ_22(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)\r
+# define BOOST_PP_TUPLE_TO_SEQ_23(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)(w)\r
+# define BOOST_PP_TUPLE_TO_SEQ_24(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)(w)(x)\r
+# define BOOST_PP_TUPLE_TO_SEQ_25(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) (a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)(w)(x)(y)\r
+#\r
+# endif\r
diff --git a/boost/boost/preprocessor/wstringize.hpp b/boost/boost/preprocessor/wstringize.hpp
new file mode 100644 (file)
index 0000000..126b43e
--- /dev/null
@@ -0,0 +1,29 @@
+# /* **************************************************************************\r
+#  *                                                                          *\r
+#  *     (C) Copyright Paul Mensonides 2002.\r
+#  *     Distributed under the Boost Software License, Version 1.0. (See\r
+#  *     accompanying file LICENSE_1_0.txt or copy at\r
+#  *     http://www.boost.org/LICENSE_1_0.txt)\r
+#  *                                                                          *\r
+#  ************************************************************************** */\r
+#\r
+# /* See http://www.boost.org for most recent version. */\r
+#\r
+# ifndef BOOST_PREPROCESSOR_WSTRINGIZE_HPP\r
+# define BOOST_PREPROCESSOR_WSTRINGIZE_HPP\r
+#\r
+# include <boost/preprocessor/config/config.hpp>\r
+#\r
+# /* BOOST_PP_WSTRINGIZE */\r
+#\r
+# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()\r
+#    define BOOST_PP_WSTRINGIZE(text) BOOST_PP_WSTRINGIZE_I(text)\r
+# else\r
+#    define BOOST_PP_WSTRINGIZE(text) BOOST_PP_WSTRINGIZE_OO((text))\r
+#    define BOOST_PP_WSTRINGIZE_OO(par) BOOST_PP_WSTRINGIZE_I ## par\r
+# endif\r
+#\r
+# define BOOST_PP_WSTRINGIZE_I(text) BOOST_PP_WSTRINGIZE_II(#text)\r
+# define BOOST_PP_WSTRINGIZE_II(str) L ## str\r
+#\r
+# endif\r
diff --git a/boost/boost/regex/concepts.hpp b/boost/boost/regex/concepts.hpp
new file mode 100644 (file)
index 0000000..d30dae5
--- /dev/null
@@ -0,0 +1,870 @@
+/*\r
+ *\r
+ * Copyright (c) 2004\r
+ * John Maddock\r
+ *\r
+ * Use, modification and distribution are subject to the \r
+ * Boost Software License, Version 1.0. (See accompanying file \r
+ * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
+ *\r
+ */\r
\r
+ /*\r
+  *   LOCATION:    see http://www.boost.org for most recent version.\r
+  *   FILE         concepts.hpp\r
+  *   VERSION      see <boost/version.hpp>\r
+  *   DESCRIPTION: Declares regular expression concepts.\r
+  */\r
+\r
+#ifndef BOOST_REGEX_CONCEPTS_HPP_INCLUDED\r
+#define BOOST_REGEX_CONCEPTS_HPP_INCLUDED\r
+\r
+#include <boost/concept_archetype.hpp>\r
+#include <boost/concept_check.hpp>\r
+#include <boost/type_traits/is_enum.hpp>\r
+#include <boost/type_traits/is_base_and_derived.hpp>\r
+#include <boost/static_assert.hpp>\r
+#ifndef BOOST_TEST_TR1_REGEX\r
+#include <boost/regex.hpp>\r
+#endif\r
+#include <bitset>\r
+#include <vector>\r
+#include <iostream>\r
+\r
+namespace boost{\r
+\r
+//\r
+// bitmask_archetype:\r
+// this can be either an integer type, an enum, or a std::bitset,\r
+// we use the latter as the architype as it offers the "strictest"\r
+// of the possible interfaces:\r
+//\r
+typedef std::bitset<512> bitmask_archetype;\r
+//\r
+// char_architype:\r
+// A strict model for the character type interface.\r
+//\r
+struct char_architype\r
+{\r
+   // default constructable:\r
+   char_architype();\r
+   // copy constructable / assignable:\r
+   char_architype(const char_architype&);\r
+   char_architype& operator=(const char_architype&);\r
+   // constructable from an integral value:\r
+   char_architype(unsigned long val);\r
+   // comparable:\r
+   bool operator==(const char_architype&)const;\r
+   bool operator!=(const char_architype&)const;\r
+   bool operator<(const char_architype&)const;\r
+   bool operator<=(const char_architype&)const;\r
+   bool operator>=(const char_architype&)const;\r
+   bool operator>(const char_architype&)const;\r
+   // conversion to integral type:\r
+   operator long()const;\r
+};\r
+//\r
+// char_architype can not be used with basic_string:\r
+//\r
+} // namespace boost\r
+namespace std{\r
+   template<> struct char_traits<boost::char_architype>\r
+   {\r
+      // The intent is that this template is not instantiated,\r
+      // but this typedef gives us a chance of compilation in\r
+      // case it is:\r
+      typedef boost::char_architype char_type;\r
+   };\r
+}\r
+namespace boost{\r
+//\r
+// regex_traits_architype:\r
+// A strict interpretation of the regular expression traits class requirements.\r
+//\r
+template <class charT>\r
+struct regex_traits_architype\r
+{\r
+public:\r
+   regex_traits_architype();\r
+   typedef charT char_type;\r
+   // typedef std::size_t size_type;\r
+   typedef std::vector<char_type> string_type;\r
+   typedef copy_constructible_archetype<assignable_archetype<> > locale_type;\r
+   typedef bitmask_archetype char_class_type;\r
+\r
+   static std::size_t length(const char_type* ) { return 0; }\r
+\r
+   charT translate(charT ) const { return charT(); }\r
+   charT translate_nocase(charT ) const { return static_object<charT>::get(); }\r
+\r
+   template <class ForwardIterator>\r
+   string_type transform(ForwardIterator , ForwardIterator ) const\r
+   { return static_object<string_type>::get(); }\r
+   template <class ForwardIterator>\r
+   string_type transform_primary(ForwardIterator , ForwardIterator ) const\r
+   { return static_object<string_type>::get(); }\r
+\r
+   template <class ForwardIterator>\r
+   char_class_type lookup_classname(ForwardIterator , ForwardIterator ) const\r
+   { return static_object<char_class_type>::get(); }\r
+   template <class ForwardIterator>\r
+   string_type lookup_collatename(ForwardIterator , ForwardIterator ) const\r
+   { return static_object<string_type>::get(); }\r
+\r
+   bool isctype(charT, char_class_type) const\r
+   { return false; }\r
+   int value(charT, int) const\r
+   { return 0; }\r
+\r
+   locale_type imbue(locale_type l)\r
+   { return l; }\r
+   locale_type getloc()const\r
+   { return static_object<locale_type>::get(); }\r
+\r
+private:\r
+   // this type is not copyable:\r
+   regex_traits_architype(const regex_traits_architype&);\r
+   regex_traits_architype& operator=(const regex_traits_architype&);\r
+};\r
+\r
+//\r
+// alter this to std::tr1, to test a std implementation:\r
+//\r
+#ifndef BOOST_TEST_TR1_REGEX\r
+namespace global_regex_namespace = ::boost;\r
+#else\r
+namespace global_regex_namespace = ::std::tr1;\r
+#endif\r
+\r
+template <class Bitmask>\r
+struct BitmaskConcept\r
+{\r
+   void constraints() \r
+   {\r
+      function_requires<CopyConstructibleConcept<Bitmask> >();\r
+      function_requires<AssignableConcept<Bitmask> >();\r
+\r
+      m_mask1 = m_mask2 | m_mask3;\r
+      m_mask1 = m_mask2 & m_mask3;\r
+      m_mask1 = m_mask2 ^ m_mask3;\r
+\r
+      m_mask1 = ~m_mask2;\r
+\r
+      m_mask1 |= m_mask2;\r
+      m_mask1 &= m_mask2;\r
+      m_mask1 ^= m_mask2;\r
+   }\r
+   Bitmask m_mask1, m_mask2, m_mask3;\r
+};\r
+\r
+template <class traits>\r
+struct RegexTraitsConcept\r
+{\r
+   RegexTraitsConcept();\r
+   // required typedefs:\r
+   typedef typename traits::char_type char_type;\r
+   // typedef typename traits::size_type size_type;\r
+   typedef typename traits::string_type string_type;\r
+   typedef typename traits::locale_type locale_type;\r
+   typedef typename traits::char_class_type char_class_type;\r
+\r
+   void constraints() \r
+   {\r
+      //function_requires<UnsignedIntegerConcept<size_type> >();\r
+      function_requires<RandomAccessContainerConcept<string_type> >();\r
+      function_requires<DefaultConstructibleConcept<locale_type> >();\r
+      function_requires<CopyConstructibleConcept<locale_type> >();\r
+      function_requires<AssignableConcept<locale_type> >();\r
+      function_requires<BitmaskConcept<char_class_type> >();\r
+\r
+      std::size_t n = traits::length(m_pointer);\r
+      ignore_unused_variable_warning(n);\r
+\r
+      char_type c = m_ctraits.translate(m_char);\r
+      ignore_unused_variable_warning(c);\r
+      c = m_ctraits.translate_nocase(m_char);\r
+      \r
+      //string_type::foobar bar;\r
+      string_type s1 = m_ctraits.transform(m_pointer, m_pointer);\r
+      ignore_unused_variable_warning(s1);\r
+\r
+      string_type s2 = m_ctraits.transform_primary(m_pointer, m_pointer);\r
+      ignore_unused_variable_warning(s2);\r
+\r
+      char_class_type cc = m_ctraits.lookup_classname(m_pointer, m_pointer);\r
+      ignore_unused_variable_warning(cc);\r
+\r
+      string_type s3 = m_ctraits.lookup_collatename(m_pointer, m_pointer);\r
+      ignore_unused_variable_warning(s3);\r
+\r
+      bool b = m_ctraits.isctype(m_char, cc);\r
+      ignore_unused_variable_warning(b);\r
+\r
+      int v = m_ctraits.value(m_char, 16);\r
+      ignore_unused_variable_warning(v);\r
+\r
+      locale_type l(m_ctraits.getloc());\r
+      m_traits.imbue(l);\r
+      ignore_unused_variable_warning(l);\r
+   }\r
+   traits m_traits;\r
+   const traits m_ctraits;\r
+   const char_type* m_pointer;\r
+   char_type m_char;\r
+private:\r
+   RegexTraitsConcept& operator=(RegexTraitsConcept&);\r
+};\r
+\r
+//\r
+// helper class to compute what traits class a regular expression type is using:\r
+//\r
+template <class Regex>\r
+struct regex_traits_computer;\r
+\r
+template <class charT, class traits>\r
+struct regex_traits_computer< global_regex_namespace::basic_regex<charT, traits> >\r
+{\r
+   typedef traits type;\r
+};\r
+\r
+//\r
+// BaseRegexConcept does not test anything dependent on basic_string,\r
+// in case our charT does not have an associated char_traits:\r
+//\r
+template <class Regex>\r
+struct BaseRegexConcept\r
+{\r
+   typedef typename Regex::value_type value_type;\r
+   //typedef typename Regex::size_type size_type;\r
+   typedef typename Regex::flag_type flag_type;\r
+   typedef typename Regex::locale_type locale_type;\r
+   typedef input_iterator_archetype<value_type> input_iterator_type;\r
+\r
+   // derived test types:\r
+   typedef const value_type* pointer_type;\r
+   typedef bidirectional_iterator_archetype<value_type> BidiIterator;\r
+   typedef global_regex_namespace::sub_match<BidiIterator> sub_match_type;\r
+   typedef global_regex_namespace::match_results<BidiIterator> match_results_type;\r
+   typedef output_iterator_archetype<value_type> OutIterator;\r
+   typedef typename regex_traits_computer<Regex>::type traits_type;\r
+   typedef global_regex_namespace::regex_iterator<BidiIterator, value_type, traits_type> regex_iterator_type;\r
+   typedef global_regex_namespace::regex_token_iterator<BidiIterator, value_type, traits_type> regex_token_iterator_type;\r
+\r
+   void global_constraints()\r
+   {\r
+      //\r
+      // test non-template components:\r
+      //\r
+      function_requires<BitmaskConcept<global_regex_namespace::regex_constants::syntax_option_type> >();\r
+      global_regex_namespace::regex_constants::syntax_option_type opts\r
+         = global_regex_namespace::regex_constants::icase\r
+         | global_regex_namespace::regex_constants::nosubs\r
+         | global_regex_namespace::regex_constants::optimize\r
+         | global_regex_namespace::regex_constants::collate\r
+         | global_regex_namespace::regex_constants::ECMAScript\r
+         | global_regex_namespace::regex_constants::basic\r
+         | global_regex_namespace::regex_constants::extended\r
+         | global_regex_namespace::regex_constants::awk\r
+         | global_regex_namespace::regex_constants::grep\r
+         | global_regex_namespace::regex_constants::egrep;\r
+      ignore_unused_variable_warning(opts);\r
+\r
+      function_requires<BitmaskConcept<global_regex_namespace::regex_constants::match_flag_type> >();\r
+      global_regex_namespace::regex_constants::match_flag_type mopts\r
+         = global_regex_namespace::regex_constants::match_default\r
+         | global_regex_namespace::regex_constants::match_not_bol\r
+         | global_regex_namespace::regex_constants::match_not_eol\r
+         | global_regex_namespace::regex_constants::match_not_bow\r
+         | global_regex_namespace::regex_constants::match_not_eow\r
+         | global_regex_namespace::regex_constants::match_any\r
+         | global_regex_namespace::regex_constants::match_not_null\r
+         | global_regex_namespace::regex_constants::match_continuous\r
+         | global_regex_namespace::regex_constants::match_prev_avail\r
+         | global_regex_namespace::regex_constants::format_default\r
+         | global_regex_namespace::regex_constants::format_sed\r
+         | global_regex_namespace::regex_constants::format_no_copy\r
+         | global_regex_namespace::regex_constants::format_first_only;\r
+      ignore_unused_variable_warning(mopts);\r
+\r
+      BOOST_STATIC_ASSERT((::boost::is_enum<global_regex_namespace::regex_constants::error_type>::value));\r
+      global_regex_namespace::regex_constants::error_type e1 = global_regex_namespace::regex_constants::error_collate;\r
+      ignore_unused_variable_warning(e1);\r
+      e1 = global_regex_namespace::regex_constants::error_ctype;\r
+      ignore_unused_variable_warning(e1);\r
+      e1 = global_regex_namespace::regex_constants::error_escape;\r
+      ignore_unused_variable_warning(e1);\r
+      e1 = global_regex_namespace::regex_constants::error_backref;\r
+      ignore_unused_variable_warning(e1);\r
+      e1 = global_regex_namespace::regex_constants::error_brack;\r
+      ignore_unused_variable_warning(e1);\r
+      e1 = global_regex_namespace::regex_constants::error_paren;\r
+      ignore_unused_variable_warning(e1);\r
+      e1 = global_regex_namespace::regex_constants::error_brace;\r
+      ignore_unused_variable_warning(e1);\r
+      e1 = global_regex_namespace::regex_constants::error_badbrace;\r
+      ignore_unused_variable_warning(e1);\r
+      e1 = global_regex_namespace::regex_constants::error_range;\r
+      ignore_unused_variable_warning(e1);\r
+      e1 = global_regex_namespace::regex_constants::error_space;\r
+      ignore_unused_variable_warning(e1);\r
+      e1 = global_regex_namespace::regex_constants::error_badrepeat;\r
+      ignore_unused_variable_warning(e1);\r
+      e1 = global_regex_namespace::regex_constants::error_complexity;\r
+      ignore_unused_variable_warning(e1);\r
+      e1 = global_regex_namespace::regex_constants::error_stack;\r
+      ignore_unused_variable_warning(e1);\r
+\r
+      BOOST_STATIC_ASSERT((::boost::is_base_and_derived<std::runtime_error, global_regex_namespace::regex_error>::value  ));\r
+      const global_regex_namespace::regex_error except(e1);\r
+      e1 = except.code();\r
+\r
+      typedef typename Regex::value_type value_type;\r
+      function_requires< RegexTraitsConcept<global_regex_namespace::regex_traits<char> > >();\r
+      function_requires< BaseRegexConcept<global_regex_namespace::basic_regex<char> > >();\r
+   }\r
+   void constraints() \r
+   {\r
+      global_constraints();\r
+\r
+      BOOST_STATIC_ASSERT((::boost::is_same< flag_type, global_regex_namespace::regex_constants::syntax_option_type>::value));\r
+      flag_type opts\r
+         = Regex::icase\r
+         | Regex::nosubs\r
+         | Regex::optimize\r
+         | Regex::collate\r
+         | Regex::ECMAScript\r
+         | Regex::basic\r
+         | Regex::extended\r
+         | Regex::awk\r
+         | Regex::grep\r
+         | Regex::egrep;\r
+      ignore_unused_variable_warning(opts);\r
+\r
+      function_requires<DefaultConstructibleConcept<Regex> >();\r
+      function_requires<CopyConstructibleConcept<Regex> >();\r
+\r
+      // Regex constructors:\r
+      Regex e1(m_pointer);\r
+      ignore_unused_variable_warning(e1);\r
+      Regex e2(m_pointer, m_flags);\r
+      ignore_unused_variable_warning(e2);\r
+      Regex e3(m_pointer, m_size, m_flags);\r
+      ignore_unused_variable_warning(e3);\r
+      Regex e4(in1, in2);\r
+      ignore_unused_variable_warning(e4);\r
+      Regex e5(in1, in2, m_flags);\r
+      ignore_unused_variable_warning(e5);\r
+\r
+      // assign etc:\r
+      Regex e;\r
+      e = m_pointer;\r
+      e = e1;\r
+      e.assign(e1);\r
+      e.assign(m_pointer);\r
+      e.assign(m_pointer, m_flags);\r
+      e.assign(m_pointer, m_size, m_flags);\r
+      e.assign(in1, in2);\r
+      e.assign(in1, in2, m_flags);\r
+\r
+      // access:\r
+      const Regex ce;\r
+      unsigned i = ce.mark_count();\r
+      ignore_unused_variable_warning(i);\r
+      m_flags = ce.flags();\r
+      e.imbue(ce.getloc());\r
+      e.swap(e1);\r
+      \r
+      global_regex_namespace::swap(e, e1);\r
+\r
+      // sub_match:\r
+      BOOST_STATIC_ASSERT((::boost::is_base_and_derived<std::pair<BidiIterator, BidiIterator>, sub_match_type>::value));\r
+      typedef typename sub_match_type::value_type sub_value_type;\r
+      typedef typename sub_match_type::difference_type sub_diff_type;\r
+      typedef typename sub_match_type::iterator sub_iter_type;\r
+      BOOST_STATIC_ASSERT((::boost::is_same<sub_value_type, value_type>::value));\r
+      BOOST_STATIC_ASSERT((::boost::is_same<sub_iter_type, BidiIterator>::value));\r
+      bool b = m_sub.matched;\r
+      ignore_unused_variable_warning(b);\r
+      BidiIterator bi = m_sub.first;\r
+      ignore_unused_variable_warning(bi);\r
+      bi = m_sub.second;\r
+      ignore_unused_variable_warning(bi);\r
+      sub_diff_type diff = m_sub.length();\r
+      ignore_unused_variable_warning(diff);\r
+      // match_results tests:\r
+      typedef typename match_results_type::value_type mr_value_type;\r
+      typedef typename match_results_type::const_reference mr_const_reference;\r
+      typedef typename match_results_type::reference mr_reference;\r
+      typedef typename match_results_type::const_iterator mr_const_iterator;\r
+      typedef typename match_results_type::iterator mr_iterator;\r
+      typedef typename match_results_type::difference_type mr_difference_type;\r
+      typedef typename match_results_type::size_type mr_size_type;\r
+      typedef typename match_results_type::allocator_type mr_allocator_type;\r
+      typedef typename match_results_type::char_type mr_char_type;\r
+      typedef typename match_results_type::string_type mr_string_type;\r
+\r
+      match_results_type m1;\r
+      mr_allocator_type at;\r
+      match_results_type m2(at);\r
+      match_results_type m3(m1);\r
+      m1 = m2;\r
+\r
+      int ival = 0;\r
+\r
+      mr_size_type mrs = m_cresults.size();\r
+      ignore_unused_variable_warning(mrs);\r
+      mrs = m_cresults.max_size();\r
+      ignore_unused_variable_warning(mrs);\r
+      b = m_cresults.empty();\r
+      ignore_unused_variable_warning(b);\r
+      mr_difference_type mrd = m_cresults.length();\r
+      ignore_unused_variable_warning(mrd);\r
+      mrd = m_cresults.length(ival);\r
+      ignore_unused_variable_warning(mrd);\r
+      mrd = m_cresults.position();\r
+      ignore_unused_variable_warning(mrd);\r
+      mrd = m_cresults.position(mrs);\r
+      ignore_unused_variable_warning(mrd);\r
+\r
+      mr_const_reference mrcr = m_cresults[ival];\r
+      ignore_unused_variable_warning(mrcr);\r
+      mr_const_reference mrcr2 = m_cresults.prefix();\r
+      ignore_unused_variable_warning(mrcr2);\r
+      mr_const_reference mrcr3 = m_cresults.suffix();\r
+      ignore_unused_variable_warning(mrcr3);\r
+      mr_const_iterator mrci = m_cresults.begin();\r
+      ignore_unused_variable_warning(mrci);\r
+      mrci = m_cresults.end();\r
+      ignore_unused_variable_warning(mrci);\r
+\r
+      mr_allocator_type at2 = m_cresults.get_allocator();\r
+      m_results.swap(m_results);\r
+      global_regex_namespace::swap(m_results, m_results);\r
+\r
+      // regex_match:\r
+      b = global_regex_namespace::regex_match(m_in, m_in, m_results, e);\r
+      ignore_unused_variable_warning(b);\r
+      b = global_regex_namespace::regex_match(m_in, m_in, m_results, e, m_mft);\r
+      ignore_unused_variable_warning(b);\r
+      b = global_regex_namespace::regex_match(m_in, m_in, e);\r
+      ignore_unused_variable_warning(b);\r
+      b = global_regex_namespace::regex_match(m_in, m_in, e, m_mft);\r
+      ignore_unused_variable_warning(b);\r
+      b = global_regex_namespace::regex_match(m_pointer, m_pmatch, e);\r
+      ignore_unused_variable_warning(b);\r
+      b = global_regex_namespace::regex_match(m_pointer, m_pmatch, e, m_mft);\r
+      ignore_unused_variable_warning(b);\r
+      b = global_regex_namespace::regex_match(m_pointer, e);\r
+      ignore_unused_variable_warning(b);\r
+      b = global_regex_namespace::regex_match(m_pointer, e, m_mft);\r
+      ignore_unused_variable_warning(b);\r
+      // regex_search:\r
+      b = global_regex_namespace::regex_search(m_in, m_in, m_results, e);\r
+      ignore_unused_variable_warning(b);\r
+      b = global_regex_namespace::regex_search(m_in, m_in, m_results, e, m_mft);\r
+      ignore_unused_variable_warning(b);\r
+      b = global_regex_namespace::regex_search(m_in, m_in, e);\r
+      ignore_unused_variable_warning(b);\r
+      b = global_regex_namespace::regex_search(m_in, m_in, e, m_mft);\r
+      ignore_unused_variable_warning(b);\r
+      b = global_regex_namespace::regex_search(m_pointer, m_pmatch, e);\r
+      ignore_unused_variable_warning(b);\r
+      b = global_regex_namespace::regex_search(m_pointer, m_pmatch, e, m_mft);\r
+      ignore_unused_variable_warning(b);\r
+      b = global_regex_namespace::regex_search(m_pointer, e);\r
+      ignore_unused_variable_warning(b);\r
+      b = global_regex_namespace::regex_search(m_pointer, e, m_mft);\r
+      ignore_unused_variable_warning(b);\r
+\r
+      // regex_iterator:\r
+      typedef typename regex_iterator_type::regex_type rit_regex_type;\r
+      typedef typename regex_iterator_type::value_type rit_value_type;\r
+      typedef typename regex_iterator_type::difference_type rit_difference_type;\r
+      typedef typename regex_iterator_type::pointer rit_pointer;\r
+      typedef typename regex_iterator_type::reference rit_reference;\r
+      typedef typename regex_iterator_type::iterator_category rit_iterator_category;\r
+      BOOST_STATIC_ASSERT((::boost::is_same<rit_regex_type, Regex>::value));\r
+      BOOST_STATIC_ASSERT((::boost::is_same<rit_value_type, match_results_type>::value));\r
+      BOOST_STATIC_ASSERT((::boost::is_same<rit_difference_type, std::ptrdiff_t>::value));\r
+      BOOST_STATIC_ASSERT((::boost::is_same<rit_pointer, const match_results_type*>::value));\r
+      BOOST_STATIC_ASSERT((::boost::is_same<rit_reference, const match_results_type&>::value));\r
+      BOOST_STATIC_ASSERT((::boost::is_convertible<rit_iterator_category*, std::forward_iterator_tag*>::value));\r
+      // this takes care of most of the checks needed:\r
+      function_requires<ForwardIteratorConcept<regex_iterator_type> >();\r
+      regex_iterator_type iter1(m_in, m_in, e);\r
+      ignore_unused_variable_warning(iter1);\r
+      regex_iterator_type iter2(m_in, m_in, e, m_mft);\r
+      ignore_unused_variable_warning(iter2);\r
+\r
+      // regex_token_iterator:\r
+      typedef typename regex_token_iterator_type::regex_type rtit_regex_type;\r
+      typedef typename regex_token_iterator_type::value_type rtit_value_type;\r
+      typedef typename regex_token_iterator_type::difference_type rtit_difference_type;\r
+      typedef typename regex_token_iterator_type::pointer rtit_pointer;\r
+      typedef typename regex_token_iterator_type::reference rtit_reference;\r
+      typedef typename regex_token_iterator_type::iterator_category rtit_iterator_category;\r
+      BOOST_STATIC_ASSERT((::boost::is_same<rtit_regex_type, Regex>::value));\r
+      BOOST_STATIC_ASSERT((::boost::is_same<rtit_value_type, sub_match_type>::value));\r
+      BOOST_STATIC_ASSERT((::boost::is_same<rtit_difference_type, std::ptrdiff_t>::value));\r
+      BOOST_STATIC_ASSERT((::boost::is_same<rtit_pointer, const sub_match_type*>::value));\r
+      BOOST_STATIC_ASSERT((::boost::is_same<rtit_reference, const sub_match_type&>::value));\r
+      BOOST_STATIC_ASSERT((::boost::is_convertible<rtit_iterator_category*, std::forward_iterator_tag*>::value));\r
+      // this takes care of most of the checks needed:\r
+      function_requires<ForwardIteratorConcept<regex_token_iterator_type> >();\r
+      regex_token_iterator_type ti1(m_in, m_in, e);\r
+      ignore_unused_variable_warning(ti1);\r
+      regex_token_iterator_type ti2(m_in, m_in, e, 0);\r
+      ignore_unused_variable_warning(ti2);\r
+      regex_token_iterator_type ti3(m_in, m_in, e, 0, m_mft);\r
+      ignore_unused_variable_warning(ti3);\r
+      std::vector<int> subs;\r
+      regex_token_iterator_type ti4(m_in, m_in, e, subs);\r
+      ignore_unused_variable_warning(ti4);\r
+      regex_token_iterator_type ti5(m_in, m_in, e, subs, m_mft);\r
+      ignore_unused_variable_warning(ti5);\r
+      static const int i_array[3] = { 1, 2, 3, };\r
+      regex_token_iterator_type ti6(m_in, m_in, e, i_array);\r
+      ignore_unused_variable_warning(ti6);\r
+      regex_token_iterator_type ti7(m_in, m_in, e, i_array, m_mft);\r
+      ignore_unused_variable_warning(ti7);\r
+   }\r
+\r
+   pointer_type m_pointer;\r
+   flag_type m_flags;\r
+   std::size_t m_size;\r
+   input_iterator_type in1, in2;\r
+   const sub_match_type m_sub;\r
+   const value_type m_char;\r
+   match_results_type m_results;\r
+   const match_results_type m_cresults;\r
+   OutIterator m_out;\r
+   BidiIterator m_in;\r
+   global_regex_namespace::regex_constants::match_flag_type m_mft;\r
+   global_regex_namespace::match_results<pointer_type> m_pmatch;\r
+\r
+   BaseRegexConcept();\r
+   BaseRegexConcept(const BaseRegexConcept&);\r
+   BaseRegexConcept& operator=(const BaseRegexConcept&);\r
+};\r
+\r
+//\r
+// RegexConcept:\r
+// Test every interface in the std:\r
+//\r
+template <class Regex>\r
+struct RegexConcept\r
+{\r
+   typedef typename Regex::value_type value_type;\r
+   //typedef typename Regex::size_type size_type;\r
+   typedef typename Regex::flag_type flag_type;\r
+   typedef typename Regex::locale_type locale_type;\r
+\r
+   // derived test types:\r
+   typedef const value_type* pointer_type;\r
+   typedef std::basic_string<value_type> string_type;\r
+   typedef boost::bidirectional_iterator_archetype<value_type> BidiIterator;\r
+   typedef global_regex_namespace::sub_match<BidiIterator> sub_match_type;\r
+   typedef global_regex_namespace::match_results<BidiIterator> match_results_type;\r
+   typedef output_iterator_archetype<value_type> OutIterator;\r
+\r
+\r
+   void constraints() \r
+   {\r
+      function_requires<BaseRegexConcept<Regex> >();\r
+      // string based construct:\r
+      Regex e1(m_string);\r
+      ignore_unused_variable_warning(e1);\r
+      Regex e2(m_string, m_flags);\r
+      ignore_unused_variable_warning(e2);\r
+\r
+      // assign etc:\r
+      Regex e;\r
+      e = m_string;\r
+      e.assign(m_string);\r
+      e.assign(m_string, m_flags);\r
+\r
+      // sub_match:\r
+      string_type s(m_sub);\r
+      ignore_unused_variable_warning(s);\r
+      s = m_sub.str();\r
+      ignore_unused_variable_warning(s);\r
+      int i = m_sub.compare(m_string);\r
+      ignore_unused_variable_warning(i);\r
+\r
+      int i2 = m_sub.compare(m_sub);\r
+      ignore_unused_variable_warning(i2);\r
+      i2 = m_sub.compare(m_pointer);\r
+      ignore_unused_variable_warning(i2);\r
+\r
+      bool b = m_sub == m_sub;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_sub != m_sub;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_sub <= m_sub;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_sub <= m_sub;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_sub > m_sub;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_sub >= m_sub;\r
+      ignore_unused_variable_warning(b);\r
+\r
+      b = m_sub == m_pointer;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_sub != m_pointer;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_sub <= m_pointer;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_sub <= m_pointer;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_sub > m_pointer;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_sub >= m_pointer;\r
+      ignore_unused_variable_warning(b);\r
+\r
+      b = m_pointer == m_sub;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_pointer != m_sub;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_pointer <= m_sub;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_pointer <= m_sub;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_pointer > m_sub;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_pointer >= m_sub;\r
+      ignore_unused_variable_warning(b);\r
+\r
+      b = m_sub == m_char;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_sub != m_char;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_sub <= m_char;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_sub <= m_char;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_sub > m_char;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_sub >= m_char;\r
+      ignore_unused_variable_warning(b);\r
+\r
+      b = m_char == m_sub;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_char != m_sub;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_char <= m_sub;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_char <= m_sub;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_char > m_sub;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_char >= m_sub;\r
+      ignore_unused_variable_warning(b);\r
+\r
+      b = m_sub == m_string;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_sub != m_string;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_sub <= m_string;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_sub <= m_string;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_sub > m_string;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_sub >= m_string;\r
+      ignore_unused_variable_warning(b);\r
+\r
+      b = m_string == m_sub;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_string != m_sub;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_string <= m_sub;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_string <= m_sub;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_string > m_sub;\r
+      ignore_unused_variable_warning(b);\r
+      b = m_string >= m_sub;\r
+      ignore_unused_variable_warning(b);\r
+\r
+      // match results:\r
+      m_string = m_results.str();\r
+      ignore_unused_variable_warning(m_string);\r
+      m_string = m_results.str(0);\r
+      ignore_unused_variable_warning(m_string);\r
+      m_out = m_cresults.format(m_out, m_string);\r
+      m_out = m_cresults.format(m_out, m_string, m_mft);\r
+      m_string = m_cresults.format(m_string);\r
+      ignore_unused_variable_warning(m_string);\r
+      m_string = m_cresults.format(m_string, m_mft);\r
+      ignore_unused_variable_warning(m_string);\r
+\r
+      // regex_match:\r
+      b = global_regex_namespace::regex_match(m_string, m_smatch, e);\r
+      ignore_unused_variable_warning(b);\r
+      b = global_regex_namespace::regex_match(m_string, m_smatch, e, m_mft);\r
+      ignore_unused_variable_warning(b);\r
+      b = global_regex_namespace::regex_match(m_string, e);\r
+      ignore_unused_variable_warning(b);\r
+      b = global_regex_namespace::regex_match(m_string, e, m_mft);\r
+      ignore_unused_variable_warning(b);\r
+\r
+      // regex_search:\r
+      b = global_regex_namespace::regex_search(m_string, m_smatch, e);\r
+      ignore_unused_variable_warning(b);\r
+      b = global_regex_namespace::regex_search(m_string, m_smatch, e, m_mft);\r
+      ignore_unused_variable_warning(b);\r
+      b = global_regex_namespace::regex_search(m_string, e);\r
+      ignore_unused_variable_warning(b);\r
+      b = global_regex_namespace::regex_search(m_string, e, m_mft);\r
+      ignore_unused_variable_warning(b);\r
+\r
+      // regex_replace:\r
+      m_out = global_regex_namespace::regex_replace(m_out, m_in, m_in, e, m_string, m_mft);\r
+      m_out = global_regex_namespace::regex_replace(m_out, m_in, m_in, e, m_string);\r
+      m_string = global_regex_namespace::regex_replace(m_string, e, m_string, m_mft);\r
+      ignore_unused_variable_warning(m_string);\r
+      m_string = global_regex_namespace::regex_replace(m_string, e, m_string);\r
+      ignore_unused_variable_warning(m_string);\r
+\r
+   }\r
+\r
+   flag_type m_flags;\r
+   string_type m_string;\r
+   const sub_match_type m_sub;\r
+   match_results_type m_results;\r
+   pointer_type m_pointer;\r
+   value_type m_char;\r
+   const match_results_type m_cresults;\r
+   OutIterator m_out;\r
+   BidiIterator m_in;\r
+   global_regex_namespace::regex_constants::match_flag_type m_mft;\r
+   global_regex_namespace::match_results<typename string_type::const_iterator> m_smatch;\r
+\r
+   RegexConcept();\r
+   RegexConcept(const RegexConcept&);\r
+   RegexConcept& operator=(const RegexConcept&);\r
+};\r
+\r
+#ifndef BOOST_REGEX_TEST_STD\r
+//\r
+// BoostRegexConcept:\r
+// Test every interface in the Boost implementation:\r
+//\r
+template <class Regex>\r
+struct BoostRegexConcept\r
+{\r
+   typedef typename Regex::value_type value_type;\r
+   typedef typename Regex::size_type size_type;\r
+   typedef typename Regex::flag_type flag_type;\r
+   typedef typename Regex::locale_type locale_type;\r
+\r
+   // derived test types:\r
+   typedef const value_type* pointer_type;\r
+   typedef std::basic_string<value_type> string_type;\r
+   typedef typename Regex::const_iterator const_iterator;\r
+   typedef bidirectional_iterator_archetype<value_type> BidiIterator;\r
+   typedef global_regex_namespace::sub_match<BidiIterator> sub_match_type;\r
+   typedef global_regex_namespace::match_results<BidiIterator> match_results_type;\r
+\r
+   void constraints() \r
+   {\r
+      global_regex_namespace::regex_constants::match_flag_type mopts\r
+         = global_regex_namespace::regex_constants::match_default\r
+         | global_regex_namespace::regex_constants::match_not_bol\r
+         | global_regex_namespace::regex_constants::match_not_eol\r
+         | global_regex_namespace::regex_constants::match_not_bow\r
+         | global_regex_namespace::regex_constants::match_not_eow\r
+         | global_regex_namespace::regex_constants::match_any\r
+         | global_regex_namespace::regex_constants::match_not_null\r
+         | global_regex_namespace::regex_constants::match_continuous\r
+         | global_regex_namespace::regex_constants::match_partial\r
+         | global_regex_namespace::regex_constants::match_prev_avail\r
+         | global_regex_namespace::regex_constants::format_default\r
+         | global_regex_namespace::regex_constants::format_sed\r
+         | global_regex_namespace::regex_constants::format_perl\r
+         | global_regex_namespace::regex_constants::format_no_copy\r
+         | global_regex_namespace::regex_constants::format_first_only;\r
+\r
+      (void)mopts;\r
+\r
+      function_requires<RegexConcept<Regex> >();\r
+      const global_regex_namespace::regex_error except(global_regex_namespace::regex_constants::error_collate);\r
+      std::ptrdiff_t pt = except.position();\r
+      ignore_unused_variable_warning(pt);\r
+      const Regex ce, ce2;\r
+#ifndef BOOST_NO_STD_LOCALE\r
+      m_stream << ce;\r
+#endif\r
+      unsigned i = ce.error_code();\r
+      ignore_unused_variable_warning(i);\r
+      pointer_type p = ce.expression();\r
+      ignore_unused_variable_warning(p);\r
+      int i2 = ce.compare(ce2);\r
+      ignore_unused_variable_warning(i2);\r
+      bool b = ce == ce2;\r
+      ignore_unused_variable_warning(b);\r
+      b = ce.empty();\r
+      ignore_unused_variable_warning(b);\r
+      b = ce != ce2;\r
+      ignore_unused_variable_warning(b);\r
+      b = ce < ce2;\r
+      ignore_unused_variable_warning(b);\r
+      b = ce > ce2;\r
+      ignore_unused_variable_warning(b);\r
+      b = ce <= ce2;\r
+      ignore_unused_variable_warning(b);\r
+      b = ce >= ce2;\r
+      ignore_unused_variable_warning(b);\r
+      i = ce.status();\r
+      ignore_unused_variable_warning(i);\r
+      size_type s = ce.max_size();\r
+      ignore_unused_variable_warning(s);\r
+      s = ce.size();\r
+      ignore_unused_variable_warning(s);\r
+      const_iterator pi = ce.begin();\r
+      ignore_unused_variable_warning(pi);\r
+      pi = ce.end();\r
+      ignore_unused_variable_warning(pi);\r
+      string_type s2 = ce.str();\r
+      ignore_unused_variable_warning(s2);\r
+\r
+      m_string = m_sub + m_sub;\r
+      ignore_unused_variable_warning(m_string);\r
+      m_string = m_sub + m_pointer;\r
+      ignore_unused_variable_warning(m_string);\r
+      m_string = m_pointer + m_sub;\r
+      ignore_unused_variable_warning(m_string);\r
+      m_string = m_sub + m_string;\r
+      ignore_unused_variable_warning(m_string);\r
+      m_string = m_string + m_sub;\r
+      ignore_unused_variable_warning(m_string);\r
+      m_string = m_sub + m_char;\r
+      ignore_unused_variable_warning(m_string);\r
+      m_string = m_char + m_sub;\r
+      ignore_unused_variable_warning(m_string);\r
+\r
+#ifndef BOOST_NO_STD_LOCALE\r
+      m_stream << m_sub;\r
+      m_stream << m_cresults;\r
+#endif\r
+   }\r
+\r
+   std::basic_ostream<value_type> m_stream;\r
+   sub_match_type m_sub;\r
+   pointer_type m_pointer;\r
+   string_type m_string;\r
+   const value_type m_char;\r
+   match_results_type m_results;\r
+   const match_results_type m_cresults;\r
+\r
+   BoostRegexConcept();\r
+   BoostRegexConcept(const BoostRegexConcept&);\r
+   BoostRegexConcept& operator=(const BoostRegexConcept&);\r
+};\r
+\r
+#endif // BOOST_REGEX_TEST_STD\r
+\r
+}\r
+\r
+#endif\r
diff --git a/boost/boost/regex/icu.hpp b/boost/boost/regex/icu.hpp
new file mode 100644 (file)
index 0000000..601d03e
--- /dev/null
@@ -0,0 +1,1017 @@
+/*\r
+ *\r
+ * Copyright (c) 2004\r
+ * John Maddock\r
+ *\r
+ * Use, modification and distribution are subject to the \r
+ * Boost Software License, Version 1.0. (See accompanying file \r
+ * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
+ *\r
+ */\r
+\r
+ /*\r
+  *   LOCATION:    see http://www.boost.org for most recent version.\r
+  *   FILE         icu.hpp\r
+  *   VERSION      see <boost/version.hpp>\r
+  *   DESCRIPTION: Unicode regular expressions on top of the ICU Library.\r
+  */\r
+\r
+#ifndef BOOST_REGEX_ICU_HPP\r
+#define BOOST_REGEX_ICU_HPP\r
+\r
+#include <unicode/utypes.h>\r
+#include <unicode/uchar.h>\r
+#include <unicode/coll.h>\r
+#include <boost/regex.hpp>\r
+#include <boost/regex/pending/unicode_iterator.hpp>\r
+#include <boost/mpl/int_fwd.hpp>\r
+#include <bitset>\r
+\r
+\r
+namespace boost{\r
+\r
+namespace re_detail{\r
+\r
+// \r
+// Implementation details:\r
+//\r
+class BOOST_REGEX_DECL icu_regex_traits_implementation\r
+{\r
+   typedef UChar32                      char_type;\r
+   typedef std::size_t                  size_type;\r
+   typedef std::vector<char_type>       string_type;\r
+   typedef U_NAMESPACE_QUALIFIER Locale locale_type;\r
+   typedef boost::uint_least32_t        char_class_type;\r
+public:\r
+   icu_regex_traits_implementation(const U_NAMESPACE_QUALIFIER Locale& l)\r
+      : m_locale(l)\r
+   {\r
+      UErrorCode success = U_ZERO_ERROR;\r
+      m_collator.reset(U_NAMESPACE_QUALIFIER Collator::createInstance(l, success));\r
+      if(U_SUCCESS(success) == 0)\r
+         init_error();\r
+      m_collator->setStrength(U_NAMESPACE_QUALIFIER Collator::IDENTICAL);\r
+      success = U_ZERO_ERROR;\r
+      m_primary_collator.reset(U_NAMESPACE_QUALIFIER Collator::createInstance(l, success));\r
+      if(U_SUCCESS(success) == 0)\r
+         init_error();\r
+      m_primary_collator->setStrength(U_NAMESPACE_QUALIFIER Collator::PRIMARY);\r
+   }\r
+   U_NAMESPACE_QUALIFIER Locale getloc()const\r
+   {\r
+      return m_locale;\r
+   }\r
+   string_type do_transform(const char_type* p1, const char_type* p2, const U_NAMESPACE_QUALIFIER Collator* pcoll) const;\r
+   string_type transform(const char_type* p1, const char_type* p2) const\r
+   {\r
+      return do_transform(p1, p2, m_collator.get());\r
+   }\r
+   string_type transform_primary(const char_type* p1, const char_type* p2) const\r
+   {\r
+      return do_transform(p1, p2, m_primary_collator.get());\r
+   }\r
+private:\r
+   void init_error()\r
+   {\r
+      std::runtime_error e("Could not initialize ICU resources");\r
+      boost::throw_exception(e);\r
+   }\r
+   U_NAMESPACE_QUALIFIER Locale m_locale;                                  // The ICU locale that we're using\r
+   boost::scoped_ptr< U_NAMESPACE_QUALIFIER Collator> m_collator;          // The full collation object\r
+   boost::scoped_ptr< U_NAMESPACE_QUALIFIER Collator> m_primary_collator;  // The primary collation object\r
+};\r
+\r
+inline boost::shared_ptr<icu_regex_traits_implementation> get_icu_regex_traits_implementation(const U_NAMESPACE_QUALIFIER Locale& loc)\r
+{\r
+   return boost::shared_ptr<icu_regex_traits_implementation>(new icu_regex_traits_implementation(loc));\r
+}\r
+\r
+}\r
+\r
+class BOOST_REGEX_DECL icu_regex_traits\r
+{\r
+public:\r
+   typedef UChar32                      char_type;\r
+   typedef std::size_t                  size_type;\r
+   typedef std::vector<char_type>       string_type;\r
+   typedef U_NAMESPACE_QUALIFIER Locale locale_type;\r
+#ifdef BOOST_NO_INT64_T\r
+   typedef std::bitset<64>              char_class_type;\r
+#else\r
+   typedef boost::uint64_t              char_class_type;\r
+#endif\r
+\r
+   struct boost_extensions_tag{};\r
+\r
+   icu_regex_traits()\r
+      : m_pimpl(re_detail::get_icu_regex_traits_implementation(U_NAMESPACE_QUALIFIER Locale()))\r
+   {\r
+   }\r
+   static size_type length(const char_type* p);\r
+\r
+   ::boost::regex_constants::syntax_type syntax_type(char_type c)const\r
+   {\r
+      return ((c < 0x7f) && (c > 0)) ? re_detail::get_default_syntax_type(static_cast<char>(c)) : regex_constants::syntax_char;\r
+   }\r
+   ::boost::regex_constants::escape_syntax_type escape_syntax_type(char_type c) const\r
+   {\r
+      return ((c < 0x7f) && (c > 0)) ? re_detail::get_default_escape_syntax_type(static_cast<char>(c)) : regex_constants::syntax_char;\r
+   }\r
+   char_type translate(char_type c) const\r
+   {\r
+      return c;\r
+   }\r
+   char_type translate_nocase(char_type c) const\r
+   {\r
+      return ::u_tolower(c);\r
+   }\r
+   char_type translate(char_type c, bool icase) const\r
+   {\r
+      return icase ? translate_nocase(c) : translate(c);\r
+   }\r
+   char_type tolower(char_type c) const\r
+   {\r
+      return ::u_tolower(c);\r
+   }\r
+   char_type toupper(char_type c) const\r
+   {\r
+      return ::u_toupper(c);\r
+   }\r
+   string_type transform(const char_type* p1, const char_type* p2) const\r
+   {\r
+      return m_pimpl->transform(p1, p2);\r
+   }\r
+   string_type transform_primary(const char_type* p1, const char_type* p2) const\r
+   {\r
+      return m_pimpl->transform_primary(p1, p2);\r
+   }\r
+   char_class_type lookup_classname(const char_type* p1, const char_type* p2) const;\r
+   string_type lookup_collatename(const char_type* p1, const char_type* p2) const;\r
+   bool isctype(char_type c, char_class_type f) const;\r
+   int toi(const char_type*& p1, const char_type* p2, int radix)const\r
+   {\r
+      return re_detail::global_toi(p1, p2, radix, *this);\r
+   }\r
+   int value(char_type c, int radix)const\r
+   {\r
+      return u_digit(c, static_cast< ::int8_t>(radix));\r
+   }\r
+   locale_type imbue(locale_type l)\r
+   {\r
+      locale_type result(m_pimpl->getloc());\r
+      m_pimpl = re_detail::get_icu_regex_traits_implementation(l);\r
+      return result;\r
+   }\r
+   locale_type getloc()const\r
+   {\r
+      return locale_type();\r
+   }\r
+   std::string error_string(::boost::regex_constants::error_type n) const\r
+   {\r
+      return re_detail::get_default_error_string(n);\r
+   }\r
+private:\r
+   icu_regex_traits(const icu_regex_traits&);\r
+   icu_regex_traits& operator=(const icu_regex_traits&);\r
+\r
+   //\r
+   // define the bitmasks offsets we need for additional character properties:\r
+   //\r
+   enum{\r
+      offset_blank = U_CHAR_CATEGORY_COUNT,\r
+      offset_space = U_CHAR_CATEGORY_COUNT+1,\r
+      offset_xdigit = U_CHAR_CATEGORY_COUNT+2,\r
+      offset_underscore = U_CHAR_CATEGORY_COUNT+3,\r
+      offset_unicode = U_CHAR_CATEGORY_COUNT+4,\r
+      offset_any = U_CHAR_CATEGORY_COUNT+5,\r
+      offset_ascii = U_CHAR_CATEGORY_COUNT+6\r
+   };\r
+\r
+   //\r
+   // and now the masks:\r
+   //\r
+   static const char_class_type mask_blank;\r
+   static const char_class_type mask_space;\r
+   static const char_class_type mask_xdigit;\r
+   static const char_class_type mask_underscore;\r
+   static const char_class_type mask_unicode;\r
+   static const char_class_type mask_any;\r
+   static const char_class_type mask_ascii;\r
+\r
+   static char_class_type lookup_icu_mask(const ::UChar32* p1, const ::UChar32* p2);\r
+\r
+   boost::shared_ptr< ::boost::re_detail::icu_regex_traits_implementation> m_pimpl;\r
+};\r
+\r
+} // namespace boost\r
+\r
+//\r
+// template instances:\r
+//\r
+#define BOOST_REGEX_CHAR_T UChar32\r
+#undef BOOST_REGEX_TRAITS_T\r
+#define BOOST_REGEX_TRAITS_T , icu_regex_traits\r
+#define BOOST_REGEX_ICU_INSTANCES\r
+#ifdef BOOST_REGEX_ICU_INSTANTIATE\r
+#  define BOOST_REGEX_INSTANTIATE\r
+#endif\r
+#include <boost/regex/v4/instances.hpp>\r
+#undef BOOST_REGEX_CHAR_T\r
+#undef BOOST_REGEX_TRAITS_T\r
+#undef BOOST_REGEX_ICU_INSTANCES\r
+#ifdef BOOST_REGEX_INSTANTIATE\r
+#  undef BOOST_REGEX_INSTANTIATE\r
+#endif\r
+\r
+namespace boost{\r
+\r
+// types:\r
+typedef basic_regex< ::UChar32, icu_regex_traits> u32regex;\r
+typedef match_results<const ::UChar32*> u32match;\r
+typedef match_results<const ::UChar*> u16match;\r
+\r
+//\r
+// Construction of 32-bit regex types from UTF-8 and UTF-16 primitives:\r
+//\r
+namespace re_detail{\r
+\r
+#if !defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(__IBMCPP__)\r
+template <class InputIterator>\r
+inline u32regex do_make_u32regex(InputIterator i, \r
+                              InputIterator j, \r
+                              boost::regex_constants::syntax_option_type opt, \r
+                              const boost::mpl::int_<1>*)\r
+{\r
+   typedef boost::u8_to_u32_iterator<InputIterator, UChar32> conv_type;\r
+   return u32regex(conv_type(i), conv_type(j), opt);\r
+}\r
+\r
+template <class InputIterator>\r
+inline u32regex do_make_u32regex(InputIterator i, \r
+                              InputIterator j, \r
+                              boost::regex_constants::syntax_option_type opt, \r
+                              const boost::mpl::int_<2>*)\r
+{\r
+   typedef boost::u16_to_u32_iterator<InputIterator, UChar32> conv_type;\r
+   return u32regex(conv_type(i), conv_type(j), opt);\r
+}\r
+\r
+template <class InputIterator>\r
+inline u32regex do_make_u32regex(InputIterator i, \r
+                              InputIterator j, \r
+                              boost::regex_constants::syntax_option_type opt, \r
+                              const boost::mpl::int_<4>*)\r
+{\r
+   return u32regex(i, j, opt);\r
+}\r
+#else\r
+template <class InputIterator>\r
+inline u32regex do_make_u32regex(InputIterator i, \r
+                              InputIterator j, \r
+                              boost::regex_constants::syntax_option_type opt, \r
+                              const boost::mpl::int_<1>*)\r
+{\r
+   typedef boost::u8_to_u32_iterator<InputIterator, UChar32> conv_type;\r
+   typedef std::vector<UChar32> vector_type;\r
+   vector_type v;\r
+   conv_type a(i), b(j);\r
+   while(a != b)\r
+   {\r
+      v.push_back(*a);\r
+      ++a;\r
+   }\r
+   if(v.size())\r
+      return u32regex(&*v.begin(), v.size(), opt);\r
+   return u32regex(static_cast<UChar32 const*>(0), static_cast<u32regex::size_type>(0), opt);\r
+}\r
+\r
+template <class InputIterator>\r
+inline u32regex do_make_u32regex(InputIterator i, \r
+                              InputIterator j, \r
+                              boost::regex_constants::syntax_option_type opt, \r
+                              const boost::mpl::int_<2>*)\r
+{\r
+   typedef boost::u16_to_u32_iterator<InputIterator, UChar32> conv_type;\r
+   typedef std::vector<UChar32> vector_type;\r
+   vector_type v;\r
+   conv_type a(i), b(j);\r
+   while(a != b)\r
+   {\r
+      v.push_back(*a);\r
+      ++a;\r
+   }\r
+   if(v.size())\r
+      return u32regex(&*v.begin(), v.size(), opt);\r
+   return u32regex(static_cast<UChar32 const*>(0), static_cast<u32regex::size_type>(0), opt);\r
+}\r
+\r
+template <class InputIterator>\r
+inline u32regex do_make_u32regex(InputIterator i, \r
+                              InputIterator j, \r
+                              boost::regex_constants::syntax_option_type opt, \r
+                              const boost::mpl::int_<4>*)\r
+{\r
+   typedef std::vector<UCHAR32> vector_type;\r
+   vector_type v;\r
+   while(i != j)\r
+   {\r
+      v.push_back((UCHAR32)(*i));\r
+      ++a;\r
+   }\r
+   if(v.size())\r
+      return u32regex(&*v.begin(), v.size(), opt);\r
+   return u32regex(static_cast<UChar32 const*>(0), static_cast<u32regex::size_type>(0), opt);\r
+}\r
+#endif\r
+}\r
+\r
+//\r
+// Construction from an iterator pair:\r
+//\r
+template <class InputIterator>\r
+inline u32regex make_u32regex(InputIterator i, \r
+                              InputIterator j, \r
+                              boost::regex_constants::syntax_option_type opt)\r
+{\r
+   return re_detail::do_make_u32regex(i, j, opt, static_cast<boost::mpl::int_<sizeof(*i)> const*>(0));\r
+}\r
+//\r
+// construction from UTF-8 nul-terminated strings:\r
+//\r
+inline u32regex make_u32regex(const char* p, boost::regex_constants::syntax_option_type opt = boost::regex_constants::perl)\r
+{\r
+   return re_detail::do_make_u32regex(p, p + std::strlen(p), opt, static_cast<boost::mpl::int_<1> const*>(0));\r
+}\r
+inline u32regex make_u32regex(const unsigned char* p, boost::regex_constants::syntax_option_type opt = boost::regex_constants::perl)\r
+{\r
+   return re_detail::do_make_u32regex(p, p + std::strlen(reinterpret_cast<const char*>(p)), opt, static_cast<boost::mpl::int_<1> const*>(0));\r
+}\r
+//\r
+// construction from UTF-16 nul-terminated strings:\r
+//\r
+#ifndef BOOST_NO_WREGEX\r
+inline u32regex make_u32regex(const wchar_t* p, boost::regex_constants::syntax_option_type opt = boost::regex_constants::perl)\r
+{\r
+   return re_detail::do_make_u32regex(p, p + std::wcslen(p), opt, static_cast<boost::mpl::int_<sizeof(wchar_t)> const*>(0));\r
+}\r
+#endif\r
+#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2)\r
+inline u32regex make_u32regex(const UChar* p, boost::regex_constants::syntax_option_type opt = boost::regex_constants::perl)\r
+{\r
+   return re_detail::do_make_u32regex(p, p + u_strlen(p), opt, static_cast<boost::mpl::int_<2> const*>(0));\r
+}\r
+#endif\r
+//\r
+// construction from basic_string class-template:\r
+//\r
+template<class C, class T, class A>\r
+inline u32regex make_u32regex(const std::basic_string<C, T, A>& s, boost::regex_constants::syntax_option_type opt = boost::regex_constants::perl)\r
+{\r
+   return re_detail::do_make_u32regex(s.begin(), s.end(), opt, static_cast<boost::mpl::int_<sizeof(C)> const*>(0));\r
+}\r
+//\r
+// Construction from ICU string type:\r
+//\r
+inline u32regex make_u32regex(const UnicodeString& s, boost::regex_constants::syntax_option_type opt = boost::regex_constants::perl)\r
+{\r
+   return re_detail::do_make_u32regex(s.getBuffer(), s.getBuffer() + s.length(), opt, static_cast<boost::mpl::int_<2> const*>(0));\r
+}\r
+\r
+//\r
+// regex_match overloads that widen the character type as appropriate:\r
+//\r
+namespace re_detail{\r
+template<class MR1, class MR2>\r
+void copy_results(MR1& out, MR2 const& in)\r
+{\r
+   // copy results from an adapted MR2 match_results:\r
+   out.set_size(in.size(), in.prefix().first.base(), in.suffix().second.base());\r
+   out.set_base(in.base().base());\r
+   for(int i = 0; i < (int)in.size(); ++i)\r
+   {\r
+      if(in[i].matched)\r
+      {\r
+         out.set_first(in[i].first.base(), i);\r
+         out.set_second(in[i].second.base(), i);\r
+      }\r
+   }\r
+}\r
+\r
+template <class BidiIterator, class Allocator>\r
+inline bool do_regex_match(BidiIterator first, BidiIterator last, \r
+                 match_results<BidiIterator, Allocator>& m, \r
+                 const u32regex& e, \r
+                 match_flag_type flags,\r
+                 boost::mpl::int_<4> const*)\r
+{\r
+   return ::boost::regex_match(first, last, m, e, flags);\r
+}\r
+template <class BidiIterator, class Allocator>\r
+bool do_regex_match(BidiIterator first, BidiIterator last, \r
+                 match_results<BidiIterator, Allocator>& m, \r
+                 const u32regex& e, \r
+                 match_flag_type flags,\r
+                 boost::mpl::int_<2> const*)\r
+{\r
+   typedef u16_to_u32_iterator<BidiIterator, UChar32> conv_type;\r
+   typedef match_results<conv_type>                   match_type;\r
+   typedef typename match_type::allocator_type        alloc_type;\r
+   match_type what;\r
+   bool result = ::boost::regex_match(conv_type(first), conv_type(last), what, e, flags);\r
+   // copy results across to m:\r
+   if(result) copy_results(m, what);\r
+   return result;\r
+}\r
+template <class BidiIterator, class Allocator>\r
+bool do_regex_match(BidiIterator first, BidiIterator last, \r
+                 match_results<BidiIterator, Allocator>& m, \r
+                 const u32regex& e, \r
+                 match_flag_type flags,\r
+                 boost::mpl::int_<1> const*)\r
+{\r
+   typedef u8_to_u32_iterator<BidiIterator, UChar32>  conv_type;\r
+   typedef match_results<conv_type>                   match_type;\r
+   typedef typename match_type::allocator_type        alloc_type;\r
+   match_type what;\r
+   bool result = ::boost::regex_match(conv_type(first), conv_type(last), what, e, flags);\r
+   // copy results across to m:\r
+   if(result) copy_results(m, what);\r
+   return result;\r
+}\r
+} // namespace re_detail\r
+\r
+template <class BidiIterator, class Allocator>\r
+inline bool u32regex_match(BidiIterator first, BidiIterator last, \r
+                 match_results<BidiIterator, Allocator>& m, \r
+                 const u32regex& e, \r
+                 match_flag_type flags = match_default)\r
+{\r
+   return re_detail::do_regex_match(first, last, m, e, flags, static_cast<mpl::int_<sizeof(*first)> const*>(0));\r
+}\r
+inline bool u32regex_match(const UChar* p, \r
+                 match_results<const UChar*>& m, \r
+                 const u32regex& e, \r
+                 match_flag_type flags = match_default)\r
+{\r
+   return re_detail::do_regex_match(p, p+u_strlen(p), m, e, flags, static_cast<mpl::int_<2> const*>(0));\r
+}\r
+#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2) && !defined(BOOST_NO_WREGEX)\r
+inline bool u32regex_match(const wchar_t* p, \r
+                 match_results<const wchar_t*>& m, \r
+                 const u32regex& e, \r
+                 match_flag_type flags = match_default)\r
+{\r
+   return re_detail::do_regex_match(p, p+std::wcslen(p), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));\r
+}\r
+#endif\r
+inline bool u32regex_match(const char* p, \r
+                 match_results<const char*>& m, \r
+                 const u32regex& e, \r
+                 match_flag_type flags = match_default)\r
+{\r
+   return re_detail::do_regex_match(p, p+std::strlen(p), m, e, flags, static_cast<mpl::int_<1> const*>(0));\r
+}\r
+inline bool u32regex_match(const unsigned char* p, \r
+                 match_results<const unsigned char*>& m, \r
+                 const u32regex& e, \r
+                 match_flag_type flags = match_default)\r
+{\r
+   return re_detail::do_regex_match(p, p+std::strlen((const char*)p), m, e, flags, static_cast<mpl::int_<1> const*>(0));\r
+}\r
+inline bool u32regex_match(const std::string& s, \r
+                        match_results<std::string::const_iterator>& m, \r
+                        const u32regex& e, \r
+                        match_flag_type flags = match_default)\r
+{\r
+   return re_detail::do_regex_match(s.begin(), s.end(), m, e, flags, static_cast<mpl::int_<1> const*>(0));\r
+}\r
+#ifndef BOOST_NO_STD_WSTRING\r
+inline bool u32regex_match(const std::wstring& s, \r
+                        match_results<std::wstring::const_iterator>& m, \r
+                        const u32regex& e, \r
+                        match_flag_type flags = match_default)\r
+{\r
+   return re_detail::do_regex_match(s.begin(), s.end(), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));\r
+}\r
+#endif\r
+inline bool u32regex_match(const UnicodeString& s, \r
+                        match_results<const UChar*>& m, \r
+                        const u32regex& e, \r
+                        match_flag_type flags = match_default)\r
+{\r
+   return re_detail::do_regex_match(s.getBuffer(), s.getBuffer() + s.length(), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));\r
+}\r
+//\r
+// regex_match overloads that do not return what matched:\r
+//\r
+template <class BidiIterator>\r
+inline bool u32regex_match(BidiIterator first, BidiIterator last, \r
+                 const u32regex& e, \r
+                 match_flag_type flags = match_default)\r
+{\r
+   match_results<BidiIterator> m;\r
+   return re_detail::do_regex_match(first, last, m, e, flags, static_cast<mpl::int_<sizeof(*first)> const*>(0));\r
+}\r
+inline bool u32regex_match(const UChar* p, \r
+                 const u32regex& e, \r
+                 match_flag_type flags = match_default)\r
+{\r
+   match_results<const UChar*> m;\r
+   return re_detail::do_regex_match(p, p+u_strlen(p), m, e, flags, static_cast<mpl::int_<2> const*>(0));\r
+}\r
+#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2) && !defined(BOOST_NO_WREGEX)\r
+inline bool u32regex_match(const wchar_t* p, \r
+                 const u32regex& e, \r
+                 match_flag_type flags = match_default)\r
+{\r
+   match_results<const wchar_t*> m;\r
+   return re_detail::do_regex_match(p, p+std::wcslen(p), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));\r
+}\r
+#endif\r
+inline bool u32regex_match(const char* p, \r
+                 const u32regex& e, \r
+                 match_flag_type flags = match_default)\r
+{\r
+   match_results<const char*> m;\r
+   return re_detail::do_regex_match(p, p+std::strlen(p), m, e, flags, static_cast<mpl::int_<1> const*>(0));\r
+}\r
+inline bool u32regex_match(const unsigned char* p, \r
+                 const u32regex& e, \r
+                 match_flag_type flags = match_default)\r
+{\r
+   match_results<const unsigned char*> m;\r
+   return re_detail::do_regex_match(p, p+std::strlen((const char*)p), m, e, flags, static_cast<mpl::int_<1> const*>(0));\r
+}\r
+inline bool u32regex_match(const std::string& s, \r
+                        const u32regex& e, \r
+                        match_flag_type flags = match_default)\r
+{\r
+   match_results<std::string::const_iterator> m;\r
+   return re_detail::do_regex_match(s.begin(), s.end(), m, e, flags, static_cast<mpl::int_<1> const*>(0));\r
+}\r
+#ifndef BOOST_NO_STD_WSTRING\r
+inline bool u32regex_match(const std::wstring& s, \r
+                        const u32regex& e, \r
+                        match_flag_type flags = match_default)\r
+{\r
+   match_results<std::wstring::const_iterator> m;\r
+   return re_detail::do_regex_match(s.begin(), s.end(), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));\r
+}\r
+#endif\r
+inline bool u32regex_match(const UnicodeString& s, \r
+                        const u32regex& e, \r
+                        match_flag_type flags = match_default)\r
+{\r
+   match_results<const UChar*> m;\r
+   return re_detail::do_regex_match(s.getBuffer(), s.getBuffer() + s.length(), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));\r
+}\r
+\r
+//\r
+// regex_search overloads that widen the character type as appropriate:\r
+//\r
+namespace re_detail{\r
+template <class BidiIterator, class Allocator>\r
+inline bool do_regex_search(BidiIterator first, BidiIterator last, \r
+                 match_results<BidiIterator, Allocator>& m, \r
+                 const u32regex& e, \r
+                 match_flag_type flags,\r
+                 BidiIterator base,\r
+                 boost::mpl::int_<4> const*)\r
+{\r
+   return ::boost::regex_search(first, last, m, e, flags, base);\r
+}\r
+template <class BidiIterator, class Allocator>\r
+bool do_regex_search(BidiIterator first, BidiIterator last, \r
+                 match_results<BidiIterator, Allocator>& m, \r
+                 const u32regex& e, \r
+                 match_flag_type flags,\r
+                 BidiIterator base,\r
+                 boost::mpl::int_<2> const*)\r
+{\r
+   typedef u16_to_u32_iterator<BidiIterator, UChar32> conv_type;\r
+   typedef match_results<conv_type>                   match_type;\r
+   typedef typename match_type::allocator_type        alloc_type;\r
+   match_type what;\r
+   bool result = ::boost::regex_search(conv_type(first), conv_type(last), what, e, flags, conv_type(base));\r
+   // copy results across to m:\r
+   if(result) copy_results(m, what);\r
+   return result;\r
+}\r
+template <class BidiIterator, class Allocator>\r
+bool do_regex_search(BidiIterator first, BidiIterator last, \r
+                 match_results<BidiIterator, Allocator>& m, \r
+                 const u32regex& e, \r
+                 match_flag_type flags,\r
+                 BidiIterator base,\r
+                 boost::mpl::int_<1> const*)\r
+{\r
+   typedef u8_to_u32_iterator<BidiIterator, UChar32>  conv_type;\r
+   typedef match_results<conv_type>                   match_type;\r
+   typedef typename match_type::allocator_type        alloc_type;\r
+   match_type what;\r
+   bool result = ::boost::regex_search(conv_type(first), conv_type(last), what, e, flags, conv_type(base));\r
+   // copy results across to m:\r
+   if(result) copy_results(m, what);\r
+   return result;\r
+}\r
+}\r
+\r
+template <class BidiIterator, class Allocator>\r
+inline bool u32regex_search(BidiIterator first, BidiIterator last, \r
+                 match_results<BidiIterator, Allocator>& m, \r
+                 const u32regex& e, \r
+                 match_flag_type flags = match_default)\r
+{\r
+   return re_detail::do_regex_search(first, last, m, e, flags, first, static_cast<mpl::int_<sizeof(*first)> const*>(0));\r
+}\r
+template <class BidiIterator, class Allocator>\r
+inline bool u32regex_search(BidiIterator first, BidiIterator last, \r
+                 match_results<BidiIterator, Allocator>& m, \r
+                 const u32regex& e, \r
+                 match_flag_type flags,\r
+                 BidiIterator base)\r
+{\r
+   return re_detail::do_regex_search(first, last, m, e, flags, base, static_cast<mpl::int_<sizeof(*first)> const*>(0));\r
+}\r
+inline bool u32regex_search(const UChar* p, \r
+                 match_results<const UChar*>& m, \r
+                 const u32regex& e, \r
+                 match_flag_type flags = match_default)\r
+{\r
+   return re_detail::do_regex_search(p, p+u_strlen(p), m, e, flags, p, static_cast<mpl::int_<2> const*>(0));\r
+}\r
+#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2) && !defined(BOOST_NO_WREGEX)\r
+inline bool u32regex_search(const wchar_t* p, \r
+                 match_results<const wchar_t*>& m, \r
+                 const u32regex& e, \r
+                 match_flag_type flags = match_default)\r
+{\r
+   return re_detail::do_regex_search(p, p+std::wcslen(p), m, e, flags, p, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));\r
+}\r
+#endif\r
+inline bool u32regex_search(const char* p, \r
+                 match_results<const char*>& m, \r
+                 const u32regex& e, \r
+                 match_flag_type flags = match_default)\r
+{\r
+   return re_detail::do_regex_search(p, p+std::strlen(p), m, e, flags, p, static_cast<mpl::int_<1> const*>(0));\r
+}\r
+inline bool u32regex_search(const unsigned char* p, \r
+                 match_results<const unsigned char*>& m, \r
+                 const u32regex& e, \r
+                 match_flag_type flags = match_default)\r
+{\r
+   return re_detail::do_regex_search(p, p+std::strlen((const char*)p), m, e, flags, p, static_cast<mpl::int_<1> const*>(0));\r
+}\r
+inline bool u32regex_search(const std::string& s, \r
+                        match_results<std::string::const_iterator>& m, \r
+                        const u32regex& e, \r
+                        match_flag_type flags = match_default)\r
+{\r
+   return re_detail::do_regex_search(s.begin(), s.end(), m, e, flags, s.begin(), static_cast<mpl::int_<1> const*>(0));\r
+}\r
+#ifndef BOOST_NO_STD_WSTRING\r
+inline bool u32regex_search(const std::wstring& s, \r
+                        match_results<std::wstring::const_iterator>& m, \r
+                        const u32regex& e, \r
+                        match_flag_type flags = match_default)\r
+{\r
+   return re_detail::do_regex_search(s.begin(), s.end(), m, e, flags, s.begin(), static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));\r
+}\r
+#endif\r
+inline bool u32regex_search(const UnicodeString& s, \r
+                        match_results<const UChar*>& m, \r
+                        const u32regex& e, \r
+                        match_flag_type flags = match_default)\r
+{\r
+   return re_detail::do_regex_search(s.getBuffer(), s.getBuffer() + s.length(), m, e, flags, s.getBuffer(), static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));\r
+}\r
+template <class BidiIterator>\r
+inline bool u32regex_search(BidiIterator first, BidiIterator last, \r
+                 const u32regex& e, \r
+                 match_flag_type flags = match_default)\r
+{\r
+   match_results<BidiIterator> m;\r
+   return re_detail::do_regex_search(first, last, m, e, flags, first, static_cast<mpl::int_<sizeof(*first)> const*>(0));\r
+}\r
+inline bool u32regex_search(const UChar* p, \r
+                 const u32regex& e, \r
+                 match_flag_type flags = match_default)\r
+{\r
+   match_results<const UChar*> m;\r
+   return re_detail::do_regex_search(p, p+u_strlen(p), m, e, flags, p, static_cast<mpl::int_<2> const*>(0));\r
+}\r
+#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2) && !defined(BOOST_NO_WREGEX)\r
+inline bool u32regex_search(const wchar_t* p, \r
+                 const u32regex& e, \r
+                 match_flag_type flags = match_default)\r
+{\r
+   match_results<const wchar_t*> m;\r
+   return re_detail::do_regex_search(p, p+std::wcslen(p), m, e, flags, p, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));\r
+}\r
+#endif\r
+inline bool u32regex_search(const char* p, \r
+                 const u32regex& e, \r
+                 match_flag_type flags = match_default)\r
+{\r
+   match_results<const char*> m;\r
+   return re_detail::do_regex_search(p, p+std::strlen(p), m, e, flags, p, static_cast<mpl::int_<1> const*>(0));\r
+}\r
+inline bool u32regex_search(const unsigned char* p, \r
+                 const u32regex& e, \r
+                 match_flag_type flags = match_default)\r
+{\r
+   match_results<const unsigned char*> m;\r
+   return re_detail::do_regex_search(p, p+std::strlen((const char*)p), m, e, flags, p, static_cast<mpl::int_<1> const*>(0));\r
+}\r
+inline bool u32regex_search(const std::string& s, \r
+                        const u32regex& e, \r
+                        match_flag_type flags = match_default)\r
+{\r
+   match_results<std::string::const_iterator> m;\r
+   return re_detail::do_regex_search(s.begin(), s.end(), m, e, flags, s.begin(), static_cast<mpl::int_<1> const*>(0));\r
+}\r
+#ifndef BOOST_NO_STD_WSTRING\r
+inline bool u32regex_search(const std::wstring& s, \r
+                        const u32regex& e, \r
+                        match_flag_type flags = match_default)\r
+{\r
+   match_results<std::wstring::const_iterator> m;\r
+   return re_detail::do_regex_search(s.begin(), s.end(), m, e, flags, s.begin(), static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));\r
+}\r
+#endif\r
+inline bool u32regex_search(const UnicodeString& s, \r
+                        const u32regex& e, \r
+                        match_flag_type flags = match_default)\r
+{\r
+   match_results<const UChar*> m;\r
+   return re_detail::do_regex_search(s.getBuffer(), s.getBuffer() + s.length(), m, e, flags, s.getBuffer(), static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));\r
+}\r
+\r
+//\r
+// overloads for regex_replace with utf-8 and utf-16 data types:\r
+//\r
+namespace re_detail{\r
+template <class I>\r
+inline std::pair< boost::u8_to_u32_iterator<I>, boost::u8_to_u32_iterator<I> >\r
+   make_utf32_seq(I i, I j, mpl::int_<1> const*)\r
+{\r
+   return std::pair< boost::u8_to_u32_iterator<I>, boost::u8_to_u32_iterator<I> >(boost::u8_to_u32_iterator<I>(i), boost::u8_to_u32_iterator<I>(j));\r
+}\r
+template <class I>\r
+inline std::pair< boost::u16_to_u32_iterator<I>, boost::u16_to_u32_iterator<I> >\r
+   make_utf32_seq(I i, I j, mpl::int_<2> const*)\r
+{\r
+   return std::pair< boost::u16_to_u32_iterator<I>, boost::u16_to_u32_iterator<I> >(boost::u16_to_u32_iterator<I>(i), boost::u16_to_u32_iterator<I>(j));\r
+}\r
+template <class I>\r
+inline std::pair< I, I >\r
+   make_utf32_seq(I i, I j, mpl::int_<4> const*)\r
+{\r
+   return std::pair< I, I >(i, j);\r
+}\r
+template <class charT>\r
+inline std::pair< boost::u8_to_u32_iterator<const charT*>, boost::u8_to_u32_iterator<const charT*> >\r
+   make_utf32_seq(const charT* p, mpl::int_<1> const*)\r
+{\r
+   return std::pair< boost::u8_to_u32_iterator<const charT*>, boost::u8_to_u32_iterator<const charT*> >(boost::u8_to_u32_iterator<const charT*>(p), boost::u8_to_u32_iterator<const charT*>(p+std::strlen((const char*)p)));\r
+}\r
+template <class charT>\r
+inline std::pair< boost::u16_to_u32_iterator<const charT*>, boost::u16_to_u32_iterator<const charT*> >\r
+   make_utf32_seq(const charT* p, mpl::int_<2> const*)\r
+{\r
+   return std::pair< boost::u16_to_u32_iterator<const charT*>, boost::u16_to_u32_iterator<const charT*> >(boost::u16_to_u32_iterator<const charT*>(p), boost::u16_to_u32_iterator<const charT*>(p+u_strlen((const UChar*)p)));\r
+}\r
+template <class charT>\r
+inline std::pair< const charT*, const charT* >\r
+   make_utf32_seq(const charT* p, mpl::int_<4> const*)\r
+{\r
+   return std::pair< const charT*, const charT* >(p, p+icu_regex_traits::length((UChar32 const*)p));\r
+}\r
+template <class OutputIterator>\r
+inline OutputIterator make_utf32_out(OutputIterator o, mpl::int_<4> const*)\r
+{\r
+   return o;\r
+}\r
+template <class OutputIterator>\r
+inline utf16_output_iterator<OutputIterator> make_utf32_out(OutputIterator o, mpl::int_<2> const*)\r
+{\r
+   return o;\r
+}\r
+template <class OutputIterator>\r
+inline utf8_output_iterator<OutputIterator> make_utf32_out(OutputIterator o, mpl::int_<1> const*)\r
+{\r
+   return o;\r
+}\r
+\r
+template <class OutputIterator, class I1, class I2>\r
+OutputIterator do_regex_replace(OutputIterator out,\r
+                                 std::pair<I1, I1> const& in,\r
+                                 const u32regex& e, \r
+                                 const std::pair<I2, I2>& fmt, \r
+                                 match_flag_type flags\r
+                                 )\r
+{\r
+   // unfortunately we have to copy the format string in order to pass in onward:\r
+   std::vector<UChar32> f;\r
+#ifndef BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS\r
+   f.assign(fmt.first, fmt.second);\r
+#else\r
+   f.clear();\r
+   I2 pos = fmt.first;\r
+   while(pos != fmt.second)\r
+      f.push_back(*pos++);\r
+#endif\r
+   \r
+   regex_iterator<I1, UChar32, icu_regex_traits> i(in.first, in.second, e, flags);\r
+   regex_iterator<I1, UChar32, icu_regex_traits> j;\r
+   if(i == j)\r
+   {\r
+      if(!(flags & regex_constants::format_no_copy))\r
+         out = re_detail::copy(in.first, in.second, out);\r
+   }\r
+   else\r
+   {\r
+      I1 last_m = in.first;\r
+      while(i != j)\r
+      {\r
+         if(!(flags & regex_constants::format_no_copy))\r
+            out = re_detail::copy(i->prefix().first, i->prefix().second, out); \r
+         if(f.size())\r
+            out = ::boost::re_detail::regex_format_imp(out, *i, &*f.begin(), &*f.begin() + f.size(), flags, e.get_traits());\r
+         else\r
+            out = ::boost::re_detail::regex_format_imp(out, *i, static_cast<UChar32 const*>(0), static_cast<UChar32 const*>(0), flags, e.get_traits());\r
+         last_m = (*i)[0].second;\r
+         if(flags & regex_constants::format_first_only)\r
+            break;\r
+         ++i;\r
+      }\r
+      if(!(flags & regex_constants::format_no_copy))\r
+         out = re_detail::copy(last_m, in.second, out);\r
+   }\r
+   return out;\r
+}\r
+template <class BaseIterator>\r
+inline const BaseIterator& extract_output_base(const BaseIterator& b)\r
+{\r
+   return b;\r
+}\r
+template <class BaseIterator>\r
+inline BaseIterator extract_output_base(const utf8_output_iterator<BaseIterator>& b)\r
+{\r
+   return b.base();\r
+}\r
+template <class BaseIterator>\r
+inline BaseIterator extract_output_base(const utf16_output_iterator<BaseIterator>& b)\r
+{\r
+   return b.base();\r
+}\r
+}  // re_detail\r
+\r
+template <class OutputIterator, class BidirectionalIterator, class charT>\r
+inline OutputIterator u32regex_replace(OutputIterator out,\r
+                         BidirectionalIterator first,\r
+                         BidirectionalIterator last,\r
+                         const u32regex& e, \r
+                         const charT* fmt, \r
+                         match_flag_type flags = match_default)\r
+{\r
+   return re_detail::extract_output_base\r
+#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)\r
+   <OutputIterator>\r
+#endif\r
+    (\r
+      re_detail::do_regex_replace(\r
+         re_detail::make_utf32_out(out, static_cast<mpl::int_<sizeof(*first)> const*>(0)),\r
+         re_detail::make_utf32_seq(first, last, static_cast<mpl::int_<sizeof(*first)> const*>(0)),\r
+         e,\r
+         re_detail::make_utf32_seq(fmt, static_cast<mpl::int_<sizeof(*fmt)> const*>(0)),\r
+         flags)\r
+      );\r
+}\r
+\r
+template <class OutputIterator, class Iterator, class charT>\r
+inline OutputIterator u32regex_replace(OutputIterator out,\r
+                         Iterator first,\r
+                         Iterator last,\r
+                         const u32regex& e, \r
+                         const std::basic_string<charT>& fmt,\r
+                         match_flag_type flags = match_default)\r
+{\r
+   return re_detail::extract_output_base\r
+#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)\r
+   <OutputIterator>\r
+#endif\r
+    (\r
+      re_detail::do_regex_replace(\r
+         re_detail::make_utf32_out(out, static_cast<mpl::int_<sizeof(*first)> const*>(0)),\r
+         re_detail::make_utf32_seq(first, last, static_cast<mpl::int_<sizeof(*first)> const*>(0)),\r
+         e,\r
+         re_detail::make_utf32_seq(fmt.begin(), fmt.end(), static_cast<mpl::int_<sizeof(charT)> const*>(0)),\r
+         flags)\r
+      );\r
+}\r
+\r
+template <class OutputIterator, class Iterator>\r
+inline OutputIterator u32regex_replace(OutputIterator out,\r
+                         Iterator first,\r
+                         Iterator last,\r
+                         const u32regex& e, \r
+                         const UnicodeString& fmt,\r
+                         match_flag_type flags = match_default)\r
+{\r
+   return re_detail::extract_output_base\r
+#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)\r
+   <OutputIterator>\r
+#endif\r
+   (\r
+      re_detail::do_regex_replace(\r
+         re_detail::make_utf32_out(out, static_cast<mpl::int_<sizeof(*first)> const*>(0)),\r
+         re_detail::make_utf32_seq(first, last, static_cast<mpl::int_<sizeof(*first)> const*>(0)),\r
+         e,\r
+         re_detail::make_utf32_seq(fmt.getBuffer(), fmt.getBuffer() + fmt.length(), static_cast<mpl::int_<2> const*>(0)),\r
+         flags)\r
+      );\r
+}\r
+\r
+template <class charT>\r
+std::basic_string<charT> u32regex_replace(const std::basic_string<charT>& s,\r
+                         const u32regex& e, \r
+                         const charT* fmt,\r
+                         match_flag_type flags = match_default)\r
+{\r
+   std::basic_string<charT> result;\r
+   re_detail::string_out_iterator<std::basic_string<charT> > i(result);\r
+   u32regex_replace(i, s.begin(), s.end(), e, fmt, flags);\r
+   return result;\r
+}\r
+\r
+template <class charT>\r
+std::basic_string<charT> u32regex_replace(const std::basic_string<charT>& s,\r
+                         const u32regex& e, \r
+                         const std::basic_string<charT>& fmt,\r
+                         match_flag_type flags = match_default)\r
+{\r
+   std::basic_string<charT> result;\r
+   re_detail::string_out_iterator<std::basic_string<charT> > i(result);\r
+   u32regex_replace(i, s.begin(), s.end(), e, fmt.c_str(), flags);\r
+   return result;\r
+}\r
+\r
+namespace re_detail{\r
+\r
+class unicode_string_out_iterator\r
+{\r
+   UnicodeString* out;\r
+public:\r
+   unicode_string_out_iterator(UnicodeString& s) : out(&s) {}\r
+   unicode_string_out_iterator& operator++() { return *this; }\r
+   unicode_string_out_iterator& operator++(int) { return *this; }\r
+   unicode_string_out_iterator& operator*() { return *this; }\r
+   unicode_string_out_iterator& operator=(UChar v) \r
+   { \r
+      *out += v; \r
+      return *this; \r
+   }\r
+   typedef std::ptrdiff_t difference_type;\r
+   typedef UChar value_type;\r
+   typedef value_type* pointer;\r
+   typedef value_type& reference;\r
+   typedef std::output_iterator_tag iterator_category;\r
+};\r
+\r
+}\r
+\r
+inline UnicodeString u32regex_replace(const UnicodeString& s,\r
+                         const u32regex& e, \r
+                         const UChar* fmt,\r
+                         match_flag_type flags = match_default)\r
+{\r
+   UnicodeString result;\r
+   re_detail::unicode_string_out_iterator i(result);\r
+   u32regex_replace(i, s.getBuffer(), s.getBuffer()+s.length(), e, fmt, flags);\r
+   return result;\r
+}\r
+\r
+inline UnicodeString u32regex_replace(const UnicodeString& s,\r
+                         const u32regex& e, \r
+                         const UnicodeString& fmt,\r
+                         match_flag_type flags = match_default)\r
+{\r
+   UnicodeString result;\r
+   re_detail::unicode_string_out_iterator i(result);\r
+   re_detail::do_regex_replace(\r
+         re_detail::make_utf32_out(i, static_cast<mpl::int_<2> const*>(0)),\r
+         re_detail::make_utf32_seq(s.getBuffer(), s.getBuffer()+s.length(), static_cast<mpl::int_<2> const*>(0)),\r
+         e,\r
+         re_detail::make_utf32_seq(fmt.getBuffer(), fmt.getBuffer() + fmt.length(), static_cast<mpl::int_<2> const*>(0)),\r
+         flags);\r
+   return result;\r
+}\r
+\r
+} // namespace boost.\r
+\r
+#include <boost/regex/v4/u32regex_iterator.hpp>\r
+#include <boost/regex/v4/u32regex_token_iterator.hpp>\r
+\r
+#endif\r
diff --git a/boost/boost/regex/mfc.hpp b/boost/boost/regex/mfc.hpp
new file mode 100644 (file)
index 0000000..900d9a7
--- /dev/null
@@ -0,0 +1,190 @@
+/*\r
+ *\r
+ * Copyright (c) 2004\r
+ * John Maddock\r
+ *\r
+ * Use, modification and distribution are subject to the \r
+ * Boost Software License, Version 1.0. (See accompanying file \r
+ * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
+ *\r
+ */\r
+\r
+ /*\r
+  *   LOCATION:    see http://www.boost.org for most recent version.\r
+  *   FILE         mfc.hpp\r
+  *   VERSION      see <boost/version.hpp>\r
+  *   DESCRIPTION: Overloads and helpers for using MFC/ATL string types with Boost.Regex.\r
+  */\r
+\r
+#ifndef BOOST_REGEX_MFC_HPP\r
+#define BOOST_REGEX_MFC_HPP\r
+\r
+#include <atlsimpstr.h>\r
+#include <boost/regex.hpp>\r
+\r
+namespace boost{\r
+\r
+//\r
+// define the types used for TCHAR's:\r
+typedef basic_regex<TCHAR> tregex;\r
+typedef match_results<TCHAR const*> tmatch;\r
+typedef regex_iterator<TCHAR const*> tregex_iterator;\r
+typedef regex_token_iterator<TCHAR const*> tregex_token_iterator;\r
+\r
+#if _MSC_VER >= 1310\r
+#define SIMPLE_STRING_PARAM class B, bool b\r
+#define SIMPLE_STRING_ARG_LIST B, b\r
+#else\r
+#define SIMPLE_STRING_PARAM class B\r
+#define SIMPLE_STRING_ARG_LIST B\r
+#endif\r
+\r
+//\r
+// define regex creation functions:\r
+//\r
+template <SIMPLE_STRING_PARAM>\r
+inline basic_regex<B> \r
+make_regex(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s, ::boost::regex_constants::syntax_option_type f = boost::regex_constants::normal)\r
+{\r
+   basic_regex<B> result(s.GetString(), s.GetString() + s.GetLength(), f);\r
+   return result;\r
+}\r
+//\r
+// regex_match overloads:\r
+//\r
+template <SIMPLE_STRING_PARAM, class A, class T>\r
+inline bool regex_match(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s,\r
+                 match_results<const B*, A>& what,\r
+                 const basic_regex<B, T>& e,\r
+                 boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)\r
+{\r
+   return ::boost::regex_match(s.GetString(),\r
+                               s.GetString() + s.GetLength(),\r
+                               what,\r
+                               e,\r
+                               f);\r
+}\r
+\r
+template <SIMPLE_STRING_PARAM, class T>\r
+inline bool regex_match(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s,\r
+                 const basic_regex<B, T>& e,\r
+                 boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)\r
+{\r
+   return ::boost::regex_match(s.GetString(),\r
+                               s.GetString() + s.GetLength(),\r
+                               e,\r
+                               f);\r
+}\r
+//\r
+// regex_search overloads:\r
+//\r
+template <SIMPLE_STRING_PARAM, class A, class T>\r
+inline bool regex_search(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s,\r
+                 match_results<const B*, A>& what,\r
+                 const basic_regex<B, T>& e,\r
+                 boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)\r
+{\r
+   return ::boost::regex_search(s.GetString(),\r
+                               s.GetString() + s.GetLength(),\r
+                               what,\r
+                               e,\r
+                               f);\r
+}\r
+\r
+template <SIMPLE_STRING_PARAM, class T>\r
+inline bool regex_search(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s,\r
+                 const basic_regex<B, T>& e,\r
+                 boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)\r
+{\r
+   return ::boost::regex_search(s.GetString(),\r
+                               s.GetString() + s.GetLength(),\r
+                               e,\r
+                               f);\r
+}\r
+//\r
+// regex_iterator creation:\r
+//\r
+template <SIMPLE_STRING_PARAM>\r
+inline regex_iterator<B const*> \r
+make_regex_iterator(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s, const basic_regex<B>& e, ::boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)\r
+{\r
+   regex_iterator<B const*> result(s.GetString(), s.GetString() + s.GetLength(), e, f);\r
+   return result;\r
+}\r
+\r
+template <SIMPLE_STRING_PARAM>\r
+inline regex_token_iterator<B const*> \r
+   make_regex_token_iterator(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s, const basic_regex<B>& e, int sub = 0, ::boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)\r
+{\r
+   regex_token_iterator<B const*> result(s.GetString(), s.GetString() + s.GetLength(), e, sub, f);\r
+   return result;\r
+}\r
+\r
+template <SIMPLE_STRING_PARAM>\r
+inline regex_token_iterator<B const*> \r
+make_regex_token_iterator(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s, const basic_regex<B>& e, const std::vector<int>& subs, ::boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)\r
+{\r
+   regex_token_iterator<B const*> result(s.GetString(), s.GetString() + s.GetLength(), e, subs, f);\r
+   return result;\r
+}\r
+\r
+template <SIMPLE_STRING_PARAM, std::size_t N>\r
+inline regex_token_iterator<B const*> \r
+make_regex_token_iterator(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s, const basic_regex<B>& e, const int (& subs)[N], ::boost::regex_constants::match_flag_type f = boost::regex_constants::match_default)\r
+{\r
+   regex_token_iterator<B const*> result(s.GetString(), s.GetString() + s.GetLength(), e, subs, f);\r
+   return result;\r
+}\r
+\r
+template <class OutputIterator, class BidirectionalIterator, class traits,\r
+          SIMPLE_STRING_PARAM>\r
+OutputIterator regex_replace(OutputIterator out,\r
+                           BidirectionalIterator first,\r
+                           BidirectionalIterator last,\r
+                           const basic_regex<B, traits>& e,\r
+                           const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& fmt,\r
+                           match_flag_type flags = match_default)\r
+{\r
+   return ::boost::regex_replace(out, first, last, e, fmt.GetString(), flags);\r
+}\r
+\r
+namespace re_detail{\r
+\r
+template <SIMPLE_STRING_PARAM>\r
+class mfc_string_out_iterator\r
+{\r
+   ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>* out;\r
+public:\r
+   mfc_string_out_iterator(ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s) : out(&s) {}\r
+   mfc_string_out_iterator& operator++() { return *this; }\r
+   mfc_string_out_iterator& operator++(int) { return *this; }\r
+   mfc_string_out_iterator& operator*() { return *this; }\r
+   mfc_string_out_iterator& operator=(B v) \r
+   { \r
+      out->AppendChar(v); \r
+      return *this; \r
+   }\r
+   typedef std::ptrdiff_t difference_type;\r
+   typedef B value_type;\r
+   typedef value_type* pointer;\r
+   typedef value_type& reference;\r
+   typedef std::output_iterator_tag iterator_category;\r
+};\r
+\r
+}\r
+\r
+template <class traits, SIMPLE_STRING_PARAM>\r
+ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST> regex_replace(const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& s,\r
+                            const basic_regex<B, traits>& e,\r
+                            const ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST>& fmt,\r
+                            match_flag_type flags = match_default)\r
+{\r
+   ATL::CSimpleStringT<SIMPLE_STRING_ARG_LIST> result(s.GetManager());\r
+   re_detail::mfc_string_out_iterator<SIMPLE_STRING_ARG_LIST> i(result);\r
+   regex_replace(i, s.GetString(), s.GetString() + s.GetLength(), e, fmt.GetString(), flags);\r
+   return result;\r
+}\r
+\r
+} // namespace boost.\r
+\r
+#endif\r
diff --git a/boost/boost/regex/pending/static_mutex.hpp b/boost/boost/regex/pending/static_mutex.hpp
new file mode 100644 (file)
index 0000000..6e5d5f4
--- /dev/null
@@ -0,0 +1,184 @@
+/*\r
+ *\r
+ * Copyright (c) 2004\r
+ * John Maddock\r
+ *\r
+ * Use, modification and distribution are subject to the \r
+ * Boost Software License, Version 1.0. (See accompanying file \r
+ * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
+ *\r
+ */\r
\r
+ /*\r
+  *   LOCATION:    see http://www.boost.org for most recent version.\r
+  *   FILE         static_mutex.hpp\r
+  *   VERSION      see <boost/version.hpp>\r
+  *   DESCRIPTION: Declares static_mutex lock type, there are three different\r
+  *                implementations: POSIX pthreads, WIN32 threads, and portable,\r
+  *                these are described in more detail below.\r
+  */\r
+\r
+#ifndef BOOST_REGEX_STATIC_MUTEX_HPP\r
+#define BOOST_REGEX_STATIC_MUTEX_HPP\r
+\r
+#include <boost/config.hpp>\r
+#include <boost/regex/config.hpp> // dll import/export options.\r
+\r
+#ifdef BOOST_HAS_PTHREADS\r
+#include <pthread.h>\r
+#endif\r
+\r
+#if defined(BOOST_HAS_PTHREADS) && defined(PTHREAD_MUTEX_INITIALIZER)\r
+//\r
+// pthreads version:\r
+// simple wrap around a pthread_mutex_t initialized with\r
+// PTHREAD_MUTEX_INITIALIZER.\r
+//\r
+namespace boost{\r
+\r
+class BOOST_REGEX_DECL scoped_static_mutex_lock;\r
+\r
+class static_mutex\r
+{\r
+public:\r
+   typedef scoped_static_mutex_lock scoped_lock;\r
+   pthread_mutex_t m_mutex;\r
+};\r
+\r
+#define BOOST_STATIC_MUTEX_INIT { PTHREAD_MUTEX_INITIALIZER, }\r
+\r
+class BOOST_REGEX_DECL scoped_static_mutex_lock\r
+{\r
+public:\r
+   scoped_static_mutex_lock(static_mutex& mut, bool lk = true);\r
+   ~scoped_static_mutex_lock();\r
+   inline bool locked()const\r
+   {\r
+      return m_have_lock;\r
+   }\r
+   inline operator void const*()const\r
+   {\r
+      return locked() ? this : 0;\r
+   }\r
+   void lock();\r
+   void unlock();\r
+private:\r
+   static_mutex& m_mutex;\r
+   bool m_have_lock;\r
+};\r
+\r
+\r
+} // namespace boost\r
+#elif defined(BOOST_HAS_WINTHREADS)\r
+//\r
+// Win32 version:\r
+// Use a 32-bit int as a lock, along with a test-and-set\r
+// implementation using InterlockedCompareExchange.\r
+//\r
+\r
+#include <boost/cstdint.hpp>\r
+\r
+namespace boost{\r
+\r
+class BOOST_REGEX_DECL scoped_static_mutex_lock;\r
+\r
+class static_mutex\r
+{\r
+public:\r
+   typedef scoped_static_mutex_lock scoped_lock;\r
+   boost::int32_t m_mutex;\r
+};\r
+\r
+#define BOOST_STATIC_MUTEX_INIT { 0, }\r
+\r
+class BOOST_REGEX_DECL scoped_static_mutex_lock\r
+{\r
+public:\r
+   scoped_static_mutex_lock(static_mutex& mut, bool lk = true);\r
+   ~scoped_static_mutex_lock();\r
+   operator void const*()const;\r
+   bool locked()const;\r
+   void lock();\r
+   void unlock();\r
+private:\r
+   static_mutex& m_mutex;\r
+   bool m_have_lock;\r
+   scoped_static_mutex_lock(const scoped_static_mutex_lock&);\r
+   scoped_static_mutex_lock& operator=(const scoped_static_mutex_lock&);\r
+};\r
+\r
+inline scoped_static_mutex_lock::operator void const*()const\r
+{\r
+   return locked() ? this : 0;\r
+}\r
+\r
+inline bool scoped_static_mutex_lock::locked()const\r
+{\r
+   return m_have_lock;\r
+}\r
+\r
+} // namespace\r
+\r
+#else\r
+//\r
+// Portable version of a static mutex based on Boost.Thread library:\r
+// This has to use a single mutex shared by all instances of static_mutex\r
+// because boost::call_once doesn't alow us to pass instance information\r
+// down to the initialisation proceedure.  In fact the initialisation routine\r
+// may need to be called more than once - but only once per instance.\r
+//\r
+// Since this preprocessor path is almost never taken, we hide these header\r
+// dependencies so that build tools don't find them.\r
+//\r
+#define B1 <boost/thread/once.hpp>\r
+#define B2 <boost/thread/recursive_mutex.hpp>\r
+#include B1\r
+#include B2\r
+#undef B1\r
+#undef B2\r
+\r
+namespace boost{\r
+\r
+class BOOST_REGEX_DECL scoped_static_mutex_lock;\r
+extern "C" BOOST_REGEX_DECL void free_static_mutex();\r
+\r
+class BOOST_REGEX_DECL static_mutex\r
+{\r
+public:\r
+   typedef scoped_static_mutex_lock scoped_lock;\r
+   static void init();\r
+   static boost::recursive_mutex* m_pmutex;\r
+   static boost::once_flag m_once;\r
+};\r
+\r
+#define BOOST_STATIC_MUTEX_INIT {  }\r
+\r
+class BOOST_REGEX_DECL scoped_static_mutex_lock\r
+{\r
+public:\r
+   scoped_static_mutex_lock(static_mutex& mut, bool lk = true);\r
+   ~scoped_static_mutex_lock();\r
+   operator void const*()const;\r
+   bool locked()const;\r
+   void lock();\r
+   void unlock();\r
+private:\r
+   boost::recursive_mutex::scoped_lock* m_plock;\r
+   bool m_have_lock;\r
+};\r
+\r
+inline scoped_static_mutex_lock::operator void const*()const\r
+{\r
+   return locked() ? this : 0;\r
+}\r
+\r
+inline bool scoped_static_mutex_lock::locked()const\r
+{\r
+   return m_have_lock;\r
+}\r
+\r
+} // namespace\r
+\r
+#endif\r
+\r
+#endif\r
diff --git a/boost/boost/regex/pending/unicode_iterator.hpp b/boost/boost/regex/pending/unicode_iterator.hpp
new file mode 100644 (file)
index 0000000..f9f9e3f
--- /dev/null
@@ -0,0 +1,692 @@
+/*\r
+ *\r
+ * Copyright (c) 2004\r
+ * John Maddock\r
+ *\r
+ * Use, modification and distribution are subject to the \r
+ * Boost Software License, Version 1.0. (See accompanying file \r
+ * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
+ *\r
+ */\r
\r
+ /*\r
+  *   LOCATION:    see http://www.boost.org for most recent version.\r
+  *   FILE         unicode_iterator.hpp\r
+  *   VERSION      see <boost/version.hpp>\r
+  *   DESCRIPTION: Iterator adapters for converting between different Unicode encodings.\r
+  */\r
+\r
+/****************************************************************************\r
+\r
+Contents:\r
+~~~~~~~~~\r
+\r
+1) Read Only, Input Adapters:\r
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r
+\r
+template <class BaseIterator, class U8Type = ::boost::uint8_t>\r
+class u32_to_u8_iterator;\r
+\r
+Adapts sequence of UTF-32 code points to "look like" a sequence of UTF-8.\r
+\r
+template <class BaseIterator, class U32Type = ::boost::uint32_t>\r
+class u8_to_u32_iterator;\r
+\r
+Adapts sequence of UTF-8 code points to "look like" a sequence of UTF-32.\r
+\r
+template <class BaseIterator, class U16Type = ::boost::uint16_t>\r
+class u32_to_u16_iterator;\r
+\r
+Adapts sequence of UTF-32 code points to "look like" a sequence of UTF-16.\r
+\r
+template <class BaseIterator, class U32Type = ::boost::uint32_t>\r
+class u16_to_u32_iterator;\r
+\r
+Adapts sequence of UTF-16 code points to "look like" a sequence of UTF-32.\r
+\r
+2) Single pass output iterator adapters:\r
+\r
+template <class BaseIterator>\r
+class utf8_output_iterator;\r
+\r
+Accepts UTF-32 code points and forwards them on as UTF-8 code points.\r
+\r
+template <class BaseIterator>\r
+class utf16_output_iterator;\r
+\r
+Accepts UTF-32 code points and forwards them on as UTF-16 code points.\r
+\r
+****************************************************************************/\r
+\r
+#ifndef BOOST_REGEX_UNICODE_ITERATOR_HPP\r
+#define BOOST_REGEX_UNICODE_ITERATOR_HPP\r
+#include <boost/cstdint.hpp>\r
+#include <boost/assert.hpp>\r
+#include <boost/iterator/iterator_facade.hpp>\r
+#include <boost/static_assert.hpp>\r
+#include <boost/throw_exception.hpp>\r
+#include <stdexcept>\r
+#ifndef BOOST_NO_STD_LOCALE\r
+#include <sstream>\r
+#include <ios>\r
+#endif\r
+#include <limits.h> // CHAR_BIT\r
+\r
+namespace boost{\r
+\r
+namespace detail{\r
+\r
+static const ::boost::uint16_t high_surrogate_base = 0xD7C0u;\r
+static const ::boost::uint16_t low_surrogate_base = 0xDC00u;\r
+static const ::boost::uint32_t ten_bit_mask = 0x3FFu;\r
+\r
+inline bool is_high_surrogate(::boost::uint16_t v)\r
+{\r
+   return (v & 0xFC00u) == 0xd800u;\r
+}\r
+inline bool is_low_surrogate(::boost::uint16_t v)\r
+{\r
+   return (v & 0xFC00u) == 0xdc00u;\r
+}\r
+template <class T>\r
+inline bool is_surrogate(T v)\r
+{\r
+   return (v & 0xF800u) == 0xd800;\r
+}\r
+\r
+inline unsigned utf8_byte_count(boost::uint8_t c)\r
+{\r
+   // if the most significant bit with a zero in it is in position\r
+   // 8-N then there are N bytes in this UTF-8 sequence:\r
+   boost::uint8_t mask = 0x80u;\r
+   unsigned result = 0;\r
+   while(c & mask)\r
+   {\r
+      ++result;\r
+      mask >>= 1;\r
+   }\r
+   return (result == 0) ? 1 : ((result > 4) ? 4 : result);\r
+}\r
+\r
+inline unsigned utf8_trailing_byte_count(boost::uint8_t c)\r
+{\r
+   return utf8_byte_count(c) - 1;\r
+}\r
+\r
+inline void invalid_utf32_code_point(::boost::uint32_t val)\r
+{\r
+#ifndef BOOST_NO_STD_LOCALE\r
+   std::stringstream ss;\r
+   ss << "Invalid UTF-32 code point U+" << std::showbase << std::hex << val << " encountered while trying to encode UTF-16 sequence";\r
+   std::out_of_range e(ss.str());\r
+#else\r
+   std::out_of_range e("Invalid UTF-32 code point encountered while trying to encode UTF-16 sequence");\r
+#endif\r
+   boost::throw_exception(e);\r
+}\r
+\r
+\r
+} // namespace detail\r
+\r
+template <class BaseIterator, class U16Type = ::boost::uint16_t>\r
+class u32_to_u16_iterator\r
+   : public boost::iterator_facade<u32_to_u16_iterator<BaseIterator, U16Type>, U16Type, std::bidirectional_iterator_tag, const U16Type>\r
+{\r
+   typedef boost::iterator_facade<u32_to_u16_iterator<BaseIterator, U16Type>, U16Type, std::bidirectional_iterator_tag, const U16Type> base_type;\r
+\r
+#if !defined(BOOST_NO_STD_ITERATOR_TRAITS) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)\r
+   typedef typename std::iterator_traits<BaseIterator>::value_type base_value_type;\r
+\r
+   BOOST_STATIC_ASSERT(sizeof(base_value_type)*CHAR_BIT == 32);\r
+   BOOST_STATIC_ASSERT(sizeof(U16Type)*CHAR_BIT == 16);\r
+#endif\r
+\r
+public:\r
+   typename base_type::reference\r
+      dereference()const\r
+   {\r
+      if(m_current == 2)\r
+         extract_current();\r
+      return m_values[m_current];\r
+   }\r
+   bool equal(const u32_to_u16_iterator& that)const\r
+   {\r
+      if(m_position == that.m_position)\r
+      {\r
+         // Both m_currents must be equal, or both even\r
+         // this is the same as saying their sum must be even:\r
+         return (m_current + that.m_current) & 1u ? false : true;\r
+      }\r
+      return false;\r
+   }\r
+   void increment()\r
+   {\r
+      // if we have a pending read then read now, so that we know whether\r
+      // to skip a position, or move to a low-surrogate:\r
+      if(m_current == 2)\r
+      {\r
+         // pending read:\r
+         extract_current();\r
+      }\r
+      // move to the next surrogate position:\r
+      ++m_current;\r
+      // if we've reached the end skip a position:\r
+      if(m_values[m_current] == 0)\r
+      {\r
+         m_current = 2;\r
+         ++m_position;\r
+      }\r
+   }\r
+   void decrement()\r
+   {\r
+      if(m_current != 1)\r
+      {\r
+         // decrementing an iterator always leads to a valid position:\r
+         --m_position;\r
+         extract_current();\r
+         m_current = m_values[1] ? 1 : 0;\r
+      }\r
+      else\r
+      {\r
+         m_current = 0;\r
+      }\r
+   }\r
+   BaseIterator base()const\r
+   {\r
+      return m_position;\r
+   }\r
+   // construct:\r
+   u32_to_u16_iterator() : m_position(), m_current(0)\r
+   {\r
+      m_values[0] = 0;\r
+      m_values[1] = 0;\r
+      m_values[2] = 0;\r
+   }\r
+   u32_to_u16_iterator(BaseIterator b) : m_position(b), m_current(2)\r
+   {\r
+      m_values[0] = 0;\r
+      m_values[1] = 0;\r
+      m_values[2] = 0;\r
+   }\r
+private:\r
+\r
+   void extract_current()const\r
+   {\r
+      // begin by checking for a code point out of range:\r
+      ::boost::uint32_t v = *m_position;\r
+      if(v >= 0x10000u)\r
+      {\r
+         if(v > 0x10FFFFu)\r
+            detail::invalid_utf32_code_point(*m_position);\r
+         // split into two surrogates:\r
+         m_values[0] = static_cast<U16Type>(v >> 10) + detail::high_surrogate_base;\r
+         m_values[1] = static_cast<U16Type>(v & detail::ten_bit_mask) + detail::low_surrogate_base;\r
+         m_current = 0;\r
+         BOOST_ASSERT(detail::is_high_surrogate(m_values[0]));\r
+         BOOST_ASSERT(detail::is_low_surrogate(m_values[1]));\r
+      }\r
+      else\r
+      {\r
+         // 16-bit code point:\r
+         m_values[0] = static_cast<U16Type>(*m_position);\r
+         m_values[1] = 0;\r
+         m_current = 0;\r
+         // value must not be a surrogate:\r
+         if(detail::is_surrogate(m_values[0]))\r
+            detail::invalid_utf32_code_point(*m_position);\r
+      }\r
+   }\r
+   BaseIterator m_position;\r
+   mutable U16Type m_values[3];\r
+   mutable unsigned m_current;\r
+};\r
+\r
+template <class BaseIterator, class U32Type = ::boost::uint32_t>\r
+class u16_to_u32_iterator\r
+   : public boost::iterator_facade<u16_to_u32_iterator<BaseIterator, U32Type>, U32Type, std::bidirectional_iterator_tag, const U32Type>\r
+{\r
+   typedef boost::iterator_facade<u16_to_u32_iterator<BaseIterator, U32Type>, U32Type, std::bidirectional_iterator_tag, const U32Type> base_type;\r
+   // special values for pending iterator reads:\r
+   BOOST_STATIC_CONSTANT(U32Type, pending_read = 0xffffffffu);\r
+\r
+#if !defined(BOOST_NO_STD_ITERATOR_TRAITS) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)\r
+   typedef typename std::iterator_traits<BaseIterator>::value_type base_value_type;\r
+\r
+   BOOST_STATIC_ASSERT(sizeof(base_value_type)*CHAR_BIT == 16);\r
+   BOOST_STATIC_ASSERT(sizeof(U32Type)*CHAR_BIT == 32);\r
+#endif\r
+\r
+public:\r
+   typename base_type::reference\r
+      dereference()const\r
+   {\r
+      if(m_value == pending_read)\r
+         extract_current();\r
+      return m_value;\r
+   }\r
+   bool equal(const u16_to_u32_iterator& that)const\r
+   {\r
+      return m_position == that.m_position;\r
+   }\r
+   void increment()\r
+   {\r
+      // skip high surrogate first if there is one:\r
+      if(detail::is_high_surrogate(*m_position)) ++m_position;\r
+      ++m_position;\r
+      m_value = pending_read;\r
+   }\r
+   void decrement()\r
+   {\r
+      --m_position;\r
+      // if we have a low surrogate then go back one more:\r
+      if(detail::is_low_surrogate(*m_position)) \r
+         --m_position;\r
+      m_value = pending_read;\r
+   }\r
+   BaseIterator base()const\r
+   {\r
+      return m_position;\r
+   }\r
+   // construct:\r
+   u16_to_u32_iterator() : m_position()\r
+   {\r
+      m_value = pending_read;\r
+   }\r
+   u16_to_u32_iterator(BaseIterator b) : m_position(b)\r
+   {\r
+      m_value = pending_read;\r
+   }\r
+private:\r
+   static void invalid_code_point(::boost::uint16_t val)\r
+   {\r
+#ifndef BOOST_NO_STD_LOCALE\r
+      std::stringstream ss;\r
+      ss << "Misplaced UTF-16 surrogate U+" << std::showbase << std::hex << val << " encountered while trying to encode UTF-32 sequence";\r
+      std::out_of_range e(ss.str());\r
+#else\r
+      std::out_of_range e("Misplaced UTF-16 surrogate encountered while trying to encode UTF-32 sequence");\r
+#endif\r
+      boost::throw_exception(e);\r
+   }\r
+   void extract_current()const\r
+   {\r
+      m_value = static_cast<U32Type>(static_cast< ::boost::uint16_t>(*m_position));\r
+      // if the last value is a high surrogate then adjust m_position and m_value as needed:\r
+      if(detail::is_high_surrogate(*m_position))\r
+      {\r
+         // precondition; next value must have be a low-surrogate:\r
+         BaseIterator next(m_position);\r
+         ::boost::uint16_t t = *++next;\r
+         if((t & 0xFC00u) != 0xDC00u)\r
+            invalid_code_point(t);\r
+         m_value = (m_value - detail::high_surrogate_base) << 10;\r
+         m_value |= (static_cast<U32Type>(static_cast< ::boost::uint16_t>(t)) & detail::ten_bit_mask);\r
+      }\r
+      // postcondition; result must not be a surrogate:\r
+      if(detail::is_surrogate(m_value))\r
+         invalid_code_point(static_cast< ::boost::uint16_t>(m_value));\r
+   }\r
+   BaseIterator m_position;\r
+   mutable U32Type m_value;\r
+};\r
+\r
+template <class BaseIterator, class U8Type = ::boost::uint8_t>\r
+class u32_to_u8_iterator\r
+   : public boost::iterator_facade<u32_to_u8_iterator<BaseIterator, U8Type>, U8Type, std::bidirectional_iterator_tag, const U8Type>\r
+{\r
+   typedef boost::iterator_facade<u32_to_u8_iterator<BaseIterator, U8Type>, U8Type, std::bidirectional_iterator_tag, const U8Type> base_type;\r
+   \r
+#if !defined(BOOST_NO_STD_ITERATOR_TRAITS) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)\r
+   typedef typename std::iterator_traits<BaseIterator>::value_type base_value_type;\r
+\r
+   BOOST_STATIC_ASSERT(sizeof(base_value_type)*CHAR_BIT == 32);\r
+   BOOST_STATIC_ASSERT(sizeof(U8Type)*CHAR_BIT == 8);\r
+#endif\r
+\r
+public:\r
+   typename base_type::reference\r
+      dereference()const\r
+   {\r
+      if(m_current == 4)\r
+         extract_current();\r
+      return m_values[m_current];\r
+   }\r
+   bool equal(const u32_to_u8_iterator& that)const\r
+   {\r
+      if(m_position == that.m_position)\r
+      {\r
+         // either the m_current's must be equal, or one must be 0 and \r
+         // the other 4: which means neither must have bits 1 or 2 set:\r
+         return (m_current == that.m_current)\r
+            || (((m_current | that.m_current) & 3) == 0);\r
+      }\r
+      return false;\r
+   }\r
+   void increment()\r
+   {\r
+      // if we have a pending read then read now, so that we know whether\r
+      // to skip a position, or move to a low-surrogate:\r
+      if(m_current == 4)\r
+      {\r
+         // pending read:\r
+         extract_current();\r
+      }\r
+      // move to the next surrogate position:\r
+      ++m_current;\r
+      // if we've reached the end skip a position:\r
+      if(m_values[m_current] == 0)\r
+      {\r
+         m_current = 4;\r
+         ++m_position;\r
+      }\r
+   }\r
+   void decrement()\r
+   {\r
+      if((m_current & 3) == 0)\r
+      {\r
+         --m_position;\r
+         extract_current();\r
+         m_current = 3;\r
+         while(m_current && (m_values[m_current] == 0))\r
+            --m_current;\r
+      }\r
+      else\r
+         --m_current;\r
+   }\r
+   BaseIterator base()const\r
+   {\r
+      return m_position;\r
+   }\r
+   // construct:\r
+   u32_to_u8_iterator() : m_position(), m_current(0)\r
+   {\r
+      m_values[0] = 0;\r
+      m_values[1] = 0;\r
+      m_values[2] = 0;\r
+      m_values[3] = 0;\r
+      m_values[4] = 0;\r
+   }\r
+   u32_to_u8_iterator(BaseIterator b) : m_position(b), m_current(4)\r
+   {\r
+      m_values[0] = 0;\r
+      m_values[1] = 0;\r
+      m_values[2] = 0;\r
+      m_values[3] = 0;\r
+      m_values[4] = 0;\r
+   }\r
+private:\r
+\r
+   void extract_current()const\r
+   {\r
+      boost::uint32_t c = *m_position;\r
+      if(c > 0x10FFFFu)\r
+         detail::invalid_utf32_code_point(c);\r
+      if(c < 0x80u)\r
+      {\r
+         m_values[0] = static_cast<unsigned char>(c);\r
+         m_values[1] = static_cast<unsigned char>(0u);\r
+         m_values[2] = static_cast<unsigned char>(0u);\r
+         m_values[3] = static_cast<unsigned char>(0u);\r
+      }\r
+      else if(c < 0x800u)\r
+      {\r
+         m_values[0] = static_cast<unsigned char>(0xC0u + (c >> 6));\r
+         m_values[1] = static_cast<unsigned char>(0x80u + (c & 0x3Fu));\r
+         m_values[2] = static_cast<unsigned char>(0u);\r
+         m_values[3] = static_cast<unsigned char>(0u);\r
+      }\r
+      else if(c < 0x10000u)\r
+      {\r
+         m_values[0] = static_cast<unsigned char>(0xE0u + (c >> 12));\r
+         m_values[1] = static_cast<unsigned char>(0x80u + ((c >> 6) & 0x3Fu));\r
+         m_values[2] = static_cast<unsigned char>(0x80u + (c & 0x3Fu));\r
+         m_values[3] = static_cast<unsigned char>(0u);\r
+      }\r
+      else\r
+      {\r
+         m_values[0] = static_cast<unsigned char>(0xF0u + (c >> 18));\r
+         m_values[1] = static_cast<unsigned char>(0x80u + ((c >> 12) & 0x3Fu));\r
+         m_values[2] = static_cast<unsigned char>(0x80u + ((c >> 6) & 0x3Fu));\r
+         m_values[3] = static_cast<unsigned char>(0x80u + (c & 0x3Fu));\r
+      }\r
+      m_current= 0;\r
+   }\r
+   BaseIterator m_position;\r
+   mutable U8Type m_values[5];\r
+   mutable unsigned m_current;\r
+};\r
+\r
+template <class BaseIterator, class U32Type = ::boost::uint32_t>\r
+class u8_to_u32_iterator\r
+   : public boost::iterator_facade<u8_to_u32_iterator<BaseIterator, U32Type>, U32Type, std::bidirectional_iterator_tag, const U32Type>\r
+{\r
+   typedef boost::iterator_facade<u8_to_u32_iterator<BaseIterator, U32Type>, U32Type, std::bidirectional_iterator_tag, const U32Type> base_type;\r
+   // special values for pending iterator reads:\r
+   BOOST_STATIC_CONSTANT(U32Type, pending_read = 0xffffffffu);\r
+\r
+#if !defined(BOOST_NO_STD_ITERATOR_TRAITS) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)\r
+   typedef typename std::iterator_traits<BaseIterator>::value_type base_value_type;\r
+\r
+   BOOST_STATIC_ASSERT(sizeof(base_value_type)*CHAR_BIT == 8);\r
+   BOOST_STATIC_ASSERT(sizeof(U32Type)*CHAR_BIT == 32);\r
+#endif\r
+\r
+public:\r
+   typename base_type::reference\r
+      dereference()const\r
+   {\r
+      if(m_value == pending_read)\r
+         extract_current();\r
+      return m_value;\r
+   }\r
+   bool equal(const u8_to_u32_iterator& that)const\r
+   {\r
+      return m_position == that.m_position;\r
+   }\r
+   void increment()\r
+   {\r
+      // skip high surrogate first if there is one:\r
+      unsigned c = detail::utf8_byte_count(*m_position);\r
+      std::advance(m_position, c);\r
+      m_value = pending_read;\r
+   }\r
+   void decrement()\r
+   {\r
+      // Keep backtracking until we don't have a trailing character:\r
+      unsigned count = 0;\r
+      while((*--m_position & 0xC0u) == 0x80u) ++count;\r
+      // now check that the sequence was valid:\r
+      if(count != detail::utf8_trailing_byte_count(*m_position))\r
+         invalid_sequnce();\r
+      m_value = pending_read;\r
+   }\r
+   BaseIterator base()const\r
+   {\r
+      return m_position;\r
+   }\r
+   // construct:\r
+   u8_to_u32_iterator() : m_position()\r
+   {\r
+      m_value = pending_read;\r
+   }\r
+   u8_to_u32_iterator(BaseIterator b) : m_position(b)\r
+   {\r
+      m_value = pending_read;\r
+   }\r
+private:\r
+   static void invalid_sequnce()\r
+   {\r
+      std::out_of_range e("Invalid UTF-8 sequence encountered while trying to encode UTF-32 character");\r
+      boost::throw_exception(e);\r
+   }\r
+   void extract_current()const\r
+   {\r
+      m_value = static_cast<U32Type>(static_cast< ::boost::uint8_t>(*m_position));\r
+      // we must not have a continuation character:\r
+      if((m_value & 0xC0u) == 0x80u)\r
+         invalid_sequnce();\r
+      // see how many extra byts we have:\r
+      unsigned extra = detail::utf8_trailing_byte_count(*m_position);\r
+      // extract the extra bits, 6 from each extra byte:\r
+      BaseIterator next(m_position);\r
+      for(unsigned c = 0; c < extra; ++c)\r
+      {\r
+         ++next;\r
+         m_value <<= 6;\r
+         m_value += static_cast<boost::uint8_t>(*next) & 0x3Fu;\r
+      }\r
+      // we now need to remove a few of the leftmost bits, but how many depends\r
+      // upon how many extra bytes we've extracted:\r
+      static const boost::uint32_t masks[4] = \r
+      {\r
+         0x7Fu,\r
+         0x7FFu,\r
+         0xFFFFu,\r
+         0x1FFFFFu,\r
+      };\r
+      m_value &= masks[extra];\r
+      // check the result:\r
+      if(m_value > static_cast<U32Type>(0x10FFFFu))\r
+         invalid_sequnce();\r
+   }\r
+   BaseIterator m_position;\r
+   mutable U32Type m_value;\r
+};\r
+\r
+template <class BaseIterator>\r
+class utf16_output_iterator\r
+{\r
+public:\r
+   typedef void                                   difference_type;\r
+   typedef void                                   value_type;\r
+   typedef boost::uint32_t*                       pointer;\r
+   typedef boost::uint32_t&                       reference;\r
+   typedef std::output_iterator_tag               iterator_category;\r
+\r
+   utf16_output_iterator(const BaseIterator& b)\r
+      : m_position(b){}\r
+   utf16_output_iterator(const utf16_output_iterator& that)\r
+      : m_position(that.m_position){}\r
+   utf16_output_iterator& operator=(const utf16_output_iterator& that)\r
+   {\r
+      m_position = that.m_position;\r
+      return *this;\r
+   }\r
+   const utf16_output_iterator& operator*()const\r
+   {\r
+      return *this;\r
+   }\r
+   void operator=(boost::uint32_t val)const\r
+   {\r
+      push(val);\r
+   }\r
+   utf16_output_iterator& operator++()\r
+   {\r
+      return *this;\r
+   }\r
+   utf16_output_iterator& operator++(int)\r
+   {\r
+      return *this;\r
+   }\r
+   BaseIterator base()const\r
+   {\r
+      return m_position;\r
+   }\r
+private:\r
+   void push(boost::uint32_t v)const\r
+   {\r
+      if(v >= 0x10000u)\r
+      {\r
+         // begin by checking for a code point out of range:\r
+         if(v > 0x10FFFFu)\r
+            detail::invalid_utf32_code_point(v);\r
+         // split into two surrogates:\r
+         *m_position++ = static_cast<boost::uint16_t>(v >> 10) + detail::high_surrogate_base;\r
+         *m_position++ = static_cast<boost::uint16_t>(v & detail::ten_bit_mask) + detail::low_surrogate_base;\r
+      }\r
+      else\r
+      {\r
+         // 16-bit code point:\r
+         // value must not be a surrogate:\r
+         if(detail::is_surrogate(v))\r
+            detail::invalid_utf32_code_point(v);\r
+         *m_position++ = static_cast<boost::uint16_t>(v);\r
+      }\r
+   }\r
+   mutable BaseIterator m_position;\r
+};\r
+\r
+template <class BaseIterator>\r
+class utf8_output_iterator\r
+{\r
+public:\r
+   typedef void                                   difference_type;\r
+   typedef void                                   value_type;\r
+   typedef boost::uint32_t*                       pointer;\r
+   typedef boost::uint32_t&                       reference;\r
+   typedef std::output_iterator_tag               iterator_category;\r
+\r
+   utf8_output_iterator(const BaseIterator& b)\r
+      : m_position(b){}\r
+   utf8_output_iterator(const utf8_output_iterator& that)\r
+      : m_position(that.m_position){}\r
+   utf8_output_iterator& operator=(const utf8_output_iterator& that)\r
+   {\r
+      m_position = that.m_position;\r
+      return *this;\r
+   }\r
+   const utf8_output_iterator& operator*()const\r
+   {\r
+      return *this;\r
+   }\r
+   void operator=(boost::uint32_t val)const\r
+   {\r
+      push(val);\r
+   }\r
+   utf8_output_iterator& operator++()\r
+   {\r
+      return *this;\r
+   }\r
+   utf8_output_iterator& operator++(int)\r
+   {\r
+      return *this;\r
+   }\r
+   BaseIterator base()const\r
+   {\r
+      return m_position;\r
+   }\r
+private:\r
+   void push(boost::uint32_t c)const\r
+   {\r
+      if(c > 0x10FFFFu)\r
+         detail::invalid_utf32_code_point(c);\r
+      if(c < 0x80u)\r
+      {\r
+         *m_position++ = static_cast<unsigned char>(c);\r
+      }\r
+      else if(c < 0x800u)\r
+      {\r
+         *m_position++ = static_cast<unsigned char>(0xC0u + (c >> 6));\r
+         *m_position++ = static_cast<unsigned char>(0x80u + (c & 0x3Fu));\r
+      }\r
+      else if(c < 0x10000u)\r
+      {\r
+         *m_position++ = static_cast<unsigned char>(0xE0u + (c >> 12));\r
+         *m_position++ = static_cast<unsigned char>(0x80u + ((c >> 6) & 0x3Fu));\r
+         *m_position++ = static_cast<unsigned char>(0x80u + (c & 0x3Fu));\r
+      }\r
+      else\r
+      {\r
+         *m_position++ = static_cast<unsigned char>(0xF0u + (c >> 18));\r
+         *m_position++ = static_cast<unsigned char>(0x80u + ((c >> 12) & 0x3Fu));\r
+         *m_position++ = static_cast<unsigned char>(0x80u + ((c >> 6) & 0x3Fu));\r
+         *m_position++ = static_cast<unsigned char>(0x80u + (c & 0x3Fu));\r
+      }\r
+   }\r
+   mutable BaseIterator m_position;\r
+};\r
+\r
+} // namespace boost\r
+\r
+#endif // BOOST_REGEX_UNICODE_ITERATOR_HPP\r
+\r
diff --git a/boost/boost/regex/v4/u32regex_iterator.hpp b/boost/boost/regex/v4/u32regex_iterator.hpp
new file mode 100644 (file)
index 0000000..0eafe81
--- /dev/null
@@ -0,0 +1,193 @@
+/*\r
+ *\r
+ * Copyright (c) 2003\r
+ * John Maddock\r
+ *\r
+ * Use, modification and distribution are subject to the \r
+ * Boost Software License, Version 1.0. (See accompanying file \r
+ * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
+ *\r
+ */\r
+\r
+ /*\r
+  *   LOCATION:    see http://www.boost.org for most recent version.\r
+  *   FILE         u32regex_iterator.hpp\r
+  *   VERSION      see <boost/version.hpp>\r
+  *   DESCRIPTION: Provides u32regex_iterator implementation.\r
+  */\r
+\r
+#ifndef BOOST_REGEX_V4_U32REGEX_ITERATOR_HPP\r
+#define BOOST_REGEX_V4_U32REGEX_ITERATOR_HPP\r
+\r
+namespace boost{\r
+\r
+#ifdef BOOST_HAS_ABI_HEADERS\r
+#  include BOOST_ABI_PREFIX\r
+#endif\r
+\r
+template <class BidirectionalIterator>\r
+class u32regex_iterator_implementation \r
+{\r
+   typedef u32regex regex_type;\r
+\r
+   match_results<BidirectionalIterator> what;  // current match\r
+   BidirectionalIterator                base;  // start of sequence\r
+   BidirectionalIterator                end;   // end of sequence\r
+   const regex_type                     re;   // the expression\r
+   match_flag_type                      flags; // flags for matching\r
+\r
+public:\r
+   u32regex_iterator_implementation(const regex_type* p, BidirectionalIterator last, match_flag_type f)\r
+      : base(), end(last), re(*p), flags(f){}\r
+   bool init(BidirectionalIterator first)\r
+   {\r
+      base = first;\r
+      return u32regex_search(first, end, what, re, flags, base);\r
+   }\r
+   bool compare(const u32regex_iterator_implementation& that)\r
+   {\r
+      if(this == &that) return true;\r
+      return (&re.get_data() == &that.re.get_data()) && (end == that.end) && (flags == that.flags) && (what[0].first == that.what[0].first) && (what[0].second == that.what[0].second);\r
+   }\r
+   const match_results<BidirectionalIterator>& get()\r
+   { return what; }\r
+   bool next()\r
+   {\r
+      //if(what.prefix().first != what[0].second)\r
+      //   flags |= match_prev_avail;\r
+      BidirectionalIterator next_start = what[0].second;\r
+      match_flag_type f(flags);\r
+      if(!what.length())\r
+         f |= regex_constants::match_not_initial_null;\r
+      //if(base != next_start)\r
+      //   f |= regex_constants::match_not_bob;\r
+      bool result = u32regex_search(next_start, end, what, re, f, base);\r
+      if(result)\r
+         what.set_base(base);\r
+      return result;\r
+   }\r
+private:\r
+   u32regex_iterator_implementation& operator=(const u32regex_iterator_implementation&);\r
+};\r
+\r
+template <class BidirectionalIterator>\r
+class u32regex_iterator \r
+#ifndef BOOST_NO_STD_ITERATOR\r
+   : public std::iterator<\r
+         std::forward_iterator_tag, \r
+         match_results<BidirectionalIterator>,\r
+         typename re_detail::regex_iterator_traits<BidirectionalIterator>::difference_type,\r
+         const match_results<BidirectionalIterator>*,\r
+         const match_results<BidirectionalIterator>& >         \r
+#endif\r
+{\r
+private:\r
+   typedef u32regex_iterator_implementation<BidirectionalIterator> impl;\r
+   typedef shared_ptr<impl> pimpl;\r
+public:\r
+   typedef          u32regex                                                regex_type;\r
+   typedef          match_results<BidirectionalIterator>                    value_type;\r
+   typedef typename re_detail::regex_iterator_traits<BidirectionalIterator>::difference_type \r
+                                                                            difference_type;\r
+   typedef          const value_type*                                       pointer;\r
+   typedef          const value_type&                                       reference; \r
+   typedef          std::forward_iterator_tag                               iterator_category;\r
+   \r
+   u32regex_iterator(){}\r
+   u32regex_iterator(BidirectionalIterator a, BidirectionalIterator b, \r
+                  const regex_type& re, \r
+                  match_flag_type m = match_default)\r
+                  : pdata(new impl(&re, b, m))\r
+   {\r
+      if(!pdata->init(a))\r
+      {\r
+         pdata.reset();\r
+      }\r
+   }\r
+   u32regex_iterator(const u32regex_iterator& that)\r
+      : pdata(that.pdata) {}\r
+   u32regex_iterator& operator=(const u32regex_iterator& that)\r
+   {\r
+      pdata = that.pdata;\r
+      return *this;\r
+   }\r
+   bool operator==(const u32regex_iterator& that)const\r
+   { \r
+      if((pdata.get() == 0) || (that.pdata.get() == 0))\r
+         return pdata.get() == that.pdata.get();\r
+      return pdata->compare(*(that.pdata.get())); \r
+   }\r
+   bool operator!=(const u32regex_iterator& that)const\r
+   { return !(*this == that); }\r
+   const value_type& operator*()const\r
+   { return pdata->get(); }\r
+   const value_type* operator->()const\r
+   { return &(pdata->get()); }\r
+   u32regex_iterator& operator++()\r
+   {\r
+      cow();\r
+      if(0 == pdata->next())\r
+      {\r
+         pdata.reset();\r
+      }\r
+      return *this;\r
+   }\r
+   u32regex_iterator operator++(int)\r
+   {\r
+      u32regex_iterator result(*this);\r
+      ++(*this);\r
+      return result;\r
+   }\r
+private:\r
+\r
+   pimpl pdata;\r
+\r
+   void cow()\r
+   {\r
+      // copy-on-write\r
+      if(pdata.get() && !pdata.unique())\r
+      {\r
+         pdata.reset(new impl(*(pdata.get())));\r
+      }\r
+   }\r
+};\r
+\r
+typedef u32regex_iterator<const char*> utf8regex_iterator;\r
+typedef u32regex_iterator<const UChar*> utf16regex_iterator;\r
+typedef u32regex_iterator<const UChar32*> utf32regex_iterator;\r
+\r
+inline u32regex_iterator<const char*> make_u32regex_iterator(const char* p, const u32regex& e, regex_constants::match_flag_type m = regex_constants::match_default)\r
+{\r
+   return u32regex_iterator<const char*>(p, p+std::strlen(p), e, m);\r
+}\r
+#ifndef BOOST_NO_WREGEX\r
+inline u32regex_iterator<const wchar_t*> make_u32regex_iterator(const wchar_t* p, const u32regex& e, regex_constants::match_flag_type m = regex_constants::match_default)\r
+{\r
+   return u32regex_iterator<const wchar_t*>(p, p+std::wcslen(p), e, m);\r
+}\r
+#endif\r
+#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2)\r
+inline u32regex_iterator<const UChar*> make_u32regex_iterator(const UChar* p, const u32regex& e, regex_constants::match_flag_type m = regex_constants::match_default)\r
+{\r
+   return u32regex_iterator<const UChar*>(p, p+u_strlen(p), e, m);\r
+}\r
+#endif\r
+template <class charT, class Traits, class Alloc>\r
+inline u32regex_iterator<typename std::basic_string<charT, Traits, Alloc>::const_iterator> make_u32regex_iterator(const std::basic_string<charT, Traits, Alloc>& p, const u32regex& e, regex_constants::match_flag_type m = regex_constants::match_default)\r
+{\r
+   typedef typename std::basic_string<charT, Traits, Alloc>::const_iterator iter_type;\r
+   return u32regex_iterator<iter_type>(p.begin(), p.end(), e, m);\r
+}\r
+inline u32regex_iterator<const UChar*> make_u32regex_iterator(const UnicodeString& s, const u32regex& e, regex_constants::match_flag_type m = regex_constants::match_default)\r
+{\r
+   return u32regex_iterator<const UChar*>(s.getBuffer(), s.getBuffer() + s.length(), e, m);\r
+}\r
+\r
+#ifdef BOOST_HAS_ABI_HEADERS\r
+#  include BOOST_ABI_SUFFIX\r
+#endif\r
+\r
+} // namespace boost\r
+\r
+#endif // BOOST_REGEX_V4_REGEX_ITERATOR_HPP\r
+\r
diff --git a/boost/boost/regex/v4/u32regex_token_iterator.hpp b/boost/boost/regex/v4/u32regex_token_iterator.hpp
new file mode 100644 (file)
index 0000000..11f25d5
--- /dev/null
@@ -0,0 +1,377 @@
+/*\r
+ *\r
+ * Copyright (c) 2003\r
+ * John Maddock\r
+ *\r
+ * Use, modification and distribution are subject to the \r
+ * Boost Software License, Version 1.0. (See accompanying file \r
+ * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
+ *\r
+ */\r
+\r
+ /*\r
+  *   LOCATION:    see http://www.boost.org for most recent version.\r
+  *   FILE         u32regex_token_iterator.hpp\r
+  *   VERSION      see <boost/version.hpp>\r
+  *   DESCRIPTION: Provides u32regex_token_iterator implementation.\r
+  */\r
+\r
+#ifndef BOOST_REGEX_V4_U32REGEX_TOKEN_ITERATOR_HPP\r
+#define BOOST_REGEX_V4_U32REGEX_TOKEN_ITERATOR_HPP\r
+\r
+#if (BOOST_WORKAROUND(__BORLANDC__, >= 0x560) && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570)))\\r
+      || BOOST_WORKAROUND(BOOST_MSVC, < 1300) \\r
+      || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003))\r
+//\r
+// Borland C++ Builder 6, and Visual C++ 6,\r
+// can't cope with the array template constructor\r
+// so we have a template member that will accept any type as \r
+// argument, and then assert that is really is an array:\r
+//\r
+#include <boost/static_assert.hpp>\r
+#include <boost/type_traits/is_array.hpp>\r
+#endif\r
+\r
+namespace boost{\r
+\r
+#ifdef BOOST_HAS_ABI_HEADERS\r
+#  include BOOST_ABI_PREFIX\r
+#endif\r
+#if BOOST_WORKAROUND(BOOST_MSVC, > 1300)\r
+#  pragma warning(push)\r
+#  pragma warning(disable:4700)\r
+#endif\r
+\r
+template <class BidirectionalIterator>\r
+class u32regex_token_iterator_implementation \r
+{\r
+   typedef u32regex                              regex_type;\r
+   typedef sub_match<BidirectionalIterator>      value_type;\r
+\r
+   match_results<BidirectionalIterator> what;   // current match\r
+   BidirectionalIterator                end;    // end of search area\r
+   BidirectionalIterator                base;   // start of search area\r
+   const regex_type                     re;     // the expression\r
+   match_flag_type                      flags;  // match flags\r
+   value_type                           result; // the current string result\r
+   int                                  N;      // the current sub-expression being enumerated\r
+   std::vector<int>                     subs;   // the sub-expressions to enumerate\r
+\r
+public:\r
+   u32regex_token_iterator_implementation(const regex_type* p, BidirectionalIterator last, int sub, match_flag_type f)\r
+      : end(last), re(*p), flags(f){ subs.push_back(sub); }\r
+   u32regex_token_iterator_implementation(const regex_type* p, BidirectionalIterator last, const std::vector<int>& v, match_flag_type f)\r
+      : end(last), re(*p), flags(f), subs(v){}\r
+#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)\r
+      // can't reliably get this to work....\r
+#elif (BOOST_WORKAROUND(__BORLANDC__, >= 0x560) && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570)))\\r
+      || BOOST_WORKAROUND(BOOST_MSVC, < 1300) \\r
+      || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003)) \\r
+      || BOOST_WORKAROUND(__HP_aCC, < 60700)\r
+   template <class T>\r
+   u32regex_token_iterator_implementation(const regex_type* p, BidirectionalIterator last, const T& submatches, match_flag_type f)\r
+      : end(last), re(*p), flags(f)\r
+   {\r
+      // assert that T really is an array:\r
+      BOOST_STATIC_ASSERT(::boost::is_array<T>::value);\r
+      const std::size_t array_size = sizeof(T) / sizeof(submatches[0]);\r
+      for(std::size_t i = 0; i < array_size; ++i)\r
+      {\r
+         subs.push_back(submatches[i]);\r
+      }\r
+   }\r
+#else\r
+   template <std::size_t CN>\r
+   u32regex_token_iterator_implementation(const regex_type* p, BidirectionalIterator last, const int (&submatches)[CN], match_flag_type f)\r
+      : end(last), re(*p), flags(f)\r
+   {\r
+      for(std::size_t i = 0; i < CN; ++i)\r
+      {\r
+         subs.push_back(submatches[i]);\r
+      }\r
+   }\r
+#endif\r
+\r
+   bool init(BidirectionalIterator first)\r
+   {\r
+      base = first;\r
+      N = 0;\r
+      if(u32regex_search(first, end, what, re, flags, base) == true)\r
+      {\r
+         N = 0;\r
+         result = ((subs[N] == -1) ? what.prefix() : what[(int)subs[N]]);\r
+         return true;\r
+      }\r
+      else if((subs[N] == -1) && (first != end))\r
+      {\r
+         result.first = first;\r
+         result.second = end;\r
+         result.matched = (first != end);\r
+         N = -1;\r
+         return true;\r
+      }\r
+      return false;\r
+   }\r
+   bool compare(const u32regex_token_iterator_implementation& that)\r
+   {\r
+      if(this == &that) return true;\r
+      return (&re.get_data() == &that.re.get_data()) \r
+         && (end == that.end) \r
+         && (flags == that.flags) \r
+         && (N == that.N) \r
+         && (what[0].first == that.what[0].first) \r
+         && (what[0].second == that.what[0].second);\r
+   }\r
+   const value_type& get()\r
+   { return result; }\r
+   bool next()\r
+   {\r
+      if(N == -1)\r
+         return false;\r
+      if(N+1 < (int)subs.size())\r
+      {\r
+         ++N;\r
+         result =((subs[N] == -1) ? what.prefix() : what[subs[N]]);\r
+         return true;\r
+      }\r
+      //if(what.prefix().first != what[0].second)\r
+      //   flags |= match_prev_avail | regex_constants::match_not_bob;\r
+      BidirectionalIterator last_end(what[0].second);\r
+      if(u32regex_search(last_end, end, what, re, ((what[0].first == what[0].second) ? flags | regex_constants::match_not_initial_null : flags), base))\r
+      {\r
+         N =0;\r
+         result =((subs[N] == -1) ? what.prefix() : what[subs[N]]);\r
+         return true;\r
+      }\r
+      else if((last_end != end) && (subs[0] == -1))\r
+      {\r
+         N =-1;\r
+         result.first = last_end;\r
+         result.second = end;\r
+         result.matched = (last_end != end);\r
+         return true;\r
+      }\r
+      return false;\r
+   }\r
+private:\r
+   u32regex_token_iterator_implementation& operator=(const u32regex_token_iterator_implementation&);\r
+};\r
+\r
+template <class BidirectionalIterator>\r
+class u32regex_token_iterator \r
+#ifndef BOOST_NO_STD_ITERATOR\r
+   : public std::iterator<\r
+         std::forward_iterator_tag, \r
+         sub_match<BidirectionalIterator>,\r
+         typename re_detail::regex_iterator_traits<BidirectionalIterator>::difference_type,\r
+         const sub_match<BidirectionalIterator>*,\r
+         const sub_match<BidirectionalIterator>& >         \r
+#endif\r
+{\r
+private:\r
+   typedef u32regex_token_iterator_implementation<BidirectionalIterator> impl;\r
+   typedef shared_ptr<impl> pimpl;\r
+public:\r
+   typedef          u32regex                                                regex_type;\r
+   typedef          sub_match<BidirectionalIterator>                        value_type;\r
+   typedef typename re_detail::regex_iterator_traits<BidirectionalIterator>::difference_type \r
+                                                                            difference_type;\r
+   typedef          const value_type*                                       pointer;\r
+   typedef          const value_type&                                       reference; \r
+   typedef          std::forward_iterator_tag                               iterator_category;\r
+   \r
+   u32regex_token_iterator(){}\r
+   u32regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re, \r
+                        int submatch = 0, match_flag_type m = match_default)\r
+                        : pdata(new impl(&re, b, submatch, m))\r
+   {\r
+      if(!pdata->init(a))\r
+         pdata.reset();\r
+   }\r
+   u32regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re, \r
+                        const std::vector<int>& submatches, match_flag_type m = match_default)\r
+                        : pdata(new impl(&re, b, submatches, m))\r
+   {\r
+      if(!pdata->init(a))\r
+         pdata.reset();\r
+   }\r
+#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)\r
+      // can't reliably get this to work....\r
+#elif (BOOST_WORKAROUND(__BORLANDC__, >= 0x560) && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570)))\\r
+      || BOOST_WORKAROUND(BOOST_MSVC, < 1300) \\r
+      || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003)) \\r
+      || BOOST_WORKAROUND(__HP_aCC, < 60700)\r
+   template <class T>\r
+   u32regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re,\r
+                        const T& submatches, match_flag_type m = match_default)\r
+                        : pdata(new impl(&re, b, submatches, m))\r
+   {\r
+      if(!pdata->init(a))\r
+         pdata.reset();\r
+   }\r
+#else\r
+   template <std::size_t N>\r
+   u32regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re,\r
+                        const int (&submatches)[N], match_flag_type m = match_default)\r
+                        : pdata(new impl(&re, b, submatches, m))\r
+   {\r
+      if(!pdata->init(a))\r
+         pdata.reset();\r
+   }\r
+#endif\r
+   u32regex_token_iterator(const u32regex_token_iterator& that)\r
+      : pdata(that.pdata) {}\r
+   u32regex_token_iterator& operator=(const u32regex_token_iterator& that)\r
+   {\r
+      pdata = that.pdata;\r
+      return *this;\r
+   }\r
+   bool operator==(const u32regex_token_iterator& that)const\r
+   { \r
+      if((pdata.get() == 0) || (that.pdata.get() == 0))\r
+         return pdata.get() == that.pdata.get();\r
+      return pdata->compare(*(that.pdata.get())); \r
+   }\r
+   bool operator!=(const u32regex_token_iterator& that)const\r
+   { return !(*this == that); }\r
+   const value_type& operator*()const\r
+   { return pdata->get(); }\r
+   const value_type* operator->()const\r
+   { return &(pdata->get()); }\r
+   u32regex_token_iterator& operator++()\r
+   {\r
+      cow();\r
+      if(0 == pdata->next())\r
+      {\r
+         pdata.reset();\r
+      }\r
+      return *this;\r
+   }\r
+   u32regex_token_iterator operator++(int)\r
+   {\r
+      u32regex_token_iterator result(*this);\r
+      ++(*this);\r
+      return result;\r
+   }\r
+private:\r
+\r
+   pimpl pdata;\r
+\r
+   void cow()\r
+   {\r
+      // copy-on-write\r
+      if(pdata.get() && !pdata.unique())\r
+      {\r
+         pdata.reset(new impl(*(pdata.get())));\r
+      }\r
+   }\r
+};\r
+\r
+typedef u32regex_token_iterator<const char*> utf8regex_token_iterator;\r
+typedef u32regex_token_iterator<const UChar*> utf16regex_token_iterator;\r
+typedef u32regex_token_iterator<const UChar32*> utf32regex_token_iterator;\r
+\r
+// construction from an integral sub_match state_id:\r
+inline u32regex_token_iterator<const char*> make_u32regex_token_iterator(const char* p, const u32regex& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default)\r
+{\r
+   return u32regex_token_iterator<const char*>(p, p+std::strlen(p), e, submatch, m);\r
+}\r
+#ifndef BOOST_NO_WREGEX\r
+inline u32regex_token_iterator<const wchar_t*> make_u32regex_token_iterator(const wchar_t* p, const u32regex& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default)\r
+{\r
+   return u32regex_token_iterator<const wchar_t*>(p, p+std::wcslen(p), e, submatch, m);\r
+}\r
+#endif\r
+#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2)\r
+inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const UChar* p, const u32regex& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default)\r
+{\r
+   return u32regex_token_iterator<const UChar*>(p, p+u_strlen(p), e, submatch, m);\r
+}\r
+#endif\r
+template <class charT, class Traits, class Alloc>\r
+inline u32regex_token_iterator<typename std::basic_string<charT, Traits, Alloc>::const_iterator> make_u32regex_token_iterator(const std::basic_string<charT, Traits, Alloc>& p, const u32regex& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default)\r
+{\r
+   typedef typename std::basic_string<charT, Traits, Alloc>::const_iterator iter_type;\r
+   return u32regex_token_iterator<iter_type>(p.begin(), p.end(), e, m);\r
+}\r
+inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const UnicodeString& s, const u32regex& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default)\r
+{\r
+   return u32regex_token_iterator<const UChar*>(s.getBuffer(), s.getBuffer() + s.length(), e, submatch, m);\r
+}\r
+\r
+#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)\r
+// construction from a reference to an array:\r
+template <std::size_t N>\r
+inline u32regex_token_iterator<const char*> make_u32regex_token_iterator(const char* p, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default)\r
+{\r
+   return u32regex_token_iterator<const char*>(p, p+std::strlen(p), e, submatch, m);\r
+}\r
+#ifndef BOOST_NO_WREGEX\r
+template <std::size_t N>\r
+inline u32regex_token_iterator<const wchar_t*> make_u32regex_token_iterator(const wchar_t* p, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default)\r
+{\r
+   return u32regex_token_iterator<const wchar_t*>(p, p+std::wcslen(p), e, submatch, m);\r
+}\r
+#endif\r
+#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2)\r
+template <std::size_t N>\r
+inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const UChar* p, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default)\r
+{\r
+   return u32regex_token_iterator<const UChar*>(p, p+u_strlen(p), e, m);\r
+}\r
+#endif\r
+template <class charT, class Traits, class Alloc, std::size_t N>\r
+inline u32regex_token_iterator<typename std::basic_string<charT, Traits, Alloc>::const_iterator> make_u32regex_token_iterator(const std::basic_string<charT, Traits, Alloc>& p, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default)\r
+{\r
+   typedef typename std::basic_string<charT, Traits, Alloc>::const_iterator iter_type;\r
+   return u32regex_token_iterator<iter_type>(p.begin(), p.end(), e, m);\r
+}\r
+template <std::size_t N>\r
+inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const UnicodeString& s, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default)\r
+{\r
+   return u32regex_token_iterator<const UChar*>(s.getBuffer(), s.getBuffer() + s.length(), e, submatch, m);\r
+}\r
+#endif // BOOST_MSVC < 1300\r
+\r
+// construction from a vector of sub_match state_id's:\r
+inline u32regex_token_iterator<const char*> make_u32regex_token_iterator(const char* p, const u32regex& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default)\r
+{\r
+   return u32regex_token_iterator<const char*>(p, p+std::strlen(p), e, submatch, m);\r
+}\r
+#ifndef BOOST_NO_WREGEX\r
+inline u32regex_token_iterator<const wchar_t*> make_u32regex_token_iterator(const wchar_t* p, const u32regex& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default)\r
+{\r
+   return u32regex_token_iterator<const wchar_t*>(p, p+std::wcslen(p), e, submatch, m);\r
+}\r
+#endif\r
+#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2)\r
+inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const UChar* p, const u32regex& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default)\r
+{\r
+   return u32regex_token_iterator<const UChar*>(p, p+u_strlen(p), e, submatch, m);\r
+}\r
+#endif\r
+template <class charT, class Traits, class Alloc>\r
+inline u32regex_token_iterator<typename std::basic_string<charT, Traits, Alloc>::const_iterator> make_u32regex_token_iterator(const std::basic_string<charT, Traits, Alloc>& p, const u32regex& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default)\r
+{\r
+   typedef typename std::basic_string<charT, Traits, Alloc>::const_iterator iter_type;\r
+   return u32regex_token_iterator<iter_type>(p.begin(), p.end(), e, m);\r
+}\r
+inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const UnicodeString& s, const u32regex& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default)\r
+{\r
+   return u32regex_token_iterator<const UChar*>(s.getBuffer(), s.getBuffer() + s.length(), e, submatch, m);\r
+}\r
+\r
+#if BOOST_WORKAROUND(BOOST_MSVC, == 1310)\r
+#  pragma warning(pop)\r
+#endif\r
+#ifdef BOOST_HAS_ABI_HEADERS\r
+#  include BOOST_ABI_SUFFIX\r
+#endif\r
+\r
+} // namespace boost\r
+\r
+#endif // BOOST_REGEX_V4_REGEX_TOKEN_ITERATOR_HPP\r
+\r
+\r
+\r
+\r
diff --git a/boost/boost/smart_ptr/bad_weak_ptr.hpp b/boost/boost/smart_ptr/bad_weak_ptr.hpp
new file mode 100644 (file)
index 0000000..72fff35
--- /dev/null
@@ -0,0 +1,59 @@
+#ifndef BOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  boost/smart_ptr/bad_weak_ptr.hpp\r
+//\r
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. (See\r
+// accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+#include <exception>\r
+\r
+#ifdef __BORLANDC__\r
+# pragma warn -8026     // Functions with excep. spec. are not expanded inline\r
+#endif\r
+\r
+namespace boost\r
+{\r
+\r
+// The standard library that comes with Borland C++ 5.5.1, 5.6.4\r
+// defines std::exception and its members as having C calling\r
+// convention (-pc). When the definition of bad_weak_ptr\r
+// is compiled with -ps, the compiler issues an error.\r
+// Hence, the temporary #pragma option -pc below.\r
+\r
+#if defined(__BORLANDC__) && __BORLANDC__ <= 0x564\r
+# pragma option push -pc\r
+#endif\r
+\r
+class bad_weak_ptr: public std::exception\r
+{\r
+public:\r
+\r
+    virtual char const * what() const throw()\r
+    {\r
+        return "tr1::bad_weak_ptr";\r
+    }\r
+};\r
+\r
+#if defined(__BORLANDC__) && __BORLANDC__ <= 0x564\r
+# pragma option pop\r
+#endif\r
+\r
+} // namespace boost\r
+\r
+#ifdef __BORLANDC__\r
+# pragma warn .8026     // Functions with excep. spec. are not expanded inline\r
+#endif\r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/atomic_count.hpp b/boost/boost/smart_ptr/detail/atomic_count.hpp
new file mode 100644 (file)
index 0000000..f856137
--- /dev/null
@@ -0,0 +1,119 @@
+#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  boost/detail/atomic_count.hpp - thread/SMP safe reference counter\r
+//\r
+//  Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. (See\r
+// accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+//  typedef <implementation-defined> boost::detail::atomic_count;\r
+//\r
+//  atomic_count a(n);\r
+//\r
+//    (n is convertible to long)\r
+//\r
+//    Effects: Constructs an atomic_count with an initial value of n\r
+//\r
+//  a;\r
+//\r
+//    Returns: (long) the current value of a\r
+//\r
+//  ++a;\r
+//\r
+//    Effects: Atomically increments the value of a\r
+//    Returns: (long) the new value of a\r
+//\r
+//  --a;\r
+//\r
+//    Effects: Atomically decrements the value of a\r
+//    Returns: (long) the new value of a\r
+//\r
+//    Important note: when --a returns zero, it must act as a\r
+//      read memory barrier (RMB); i.e. the calling thread must\r
+//      have a synchronized view of the memory\r
+//\r
+//    On Intel IA-32 (x86) memory is always synchronized, so this\r
+//      is not a problem.\r
+//\r
+//    On many architectures the atomic instructions already act as\r
+//      a memory barrier.\r
+//\r
+//    This property is necessary for proper reference counting, since\r
+//      a thread can update the contents of a shared object, then\r
+//      release its reference, and another thread may immediately\r
+//      release the last reference causing object destruction.\r
+//\r
+//    The destructor needs to have a synchronized view of the\r
+//      object to perform proper cleanup.\r
+//\r
+//    Original example by Alexander Terekhov:\r
+//\r
+//    Given:\r
+//\r
+//    - a mutable shared object OBJ;\r
+//    - two threads THREAD1 and THREAD2 each holding \r
+//      a private smart_ptr object pointing to that OBJ.\r
+//\r
+//    t1: THREAD1 updates OBJ (thread-safe via some synchronization)\r
+//      and a few cycles later (after "unlock") destroys smart_ptr;\r
+//\r
+//    t2: THREAD2 destroys smart_ptr WITHOUT doing any synchronization \r
+//      with respect to shared mutable object OBJ; OBJ destructors\r
+//      are called driven by smart_ptr interface...\r
+//\r
+\r
+#include <boost/config.hpp>\r
+#include <boost/smart_ptr/detail/sp_has_sync.hpp>\r
+\r
+#ifndef BOOST_HAS_THREADS\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+typedef long atomic_count;\r
+\r
+}\r
+\r
+}\r
+\r
+#elif defined(BOOST_AC_USE_PTHREADS)\r
+#  include <boost/smart_ptr/detail/atomic_count_pthreads.hpp>\r
+\r
+#elif defined( __GNUC__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) )\r
+#  include <boost/smart_ptr/detail/atomic_count_gcc_x86.hpp>\r
+\r
+#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)\r
+#  include <boost/smart_ptr/detail/atomic_count_win32.hpp>\r
+\r
+#elif defined( BOOST_SP_HAS_SYNC )\r
+#  include <boost/smart_ptr/detail/atomic_count_sync.hpp>\r
+\r
+#elif defined(__GLIBCPP__) || defined(__GLIBCXX__)\r
+#  include <boost/smart_ptr/detail/atomic_count_gcc.hpp>\r
+\r
+#elif defined(BOOST_HAS_PTHREADS)\r
+\r
+#  define BOOST_AC_USE_PTHREADS\r
+#  include <boost/smart_ptr/detail/atomic_count_pthreads.hpp>\r
+\r
+#else\r
+\r
+// Use #define BOOST_DISABLE_THREADS to avoid the error\r
+#error Unrecognized threading platform\r
+\r
+#endif\r
+\r
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/atomic_count_gcc.hpp b/boost/boost/smart_ptr/detail/atomic_count_gcc.hpp
new file mode 100644 (file)
index 0000000..0c10d88
--- /dev/null
@@ -0,0 +1,72 @@
+#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED\r
+\r
+//\r
+//  boost/detail/atomic_count_gcc.hpp\r
+//\r
+//  atomic_count for GNU libstdc++ v3\r
+//\r
+//  http://gcc.gnu.org/onlinedocs/porting/Thread-safety.html\r
+//\r
+//  Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.\r
+//  Copyright (c) 2002 Lars Gullik Bjønnes <larsbj@lyx.org>\r
+//  Copyright 2003-2005 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0. (See\r
+//  accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+#if __GNUC__ * 100 + __GNUC_MINOR__ >= 402\r
+# include <ext/atomicity.h> \r
+#else \r
+# include <bits/atomicity.h>\r
+#endif\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+#if defined(__GLIBCXX__) // g++ 3.4+\r
+\r
+using __gnu_cxx::__atomic_add;\r
+using __gnu_cxx::__exchange_and_add;\r
+\r
+#endif\r
+\r
+class atomic_count\r
+{\r
+public:\r
+\r
+    explicit atomic_count( long v ) : value_( v ) {}\r
+\r
+    long operator++()\r
+    {\r
+        return __exchange_and_add( &value_, +1 ) + 1;\r
+    }\r
+\r
+    long operator--()\r
+    {\r
+        return __exchange_and_add( &value_, -1 ) - 1;\r
+    }\r
+\r
+    operator long() const\r
+    {\r
+        return __exchange_and_add( &value_, 0 );\r
+    }\r
+\r
+private:\r
+\r
+    atomic_count(atomic_count const &);\r
+    atomic_count & operator=(atomic_count const &);\r
+\r
+    mutable _Atomic_word value_;\r
+};\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp b/boost/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp
new file mode 100644 (file)
index 0000000..388498b
--- /dev/null
@@ -0,0 +1,77 @@
+#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED\r
+\r
+//\r
+//  boost/detail/atomic_count_gcc_x86.hpp\r
+//\r
+//  atomic_count for g++ on 486+/AMD64\r
+//\r
+//  Copyright 2007 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0. (See\r
+//  accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+class atomic_count\r
+{\r
+public:\r
+\r
+    explicit atomic_count( long v ) : value_( static_cast< int >( v ) ) {}\r
+\r
+    long operator++()\r
+    {\r
+        return atomic_exchange_and_add( &value_, +1 ) + 1;\r
+    }\r
+\r
+    long operator--()\r
+    {\r
+        return atomic_exchange_and_add( &value_, -1 ) - 1;\r
+    }\r
+\r
+    operator long() const\r
+    {\r
+        return atomic_exchange_and_add( &value_, 0 );\r
+    }\r
+\r
+private:\r
+\r
+    atomic_count(atomic_count const &);\r
+    atomic_count & operator=(atomic_count const &);\r
+\r
+    mutable int value_;\r
+\r
+private:\r
+\r
+    static int atomic_exchange_and_add( int * pw, int dv )\r
+    {\r
+        // int r = *pw;\r
+        // *pw += dv;\r
+        // return r;\r
+\r
+        int r;\r
+\r
+        __asm__ __volatile__\r
+        (\r
+            "lock\n\t"\r
+            "xadd %1, %0":\r
+            "+m"( *pw ), "=r"( r ): // outputs (%0, %1)\r
+            "1"( dv ): // inputs (%2 == %1)\r
+            "memory", "cc" // clobbers\r
+        );\r
+\r
+        return r;\r
+    }\r
+};\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/atomic_count_pthreads.hpp b/boost/boost/smart_ptr/detail/atomic_count_pthreads.hpp
new file mode 100644 (file)
index 0000000..5e89faa
--- /dev/null
@@ -0,0 +1,96 @@
+#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED\r
+\r
+//\r
+//  boost/detail/atomic_count_pthreads.hpp\r
+//\r
+//  Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. (See\r
+// accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+#include <pthread.h>\r
+\r
+//\r
+//  The generic pthread_mutex-based implementation sometimes leads to\r
+//    inefficiencies. Example: a class with two atomic_count members\r
+//    can get away with a single mutex.\r
+//\r
+//  Users can detect this situation by checking BOOST_AC_USE_PTHREADS.\r
+//\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+class atomic_count\r
+{\r
+private:\r
+\r
+    class scoped_lock\r
+    {\r
+    public:\r
+\r
+        scoped_lock(pthread_mutex_t & m): m_(m)\r
+        {\r
+            pthread_mutex_lock(&m_);\r
+        }\r
+\r
+        ~scoped_lock()\r
+        {\r
+            pthread_mutex_unlock(&m_);\r
+        }\r
+\r
+    private:\r
+\r
+        pthread_mutex_t & m_;\r
+    };\r
+\r
+public:\r
+\r
+    explicit atomic_count(long v): value_(v)\r
+    {\r
+        pthread_mutex_init(&mutex_, 0);\r
+    }\r
+\r
+    ~atomic_count()\r
+    {\r
+        pthread_mutex_destroy(&mutex_);\r
+    }\r
+\r
+    long operator++()\r
+    {\r
+        scoped_lock lock(mutex_);\r
+        return ++value_;\r
+    }\r
+\r
+    long operator--()\r
+    {\r
+        scoped_lock lock(mutex_);\r
+        return --value_;\r
+    }\r
+\r
+    operator long() const\r
+    {\r
+        scoped_lock lock(mutex_);\r
+        return value_;\r
+    }\r
+\r
+private:\r
+\r
+    atomic_count(atomic_count const &);\r
+    atomic_count & operator=(atomic_count const &);\r
+\r
+    mutable pthread_mutex_t mutex_;\r
+    long value_;\r
+};\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/atomic_count_solaris.hpp b/boost/boost/smart_ptr/detail/atomic_count_solaris.hpp
new file mode 100644 (file)
index 0000000..f0f4308
--- /dev/null
@@ -0,0 +1,59 @@
+#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SOLARIS_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SOLARIS_HPP_INCLUDED\r
+\r
+//\r
+//  boost/detail/atomic_count_solaris.hpp\r
+//   based on: boost/detail/atomic_count_win32.hpp\r
+//\r
+//  Copyright (c) 2001-2005 Peter Dimov\r
+//  Copyright (c) 2006 Michael van der Westhuizen\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. (See\r
+// accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+#include <atomic.h>\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+class atomic_count\r
+{\r
+public:\r
+\r
+    explicit atomic_count( uint32_t v ): value_( v )\r
+    {\r
+    }\r
+\r
+    long operator++()\r
+    {\r
+        return atomic_inc_32_nv( &value_ );\r
+    }\r
+\r
+    long operator--()\r
+    {\r
+        return atomic_dec_32_nv( &value_ );\r
+    }\r
+\r
+    operator uint32_t() const\r
+    {\r
+        return static_cast<uint32_t const volatile &>( value_ );\r
+    }\r
+\r
+private:\r
+\r
+    atomic_count( atomic_count const & );\r
+    atomic_count & operator=( atomic_count const & );\r
+\r
+    uint32_t value_;\r
+};\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SOLARIS_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/atomic_count_sync.hpp b/boost/boost/smart_ptr/detail/atomic_count_sync.hpp
new file mode 100644 (file)
index 0000000..521dbe8
--- /dev/null
@@ -0,0 +1,61 @@
+#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED\r
+\r
+//\r
+//  boost/detail/atomic_count_sync.hpp\r
+//\r
+//  atomic_count for g++ 4.1+\r
+//\r
+//  http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/Atomic-Builtins.html\r
+//\r
+//  Copyright 2007 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0. (See\r
+//  accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+#if defined( __ia64__ ) && defined( __INTEL_COMPILER )\r
+# include <ia64intrin.h>\r
+#endif\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+class atomic_count\r
+{\r
+public:\r
+\r
+    explicit atomic_count( long v ) : value_( v ) {}\r
+\r
+    long operator++()\r
+    {\r
+        return __sync_add_and_fetch( &value_, 1 );\r
+    }\r
+\r
+    long operator--()\r
+    {\r
+        return __sync_add_and_fetch( &value_, -1 );\r
+    }\r
+\r
+    operator long() const\r
+    {\r
+        return __sync_fetch_and_add( &value_, 0 );\r
+    }\r
+\r
+private:\r
+\r
+    atomic_count(atomic_count const &);\r
+    atomic_count & operator=(atomic_count const &);\r
+\r
+    mutable long value_;\r
+};\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/atomic_count_win32.hpp b/boost/boost/smart_ptr/detail/atomic_count_win32.hpp
new file mode 100644 (file)
index 0000000..70edce9
--- /dev/null
@@ -0,0 +1,63 @@
+#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  boost/detail/atomic_count_win32.hpp\r
+//\r
+//  Copyright (c) 2001-2005 Peter Dimov\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. (See\r
+// accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+#include <boost/detail/interlocked.hpp>\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+class atomic_count\r
+{\r
+public:\r
+\r
+    explicit atomic_count( long v ): value_( v )\r
+    {\r
+    }\r
+\r
+    long operator++()\r
+    {\r
+        return BOOST_INTERLOCKED_INCREMENT( &value_ );\r
+    }\r
+\r
+    long operator--()\r
+    {\r
+        return BOOST_INTERLOCKED_DECREMENT( &value_ );\r
+    }\r
+\r
+    operator long() const\r
+    {\r
+        return static_cast<long const volatile &>( value_ );\r
+    }\r
+\r
+private:\r
+\r
+    atomic_count( atomic_count const & );\r
+    atomic_count & operator=( atomic_count const & );\r
+\r
+    long value_;\r
+};\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/lightweight_mutex.hpp b/boost/boost/smart_ptr/detail/lightweight_mutex.hpp
new file mode 100644 (file)
index 0000000..f6c159e
--- /dev/null
@@ -0,0 +1,42 @@
+#ifndef BOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  boost/detail/lightweight_mutex.hpp - lightweight mutex\r
+//\r
+//  Copyright (c) 2002, 2003 Peter Dimov and Multi Media Ltd.\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. (See\r
+// accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+//  typedef <unspecified> boost::detail::lightweight_mutex;\r
+//\r
+//  boost::detail::lightweight_mutex is a header-only implementation of\r
+//  a subset of the Mutex concept requirements:\r
+//\r
+//  http://www.boost.org/doc/html/threads/concepts.html#threads.concepts.Mutex\r
+//\r
+//  It maps to a CRITICAL_SECTION on Windows or a pthread_mutex on POSIX.\r
+//\r
+\r
+#include <boost/config.hpp>\r
+\r
+#if !defined(BOOST_HAS_THREADS)\r
+#  include <boost/smart_ptr/detail/lwm_nop.hpp>\r
+#elif defined(BOOST_HAS_PTHREADS)\r
+#  include <boost/smart_ptr/detail/lwm_pthreads.hpp>\r
+#elif defined(BOOST_HAS_WINTHREADS) || defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)\r
+#  include <boost/smart_ptr/detail/lwm_win32_cs.hpp>\r
+#else\r
+// Use #define BOOST_DISABLE_THREADS to avoid the error\r
+#  error Unrecognized threading platform\r
+#endif\r
+\r
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/lwm_nop.hpp b/boost/boost/smart_ptr/detail/lwm_nop.hpp
new file mode 100644 (file)
index 0000000..cc1e97f
--- /dev/null
@@ -0,0 +1,37 @@
+#ifndef BOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  boost/detail/lwm_nop.hpp\r
+//\r
+//  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. (See\r
+// accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+class lightweight_mutex\r
+{\r
+public:\r
+\r
+    typedef lightweight_mutex scoped_lock;\r
+};\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/lwm_pthreads.hpp b/boost/boost/smart_ptr/detail/lwm_pthreads.hpp
new file mode 100644 (file)
index 0000000..16a05f3
--- /dev/null
@@ -0,0 +1,86 @@
+#ifndef BOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  boost/detail/lwm_pthreads.hpp\r
+//\r
+//  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. (See\r
+// accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+#include <pthread.h>\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+class lightweight_mutex\r
+{\r
+private:\r
+\r
+    pthread_mutex_t m_;\r
+\r
+    lightweight_mutex(lightweight_mutex const &);\r
+    lightweight_mutex & operator=(lightweight_mutex const &);\r
+\r
+public:\r
+\r
+    lightweight_mutex()\r
+    {\r
+\r
+// HPUX 10.20 / DCE has a nonstandard pthread_mutex_init\r
+\r
+#if defined(__hpux) && defined(_DECTHREADS_)\r
+        pthread_mutex_init(&m_, pthread_mutexattr_default);\r
+#else\r
+        pthread_mutex_init(&m_, 0);\r
+#endif\r
+    }\r
+\r
+    ~lightweight_mutex()\r
+    {\r
+        pthread_mutex_destroy(&m_);\r
+    }\r
+\r
+    class scoped_lock;\r
+    friend class scoped_lock;\r
+\r
+    class scoped_lock\r
+    {\r
+    private:\r
+\r
+        pthread_mutex_t & m_;\r
+\r
+        scoped_lock(scoped_lock const &);\r
+        scoped_lock & operator=(scoped_lock const &);\r
+\r
+    public:\r
+\r
+        scoped_lock(lightweight_mutex & m): m_(m.m_)\r
+        {\r
+            pthread_mutex_lock(&m_);\r
+        }\r
+\r
+        ~scoped_lock()\r
+        {\r
+            pthread_mutex_unlock(&m_);\r
+        }\r
+    };\r
+};\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/lwm_win32_cs.hpp b/boost/boost/smart_ptr/detail/lwm_win32_cs.hpp
new file mode 100644 (file)
index 0000000..f2cbb9a
--- /dev/null
@@ -0,0 +1,108 @@
+#ifndef BOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  boost/detail/lwm_win32_cs.hpp\r
+//\r
+//  Copyright (c) 2002, 2003 Peter Dimov\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. (See\r
+// accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+#ifdef BOOST_USE_WINDOWS_H\r
+#  include <windows.h>\r
+#endif\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+#ifndef BOOST_USE_WINDOWS_H\r
+\r
+struct critical_section\r
+{\r
+    struct critical_section_debug * DebugInfo;\r
+    long LockCount;\r
+    long RecursionCount;\r
+    void * OwningThread;\r
+    void * LockSemaphore;\r
+#if defined(_WIN64)\r
+    unsigned __int64 SpinCount;\r
+#else\r
+    unsigned long SpinCount;\r
+#endif\r
+};\r
+\r
+extern "C" __declspec(dllimport) void __stdcall InitializeCriticalSection(critical_section *);\r
+extern "C" __declspec(dllimport) void __stdcall EnterCriticalSection(critical_section *);\r
+extern "C" __declspec(dllimport) void __stdcall LeaveCriticalSection(critical_section *);\r
+extern "C" __declspec(dllimport) void __stdcall DeleteCriticalSection(critical_section *);\r
+\r
+#else\r
+\r
+typedef ::CRITICAL_SECTION critical_section;\r
+\r
+#endif // #ifndef BOOST_USE_WINDOWS_H\r
+\r
+class lightweight_mutex\r
+{\r
+private:\r
+\r
+    critical_section cs_;\r
+\r
+    lightweight_mutex(lightweight_mutex const &);\r
+    lightweight_mutex & operator=(lightweight_mutex const &);\r
+\r
+public:\r
+\r
+    lightweight_mutex()\r
+    {\r
+        InitializeCriticalSection(&cs_);\r
+    }\r
+\r
+    ~lightweight_mutex()\r
+    {\r
+        DeleteCriticalSection(&cs_);\r
+    }\r
+\r
+    class scoped_lock;\r
+    friend class scoped_lock;\r
+\r
+    class scoped_lock\r
+    {\r
+    private:\r
+\r
+        lightweight_mutex & m_;\r
+\r
+        scoped_lock(scoped_lock const &);\r
+        scoped_lock & operator=(scoped_lock const &);\r
+\r
+    public:\r
+\r
+        explicit scoped_lock(lightweight_mutex & m): m_(m)\r
+        {\r
+            EnterCriticalSection(&m_.cs_);\r
+        }\r
+\r
+        ~scoped_lock()\r
+        {\r
+            LeaveCriticalSection(&m_.cs_);\r
+        }\r
+    };\r
+};\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/operator_bool.hpp b/boost/boost/smart_ptr/detail/operator_bool.hpp
new file mode 100644 (file)
index 0000000..a4bc752
--- /dev/null
@@ -0,0 +1,56 @@
+//  This header intentionally has no include guards.\r
+//\r
+//  Copyright (c) 2001-2009 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0.\r
+//  See accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt\r
+\r
+#if ( defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, < 0x570) ) || defined(__CINT__)\r
+\r
+    operator bool () const\r
+    {\r
+        return px != 0;\r
+    }\r
+\r
+#elif defined( _MANAGED )\r
+\r
+    static void unspecified_bool( this_type*** )\r
+    {\r
+    }\r
+\r
+    typedef void (*unspecified_bool_type)( this_type*** );\r
+\r
+    operator unspecified_bool_type() const // never throws\r
+    {\r
+        return px == 0? 0: unspecified_bool;\r
+    }\r
+\r
+#elif \\r
+    ( defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, < 0x3200) ) || \\r
+    ( defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ < 304) ) || \\r
+    ( defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x590) )\r
+\r
+    typedef T * (this_type::*unspecified_bool_type)() const;\r
+\r
+    operator unspecified_bool_type() const // never throws\r
+    {\r
+        return px == 0? 0: &this_type::get;\r
+    }\r
+\r
+#else\r
+\r
+    typedef T * this_type::*unspecified_bool_type;\r
+\r
+    operator unspecified_bool_type() const // never throws\r
+    {\r
+        return px == 0? 0: &this_type::px;\r
+    }\r
+\r
+#endif\r
+\r
+    // operator! is redundant, but some compilers need it\r
+    bool operator! () const // never throws\r
+    {\r
+        return px == 0;\r
+    }\r
diff --git a/boost/boost/smart_ptr/detail/quick_allocator.hpp b/boost/boost/smart_ptr/detail/quick_allocator.hpp
new file mode 100644 (file)
index 0000000..5025f52
--- /dev/null
@@ -0,0 +1,198 @@
+#ifndef BOOST_SMART_PTR_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  detail/quick_allocator.hpp\r
+//\r
+//  Copyright (c) 2003 David Abrahams\r
+//  Copyright (c) 2003 Peter Dimov\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. (See\r
+// accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+#include <boost/config.hpp>\r
+\r
+#include <boost/smart_ptr/detail/lightweight_mutex.hpp>\r
+#include <boost/type_traits/type_with_alignment.hpp>\r
+#include <boost/type_traits/alignment_of.hpp>\r
+\r
+#include <new>              // ::operator new, ::operator delete\r
+#include <cstddef>          // std::size_t\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+template<unsigned size, unsigned align_> union freeblock\r
+{\r
+    typedef typename boost::type_with_alignment<align_>::type aligner_type;\r
+    aligner_type aligner;\r
+    char bytes[size];\r
+    freeblock * next;\r
+};\r
+\r
+template<unsigned size, unsigned align_> struct allocator_impl\r
+{\r
+    typedef freeblock<size, align_> block;\r
+\r
+    // It may seem odd to use such small pages.\r
+    //\r
+    // However, on a typical Windows implementation that uses\r
+    // the OS allocator, "normal size" pages interact with the\r
+    // "ordinary" operator new, slowing it down dramatically.\r
+    //\r
+    // 512 byte pages are handled by the small object allocator,\r
+    // and don't interfere with ::new.\r
+    //\r
+    // The other alternative is to use much bigger pages (1M.)\r
+    //\r
+    // It is surprisingly easy to hit pathological behavior by\r
+    // varying the page size. g++ 2.96 on Red Hat Linux 7.2,\r
+    // for example, passionately dislikes 496. 512 seems OK.\r
+\r
+#if defined(BOOST_QA_PAGE_SIZE)\r
+\r
+    enum { items_per_page = BOOST_QA_PAGE_SIZE / size };\r
+\r
+#else\r
+\r
+    enum { items_per_page = 512 / size }; // 1048560 / size\r
+\r
+#endif\r
+\r
+#ifdef BOOST_HAS_THREADS\r
+\r
+    static lightweight_mutex & mutex()\r
+    {\r
+        static lightweight_mutex m;\r
+        return m;\r
+    }\r
+\r
+    static lightweight_mutex * mutex_init;\r
+\r
+#endif\r
+\r
+    static block * free;\r
+    static block * page;\r
+    static unsigned last;\r
+\r
+    static inline void * alloc()\r
+    {\r
+#ifdef BOOST_HAS_THREADS\r
+        lightweight_mutex::scoped_lock lock( mutex() );\r
+#endif\r
+        if(block * x = free)\r
+        {\r
+            free = x->next;\r
+            return x;\r
+        }\r
+        else\r
+        {\r
+            if(last == items_per_page)\r
+            {\r
+                // "Listen to me carefully: there is no memory leak"\r
+                // -- Scott Meyers, Eff C++ 2nd Ed Item 10\r
+                page = ::new block[items_per_page];\r
+                last = 0;\r
+            }\r
+\r
+            return &page[last++];\r
+        }\r
+    }\r
+\r
+    static inline void * alloc(std::size_t n)\r
+    {\r
+        if(n != size) // class-specific new called for a derived object\r
+        {\r
+            return ::operator new(n);\r
+        }\r
+        else\r
+        {\r
+#ifdef BOOST_HAS_THREADS\r
+            lightweight_mutex::scoped_lock lock( mutex() );\r
+#endif\r
+            if(block * x = free)\r
+            {\r
+                free = x->next;\r
+                return x;\r
+            }\r
+            else\r
+            {\r
+                if(last == items_per_page)\r
+                {\r
+                    page = ::new block[items_per_page];\r
+                    last = 0;\r
+                }\r
+\r
+                return &page[last++];\r
+            }\r
+        }\r
+    }\r
+\r
+    static inline void dealloc(void * pv)\r
+    {\r
+        if(pv != 0) // 18.4.1.1/13\r
+        {\r
+#ifdef BOOST_HAS_THREADS\r
+            lightweight_mutex::scoped_lock lock( mutex() );\r
+#endif\r
+            block * pb = static_cast<block *>(pv);\r
+            pb->next = free;\r
+            free = pb;\r
+        }\r
+    }\r
+\r
+    static inline void dealloc(void * pv, std::size_t n)\r
+    {\r
+        if(n != size) // class-specific delete called for a derived object\r
+        {\r
+            ::operator delete(pv);\r
+        }\r
+        else if(pv != 0) // 18.4.1.1/13\r
+        {\r
+#ifdef BOOST_HAS_THREADS\r
+            lightweight_mutex::scoped_lock lock( mutex() );\r
+#endif\r
+            block * pb = static_cast<block *>(pv);\r
+            pb->next = free;\r
+            free = pb;\r
+        }\r
+    }\r
+};\r
+\r
+#ifdef BOOST_HAS_THREADS\r
+\r
+template<unsigned size, unsigned align_>\r
+  lightweight_mutex * allocator_impl<size, align_>::mutex_init = &allocator_impl<size, align_>::mutex();\r
+\r
+#endif\r
+\r
+template<unsigned size, unsigned align_>\r
+  freeblock<size, align_> * allocator_impl<size, align_>::free = 0;\r
+\r
+template<unsigned size, unsigned align_>\r
+  freeblock<size, align_> * allocator_impl<size, align_>::page = 0;\r
+\r
+template<unsigned size, unsigned align_>\r
+  unsigned allocator_impl<size, align_>::last = allocator_impl<size, align_>::items_per_page;\r
+\r
+template<class T>\r
+struct quick_allocator: public allocator_impl< sizeof(T), boost::alignment_of<T>::value >\r
+{\r
+};\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/shared_array_nmt.hpp b/boost/boost/smart_ptr/detail/shared_array_nmt.hpp
new file mode 100644 (file)
index 0000000..d811a05
--- /dev/null
@@ -0,0 +1,151 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SHARED_ARRAY_NMT_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SHARED_ARRAY_NMT_HPP_INCLUDED\r
+\r
+//\r
+//  detail/shared_array_nmt.hpp - shared_array.hpp without member templates\r
+//\r
+//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.\r
+//  Copyright (c) 2001, 2002 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0. (See\r
+//  accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+//  See http://www.boost.org/libs/smart_ptr/shared_array.htm for documentation.\r
+//\r
+\r
+#include <boost/assert.hpp>\r
+#include <boost/checked_delete.hpp>\r
+#include <boost/throw_exception.hpp>\r
+#include <boost/smart_ptr/detail/atomic_count.hpp>\r
+\r
+#include <cstddef>          // for std::ptrdiff_t\r
+#include <algorithm>        // for std::swap\r
+#include <functional>       // for std::less\r
+#include <new>              // for std::bad_alloc\r
+\r
+namespace boost\r
+{\r
+\r
+template<class T> class shared_array\r
+{\r
+private:\r
+\r
+    typedef detail::atomic_count count_type;\r
+\r
+public:\r
+\r
+    typedef T element_type;\r
+      \r
+    explicit shared_array(T * p = 0): px(p)\r
+    {\r
+#ifndef BOOST_NO_EXCEPTIONS\r
+\r
+        try  // prevent leak if new throws\r
+        {\r
+            pn = new count_type(1);\r
+        }\r
+        catch(...)\r
+        {\r
+            boost::checked_array_delete(p);\r
+            throw;\r
+        }\r
+\r
+#else\r
+\r
+        pn = new count_type(1);\r
+\r
+        if(pn == 0)\r
+        {\r
+            boost::checked_array_delete(p);\r
+            boost::throw_exception(std::bad_alloc());\r
+        }\r
+\r
+#endif\r
+    }\r
+\r
+    ~shared_array()\r
+    {\r
+        if(--*pn == 0)\r
+        {\r
+            boost::checked_array_delete(px);\r
+            delete pn;\r
+        }\r
+    }\r
+\r
+    shared_array(shared_array const & r) : px(r.px)  // never throws\r
+    {\r
+        pn = r.pn;\r
+        ++*pn;\r
+    }\r
+\r
+    shared_array & operator=(shared_array const & r)\r
+    {\r
+        shared_array(r).swap(*this);\r
+        return *this;\r
+    }\r
+\r
+    void reset(T * p = 0)\r
+    {\r
+        BOOST_ASSERT(p == 0 || p != px);\r
+        shared_array(p).swap(*this);\r
+    }\r
+\r
+    T * get() const  // never throws\r
+    {\r
+        return px;\r
+    }\r
+\r
+    T & operator[](std::ptrdiff_t i) const  // never throws\r
+    {\r
+        BOOST_ASSERT(px != 0);\r
+        BOOST_ASSERT(i >= 0);\r
+        return px[i];\r
+    }\r
+\r
+    long use_count() const  // never throws\r
+    {\r
+        return *pn;\r
+    }\r
+\r
+    bool unique() const  // never throws\r
+    {\r
+        return *pn == 1;\r
+    }\r
+\r
+    void swap(shared_array<T> & other)  // never throws\r
+    {\r
+        std::swap(px, other.px);\r
+        std::swap(pn, other.pn);\r
+    }\r
+\r
+private:\r
+\r
+    T * px;            // contained pointer\r
+    count_type * pn;   // ptr to reference counter\r
+      \r
+};  // shared_array\r
+\r
+template<class T, class U> inline bool operator==(shared_array<T> const & a, shared_array<U> const & b)\r
+{\r
+    return a.get() == b.get();\r
+}\r
+\r
+template<class T, class U> inline bool operator!=(shared_array<T> const & a, shared_array<U> const & b)\r
+{\r
+    return a.get() != b.get();\r
+}\r
+\r
+template<class T> inline bool operator<(shared_array<T> const & a, shared_array<T> const & b)\r
+{\r
+    return std::less<T*>()(a.get(), b.get());\r
+}\r
+\r
+template<class T> void swap(shared_array<T> & a, shared_array<T> & b)\r
+{\r
+    a.swap(b);\r
+}\r
+\r
+} // namespace boost\r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SHARED_ARRAY_NMT_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/shared_count.hpp b/boost/boost/smart_ptr/detail/shared_count.hpp
new file mode 100644 (file)
index 0000000..eb43d99
--- /dev/null
@@ -0,0 +1,430 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SHARED_COUNT_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SHARED_COUNT_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  detail/shared_count.hpp\r
+//\r
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
+//  Copyright 2004-2005 Peter Dimov\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. (See\r
+// accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+#ifdef __BORLANDC__\r
+# pragma warn -8027     // Functions containing try are not expanded inline\r
+#endif\r
+\r
+#include <boost/config.hpp>\r
+#include <boost/checked_delete.hpp>\r
+#include <boost/throw_exception.hpp>\r
+#include <boost/smart_ptr/bad_weak_ptr.hpp>\r
+#include <boost/smart_ptr/detail/sp_counted_base.hpp>\r
+#include <boost/smart_ptr/detail/sp_counted_impl.hpp>\r
+#include <boost/detail/workaround.hpp>\r
+// In order to avoid circular dependencies with Boost.TR1\r
+// we make sure that our include of <memory> doesn't try to\r
+// pull in the TR1 headers: that's why we use this header \r
+// rather than including <memory> directly:\r
+#include <boost/config/no_tr1/memory.hpp>  // std::auto_ptr\r
+#include <functional>       // std::less\r
+#include <new>              // std::bad_alloc\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+\r
+int const shared_count_id = 0x2C35F101;\r
+int const   weak_count_id = 0x298C38A4;\r
+\r
+#endif\r
+\r
+struct sp_nothrow_tag {};\r
+\r
+class weak_count;\r
+\r
+class shared_count\r
+{\r
+private:\r
+\r
+    sp_counted_base * pi_;\r
+\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+    int id_;\r
+#endif\r
+\r
+    friend class weak_count;\r
+\r
+public:\r
+\r
+    shared_count(): pi_(0) // nothrow\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+        , id_(shared_count_id)\r
+#endif\r
+    {\r
+    }\r
+\r
+    template<class Y> explicit shared_count( Y * p ): pi_( 0 )\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+        , id_(shared_count_id)\r
+#endif\r
+    {\r
+#ifndef BOOST_NO_EXCEPTIONS\r
+\r
+        try\r
+        {\r
+            pi_ = new sp_counted_impl_p<Y>( p );\r
+        }\r
+        catch(...)\r
+        {\r
+            boost::checked_delete( p );\r
+            throw;\r
+        }\r
+\r
+#else\r
+\r
+        pi_ = new sp_counted_impl_p<Y>( p );\r
+\r
+        if( pi_ == 0 )\r
+        {\r
+            boost::checked_delete( p );\r
+            boost::throw_exception( std::bad_alloc() );\r
+        }\r
+\r
+#endif\r
+    }\r
+\r
+#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, <= 1200 )\r
+    template<class Y, class D> shared_count( Y * p, D d ): pi_(0)\r
+#else\r
+    template<class P, class D> shared_count( P p, D d ): pi_(0)\r
+#endif\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+        , id_(shared_count_id)\r
+#endif\r
+    {\r
+#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, <= 1200 )\r
+        typedef Y* P;\r
+#endif\r
+#ifndef BOOST_NO_EXCEPTIONS\r
+\r
+        try\r
+        {\r
+            pi_ = new sp_counted_impl_pd<P, D>(p, d);\r
+        }\r
+        catch(...)\r
+        {\r
+            d(p); // delete p\r
+            throw;\r
+        }\r
+\r
+#else\r
+\r
+        pi_ = new sp_counted_impl_pd<P, D>(p, d);\r
+\r
+        if(pi_ == 0)\r
+        {\r
+            d(p); // delete p\r
+            boost::throw_exception(std::bad_alloc());\r
+        }\r
+\r
+#endif\r
+    }\r
+\r
+    template<class P, class D, class A> shared_count( P p, D d, A a ): pi_( 0 )\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+        , id_(shared_count_id)\r
+#endif\r
+    {\r
+        typedef sp_counted_impl_pda<P, D, A> impl_type;\r
+        typedef typename A::template rebind< impl_type >::other A2;\r
+\r
+        A2 a2( a );\r
+\r
+#ifndef BOOST_NO_EXCEPTIONS\r
+\r
+        try\r
+        {\r
+            pi_ = a2.allocate( 1, static_cast< impl_type* >( 0 ) );\r
+            new( static_cast< void* >( pi_ ) ) impl_type( p, d, a );\r
+        }\r
+        catch(...)\r
+        {\r
+            d( p );\r
+\r
+            if( pi_ != 0 )\r
+            {\r
+                a2.deallocate( static_cast< impl_type* >( pi_ ), 1 );\r
+            }\r
+\r
+            throw;\r
+        }\r
+\r
+#else\r
+\r
+        pi_ = a2.allocate( 1, static_cast< impl_type* >( 0 ) );\r
+\r
+        if( pi_ != 0 )\r
+        {\r
+            new( static_cast< void* >( pi_ ) ) impl_type( p, d, a );\r
+        }\r
+        else\r
+        {\r
+            d( p );\r
+            boost::throw_exception( std::bad_alloc() );\r
+        }\r
+\r
+#endif\r
+    }\r
+\r
+#ifndef BOOST_NO_AUTO_PTR\r
+\r
+    // auto_ptr<Y> is special cased to provide the strong guarantee\r
+\r
+    template<class Y>\r
+    explicit shared_count( std::auto_ptr<Y> & r ): pi_( new sp_counted_impl_p<Y>( r.get() ) )\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+        , id_(shared_count_id)\r
+#endif\r
+    {\r
+#ifdef BOOST_NO_EXCEPTIONS\r
+\r
+        if( pi_ == 0 )\r
+        {\r
+            boost::throw_exception(std::bad_alloc());\r
+        }\r
+\r
+#endif\r
+\r
+        r.release();\r
+    }\r
+\r
+#endif \r
+\r
+    ~shared_count() // nothrow\r
+    {\r
+        if( pi_ != 0 ) pi_->release();\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+        id_ = 0;\r
+#endif\r
+    }\r
+\r
+    shared_count(shared_count const & r): pi_(r.pi_) // nothrow\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+        , id_(shared_count_id)\r
+#endif\r
+    {\r
+        if( pi_ != 0 ) pi_->add_ref_copy();\r
+    }\r
+\r
+#if defined( BOOST_HAS_RVALUE_REFS )\r
+\r
+    shared_count(shared_count && r): pi_(r.pi_) // nothrow\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+        , id_(shared_count_id)\r
+#endif\r
+    {\r
+        r.pi_ = 0;\r
+    }\r
+\r
+#endif\r
+\r
+    explicit shared_count(weak_count const & r); // throws bad_weak_ptr when r.use_count() == 0\r
+    shared_count( weak_count const & r, sp_nothrow_tag ); // constructs an empty *this when r.use_count() == 0\r
+\r
+    shared_count & operator= (shared_count const & r) // nothrow\r
+    {\r
+        sp_counted_base * tmp = r.pi_;\r
+\r
+        if( tmp != pi_ )\r
+        {\r
+            if( tmp != 0 ) tmp->add_ref_copy();\r
+            if( pi_ != 0 ) pi_->release();\r
+            pi_ = tmp;\r
+        }\r
+\r
+        return *this;\r
+    }\r
+\r
+    void swap(shared_count & r) // nothrow\r
+    {\r
+        sp_counted_base * tmp = r.pi_;\r
+        r.pi_ = pi_;\r
+        pi_ = tmp;\r
+    }\r
+\r
+    long use_count() const // nothrow\r
+    {\r
+        return pi_ != 0? pi_->use_count(): 0;\r
+    }\r
+\r
+    bool unique() const // nothrow\r
+    {\r
+        return use_count() == 1;\r
+    }\r
+\r
+    bool empty() const // nothrow\r
+    {\r
+        return pi_ == 0;\r
+    }\r
+\r
+    friend inline bool operator==(shared_count const & a, shared_count const & b)\r
+    {\r
+        return a.pi_ == b.pi_;\r
+    }\r
+\r
+    friend inline bool operator<(shared_count const & a, shared_count const & b)\r
+    {\r
+        return std::less<sp_counted_base *>()( a.pi_, b.pi_ );\r
+    }\r
+\r
+    void * get_deleter( sp_typeinfo const & ti ) const\r
+    {\r
+        return pi_? pi_->get_deleter( ti ): 0;\r
+    }\r
+};\r
+\r
+\r
+class weak_count\r
+{\r
+private:\r
+\r
+    sp_counted_base * pi_;\r
+\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+    int id_;\r
+#endif\r
+\r
+    friend class shared_count;\r
+\r
+public:\r
+\r
+    weak_count(): pi_(0) // nothrow\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+        , id_(weak_count_id)\r
+#endif\r
+    {\r
+    }\r
+\r
+    weak_count(shared_count const & r): pi_(r.pi_) // nothrow\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+        , id_(weak_count_id)\r
+#endif\r
+    {\r
+        if(pi_ != 0) pi_->weak_add_ref();\r
+    }\r
+\r
+    weak_count(weak_count const & r): pi_(r.pi_) // nothrow\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+        , id_(weak_count_id)\r
+#endif\r
+    {\r
+        if(pi_ != 0) pi_->weak_add_ref();\r
+    }\r
+\r
+    ~weak_count() // nothrow\r
+    {\r
+        if(pi_ != 0) pi_->weak_release();\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+        id_ = 0;\r
+#endif\r
+    }\r
+\r
+    weak_count & operator= (shared_count const & r) // nothrow\r
+    {\r
+        sp_counted_base * tmp = r.pi_;\r
+\r
+        if( tmp != pi_ )\r
+        {\r
+            if(tmp != 0) tmp->weak_add_ref();\r
+            if(pi_ != 0) pi_->weak_release();\r
+            pi_ = tmp;\r
+        }\r
+\r
+        return *this;\r
+    }\r
+\r
+    weak_count & operator= (weak_count const & r) // nothrow\r
+    {\r
+        sp_counted_base * tmp = r.pi_;\r
+\r
+        if( tmp != pi_ )\r
+        {\r
+            if(tmp != 0) tmp->weak_add_ref();\r
+            if(pi_ != 0) pi_->weak_release();\r
+            pi_ = tmp;\r
+        }\r
+\r
+        return *this;\r
+    }\r
+\r
+    void swap(weak_count & r) // nothrow\r
+    {\r
+        sp_counted_base * tmp = r.pi_;\r
+        r.pi_ = pi_;\r
+        pi_ = tmp;\r
+    }\r
+\r
+    long use_count() const // nothrow\r
+    {\r
+        return pi_ != 0? pi_->use_count(): 0;\r
+    }\r
+\r
+    bool empty() const // nothrow\r
+    {\r
+        return pi_ == 0;\r
+    }\r
+\r
+    friend inline bool operator==(weak_count const & a, weak_count const & b)\r
+    {\r
+        return a.pi_ == b.pi_;\r
+    }\r
+\r
+    friend inline bool operator<(weak_count const & a, weak_count const & b)\r
+    {\r
+        return std::less<sp_counted_base *>()(a.pi_, b.pi_);\r
+    }\r
+};\r
+\r
+inline shared_count::shared_count( weak_count const & r ): pi_( r.pi_ )\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+        , id_(shared_count_id)\r
+#endif\r
+{\r
+    if( pi_ == 0 || !pi_->add_ref_lock() )\r
+    {\r
+        boost::throw_exception( boost::bad_weak_ptr() );\r
+    }\r
+}\r
+\r
+inline shared_count::shared_count( weak_count const & r, sp_nothrow_tag ): pi_( r.pi_ )\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+        , id_(shared_count_id)\r
+#endif\r
+{\r
+    if( pi_ != 0 && !pi_->add_ref_lock() )\r
+    {\r
+        pi_ = 0;\r
+    }\r
+}\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#ifdef __BORLANDC__\r
+# pragma warn .8027     // Functions containing try are not expanded inline\r
+#endif\r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SHARED_COUNT_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/shared_ptr_nmt.hpp b/boost/boost/smart_ptr/detail/shared_ptr_nmt.hpp
new file mode 100644 (file)
index 0000000..2921f41
--- /dev/null
@@ -0,0 +1,182 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SHARED_PTR_NMT_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SHARED_PTR_NMT_HPP_INCLUDED\r
+\r
+//\r
+//  detail/shared_ptr_nmt.hpp - shared_ptr.hpp without member templates\r
+//\r
+//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.\r
+//  Copyright (c) 2001, 2002 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0. (See\r
+//  accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+//  See http://www.boost.org/libs/smart_ptr/shared_ptr.htm for documentation.\r
+//\r
+\r
+#include <boost/assert.hpp>\r
+#include <boost/checked_delete.hpp>\r
+#include <boost/throw_exception.hpp>\r
+#include <boost/smart_ptr/detail/atomic_count.hpp>\r
+\r
+#ifndef BOOST_NO_AUTO_PTR\r
+# include <memory>          // for std::auto_ptr\r
+#endif\r
+\r
+#include <algorithm>        // for std::swap\r
+#include <functional>       // for std::less\r
+#include <new>              // for std::bad_alloc\r
+\r
+namespace boost\r
+{\r
+\r
+template<class T> class shared_ptr\r
+{\r
+private:\r
+\r
+    typedef detail::atomic_count count_type;\r
+\r
+public:\r
+\r
+    typedef T element_type;\r
+    typedef T value_type;\r
+\r
+    explicit shared_ptr(T * p = 0): px(p)\r
+    {\r
+#ifndef BOOST_NO_EXCEPTIONS\r
+\r
+        try  // prevent leak if new throws\r
+        {\r
+            pn = new count_type(1);\r
+        }\r
+        catch(...)\r
+        {\r
+            boost::checked_delete(p);\r
+            throw;\r
+        }\r
+\r
+#else\r
+\r
+        pn = new count_type(1);\r
+\r
+        if(pn == 0)\r
+        {\r
+            boost::checked_delete(p);\r
+            boost::throw_exception(std::bad_alloc());\r
+        }\r
+\r
+#endif\r
+    }\r
+\r
+    ~shared_ptr()\r
+    {\r
+        if(--*pn == 0)\r
+        {\r
+            boost::checked_delete(px);\r
+            delete pn;\r
+        }\r
+    }\r
+\r
+    shared_ptr(shared_ptr const & r): px(r.px)  // never throws\r
+    {\r
+        pn = r.pn;\r
+        ++*pn;\r
+    }\r
+\r
+    shared_ptr & operator=(shared_ptr const & r)\r
+    {\r
+        shared_ptr(r).swap(*this);\r
+        return *this;\r
+    }\r
+\r
+#ifndef BOOST_NO_AUTO_PTR\r
+\r
+    explicit shared_ptr(std::auto_ptr<T> & r)\r
+    { \r
+        pn = new count_type(1); // may throw\r
+        px = r.release(); // fix: moved here to stop leak if new throws\r
+    } \r
+\r
+    shared_ptr & operator=(std::auto_ptr<T> & r)\r
+    {\r
+        shared_ptr(r).swap(*this);\r
+        return *this;\r
+    }\r
+\r
+#endif\r
+\r
+    void reset(T * p = 0)\r
+    {\r
+        BOOST_ASSERT(p == 0 || p != px);\r
+        shared_ptr(p).swap(*this);\r
+    }\r
+\r
+    T & operator*() const  // never throws\r
+    {\r
+        BOOST_ASSERT(px != 0);\r
+        return *px;\r
+    }\r
+\r
+    T * operator->() const  // never throws\r
+    {\r
+        BOOST_ASSERT(px != 0);\r
+        return px;\r
+    }\r
+\r
+    T * get() const  // never throws\r
+    {\r
+        return px;\r
+    }\r
+\r
+    long use_count() const  // never throws\r
+    {\r
+        return *pn;\r
+    }\r
+\r
+    bool unique() const  // never throws\r
+    {\r
+        return *pn == 1;\r
+    }\r
+    \r
+    void swap(shared_ptr<T> & other)  // never throws\r
+    {\r
+        std::swap(px, other.px);\r
+        std::swap(pn, other.pn);\r
+    }\r
+\r
+private:\r
+\r
+    T * px;            // contained pointer\r
+    count_type * pn;   // ptr to reference counter\r
+};\r
+\r
+template<class T, class U> inline bool operator==(shared_ptr<T> const & a, shared_ptr<U> const & b)\r
+{\r
+    return a.get() == b.get();\r
+}\r
+\r
+template<class T, class U> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<U> const & b)\r
+{\r
+    return a.get() != b.get();\r
+}\r
+\r
+template<class T> inline bool operator<(shared_ptr<T> const & a, shared_ptr<T> const & b)\r
+{\r
+    return std::less<T*>()(a.get(), b.get());\r
+}\r
+\r
+template<class T> void swap(shared_ptr<T> & a, shared_ptr<T> & b)\r
+{\r
+    a.swap(b);\r
+}\r
+\r
+// get_pointer() enables boost::mem_fn to recognize shared_ptr\r
+\r
+template<class T> inline T * get_pointer(shared_ptr<T> const & p)\r
+{\r
+    return p.get();\r
+}\r
+\r
+} // namespace boost\r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SHARED_PTR_NMT_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/sp_convertible.hpp b/boost/boost/smart_ptr/detail/sp_convertible.hpp
new file mode 100644 (file)
index 0000000..693bfa6
--- /dev/null
@@ -0,0 +1,76 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//  detail/sp_convertible.hpp\r
+//\r
+//  Copyright 2008 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0.\r
+//  See accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt\r
+\r
+#include <boost/config.hpp>\r
+\r
+#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( BOOST_NO_SFINAE )\r
+# define BOOST_SP_NO_SP_CONVERTIBLE\r
+#endif\r
+\r
+#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( __GNUC__ ) && ( __GNUC__ * 100 + __GNUC_MINOR__ < 303 )\r
+# define BOOST_SP_NO_SP_CONVERTIBLE\r
+#endif\r
+\r
+#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( __BORLANDC__ ) && ( __BORLANDC__ <= 0x610 )\r
+# define BOOST_SP_NO_SP_CONVERTIBLE\r
+#endif\r
+\r
+#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+template< class Y, class T > struct sp_convertible\r
+{\r
+    typedef char (&yes) [1];\r
+    typedef char (&no)  [2];\r
+\r
+    static yes f( T* );\r
+    static no  f( ... );\r
+\r
+    enum _vt { value = sizeof( f( (Y*)0 ) ) == sizeof(yes) };\r
+};\r
+\r
+struct sp_empty\r
+{\r
+};\r
+\r
+template< bool > struct sp_enable_if_convertible_impl;\r
+\r
+template<> struct sp_enable_if_convertible_impl<true>\r
+{\r
+    typedef sp_empty type;\r
+};\r
+\r
+template<> struct sp_enable_if_convertible_impl<false>\r
+{\r
+};\r
+\r
+template< class Y, class T > struct sp_enable_if_convertible: public sp_enable_if_convertible_impl< sp_convertible< Y, T >::value >\r
+{\r
+};\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif // !defined( BOOST_SP_NO_SP_CONVERTIBLE )\r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/sp_counted_base.hpp b/boost/boost/smart_ptr/detail/sp_counted_base.hpp
new file mode 100644 (file)
index 0000000..7302560
--- /dev/null
@@ -0,0 +1,70 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  detail/sp_counted_base.hpp\r
+//\r
+//  Copyright 2005, 2006 Peter Dimov\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. (See\r
+// accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+#include <boost/config.hpp>\r
+#include <boost/smart_ptr/detail/sp_has_sync.hpp>\r
+\r
+#if defined( BOOST_SP_DISABLE_THREADS )\r
+# include <boost/smart_ptr/detail/sp_counted_base_nt.hpp>\r
+\r
+#elif defined( BOOST_SP_USE_SPINLOCK )\r
+# include <boost/smart_ptr/detail/sp_counted_base_spin.hpp>\r
+\r
+#elif defined( BOOST_SP_USE_PTHREADS )\r
+# include <boost/smart_ptr/detail/sp_counted_base_pt.hpp>\r
+\r
+#elif defined( BOOST_DISABLE_THREADS ) && !defined( BOOST_SP_ENABLE_THREADS ) && !defined( BOOST_DISABLE_WIN32 )\r
+# include <boost/smart_ptr/detail/sp_counted_base_nt.hpp>\r
+\r
+#elif defined( __GNUC__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) )\r
+# include <boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp>\r
+\r
+#elif defined( __GNUC__ ) && defined( __ia64__ ) && !defined( __INTEL_COMPILER )\r
+# include <boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp>\r
+\r
+#elif defined(__HP_aCC) && defined(__ia64)\r
+# include <boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp>\r
+\r
+#elif defined( __MWERKS__ ) && defined( __POWERPC__ )\r
+# include <boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp>\r
+\r
+#elif defined( __GNUC__ ) && ( defined( __powerpc__ ) || defined( __ppc__ ) || defined( __ppc ) )\r
+# include <boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp>\r
+\r
+#elif defined( __GNUC__ ) && ( defined( __mips__ ) || defined( _mips ) )\r
+# include <boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp>\r
+\r
+#elif defined( BOOST_SP_HAS_SYNC )\r
+# include <boost/smart_ptr/detail/sp_counted_base_sync.hpp>\r
+\r
+#elif defined(__GNUC__) && ( defined( __sparcv9 ) || ( defined( __sparcv8 ) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 402 ) ) )\r
+# include <boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp>\r
+\r
+#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined(__CYGWIN__)\r
+# include <boost/smart_ptr/detail/sp_counted_base_w32.hpp>\r
+\r
+#elif !defined( BOOST_HAS_THREADS )\r
+# include <boost/smart_ptr/detail/sp_counted_base_nt.hpp>\r
+\r
+#else\r
+# include <boost/smart_ptr/detail/sp_counted_base_spin.hpp>\r
+\r
+#endif\r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp
new file mode 100644 (file)
index 0000000..1fe2326
--- /dev/null
@@ -0,0 +1,150 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_ACC_IA64_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_ACC_IA64_HPP_INCLUDED\r
+\r
+//\r
+//  detail/sp_counted_base_acc_ia64.hpp - aC++ on HP-UX IA64\r
+//\r
+//  Copyright 2007 Baruch Zilber\r
+//  Copyright 2007 Boris Gubenko\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0. (See\r
+//  accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+//\r
+//  Lock-free algorithm by Alexander Terekhov\r
+//\r
+\r
+#include <boost/detail/sp_typeinfo.hpp>\r
+#include <machine/sys/inline.h>\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+inline void atomic_increment( int * pw )\r
+{\r
+    // ++*pw;\r
+\r
+    _Asm_fetchadd(_FASZ_W, _SEM_REL, pw, +1, _LDHINT_NONE);\r
+} \r
+\r
+inline int atomic_decrement( int * pw )\r
+{\r
+    // return --*pw;\r
+\r
+    int r = static_cast<int>(_Asm_fetchadd(_FASZ_W, _SEM_REL, pw, -1, _LDHINT_NONE));\r
+    if (1 == r)\r
+    {\r
+        _Asm_mf();\r
+    }\r
+    \r
+    return r - 1;\r
+}\r
+\r
+inline int atomic_conditional_increment( int * pw )\r
+{\r
+    // if( *pw != 0 ) ++*pw;\r
+    // return *pw;\r
+\r
+    int v = *pw;\r
+    \r
+    for (;;)\r
+    {\r
+        if (0 == v)\r
+        {\r
+            return 0;\r
+        }\r
+        \r
+        _Asm_mov_to_ar(_AREG_CCV,\r
+                       v,\r
+                       (_UP_CALL_FENCE | _UP_SYS_FENCE | _DOWN_CALL_FENCE | _DOWN_SYS_FENCE));\r
+        int r = static_cast<int>(_Asm_cmpxchg(_SZ_W, _SEM_ACQ, pw, v + 1, _LDHINT_NONE));\r
+        if (r == v)\r
+        {\r
+            return r + 1;\r
+        }\r
+        \r
+        v = r;\r
+    }\r
+}\r
+\r
+class sp_counted_base\r
+{\r
+private:\r
+\r
+    sp_counted_base( sp_counted_base const & );\r
+    sp_counted_base & operator= ( sp_counted_base const & );\r
+\r
+    int use_count_;        // #shared\r
+    int weak_count_;       // #weak + (#shared != 0)\r
+\r
+public:\r
+\r
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
+    {\r
+    }\r
+\r
+    virtual ~sp_counted_base() // nothrow\r
+    {\r
+    }\r
+\r
+    // dispose() is called when use_count_ drops to zero, to release\r
+    // the resources managed by *this.\r
+\r
+    virtual void dispose() = 0; // nothrow\r
+\r
+    // destroy() is called when weak_count_ drops to zero.\r
+\r
+    virtual void destroy() // nothrow\r
+    {\r
+        delete this;\r
+    }\r
+\r
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
+\r
+    void add_ref_copy()\r
+    {\r
+        atomic_increment( &use_count_ );\r
+    }\r
+\r
+    bool add_ref_lock() // true on success\r
+    {\r
+        return atomic_conditional_increment( &use_count_ ) != 0;\r
+    }\r
+\r
+    void release() // nothrow\r
+    {\r
+        if( atomic_decrement( &use_count_ ) == 0 )\r
+        {\r
+            dispose();\r
+            weak_release();\r
+        }\r
+    }\r
+\r
+    void weak_add_ref() // nothrow\r
+    {\r
+        atomic_increment( &weak_count_ );\r
+    }\r
+\r
+    void weak_release() // nothrow\r
+    {\r
+        if( atomic_decrement( &weak_count_ ) == 0 )\r
+        {\r
+            destroy();\r
+        }\r
+    }\r
+\r
+    long use_count() const // nothrow\r
+    {\r
+        return static_cast<int const volatile &>( use_count_ ); // TODO use ld.acq here\r
+    }\r
+};\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_ACC_IA64_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp
new file mode 100644 (file)
index 0000000..01c0c45
--- /dev/null
@@ -0,0 +1,170 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  detail/sp_counted_base_cw_ppc.hpp - CodeWarrior on PowerPC\r
+//\r
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
+//  Copyright 2004-2005 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0. (See\r
+//  accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+//\r
+//  Lock-free algorithm by Alexander Terekhov\r
+//\r
+//  Thanks to Ben Hitchings for the #weak + (#shared != 0)\r
+//  formulation\r
+//\r
+\r
+#include <boost/detail/sp_typeinfo.hpp>\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+inline void atomic_increment( register long * pw )\r
+{\r
+    register int a;\r
+\r
+    asm\r
+    {\r
+loop:\r
+\r
+    lwarx   a, 0, pw\r
+    addi    a, a, 1\r
+    stwcx.  a, 0, pw\r
+    bne-    loop\r
+    }\r
+}\r
+\r
+inline long atomic_decrement( register long * pw )\r
+{\r
+    register int a;\r
+\r
+    asm\r
+    {\r
+    sync\r
+\r
+loop:\r
+\r
+    lwarx   a, 0, pw\r
+    addi    a, a, -1\r
+    stwcx.  a, 0, pw\r
+    bne-    loop\r
+\r
+    isync\r
+    }\r
+\r
+    return a;\r
+}\r
+\r
+inline long atomic_conditional_increment( register long * pw )\r
+{\r
+    register int a;\r
+\r
+    asm\r
+    {\r
+loop:\r
+\r
+    lwarx   a, 0, pw\r
+    cmpwi   a, 0\r
+    beq     store\r
+\r
+    addi    a, a, 1\r
+\r
+store:\r
+\r
+    stwcx.  a, 0, pw\r
+    bne-    loop\r
+    }\r
+\r
+    return a;\r
+}\r
+\r
+class sp_counted_base\r
+{\r
+private:\r
+\r
+    sp_counted_base( sp_counted_base const & );\r
+    sp_counted_base & operator= ( sp_counted_base const & );\r
+\r
+    long use_count_;        // #shared\r
+    long weak_count_;       // #weak + (#shared != 0)\r
+\r
+public:\r
+\r
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
+    {\r
+    }\r
+\r
+    virtual ~sp_counted_base() // nothrow\r
+    {\r
+    }\r
+\r
+    // dispose() is called when use_count_ drops to zero, to release\r
+    // the resources managed by *this.\r
+\r
+    virtual void dispose() = 0; // nothrow\r
+\r
+    // destroy() is called when weak_count_ drops to zero.\r
+\r
+    virtual void destroy() // nothrow\r
+    {\r
+        delete this;\r
+    }\r
+\r
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
+\r
+    void add_ref_copy()\r
+    {\r
+        atomic_increment( &use_count_ );\r
+    }\r
+\r
+    bool add_ref_lock() // true on success\r
+    {\r
+        return atomic_conditional_increment( &use_count_ ) != 0;\r
+    }\r
+\r
+    void release() // nothrow\r
+    {\r
+        if( atomic_decrement( &use_count_ ) == 0 )\r
+        {\r
+            dispose();\r
+            weak_release();\r
+        }\r
+    }\r
+\r
+    void weak_add_ref() // nothrow\r
+    {\r
+        atomic_increment( &weak_count_ );\r
+    }\r
+\r
+    void weak_release() // nothrow\r
+    {\r
+        if( atomic_decrement( &weak_count_ ) == 0 )\r
+        {\r
+            destroy();\r
+        }\r
+    }\r
+\r
+    long use_count() const // nothrow\r
+    {\r
+        return static_cast<long const volatile &>( use_count_ );\r
+    }\r
+};\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp
new file mode 100644 (file)
index 0000000..cc15901
--- /dev/null
@@ -0,0 +1,158 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_X86_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_X86_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  detail/sp_counted_base_cw_x86.hpp - CodeWarrion on 486+\r
+//\r
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
+//  Copyright 2004-2005 Peter Dimov\r
+//  Copyright 2005 Rene Rivera\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0. (See\r
+//  accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+//\r
+//  Lock-free algorithm by Alexander Terekhov\r
+//\r
+//  Thanks to Ben Hitchings for the #weak + (#shared != 0)\r
+//  formulation\r
+//\r
+\r
+#include <boost/detail/sp_typeinfo.hpp>\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+inline int atomic_exchange_and_add( int * pw, int dv )\r
+{\r
+    // int r = *pw;\r
+    // *pw += dv;\r
+    // return r;\r
+\r
+    asm\r
+    {\r
+        mov esi, [pw]\r
+        mov eax, dv\r
+        lock xadd dword ptr [esi], eax\r
+    }\r
+}\r
+\r
+inline void atomic_increment( int * pw )\r
+{\r
+    //atomic_exchange_and_add( pw, 1 );\r
+\r
+    asm\r
+    {\r
+        mov esi, [pw]\r
+        lock inc dword ptr [esi]\r
+    }\r
+}\r
+\r
+inline int atomic_conditional_increment( int * pw )\r
+{\r
+    // int rv = *pw;\r
+    // if( rv != 0 ) ++*pw;\r
+    // return rv;\r
+\r
+    asm\r
+    {\r
+        mov esi, [pw]\r
+        mov eax, dword ptr [esi]\r
+    L0:\r
+        test eax, eax\r
+        je L1\r
+        mov ebx, eax\r
+        inc ebx\r
+        lock cmpxchg dword ptr [esi], ebx\r
+        jne L0\r
+    L1:\r
+    }\r
+}\r
+\r
+class sp_counted_base\r
+{\r
+private:\r
+\r
+    sp_counted_base( sp_counted_base const & );\r
+    sp_counted_base & operator= ( sp_counted_base const & );\r
+\r
+    int use_count_;        // #shared\r
+    int weak_count_;       // #weak + (#shared != 0)\r
+\r
+public:\r
+\r
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
+    {\r
+    }\r
+\r
+    virtual ~sp_counted_base() // nothrow\r
+    {\r
+    }\r
+\r
+    // dispose() is called when use_count_ drops to zero, to release\r
+    // the resources managed by *this.\r
+\r
+    virtual void dispose() = 0; // nothrow\r
+\r
+    // destroy() is called when weak_count_ drops to zero.\r
+\r
+    virtual void destroy() // nothrow\r
+    {\r
+        delete this;\r
+    }\r
+\r
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
+\r
+    void add_ref_copy()\r
+    {\r
+        atomic_increment( &use_count_ );\r
+    }\r
+\r
+    bool add_ref_lock() // true on success\r
+    {\r
+        return atomic_conditional_increment( &use_count_ ) != 0;\r
+    }\r
+\r
+    void release() // nothrow\r
+    {\r
+        if( atomic_exchange_and_add( &use_count_, -1 ) == 1 )\r
+        {\r
+            dispose();\r
+            weak_release();\r
+        }\r
+    }\r
+\r
+    void weak_add_ref() // nothrow\r
+    {\r
+        atomic_increment( &weak_count_ );\r
+    }\r
+\r
+    void weak_release() // nothrow\r
+    {\r
+        if( atomic_exchange_and_add( &weak_count_, -1 ) == 1 )\r
+        {\r
+            destroy();\r
+        }\r
+    }\r
+\r
+    long use_count() const // nothrow\r
+    {\r
+        return static_cast<int const volatile &>( use_count_ );\r
+    }\r
+};\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_X86_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp
new file mode 100644 (file)
index 0000000..c7f37d8
--- /dev/null
@@ -0,0 +1,157 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED\r
+\r
+//\r
+//  detail/sp_counted_base_gcc_ia64.hpp - g++ on IA64\r
+//\r
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
+//  Copyright 2004-2006 Peter Dimov\r
+//  Copyright 2005 Ben Hutchings\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0. (See\r
+//  accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+//\r
+//  Lock-free algorithm by Alexander Terekhov\r
+//\r
+\r
+#include <boost/detail/sp_typeinfo.hpp>\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+inline void atomic_increment( int * pw )\r
+{\r
+    // ++*pw;\r
+\r
+    int tmp;\r
+\r
+    // No barrier is required here but fetchadd always has an acquire or\r
+    // release barrier associated with it.  We choose release as it should be\r
+    // cheaper.\r
+    __asm__ ("fetchadd4.rel %0=%1,1" :\r
+         "=r"(tmp), "=m"(*pw) :\r
+         "m"( *pw ));\r
+}\r
+\r
+inline int atomic_decrement( int * pw )\r
+{\r
+    // return --*pw;\r
+\r
+    int rv;\r
+\r
+    __asm__ ("     fetchadd4.rel %0=%1,-1 ;; \n"\r
+             "     cmp.eq        p7,p0=1,%0 ;; \n"\r
+             "(p7) ld4.acq       %0=%1    " :\r
+             "=&r"(rv), "=m"(*pw) :\r
+             "m"( *pw ) :\r
+             "p7");\r
+\r
+    return rv;\r
+}\r
+\r
+inline int atomic_conditional_increment( int * pw )\r
+{\r
+    // if( *pw != 0 ) ++*pw;\r
+    // return *pw;\r
+\r
+    int rv, tmp, tmp2;\r
+\r
+    __asm__ ("0:   ld4          %0=%3           ;; \n"\r
+         "     cmp.eq       p7,p0=0,%0        ;; \n"\r
+         "(p7) br.cond.spnt 1f                \n"\r
+         "     mov          ar.ccv=%0         \n"\r
+         "     add          %1=1,%0           ;; \n"\r
+         "     cmpxchg4.acq %2=%3,%1,ar.ccv ;; \n"\r
+         "     cmp.ne       p7,p0=%0,%2       ;; \n"\r
+         "(p7) br.cond.spnt 0b                \n"\r
+         "     mov          %0=%1             ;; \n"\r
+         "1:" : \r
+         "=&r"(rv), "=&r"(tmp), "=&r"(tmp2), "=m"(*pw) :\r
+         "m"( *pw ) :\r
+         "ar.ccv", "p7");\r
+\r
+    return rv;\r
+}\r
+\r
+class sp_counted_base\r
+{\r
+private:\r
+\r
+    sp_counted_base( sp_counted_base const & );\r
+    sp_counted_base & operator= ( sp_counted_base const & );\r
+\r
+    int use_count_;        // #shared\r
+    int weak_count_;       // #weak + (#shared != 0)\r
+\r
+public:\r
+\r
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
+    {\r
+    }\r
+\r
+    virtual ~sp_counted_base() // nothrow\r
+    {\r
+    }\r
+\r
+    // dispose() is called when use_count_ drops to zero, to release\r
+    // the resources managed by *this.\r
+\r
+    virtual void dispose() = 0; // nothrow\r
+\r
+    // destroy() is called when weak_count_ drops to zero.\r
+\r
+    virtual void destroy() // nothrow\r
+    {\r
+        delete this;\r
+    }\r
+\r
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
+\r
+    void add_ref_copy()\r
+    {\r
+        atomic_increment( &use_count_ );\r
+    }\r
+\r
+    bool add_ref_lock() // true on success\r
+    {\r
+        return atomic_conditional_increment( &use_count_ ) != 0;\r
+    }\r
+\r
+    void release() // nothrow\r
+    {\r
+        if( atomic_decrement( &use_count_ ) == 0 )\r
+        {\r
+            dispose();\r
+            weak_release();\r
+        }\r
+    }\r
+\r
+    void weak_add_ref() // nothrow\r
+    {\r
+        atomic_increment( &weak_count_ );\r
+    }\r
+\r
+    void weak_release() // nothrow\r
+    {\r
+        if( atomic_decrement( &weak_count_ ) == 0 )\r
+        {\r
+            destroy();\r
+        }\r
+    }\r
+\r
+    long use_count() const // nothrow\r
+    {\r
+        return static_cast<int const volatile &>( use_count_ ); // TODO use ld.acq here\r
+    }\r
+};\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp
new file mode 100644 (file)
index 0000000..addc009
--- /dev/null
@@ -0,0 +1,172 @@
+#ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED\r
+#define BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  detail/sp_counted_base_gcc_mips.hpp - g++ on MIPS\r
+//\r
+//  Copyright (c) 2009, Spirent Communications, Inc.\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0. (See\r
+//  accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+//\r
+//  Lock-free algorithm by Alexander Terekhov\r
+//\r
+\r
+#include <boost/detail/sp_typeinfo.hpp>\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+inline void atomic_increment( int * pw )\r
+{\r
+    // ++*pw;\r
+\r
+    int tmp;\r
+\r
+    __asm__ __volatile__\r
+    (\r
+        "0:\n\t"\r
+        "ll %0, %1\n\t"\r
+        "addiu %0, 1\n\t"\r
+        "sc %0, %1\n\t"\r
+        "beqz %0, 0b":\r
+        "=&r"( tmp ), "=m"( *pw ):\r
+        "m"( *pw )\r
+    );\r
+}\r
+\r
+inline int atomic_decrement( int * pw )\r
+{\r
+    // return --*pw;\r
+\r
+    int rv, tmp;\r
+\r
+    __asm__ __volatile__\r
+    (\r
+        "0:\n\t"\r
+        "ll %1, %2\n\t"\r
+        "addiu %0, %1, -1\n\t"\r
+        "sc %0, %2\n\t"\r
+        "beqz %0, 0b\n\t"\r
+        "addiu %0, %1, -1":\r
+        "=&r"( rv ), "=&r"( tmp ), "=m"( *pw ):\r
+        "m"( *pw ):\r
+        "memory"\r
+    );\r
+\r
+    return rv;\r
+}\r
+\r
+inline int atomic_conditional_increment( int * pw )\r
+{\r
+    // if( *pw != 0 ) ++*pw;\r
+    // return *pw;\r
+\r
+    int rv, tmp;\r
+\r
+    __asm__ __volatile__\r
+    (\r
+        "0:\n\t"\r
+        "ll %0, %2\n\t"\r
+        "beqz %0, 1f\n\t"\r
+        "addiu %1, %0, 1\n\t"\r
+        "sc %1, %2\n\t"\r
+        "beqz %1, 0b\n\t"\r
+        "addiu %0, %0, 1\n\t"\r
+        "1:":\r
+        "=&r"( rv ), "=&r"( tmp ), "=m"( *pw ):\r
+        "m"( *pw ):\r
+        "memory"\r
+    );\r
+\r
+    return rv;\r
+}\r
+\r
+class sp_counted_base\r
+{\r
+private:\r
+\r
+    sp_counted_base( sp_counted_base const & );\r
+    sp_counted_base & operator= ( sp_counted_base const & );\r
+\r
+    int use_count_;        // #shared\r
+    int weak_count_;       // #weak + (#shared != 0)\r
+\r
+public:\r
+\r
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
+    {\r
+    }\r
+\r
+    virtual ~sp_counted_base() // nothrow\r
+    {\r
+    }\r
+\r
+    // dispose() is called when use_count_ drops to zero, to release\r
+    // the resources managed by *this.\r
+\r
+    virtual void dispose() = 0; // nothrow\r
+\r
+    // destroy() is called when weak_count_ drops to zero.\r
+\r
+    virtual void destroy() // nothrow\r
+    {\r
+        delete this;\r
+    }\r
+\r
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
+\r
+    void add_ref_copy()\r
+    {\r
+        atomic_increment( &use_count_ );\r
+    }\r
+\r
+    bool add_ref_lock() // true on success\r
+    {\r
+        return atomic_conditional_increment( &use_count_ ) != 0;\r
+    }\r
+\r
+    void release() // nothrow\r
+    {\r
+        if( atomic_decrement( &use_count_ ) == 0 )\r
+        {\r
+            dispose();\r
+            weak_release();\r
+        }\r
+    }\r
+\r
+    void weak_add_ref() // nothrow\r
+    {\r
+        atomic_increment( &weak_count_ );\r
+    }\r
+\r
+    void weak_release() // nothrow\r
+    {\r
+        if( atomic_decrement( &weak_count_ ) == 0 )\r
+        {\r
+            destroy();\r
+        }\r
+    }\r
+\r
+    long use_count() const // nothrow\r
+    {\r
+        return static_cast<int const volatile &>( use_count_ );\r
+    }\r
+};\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif  // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp
new file mode 100644 (file)
index 0000000..1fa8bf6
--- /dev/null
@@ -0,0 +1,181 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  detail/sp_counted_base_gcc_ppc.hpp - g++ on PowerPC\r
+//\r
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
+//  Copyright 2004-2005 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0. (See\r
+//  accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+//\r
+//  Lock-free algorithm by Alexander Terekhov\r
+//\r
+//  Thanks to Ben Hitchings for the #weak + (#shared != 0)\r
+//  formulation\r
+//\r
+\r
+#include <boost/detail/sp_typeinfo.hpp>\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+inline void atomic_increment( int * pw )\r
+{\r
+    // ++*pw;\r
+\r
+    int tmp;\r
+\r
+    __asm__\r
+    (\r
+        "0:\n\t"\r
+        "lwarx %1, 0, %2\n\t"\r
+        "addi %1, %1, 1\n\t"\r
+        "stwcx. %1, 0, %2\n\t"\r
+        "bne- 0b":\r
+\r
+        "=m"( *pw ), "=&b"( tmp ):\r
+        "r"( pw ), "m"( *pw ):\r
+        "cc"\r
+    );\r
+}\r
+\r
+inline int atomic_decrement( int * pw )\r
+{\r
+    // return --*pw;\r
+\r
+    int rv;\r
+\r
+    __asm__ __volatile__\r
+    (\r
+        "sync\n\t"\r
+        "0:\n\t"\r
+        "lwarx %1, 0, %2\n\t"\r
+        "addi %1, %1, -1\n\t"\r
+        "stwcx. %1, 0, %2\n\t"\r
+        "bne- 0b\n\t"\r
+        "isync":\r
+\r
+        "=m"( *pw ), "=&b"( rv ):\r
+        "r"( pw ), "m"( *pw ):\r
+        "memory", "cc"\r
+    );\r
+\r
+    return rv;\r
+}\r
+\r
+inline int atomic_conditional_increment( int * pw )\r
+{\r
+    // if( *pw != 0 ) ++*pw;\r
+    // return *pw;\r
+\r
+    int rv;\r
+\r
+    __asm__\r
+    (\r
+        "0:\n\t"\r
+        "lwarx %1, 0, %2\n\t"\r
+        "cmpwi %1, 0\n\t"\r
+        "beq 1f\n\t"\r
+        "addi %1, %1, 1\n\t"\r
+        "1:\n\t"\r
+        "stwcx. %1, 0, %2\n\t"\r
+        "bne- 0b":\r
+\r
+        "=m"( *pw ), "=&b"( rv ):\r
+        "r"( pw ), "m"( *pw ):\r
+        "cc"\r
+    );\r
+\r
+    return rv;\r
+}\r
+\r
+class sp_counted_base\r
+{\r
+private:\r
+\r
+    sp_counted_base( sp_counted_base const & );\r
+    sp_counted_base & operator= ( sp_counted_base const & );\r
+\r
+    int use_count_;        // #shared\r
+    int weak_count_;       // #weak + (#shared != 0)\r
+\r
+public:\r
+\r
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
+    {\r
+    }\r
+\r
+    virtual ~sp_counted_base() // nothrow\r
+    {\r
+    }\r
+\r
+    // dispose() is called when use_count_ drops to zero, to release\r
+    // the resources managed by *this.\r
+\r
+    virtual void dispose() = 0; // nothrow\r
+\r
+    // destroy() is called when weak_count_ drops to zero.\r
+\r
+    virtual void destroy() // nothrow\r
+    {\r
+        delete this;\r
+    }\r
+\r
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
+\r
+    void add_ref_copy()\r
+    {\r
+        atomic_increment( &use_count_ );\r
+    }\r
+\r
+    bool add_ref_lock() // true on success\r
+    {\r
+        return atomic_conditional_increment( &use_count_ ) != 0;\r
+    }\r
+\r
+    void release() // nothrow\r
+    {\r
+        if( atomic_decrement( &use_count_ ) == 0 )\r
+        {\r
+            dispose();\r
+            weak_release();\r
+        }\r
+    }\r
+\r
+    void weak_add_ref() // nothrow\r
+    {\r
+        atomic_increment( &weak_count_ );\r
+    }\r
+\r
+    void weak_release() // nothrow\r
+    {\r
+        if( atomic_decrement( &weak_count_ ) == 0 )\r
+        {\r
+            destroy();\r
+        }\r
+    }\r
+\r
+    long use_count() const // nothrow\r
+    {\r
+        return static_cast<int const volatile &>( use_count_ );\r
+    }\r
+};\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp
new file mode 100644 (file)
index 0000000..0d03acf
--- /dev/null
@@ -0,0 +1,166 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//  detail/sp_counted_base_gcc_sparc.hpp - g++ on Sparc V8+\r
+//\r
+//  Copyright (c) 2006 Piotr Wyderski\r
+//  Copyright (c) 2006 Tomas Puverle\r
+//  Copyright (c) 2006 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0.\r
+//  See accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt\r
+//\r
+//  Thanks to Michael van der Westhuizen\r
+\r
+#include <boost/detail/sp_typeinfo.hpp>\r
+#include <inttypes.h> // int32_t\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+inline int32_t compare_and_swap( int32_t * dest_, int32_t compare_, int32_t swap_ )\r
+{\r
+    __asm__ __volatile__( "cas %0, %2, %1"\r
+                        : "+m" (*dest_), "+r" (swap_)\r
+                        : "r" (compare_)\r
+                        : "memory" );\r
+\r
+    return swap_;\r
+}\r
+\r
+inline int32_t atomic_fetch_and_add( int32_t * pw, int32_t dv )\r
+{\r
+    // long r = *pw;\r
+    // *pw += dv;\r
+    // return r;\r
+\r
+    for( ;; )\r
+    {\r
+        int32_t r = *pw;\r
+\r
+        if( __builtin_expect((compare_and_swap(pw, r, r + dv) == r), 1) )\r
+        {\r
+            return r;\r
+        }\r
+    }\r
+}\r
+\r
+inline void atomic_increment( int32_t * pw )\r
+{\r
+    atomic_fetch_and_add( pw, 1 );\r
+}\r
+\r
+inline int32_t atomic_decrement( int32_t * pw )\r
+{\r
+    return atomic_fetch_and_add( pw, -1 );\r
+}\r
+\r
+inline int32_t atomic_conditional_increment( int32_t * pw )\r
+{\r
+    // long r = *pw;\r
+    // if( r != 0 ) ++*pw;\r
+    // return r;\r
+\r
+    for( ;; )\r
+    {\r
+        int32_t r = *pw;\r
+\r
+        if( r == 0 )\r
+        {\r
+            return r;\r
+        }\r
+\r
+        if( __builtin_expect( ( compare_and_swap( pw, r, r + 1 ) == r ), 1 ) )\r
+        {\r
+            return r;\r
+        }\r
+    }    \r
+}\r
+\r
+class sp_counted_base\r
+{\r
+private:\r
+\r
+    sp_counted_base( sp_counted_base const & );\r
+    sp_counted_base & operator= ( sp_counted_base const & );\r
+\r
+    int32_t use_count_;        // #shared\r
+    int32_t weak_count_;       // #weak + (#shared != 0)\r
+\r
+public:\r
+\r
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
+    {\r
+    }\r
+\r
+    virtual ~sp_counted_base() // nothrow\r
+    {\r
+    }\r
+\r
+    // dispose() is called when use_count_ drops to zero, to release\r
+    // the resources managed by *this.\r
+\r
+    virtual void dispose() = 0; // nothrow\r
+\r
+    // destroy() is called when weak_count_ drops to zero.\r
+\r
+    virtual void destroy() // nothrow\r
+    {\r
+        delete this;\r
+    }\r
+\r
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
+\r
+    void add_ref_copy()\r
+    {\r
+        atomic_increment( &use_count_ );\r
+    }\r
+\r
+    bool add_ref_lock() // true on success\r
+    {\r
+        return atomic_conditional_increment( &use_count_ ) != 0;\r
+    }\r
+\r
+    void release() // nothrow\r
+    {\r
+        if( atomic_decrement( &use_count_ ) == 1 )\r
+        {\r
+            dispose();\r
+            weak_release();\r
+        }\r
+    }\r
+\r
+    void weak_add_ref() // nothrow\r
+    {\r
+        atomic_increment( &weak_count_ );\r
+    }\r
+\r
+    void weak_release() // nothrow\r
+    {\r
+        if( atomic_decrement( &weak_count_ ) == 1 )\r
+        {\r
+            destroy();\r
+        }\r
+    }\r
+\r
+    long use_count() const // nothrow\r
+    {\r
+        return const_cast< int32_t const volatile & >( use_count_ );\r
+    }\r
+};\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp
new file mode 100644 (file)
index 0000000..d357d31
--- /dev/null
@@ -0,0 +1,173 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  detail/sp_counted_base_gcc_x86.hpp - g++ on 486+ or AMD64\r
+//\r
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
+//  Copyright 2004-2005 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0. (See\r
+//  accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+//\r
+//  Lock-free algorithm by Alexander Terekhov\r
+//\r
+//  Thanks to Ben Hitchings for the #weak + (#shared != 0)\r
+//  formulation\r
+//\r
+\r
+#include <boost/detail/sp_typeinfo.hpp>\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+inline int atomic_exchange_and_add( int * pw, int dv )\r
+{\r
+    // int r = *pw;\r
+    // *pw += dv;\r
+    // return r;\r
+\r
+    int r;\r
+\r
+    __asm__ __volatile__\r
+    (\r
+        "lock\n\t"\r
+        "xadd %1, %0":\r
+        "=m"( *pw ), "=r"( r ): // outputs (%0, %1)\r
+        "m"( *pw ), "1"( dv ): // inputs (%2, %3 == %1)\r
+        "memory", "cc" // clobbers\r
+    );\r
+\r
+    return r;\r
+}\r
+\r
+inline void atomic_increment( int * pw )\r
+{\r
+    //atomic_exchange_and_add( pw, 1 );\r
+\r
+    __asm__\r
+    (\r
+        "lock\n\t"\r
+        "incl %0":\r
+        "=m"( *pw ): // output (%0)\r
+        "m"( *pw ): // input (%1)\r
+        "cc" // clobbers\r
+    );\r
+}\r
+\r
+inline int atomic_conditional_increment( int * pw )\r
+{\r
+    // int rv = *pw;\r
+    // if( rv != 0 ) ++*pw;\r
+    // return rv;\r
+\r
+    int rv, tmp;\r
+\r
+    __asm__\r
+    (\r
+        "movl %0, %%eax\n\t"\r
+        "0:\n\t"\r
+        "test %%eax, %%eax\n\t"\r
+        "je 1f\n\t"\r
+        "movl %%eax, %2\n\t"\r
+        "incl %2\n\t"\r
+        "lock\n\t"\r
+        "cmpxchgl %2, %0\n\t"\r
+        "jne 0b\n\t"\r
+        "1:":\r
+        "=m"( *pw ), "=&a"( rv ), "=&r"( tmp ): // outputs (%0, %1, %2)\r
+        "m"( *pw ): // input (%3)\r
+        "cc" // clobbers\r
+    );\r
+\r
+    return rv;\r
+}\r
+\r
+class sp_counted_base\r
+{\r
+private:\r
+\r
+    sp_counted_base( sp_counted_base const & );\r
+    sp_counted_base & operator= ( sp_counted_base const & );\r
+\r
+    int use_count_;        // #shared\r
+    int weak_count_;       // #weak + (#shared != 0)\r
+\r
+public:\r
+\r
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
+    {\r
+    }\r
+\r
+    virtual ~sp_counted_base() // nothrow\r
+    {\r
+    }\r
+\r
+    // dispose() is called when use_count_ drops to zero, to release\r
+    // the resources managed by *this.\r
+\r
+    virtual void dispose() = 0; // nothrow\r
+\r
+    // destroy() is called when weak_count_ drops to zero.\r
+\r
+    virtual void destroy() // nothrow\r
+    {\r
+        delete this;\r
+    }\r
+\r
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
+\r
+    void add_ref_copy()\r
+    {\r
+        atomic_increment( &use_count_ );\r
+    }\r
+\r
+    bool add_ref_lock() // true on success\r
+    {\r
+        return atomic_conditional_increment( &use_count_ ) != 0;\r
+    }\r
+\r
+    void release() // nothrow\r
+    {\r
+        if( atomic_exchange_and_add( &use_count_, -1 ) == 1 )\r
+        {\r
+            dispose();\r
+            weak_release();\r
+        }\r
+    }\r
+\r
+    void weak_add_ref() // nothrow\r
+    {\r
+        atomic_increment( &weak_count_ );\r
+    }\r
+\r
+    void weak_release() // nothrow\r
+    {\r
+        if( atomic_exchange_and_add( &weak_count_, -1 ) == 1 )\r
+        {\r
+            destroy();\r
+        }\r
+    }\r
+\r
+    long use_count() const // nothrow\r
+    {\r
+        return static_cast<int const volatile &>( use_count_ );\r
+    }\r
+};\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_nt.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_nt.hpp
new file mode 100644 (file)
index 0000000..612e1d8
--- /dev/null
@@ -0,0 +1,107 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  detail/sp_counted_base_nt.hpp\r
+//\r
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
+//  Copyright 2004-2005 Peter Dimov\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. (See\r
+// accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+#include <boost/detail/sp_typeinfo.hpp>\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+class sp_counted_base\r
+{\r
+private:\r
+\r
+    sp_counted_base( sp_counted_base const & );\r
+    sp_counted_base & operator= ( sp_counted_base const & );\r
+\r
+    long use_count_;        // #shared\r
+    long weak_count_;       // #weak + (#shared != 0)\r
+\r
+public:\r
+\r
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
+    {\r
+    }\r
+\r
+    virtual ~sp_counted_base() // nothrow\r
+    {\r
+    }\r
+\r
+    // dispose() is called when use_count_ drops to zero, to release\r
+    // the resources managed by *this.\r
+\r
+    virtual void dispose() = 0; // nothrow\r
+\r
+    // destroy() is called when weak_count_ drops to zero.\r
+\r
+    virtual void destroy() // nothrow\r
+    {\r
+        delete this;\r
+    }\r
+\r
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
+\r
+    void add_ref_copy()\r
+    {\r
+        ++use_count_;\r
+    }\r
+\r
+    bool add_ref_lock() // true on success\r
+    {\r
+        if( use_count_ == 0 ) return false;\r
+        ++use_count_;\r
+        return true;\r
+    }\r
+\r
+    void release() // nothrow\r
+    {\r
+        if( --use_count_ == 0 )\r
+        {\r
+            dispose();\r
+            weak_release();\r
+        }\r
+    }\r
+\r
+    void weak_add_ref() // nothrow\r
+    {\r
+        ++weak_count_;\r
+    }\r
+\r
+    void weak_release() // nothrow\r
+    {\r
+        if( --weak_count_ == 0 )\r
+        {\r
+            destroy();\r
+        }\r
+    }\r
+\r
+    long use_count() const // nothrow\r
+    {\r
+        return use_count_;\r
+    }\r
+};\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_pt.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_pt.hpp
new file mode 100644 (file)
index 0000000..3469764
--- /dev/null
@@ -0,0 +1,135 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  detail/sp_counted_base_pt.hpp\r
+//\r
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
+//  Copyright 2004-2005 Peter Dimov\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. (See\r
+// accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+#include <boost/detail/sp_typeinfo.hpp>\r
+#include <pthread.h>\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+class sp_counted_base\r
+{\r
+private:\r
+\r
+    sp_counted_base( sp_counted_base const & );\r
+    sp_counted_base & operator= ( sp_counted_base const & );\r
+\r
+    long use_count_;        // #shared\r
+    long weak_count_;       // #weak + (#shared != 0)\r
+\r
+    mutable pthread_mutex_t m_;\r
+\r
+public:\r
+\r
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
+    {\r
+// HPUX 10.20 / DCE has a nonstandard pthread_mutex_init\r
+\r
+#if defined(__hpux) && defined(_DECTHREADS_)\r
+        pthread_mutex_init( &m_, pthread_mutexattr_default );\r
+#else\r
+        pthread_mutex_init( &m_, 0 );\r
+#endif\r
+    }\r
+\r
+    virtual ~sp_counted_base() // nothrow\r
+    {\r
+        pthread_mutex_destroy( &m_ );\r
+    }\r
+\r
+    // dispose() is called when use_count_ drops to zero, to release\r
+    // the resources managed by *this.\r
+\r
+    virtual void dispose() = 0; // nothrow\r
+\r
+    // destroy() is called when weak_count_ drops to zero.\r
+\r
+    virtual void destroy() // nothrow\r
+    {\r
+        delete this;\r
+    }\r
+\r
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
+\r
+    void add_ref_copy()\r
+    {\r
+        pthread_mutex_lock( &m_ );\r
+        ++use_count_;\r
+        pthread_mutex_unlock( &m_ );\r
+    }\r
+\r
+    bool add_ref_lock() // true on success\r
+    {\r
+        pthread_mutex_lock( &m_ );\r
+        bool r = use_count_ == 0? false: ( ++use_count_, true );\r
+        pthread_mutex_unlock( &m_ );\r
+        return r;\r
+    }\r
+\r
+    void release() // nothrow\r
+    {\r
+        pthread_mutex_lock( &m_ );\r
+        long new_use_count = --use_count_;\r
+        pthread_mutex_unlock( &m_ );\r
+\r
+        if( new_use_count == 0 )\r
+        {\r
+            dispose();\r
+            weak_release();\r
+        }\r
+    }\r
+\r
+    void weak_add_ref() // nothrow\r
+    {\r
+        pthread_mutex_lock( &m_ );\r
+        ++weak_count_;\r
+        pthread_mutex_unlock( &m_ );\r
+    }\r
+\r
+    void weak_release() // nothrow\r
+    {\r
+        pthread_mutex_lock( &m_ );\r
+        long new_weak_count = --weak_count_;\r
+        pthread_mutex_unlock( &m_ );\r
+\r
+        if( new_weak_count == 0 )\r
+        {\r
+            destroy();\r
+        }\r
+    }\r
+\r
+    long use_count() const // nothrow\r
+    {\r
+        pthread_mutex_lock( &m_ );\r
+        long r = use_count_;\r
+        pthread_mutex_unlock( &m_ );\r
+\r
+        return r;\r
+    }\r
+};\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_solaris.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_solaris.hpp
new file mode 100644 (file)
index 0000000..f76514f
--- /dev/null
@@ -0,0 +1,113 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SOLARIS_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SOLARIS_HPP_INCLUDED\r
+\r
+//\r
+//  detail/sp_counted_base_solaris.hpp\r
+//   based on: detail/sp_counted_base_w32.hpp\r
+//\r
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
+//  Copyright 2004-2005 Peter Dimov\r
+//  Copyright 2006 Michael van der Westhuizen\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0. (See\r
+//  accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+//\r
+//  Lock-free algorithm by Alexander Terekhov\r
+//\r
+//  Thanks to Ben Hitchings for the #weak + (#shared != 0)\r
+//  formulation\r
+//\r
+\r
+#include <boost/detail/sp_typeinfo.hpp>\r
+#include <atomic.h>\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+class sp_counted_base\r
+{\r
+private:\r
+\r
+    sp_counted_base( sp_counted_base const & );\r
+    sp_counted_base & operator= ( sp_counted_base const & );\r
+\r
+    uint32_t use_count_;        // #shared\r
+    uint32_t weak_count_;       // #weak + (#shared != 0)\r
+\r
+public:\r
+\r
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
+    {\r
+    }\r
+\r
+    virtual ~sp_counted_base() // nothrow\r
+    {\r
+    }\r
+\r
+    // dispose() is called when use_count_ drops to zero, to release\r
+    // the resources managed by *this.\r
+\r
+    virtual void dispose() = 0; // nothrow\r
+\r
+    // destroy() is called when weak_count_ drops to zero.\r
+\r
+    virtual void destroy() // nothrow\r
+    {\r
+        delete this;\r
+    }\r
+\r
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
+\r
+    void add_ref_copy()\r
+    {\r
+        atomic_inc_32( &use_count_ );\r
+    }\r
+\r
+    bool add_ref_lock() // true on success\r
+    {\r
+        for( ;; )\r
+        {\r
+            uint32_t tmp = static_cast< uint32_t const volatile& >( use_count_ );\r
+            if( tmp == 0 ) return false;\r
+            if( atomic_cas_32( &use_count_, tmp, tmp + 1 ) == tmp ) return true;\r
+        }\r
+    }\r
+\r
+    void release() // nothrow\r
+    {\r
+        if( atomic_dec_32_nv( &use_count_ ) == 0 )\r
+        {\r
+            dispose();\r
+            weak_release();\r
+        }\r
+    }\r
+\r
+    void weak_add_ref() // nothrow\r
+    {\r
+        atomic_inc_32( &weak_count_ );\r
+    }\r
+\r
+    void weak_release() // nothrow\r
+    {\r
+        if( atomic_dec_32_nv( &weak_count_ ) == 0 )\r
+        {\r
+            destroy();\r
+        }\r
+    }\r
+\r
+    long use_count() const // nothrow\r
+    {\r
+        return static_cast<long const volatile &>( use_count_ );\r
+    }\r
+};\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SOLARIS_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_spin.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_spin.hpp
new file mode 100644 (file)
index 0000000..09feb63
--- /dev/null
@@ -0,0 +1,131 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SPIN_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SPIN_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  detail/sp_counted_base_spin.hpp - spinlock pool atomic emulation\r
+//\r
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
+//  Copyright 2004-2008 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0. (See\r
+//  accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+#include <boost/detail/sp_typeinfo.hpp>\r
+#include <boost/smart_ptr/detail/spinlock_pool.hpp>\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+inline int atomic_exchange_and_add( int * pw, int dv )\r
+{\r
+    spinlock_pool<1>::scoped_lock lock( pw );\r
+\r
+    int r = *pw;\r
+    *pw += dv;\r
+    return r;\r
+}\r
+\r
+inline void atomic_increment( int * pw )\r
+{\r
+    spinlock_pool<1>::scoped_lock lock( pw );\r
+    ++*pw;\r
+}\r
+\r
+inline int atomic_conditional_increment( int * pw )\r
+{\r
+    spinlock_pool<1>::scoped_lock lock( pw );\r
+\r
+    int rv = *pw;\r
+    if( rv != 0 ) ++*pw;\r
+    return rv;\r
+}\r
+\r
+class sp_counted_base\r
+{\r
+private:\r
+\r
+    sp_counted_base( sp_counted_base const & );\r
+    sp_counted_base & operator= ( sp_counted_base const & );\r
+\r
+    int use_count_;        // #shared\r
+    int weak_count_;       // #weak + (#shared != 0)\r
+\r
+public:\r
+\r
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
+    {\r
+    }\r
+\r
+    virtual ~sp_counted_base() // nothrow\r
+    {\r
+    }\r
+\r
+    // dispose() is called when use_count_ drops to zero, to release\r
+    // the resources managed by *this.\r
+\r
+    virtual void dispose() = 0; // nothrow\r
+\r
+    // destroy() is called when weak_count_ drops to zero.\r
+\r
+    virtual void destroy() // nothrow\r
+    {\r
+        delete this;\r
+    }\r
+\r
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
+\r
+    void add_ref_copy()\r
+    {\r
+        atomic_increment( &use_count_ );\r
+    }\r
+\r
+    bool add_ref_lock() // true on success\r
+    {\r
+        return atomic_conditional_increment( &use_count_ ) != 0;\r
+    }\r
+\r
+    void release() // nothrow\r
+    {\r
+        if( atomic_exchange_and_add( &use_count_, -1 ) == 1 )\r
+        {\r
+            dispose();\r
+            weak_release();\r
+        }\r
+    }\r
+\r
+    void weak_add_ref() // nothrow\r
+    {\r
+        atomic_increment( &weak_count_ );\r
+    }\r
+\r
+    void weak_release() // nothrow\r
+    {\r
+        if( atomic_exchange_and_add( &weak_count_, -1 ) == 1 )\r
+        {\r
+            destroy();\r
+        }\r
+    }\r
+\r
+    long use_count() const // nothrow\r
+    {\r
+        spinlock_pool<1>::scoped_lock lock( &use_count_ );\r
+        return use_count_;\r
+    }\r
+};\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SPIN_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_sync.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_sync.hpp
new file mode 100644 (file)
index 0000000..5a074c0
--- /dev/null
@@ -0,0 +1,155 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//  detail/sp_counted_base_sync.hpp - g++ 4.1+ __sync intrinsics\r
+//\r
+//  Copyright (c) 2007 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0.\r
+//  See accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt\r
+\r
+#include <boost/detail/sp_typeinfo.hpp>\r
+#include <limits.h>\r
+\r
+#if defined( __ia64__ ) && defined( __INTEL_COMPILER )\r
+# include <ia64intrin.h>\r
+#endif\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+#if INT_MAX >= 2147483647\r
+\r
+typedef int sp_int32_t;\r
+\r
+#else\r
+\r
+typedef long sp_int32_t;\r
+\r
+#endif\r
+\r
+inline void atomic_increment( sp_int32_t * pw )\r
+{\r
+    __sync_fetch_and_add( pw, 1 );\r
+}\r
+\r
+inline sp_int32_t atomic_decrement( sp_int32_t * pw )\r
+{\r
+    return __sync_fetch_and_add( pw, -1 );\r
+}\r
+\r
+inline sp_int32_t atomic_conditional_increment( sp_int32_t * pw )\r
+{\r
+    // long r = *pw;\r
+    // if( r != 0 ) ++*pw;\r
+    // return r;\r
+\r
+    sp_int32_t r = *pw;\r
+\r
+    for( ;; )\r
+    {\r
+        if( r == 0 )\r
+        {\r
+            return r;\r
+        }\r
+\r
+        sp_int32_t r2 = __sync_val_compare_and_swap( pw, r, r + 1 );\r
+\r
+        if( r2 == r )\r
+        {\r
+            return r;\r
+        }\r
+        else\r
+        {\r
+            r = r2;\r
+        }\r
+    }    \r
+}\r
+\r
+class sp_counted_base\r
+{\r
+private:\r
+\r
+    sp_counted_base( sp_counted_base const & );\r
+    sp_counted_base & operator= ( sp_counted_base const & );\r
+\r
+    sp_int32_t use_count_;        // #shared\r
+    sp_int32_t weak_count_;       // #weak + (#shared != 0)\r
+\r
+public:\r
+\r
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
+    {\r
+    }\r
+\r
+    virtual ~sp_counted_base() // nothrow\r
+    {\r
+    }\r
+\r
+    // dispose() is called when use_count_ drops to zero, to release\r
+    // the resources managed by *this.\r
+\r
+    virtual void dispose() = 0; // nothrow\r
+\r
+    // destroy() is called when weak_count_ drops to zero.\r
+\r
+    virtual void destroy() // nothrow\r
+    {\r
+        delete this;\r
+    }\r
+\r
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
+\r
+    void add_ref_copy()\r
+    {\r
+        atomic_increment( &use_count_ );\r
+    }\r
+\r
+    bool add_ref_lock() // true on success\r
+    {\r
+        return atomic_conditional_increment( &use_count_ ) != 0;\r
+    }\r
+\r
+    void release() // nothrow\r
+    {\r
+        if( atomic_decrement( &use_count_ ) == 1 )\r
+        {\r
+            dispose();\r
+            weak_release();\r
+        }\r
+    }\r
+\r
+    void weak_add_ref() // nothrow\r
+    {\r
+        atomic_increment( &weak_count_ );\r
+    }\r
+\r
+    void weak_release() // nothrow\r
+    {\r
+        if( atomic_decrement( &weak_count_ ) == 1 )\r
+        {\r
+            destroy();\r
+        }\r
+    }\r
+\r
+    long use_count() const // nothrow\r
+    {\r
+        return const_cast< sp_int32_t const volatile & >( use_count_ );\r
+    }\r
+};\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/sp_counted_base_w32.hpp b/boost/boost/smart_ptr/detail/sp_counted_base_w32.hpp
new file mode 100644 (file)
index 0000000..84ac67b
--- /dev/null
@@ -0,0 +1,130 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  detail/sp_counted_base_w32.hpp\r
+//\r
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
+//  Copyright 2004-2005 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0. (See\r
+//  accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+//\r
+//  Lock-free algorithm by Alexander Terekhov\r
+//\r
+//  Thanks to Ben Hitchings for the #weak + (#shared != 0)\r
+//  formulation\r
+//\r
+\r
+#include <boost/detail/interlocked.hpp>\r
+#include <boost/detail/workaround.hpp>\r
+#include <boost/detail/sp_typeinfo.hpp>\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+class sp_counted_base\r
+{\r
+private:\r
+\r
+    sp_counted_base( sp_counted_base const & );\r
+    sp_counted_base & operator= ( sp_counted_base const & );\r
+\r
+    long use_count_;        // #shared\r
+    long weak_count_;       // #weak + (#shared != 0)\r
+\r
+public:\r
+\r
+    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )\r
+    {\r
+    }\r
+\r
+    virtual ~sp_counted_base() // nothrow\r
+    {\r
+    }\r
+\r
+    // dispose() is called when use_count_ drops to zero, to release\r
+    // the resources managed by *this.\r
+\r
+    virtual void dispose() = 0; // nothrow\r
+\r
+    // destroy() is called when weak_count_ drops to zero.\r
+\r
+    virtual void destroy() // nothrow\r
+    {\r
+        delete this;\r
+    }\r
+\r
+    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;\r
+\r
+    void add_ref_copy()\r
+    {\r
+        BOOST_INTERLOCKED_INCREMENT( &use_count_ );\r
+    }\r
+\r
+    bool add_ref_lock() // true on success\r
+    {\r
+        for( ;; )\r
+        {\r
+            long tmp = static_cast< long const volatile& >( use_count_ );\r
+            if( tmp == 0 ) return false;\r
+\r
+#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, == 1200 )\r
+\r
+            // work around a code generation bug\r
+\r
+            long tmp2 = tmp + 1;\r
+            if( BOOST_INTERLOCKED_COMPARE_EXCHANGE( &use_count_, tmp2, tmp ) == tmp2 - 1 ) return true;\r
+\r
+#else\r
+\r
+            if( BOOST_INTERLOCKED_COMPARE_EXCHANGE( &use_count_, tmp + 1, tmp ) == tmp ) return true;\r
+\r
+#endif\r
+        }\r
+    }\r
+\r
+    void release() // nothrow\r
+    {\r
+        if( BOOST_INTERLOCKED_DECREMENT( &use_count_ ) == 0 )\r
+        {\r
+            dispose();\r
+            weak_release();\r
+        }\r
+    }\r
+\r
+    void weak_add_ref() // nothrow\r
+    {\r
+        BOOST_INTERLOCKED_INCREMENT( &weak_count_ );\r
+    }\r
+\r
+    void weak_release() // nothrow\r
+    {\r
+        if( BOOST_INTERLOCKED_DECREMENT( &weak_count_ ) == 0 )\r
+        {\r
+            destroy();\r
+        }\r
+    }\r
+\r
+    long use_count() const // nothrow\r
+    {\r
+        return static_cast<long const volatile &>( use_count_ );\r
+    }\r
+};\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/sp_counted_impl.hpp b/boost/boost/smart_ptr/detail/sp_counted_impl.hpp
new file mode 100644 (file)
index 0000000..c513b82
--- /dev/null
@@ -0,0 +1,231 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  detail/sp_counted_impl.hpp\r
+//\r
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.\r
+//  Copyright 2004-2005 Peter Dimov\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. (See\r
+// accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+#include <boost/config.hpp>\r
+\r
+#if defined(BOOST_SP_USE_STD_ALLOCATOR) && defined(BOOST_SP_USE_QUICK_ALLOCATOR)\r
+# error BOOST_SP_USE_STD_ALLOCATOR and BOOST_SP_USE_QUICK_ALLOCATOR are incompatible.\r
+#endif\r
+\r
+#include <boost/checked_delete.hpp>\r
+#include <boost/smart_ptr/detail/sp_counted_base.hpp>\r
+\r
+#if defined(BOOST_SP_USE_QUICK_ALLOCATOR)\r
+#include <boost/smart_ptr/detail/quick_allocator.hpp>\r
+#endif\r
+\r
+#if defined(BOOST_SP_USE_STD_ALLOCATOR)\r
+#include <memory>           // std::allocator\r
+#endif\r
+\r
+#include <cstddef>          // std::size_t\r
+\r
+namespace boost\r
+{\r
+\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+\r
+void sp_scalar_constructor_hook( void * px, std::size_t size, void * pn );\r
+void sp_scalar_destructor_hook( void * px, std::size_t size, void * pn );\r
+\r
+#endif\r
+\r
+namespace detail\r
+{\r
+\r
+template<class X> class sp_counted_impl_p: public sp_counted_base\r
+{\r
+private:\r
+\r
+    X * px_;\r
+\r
+    sp_counted_impl_p( sp_counted_impl_p const & );\r
+    sp_counted_impl_p & operator= ( sp_counted_impl_p const & );\r
+\r
+    typedef sp_counted_impl_p<X> this_type;\r
+\r
+public:\r
+\r
+    explicit sp_counted_impl_p( X * px ): px_( px )\r
+    {\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+        boost::sp_scalar_constructor_hook( px, sizeof(X), this );\r
+#endif\r
+    }\r
+\r
+    virtual void dispose() // nothrow\r
+    {\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+        boost::sp_scalar_destructor_hook( px_, sizeof(X), this );\r
+#endif\r
+        boost::checked_delete( px_ );\r
+    }\r
+\r
+    virtual void * get_deleter( detail::sp_typeinfo const & )\r
+    {\r
+        return 0;\r
+    }\r
+\r
+#if defined(BOOST_SP_USE_STD_ALLOCATOR)\r
+\r
+    void * operator new( std::size_t )\r
+    {\r
+        return std::allocator<this_type>().allocate( 1, static_cast<this_type *>(0) );\r
+    }\r
+\r
+    void operator delete( void * p )\r
+    {\r
+        std::allocator<this_type>().deallocate( static_cast<this_type *>(p), 1 );\r
+    }\r
+\r
+#endif\r
+\r
+#if defined(BOOST_SP_USE_QUICK_ALLOCATOR)\r
+\r
+    void * operator new( std::size_t )\r
+    {\r
+        return quick_allocator<this_type>::alloc();\r
+    }\r
+\r
+    void operator delete( void * p )\r
+    {\r
+        quick_allocator<this_type>::dealloc( p );\r
+    }\r
+\r
+#endif\r
+};\r
+\r
+//\r
+// Borland's Codeguard trips up over the -Vx- option here:\r
+//\r
+#ifdef __CODEGUARD__\r
+# pragma option push -Vx-\r
+#endif\r
+\r
+template<class P, class D> class sp_counted_impl_pd: public sp_counted_base\r
+{\r
+private:\r
+\r
+    P ptr; // copy constructor must not throw\r
+    D del; // copy constructor must not throw\r
+\r
+    sp_counted_impl_pd( sp_counted_impl_pd const & );\r
+    sp_counted_impl_pd & operator= ( sp_counted_impl_pd const & );\r
+\r
+    typedef sp_counted_impl_pd<P, D> this_type;\r
+\r
+public:\r
+\r
+    // pre: d(p) must not throw\r
+\r
+    sp_counted_impl_pd( P p, D d ): ptr(p), del(d)\r
+    {\r
+    }\r
+\r
+    virtual void dispose() // nothrow\r
+    {\r
+        del( ptr );\r
+    }\r
+\r
+    virtual void * get_deleter( detail::sp_typeinfo const & ti )\r
+    {\r
+        return ti == BOOST_SP_TYPEID(D)? &reinterpret_cast<char&>( del ): 0;\r
+    }\r
+\r
+#if defined(BOOST_SP_USE_STD_ALLOCATOR)\r
+\r
+    void * operator new( std::size_t )\r
+    {\r
+        return std::allocator<this_type>().allocate( 1, static_cast<this_type *>(0) );\r
+    }\r
+\r
+    void operator delete( void * p )\r
+    {\r
+        std::allocator<this_type>().deallocate( static_cast<this_type *>(p), 1 );\r
+    }\r
+\r
+#endif\r
+\r
+#if defined(BOOST_SP_USE_QUICK_ALLOCATOR)\r
+\r
+    void * operator new( std::size_t )\r
+    {\r
+        return quick_allocator<this_type>::alloc();\r
+    }\r
+\r
+    void operator delete( void * p )\r
+    {\r
+        quick_allocator<this_type>::dealloc( p );\r
+    }\r
+\r
+#endif\r
+};\r
+\r
+template<class P, class D, class A> class sp_counted_impl_pda: public sp_counted_base\r
+{\r
+private:\r
+\r
+    P p_; // copy constructor must not throw\r
+    D d_; // copy constructor must not throw\r
+    A a_; // copy constructor must not throw\r
+\r
+    sp_counted_impl_pda( sp_counted_impl_pda const & );\r
+    sp_counted_impl_pda & operator= ( sp_counted_impl_pda const & );\r
+\r
+    typedef sp_counted_impl_pda<P, D, A> this_type;\r
+\r
+public:\r
+\r
+    // pre: d( p ) must not throw\r
+\r
+    sp_counted_impl_pda( P p, D d, A a ): p_( p ), d_( d ), a_( a )\r
+    {\r
+    }\r
+\r
+    virtual void dispose() // nothrow\r
+    {\r
+        d_( p_ );\r
+    }\r
+\r
+    virtual void destroy() // nothrow\r
+    {\r
+        typedef typename A::template rebind< this_type >::other A2;\r
+\r
+        A2 a2( a_ );\r
+\r
+        this->~this_type();\r
+        a2.deallocate( this, 1 );\r
+    }\r
+\r
+    virtual void * get_deleter( detail::sp_typeinfo const & ti )\r
+    {\r
+        return ti == BOOST_SP_TYPEID( D )? &reinterpret_cast<char&>( d_ ): 0;\r
+    }\r
+};\r
+\r
+#ifdef __CODEGUARD__\r
+# pragma option pop\r
+#endif\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/sp_has_sync.hpp b/boost/boost/smart_ptr/detail/sp_has_sync.hpp
new file mode 100644 (file)
index 0000000..1d5dc48
--- /dev/null
@@ -0,0 +1,49 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  boost/smart_ptr/detail/sp_has_sync.hpp\r
+//\r
+//  Copyright (c) 2008, 2009 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0.\r
+//  See accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+//  Defines the BOOST_SP_HAS_SYNC macro if the __sync_* intrinsics\r
+//  are available.\r
+//\r
+\r
+#if defined(__GNUC__) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 401 )\r
+\r
+#define BOOST_SP_HAS_SYNC\r
+\r
+#if defined( __arm__ )  || defined( __armel__ )\r
+#undef BOOST_SP_HAS_SYNC\r
+#endif\r
+\r
+#if defined( __hppa ) || defined( __hppa__ )\r
+#undef BOOST_SP_HAS_SYNC\r
+#endif\r
+\r
+#if defined( __m68k__ )\r
+#undef BOOST_SP_HAS_SYNC\r
+#endif\r
+\r
+#if defined( __sparc__ )\r
+#undef BOOST_SP_HAS_SYNC\r
+#endif\r
+\r
+#if defined( __INTEL_COMPILER ) && !defined( __ia64__ )\r
+#undef BOOST_SP_HAS_SYNC\r
+#endif\r
+\r
+#endif // __GNUC__ * 100 + __GNUC_MINOR__ >= 401\r
+\r
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/spinlock.hpp b/boost/boost/smart_ptr/detail/spinlock.hpp
new file mode 100644 (file)
index 0000000..e4653f7
--- /dev/null
@@ -0,0 +1,53 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  boost/detail/spinlock.hpp\r
+//\r
+//  Copyright (c) 2008 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0.\r
+//  See accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+//  struct spinlock\r
+//  {\r
+//      void lock();\r
+//      bool try_lock();\r
+//      void unlock();\r
+//\r
+//      class scoped_lock;\r
+//  };\r
+//\r
+//  #define BOOST_DETAIL_SPINLOCK_INIT <unspecified>\r
+//\r
+\r
+#include <boost/config.hpp>\r
+#include <boost/smart_ptr/detail/sp_has_sync.hpp>\r
+\r
+#if defined(__GNUC__) && defined( __arm__ ) && !defined( __thumb__ )\r
+#  include <boost/smart_ptr/detail/spinlock_gcc_arm.hpp>\r
+\r
+#elif defined( BOOST_SP_HAS_SYNC )\r
+#  include <boost/smart_ptr/detail/spinlock_sync.hpp>\r
+\r
+#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)\r
+#  include <boost/smart_ptr/detail/spinlock_w32.hpp>\r
+\r
+#elif defined(BOOST_HAS_PTHREADS)\r
+#  include <boost/smart_ptr/detail/spinlock_pt.hpp>\r
+\r
+#elif !defined(BOOST_HAS_THREADS)\r
+#  include <boost/smart_ptr/detail/spinlock_nt.hpp>\r
+\r
+#else\r
+#  error Unrecognized threading platform\r
+#endif\r
+\r
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/spinlock_gcc_arm.hpp b/boost/boost/smart_ptr/detail/spinlock_gcc_arm.hpp
new file mode 100644 (file)
index 0000000..7d7c786
--- /dev/null
@@ -0,0 +1,85 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED\r
+\r
+//\r
+//  Copyright (c) 2008 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0.\r
+//  See accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+#include <boost/smart_ptr/detail/yield_k.hpp>\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+class spinlock\r
+{\r
+public:\r
+\r
+    int v_;\r
+\r
+public:\r
+\r
+    bool try_lock()\r
+    {\r
+        int r;\r
+\r
+        __asm__ __volatile__(\r
+            "swp %0, %1, [%2]":\r
+            "=&r"( r ): // outputs\r
+            "r"( 1 ), "r"( &v_ ): // inputs\r
+            "memory", "cc" );\r
+\r
+        return r == 0;\r
+    }\r
+\r
+    void lock()\r
+    {\r
+        for( unsigned k = 0; !try_lock(); ++k )\r
+        {\r
+            boost::detail::yield( k );\r
+        }\r
+    }\r
+\r
+    void unlock()\r
+    {\r
+        __asm__ __volatile__( "" ::: "memory" );\r
+        *const_cast< int volatile* >( &v_ ) = 0;\r
+    }\r
+\r
+public:\r
+\r
+    class scoped_lock\r
+    {\r
+    private:\r
+\r
+        spinlock & sp_;\r
+\r
+        scoped_lock( scoped_lock const & );\r
+        scoped_lock & operator=( scoped_lock const & );\r
+\r
+    public:\r
+\r
+        explicit scoped_lock( spinlock & sp ): sp_( sp )\r
+        {\r
+            sp.lock();\r
+        }\r
+\r
+        ~scoped_lock()\r
+        {\r
+            sp_.unlock();\r
+        }\r
+    };\r
+};\r
+\r
+} // namespace detail\r
+} // namespace boost\r
+\r
+#define BOOST_DETAIL_SPINLOCK_INIT {0}\r
+\r
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/spinlock_nt.hpp b/boost/boost/smart_ptr/detail/spinlock_nt.hpp
new file mode 100644 (file)
index 0000000..920d67e
--- /dev/null
@@ -0,0 +1,89 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  Copyright (c) 2008 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0.\r
+//  See accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+#include <boost/assert.hpp>\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+class spinlock\r
+{\r
+public:\r
+\r
+    bool locked_;\r
+\r
+public:\r
+\r
+    inline bool try_lock()\r
+    {\r
+        if( locked_ )\r
+        {\r
+            return false;\r
+        }\r
+        else\r
+        {\r
+            locked_ = true;\r
+            return true;\r
+        }\r
+    }\r
+\r
+    inline void lock()\r
+    {\r
+        BOOST_ASSERT( !locked_ );\r
+        locked_ = true;\r
+    }\r
+\r
+    inline void unlock()\r
+    {\r
+        BOOST_ASSERT( locked_ );\r
+        locked_ = false;\r
+    }\r
+\r
+public:\r
+\r
+    class scoped_lock\r
+    {\r
+    private:\r
+\r
+        spinlock & sp_;\r
+\r
+        scoped_lock( scoped_lock const & );\r
+        scoped_lock & operator=( scoped_lock const & );\r
+\r
+    public:\r
+\r
+        explicit scoped_lock( spinlock & sp ): sp_( sp )\r
+        {\r
+            sp.lock();\r
+        }\r
+\r
+        ~scoped_lock()\r
+        {\r
+            sp_.unlock();\r
+        }\r
+    };\r
+};\r
+\r
+} // namespace detail\r
+} // namespace boost\r
+\r
+#define BOOST_DETAIL_SPINLOCK_INIT { false }\r
+\r
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/spinlock_pool.hpp b/boost/boost/smart_ptr/detail/spinlock_pool.hpp
new file mode 100644 (file)
index 0000000..8a62a90
--- /dev/null
@@ -0,0 +1,87 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_POOL_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SPINLOCK_POOL_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  boost/detail/spinlock_pool.hpp\r
+//\r
+//  Copyright (c) 2008 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0.\r
+//  See accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+//  spinlock_pool<0> is reserved for atomic<>, when/if it arrives\r
+//  spinlock_pool<1> is reserved for shared_ptr reference counts\r
+//  spinlock_pool<2> is reserved for shared_ptr atomic access\r
+//\r
+\r
+#include <boost/config.hpp>\r
+#include <boost/smart_ptr/detail/spinlock.hpp>\r
+#include <cstddef>\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+template< int I > class spinlock_pool\r
+{\r
+private:\r
+\r
+    static spinlock pool_[ 41 ];\r
+\r
+public:\r
+\r
+    static spinlock & spinlock_for( void const * pv )\r
+    {\r
+        std::size_t i = reinterpret_cast< std::size_t >( pv ) % 41;\r
+        return pool_[ i ];\r
+    }\r
+\r
+    class scoped_lock\r
+    {\r
+    private:\r
+\r
+        spinlock & sp_;\r
+\r
+        scoped_lock( scoped_lock const & );\r
+        scoped_lock & operator=( scoped_lock const & );\r
+\r
+    public:\r
+\r
+        explicit scoped_lock( void const * pv ): sp_( spinlock_for( pv ) )\r
+        {\r
+            sp_.lock();\r
+        }\r
+\r
+        ~scoped_lock()\r
+        {\r
+            sp_.unlock();\r
+        }\r
+    };\r
+};\r
+\r
+template< int I > spinlock spinlock_pool< I >::pool_[ 41 ] =\r
+{\r
+    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, \r
+    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, \r
+    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, \r
+    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, \r
+    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, \r
+    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, \r
+    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, \r
+    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, \r
+    BOOST_DETAIL_SPINLOCK_INIT\r
+};\r
+\r
+} // namespace detail\r
+} // namespace boost\r
+\r
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_POOL_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/spinlock_pt.hpp b/boost/boost/smart_ptr/detail/spinlock_pt.hpp
new file mode 100644 (file)
index 0000000..f55e61f
--- /dev/null
@@ -0,0 +1,79 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  Copyright (c) 2008 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0.\r
+//  See accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+#include <pthread.h>\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+class spinlock\r
+{\r
+public:\r
+\r
+    pthread_mutex_t v_;\r
+\r
+public:\r
+\r
+    bool try_lock()\r
+    {\r
+        return pthread_mutex_trylock( &v_ ) == 0;\r
+    }\r
+\r
+    void lock()\r
+    {\r
+        pthread_mutex_lock( &v_ );\r
+    }\r
+\r
+    void unlock()\r
+    {\r
+        pthread_mutex_unlock( &v_ );\r
+    }\r
+\r
+public:\r
+\r
+    class scoped_lock\r
+    {\r
+    private:\r
+\r
+        spinlock & sp_;\r
+\r
+        scoped_lock( scoped_lock const & );\r
+        scoped_lock & operator=( scoped_lock const & );\r
+\r
+    public:\r
+\r
+        explicit scoped_lock( spinlock & sp ): sp_( sp )\r
+        {\r
+            sp.lock();\r
+        }\r
+\r
+        ~scoped_lock()\r
+        {\r
+            sp_.unlock();\r
+        }\r
+    };\r
+};\r
+\r
+} // namespace detail\r
+} // namespace boost\r
+\r
+#define BOOST_DETAIL_SPINLOCK_INIT { PTHREAD_MUTEX_INITIALIZER }\r
+\r
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/spinlock_sync.hpp b/boost/boost/smart_ptr/detail/spinlock_sync.hpp
new file mode 100644 (file)
index 0000000..f948306
--- /dev/null
@@ -0,0 +1,87 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  Copyright (c) 2008 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0.\r
+//  See accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+#include <boost/smart_ptr/detail/yield_k.hpp>\r
+\r
+#if defined( __ia64__ ) && defined( __INTEL_COMPILER )\r
+# include <ia64intrin.h>\r
+#endif\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+class spinlock\r
+{\r
+public:\r
+\r
+    int v_;\r
+\r
+public:\r
+\r
+    bool try_lock()\r
+    {\r
+        int r = __sync_lock_test_and_set( &v_, 1 );\r
+        return r == 0;\r
+    }\r
+\r
+    void lock()\r
+    {\r
+        for( unsigned k = 0; !try_lock(); ++k )\r
+        {\r
+            boost::detail::yield( k );\r
+        }\r
+    }\r
+\r
+    void unlock()\r
+    {\r
+        __sync_lock_release( &v_ );\r
+    }\r
+\r
+public:\r
+\r
+    class scoped_lock\r
+    {\r
+    private:\r
+\r
+        spinlock & sp_;\r
+\r
+        scoped_lock( scoped_lock const & );\r
+        scoped_lock & operator=( scoped_lock const & );\r
+\r
+    public:\r
+\r
+        explicit scoped_lock( spinlock & sp ): sp_( sp )\r
+        {\r
+            sp.lock();\r
+        }\r
+\r
+        ~scoped_lock()\r
+        {\r
+            sp_.unlock();\r
+        }\r
+    };\r
+};\r
+\r
+} // namespace detail\r
+} // namespace boost\r
+\r
+#define BOOST_DETAIL_SPINLOCK_INIT {0}\r
+\r
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/spinlock_w32.hpp b/boost/boost/smart_ptr/detail/spinlock_w32.hpp
new file mode 100644 (file)
index 0000000..8caa33c
--- /dev/null
@@ -0,0 +1,113 @@
+#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_W32_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_SPINLOCK_W32_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  Copyright (c) 2008 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0.\r
+//  See accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+\r
+#include <boost/detail/interlocked.hpp>\r
+#include <boost/smart_ptr/detail/yield_k.hpp>\r
+\r
+// BOOST_COMPILER_FENCE\r
+\r
+#if defined(__INTEL_COMPILER)\r
+\r
+#define BOOST_COMPILER_FENCE __memory_barrier();\r
+\r
+#elif defined( _MSC_VER ) && _MSC_VER >= 1310\r
+\r
+extern "C" void _ReadWriteBarrier();\r
+#pragma intrinsic( _ReadWriteBarrier )\r
+\r
+#define BOOST_COMPILER_FENCE _ReadWriteBarrier();\r
+\r
+#elif defined(__GNUC__)\r
+\r
+#define BOOST_COMPILER_FENCE __asm__ __volatile__( "" : : : "memory" );\r
+\r
+#else\r
+\r
+#define BOOST_COMPILER_FENCE\r
+\r
+#endif\r
+\r
+//\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+class spinlock\r
+{\r
+public:\r
+\r
+    long v_;\r
+\r
+public:\r
+\r
+    bool try_lock()\r
+    {\r
+        long r = BOOST_INTERLOCKED_EXCHANGE( &v_, 1 );\r
+\r
+        BOOST_COMPILER_FENCE\r
+\r
+        return r == 0;\r
+    }\r
+\r
+    void lock()\r
+    {\r
+        for( unsigned k = 0; !try_lock(); ++k )\r
+        {\r
+            boost::detail::yield( k );\r
+        }\r
+    }\r
+\r
+    void unlock()\r
+    {\r
+        BOOST_COMPILER_FENCE\r
+        *const_cast< long volatile* >( &v_ ) = 0;\r
+    }\r
+\r
+public:\r
+\r
+    class scoped_lock\r
+    {\r
+    private:\r
+\r
+        spinlock & sp_;\r
+\r
+        scoped_lock( scoped_lock const & );\r
+        scoped_lock & operator=( scoped_lock const & );\r
+\r
+    public:\r
+\r
+        explicit scoped_lock( spinlock & sp ): sp_( sp )\r
+        {\r
+            sp.lock();\r
+        }\r
+\r
+        ~scoped_lock()\r
+        {\r
+            sp_.unlock();\r
+        }\r
+    };\r
+};\r
+\r
+} // namespace detail\r
+} // namespace boost\r
+\r
+#define BOOST_DETAIL_SPINLOCK_INIT {0}\r
+\r
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_W32_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/detail/yield_k.hpp b/boost/boost/smart_ptr/detail/yield_k.hpp
new file mode 100644 (file)
index 0000000..7fafea7
--- /dev/null
@@ -0,0 +1,149 @@
+#ifndef BOOST_SMART_PTR_DETAIL_YIELD_K_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_DETAIL_YIELD_K_HPP_INCLUDED\r
+\r
+// MS compatible compilers support #pragma once\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+//\r
+//  yield_k.hpp\r
+//\r
+//  Copyright (c) 2008 Peter Dimov\r
+//\r
+//  void yield( unsigned k );\r
+//\r
+//  Typical use:\r
+//\r
+//  for( unsigned k = 0; !try_lock(); ++k ) yield( k );\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0.\r
+//  See accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt\r
+//\r
+\r
+#include <boost/config.hpp>\r
+\r
+// BOOST_SMT_PAUSE\r
+\r
+#if defined(_MSC_VER) && _MSC_VER >= 1310 && ( defined(_M_IX86) || defined(_M_X64) )\r
+\r
+extern "C" void _mm_pause();\r
+#pragma intrinsic( _mm_pause )\r
+\r
+#define BOOST_SMT_PAUSE _mm_pause();\r
+\r
+#elif defined(__GNUC__) && ( defined(__i386__) || defined(__x86_64__) )\r
+\r
+#define BOOST_SMT_PAUSE __asm__ __volatile__( "rep; nop" : : : "memory" );\r
+\r
+#endif\r
+\r
+//\r
+\r
+#if defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ )\r
+\r
+#if defined( BOOST_USE_WINDOWS_H )\r
+# include <windows.h>\r
+#endif\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+#if !defined( BOOST_USE_WINDOWS_H )\r
+  extern "C" void __stdcall Sleep( unsigned ms );\r
+#endif\r
+\r
+inline void yield( unsigned k )\r
+{\r
+    if( k < 4 )\r
+    {\r
+    }\r
+#if defined( BOOST_SMT_PAUSE )\r
+    else if( k < 16 )\r
+    {\r
+        BOOST_SMT_PAUSE\r
+    }\r
+#endif\r
+    else if( k < 32 )\r
+    {\r
+        Sleep( 0 );\r
+    }\r
+    else\r
+    {\r
+        Sleep( 1 );\r
+    }\r
+}\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#elif defined( BOOST_HAS_PTHREADS )\r
+\r
+#include <sched.h>\r
+#include <time.h>\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+inline void yield( unsigned k )\r
+{\r
+    if( k < 4 )\r
+    {\r
+    }\r
+#if defined( BOOST_SMT_PAUSE )\r
+    else if( k < 16 )\r
+    {\r
+        BOOST_SMT_PAUSE\r
+    }\r
+#endif\r
+    else if( k < 32 || k & 1 )\r
+    {\r
+        sched_yield();\r
+    }\r
+    else\r
+    {\r
+        // g++ -Wextra warns on {} or {0}\r
+        struct timespec rqtp = { 0, 0 };\r
+\r
+        // POSIX says that timespec has tv_sec and tv_nsec\r
+        // But it doesn't guarantee order or placement\r
+\r
+        rqtp.tv_sec = 0;\r
+        rqtp.tv_nsec = 1000;\r
+\r
+        nanosleep( &rqtp, 0 );\r
+    }\r
+}\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#else\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+inline void yield( unsigned )\r
+{\r
+}\r
+\r
+} // namespace detail\r
+\r
+} // namespace boost\r
+\r
+#endif\r
+\r
+#endif // #ifndef BOOST_SMART_PTR_DETAIL_YIELD_K_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/enable_shared_from_this.hpp b/boost/boost/smart_ptr/enable_shared_from_this.hpp
new file mode 100644 (file)
index 0000000..20a586d
--- /dev/null
@@ -0,0 +1,79 @@
+#ifndef BOOST_SMART_PTR_ENABLE_SHARED_FROM_THIS_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_ENABLE_SHARED_FROM_THIS_HPP_INCLUDED\r
+\r
+//\r
+//  enable_shared_from_this.hpp\r
+//\r
+//  Copyright 2002, 2009 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0.\r
+//  See accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt\r
+//\r
+//  http://www.boost.org/libs/smart_ptr/enable_shared_from_this.html\r
+//\r
+\r
+#include <boost/smart_ptr/weak_ptr.hpp>\r
+#include <boost/smart_ptr/shared_ptr.hpp>\r
+#include <boost/assert.hpp>\r
+#include <boost/config.hpp>\r
+\r
+namespace boost\r
+{\r
+\r
+template<class T> class enable_shared_from_this\r
+{\r
+protected:\r
+\r
+    enable_shared_from_this()\r
+    {\r
+    }\r
+\r
+    enable_shared_from_this(enable_shared_from_this const &)\r
+    {\r
+    }\r
+\r
+    enable_shared_from_this & operator=(enable_shared_from_this const &)\r
+    {\r
+        return *this;\r
+    }\r
+\r
+    ~enable_shared_from_this()\r
+    {\r
+    }\r
+\r
+public:\r
+\r
+    shared_ptr<T> shared_from_this()\r
+    {\r
+        shared_ptr<T> p( weak_this_ );\r
+        BOOST_ASSERT( p.get() == this );\r
+        return p;\r
+    }\r
+\r
+    shared_ptr<T const> shared_from_this() const\r
+    {\r
+        shared_ptr<T const> p( weak_this_ );\r
+        BOOST_ASSERT( p.get() == this );\r
+        return p;\r
+    }\r
+\r
+public: // actually private, but avoids compiler template friendship issues\r
+\r
+    // Note: invoked automatically by shared_ptr; do not call\r
+    template<class X, class Y> void _internal_accept_owner( shared_ptr<X> const * ppx, Y * py ) const\r
+    {\r
+        if( weak_this_.expired() )\r
+        {\r
+            weak_this_ = shared_ptr<T>( *ppx, py );\r
+        }\r
+    }\r
+\r
+private:\r
+\r
+    mutable weak_ptr<T> weak_this_;\r
+};\r
+\r
+} // namespace boost\r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_ENABLE_SHARED_FROM_THIS_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/intrusive_ptr.hpp b/boost/boost/smart_ptr/intrusive_ptr.hpp
new file mode 100644 (file)
index 0000000..0bd1730
--- /dev/null
@@ -0,0 +1,282 @@
+#ifndef BOOST_SMART_PTR_INTRUSIVE_PTR_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_INTRUSIVE_PTR_HPP_INCLUDED\r
+\r
+//\r
+//  intrusive_ptr.hpp\r
+//\r
+//  Copyright (c) 2001, 2002 Peter Dimov\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. (See\r
+// accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+//  See http://www.boost.org/libs/smart_ptr/intrusive_ptr.html for documentation.\r
+//\r
+\r
+#include <boost/config.hpp>\r
+\r
+#ifdef BOOST_MSVC  // moved here to work around VC++ compiler crash\r
+# pragma warning(push)\r
+# pragma warning(disable:4284) // odd return type for operator->\r
+#endif\r
+\r
+#include <boost/assert.hpp>\r
+#include <boost/detail/workaround.hpp>\r
+#include <boost/smart_ptr/detail/sp_convertible.hpp>\r
+\r
+#include <boost/config/no_tr1/functional.hpp>           // for std::less\r
+\r
+#if !defined(BOOST_NO_IOSTREAM)\r
+#if !defined(BOOST_NO_IOSFWD)\r
+#include <iosfwd>               // for std::basic_ostream\r
+#else\r
+#include <ostream>\r
+#endif\r
+#endif\r
+\r
+\r
+namespace boost\r
+{\r
+\r
+//\r
+//  intrusive_ptr\r
+//\r
+//  A smart pointer that uses intrusive reference counting.\r
+//\r
+//  Relies on unqualified calls to\r
+//  \r
+//      void intrusive_ptr_add_ref(T * p);\r
+//      void intrusive_ptr_release(T * p);\r
+//\r
+//          (p != 0)\r
+//\r
+//  The object is responsible for destroying itself.\r
+//\r
+\r
+template<class T> class intrusive_ptr\r
+{\r
+private:\r
+\r
+    typedef intrusive_ptr this_type;\r
+\r
+public:\r
+\r
+    typedef T element_type;\r
+\r
+    intrusive_ptr(): px( 0 )\r
+    {\r
+    }\r
+\r
+    intrusive_ptr( T * p, bool add_ref = true ): px( p )\r
+    {\r
+        if( px != 0 && add_ref ) intrusive_ptr_add_ref( px );\r
+    }\r
+\r
+#if !defined(BOOST_NO_MEMBER_TEMPLATES) || defined(BOOST_MSVC6_MEMBER_TEMPLATES)\r
+\r
+    template<class U>\r
+#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )\r
+\r
+    intrusive_ptr( intrusive_ptr<U> const & rhs, typename detail::sp_enable_if_convertible<U,T>::type = detail::sp_empty() )\r
+\r
+#else\r
+\r
+    intrusive_ptr( intrusive_ptr<U> const & rhs )\r
+\r
+#endif\r
+    : px( rhs.get() )\r
+    {\r
+        if( px != 0 ) intrusive_ptr_add_ref( px );\r
+    }\r
+\r
+#endif\r
+\r
+    intrusive_ptr(intrusive_ptr const & rhs): px( rhs.px )\r
+    {\r
+        if( px != 0 ) intrusive_ptr_add_ref( px );\r
+    }\r
+\r
+    ~intrusive_ptr()\r
+    {\r
+        if( px != 0 ) intrusive_ptr_release( px );\r
+    }\r
+\r
+#if !defined(BOOST_NO_MEMBER_TEMPLATES) || defined(BOOST_MSVC6_MEMBER_TEMPLATES)\r
+\r
+    template<class U> intrusive_ptr & operator=(intrusive_ptr<U> const & rhs)\r
+    {\r
+        this_type(rhs).swap(*this);\r
+        return *this;\r
+    }\r
+\r
+#endif\r
+\r
+    intrusive_ptr & operator=(intrusive_ptr const & rhs)\r
+    {\r
+        this_type(rhs).swap(*this);\r
+        return *this;\r
+    }\r
+\r
+    intrusive_ptr & operator=(T * rhs)\r
+    {\r
+        this_type(rhs).swap(*this);\r
+        return *this;\r
+    }\r
+\r
+    void reset()\r
+    {\r
+        this_type().swap( *this );\r
+    }\r
+\r
+    void reset( T * rhs )\r
+    {\r
+        this_type( rhs ).swap( *this );\r
+    }\r
+\r
+    T * get() const\r
+    {\r
+        return px;\r
+    }\r
+\r
+    T & operator*() const\r
+    {\r
+        BOOST_ASSERT( px != 0 );\r
+        return *px;\r
+    }\r
+\r
+    T * operator->() const\r
+    {\r
+        BOOST_ASSERT( px != 0 );\r
+        return px;\r
+    }\r
+\r
+// implicit conversion to "bool"\r
+#include <boost/smart_ptr/detail/operator_bool.hpp>\r
+\r
+    void swap(intrusive_ptr & rhs)\r
+    {\r
+        T * tmp = px;\r
+        px = rhs.px;\r
+        rhs.px = tmp;\r
+    }\r
+\r
+private:\r
+\r
+    T * px;\r
+};\r
+\r
+template<class T, class U> inline bool operator==(intrusive_ptr<T> const & a, intrusive_ptr<U> const & b)\r
+{\r
+    return a.get() == b.get();\r
+}\r
+\r
+template<class T, class U> inline bool operator!=(intrusive_ptr<T> const & a, intrusive_ptr<U> const & b)\r
+{\r
+    return a.get() != b.get();\r
+}\r
+\r
+template<class T, class U> inline bool operator==(intrusive_ptr<T> const & a, U * b)\r
+{\r
+    return a.get() == b;\r
+}\r
+\r
+template<class T, class U> inline bool operator!=(intrusive_ptr<T> const & a, U * b)\r
+{\r
+    return a.get() != b;\r
+}\r
+\r
+template<class T, class U> inline bool operator==(T * a, intrusive_ptr<U> const & b)\r
+{\r
+    return a == b.get();\r
+}\r
+\r
+template<class T, class U> inline bool operator!=(T * a, intrusive_ptr<U> const & b)\r
+{\r
+    return a != b.get();\r
+}\r
+\r
+#if __GNUC__ == 2 && __GNUC_MINOR__ <= 96\r
+\r
+// Resolve the ambiguity between our op!= and the one in rel_ops\r
+\r
+template<class T> inline bool operator!=(intrusive_ptr<T> const & a, intrusive_ptr<T> const & b)\r
+{\r
+    return a.get() != b.get();\r
+}\r
+\r
+#endif\r
+\r
+template<class T> inline bool operator<(intrusive_ptr<T> const & a, intrusive_ptr<T> const & b)\r
+{\r
+    return std::less<T *>()(a.get(), b.get());\r
+}\r
+\r
+template<class T> void swap(intrusive_ptr<T> & lhs, intrusive_ptr<T> & rhs)\r
+{\r
+    lhs.swap(rhs);\r
+}\r
+\r
+// mem_fn support\r
+\r
+template<class T> T * get_pointer(intrusive_ptr<T> const & p)\r
+{\r
+    return p.get();\r
+}\r
+\r
+template<class T, class U> intrusive_ptr<T> static_pointer_cast(intrusive_ptr<U> const & p)\r
+{\r
+    return static_cast<T *>(p.get());\r
+}\r
+\r
+template<class T, class U> intrusive_ptr<T> const_pointer_cast(intrusive_ptr<U> const & p)\r
+{\r
+    return const_cast<T *>(p.get());\r
+}\r
+\r
+template<class T, class U> intrusive_ptr<T> dynamic_pointer_cast(intrusive_ptr<U> const & p)\r
+{\r
+    return dynamic_cast<T *>(p.get());\r
+}\r
+\r
+// operator<<\r
+\r
+#if !defined(BOOST_NO_IOSTREAM)\r
+\r
+#if defined(BOOST_NO_TEMPLATED_IOSTREAMS) || ( defined(__GNUC__) &&  (__GNUC__ < 3) )\r
+\r
+template<class Y> std::ostream & operator<< (std::ostream & os, intrusive_ptr<Y> const & p)\r
+{\r
+    os << p.get();\r
+    return os;\r
+}\r
+\r
+#else\r
+\r
+// in STLport's no-iostreams mode no iostream symbols can be used\r
+#ifndef _STLP_NO_IOSTREAMS\r
+\r
+# if defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, < 1300 && __SGI_STL_PORT)\r
+// MSVC6 has problems finding std::basic_ostream through the using declaration in namespace _STL\r
+using std::basic_ostream;\r
+template<class E, class T, class Y> basic_ostream<E, T> & operator<< (basic_ostream<E, T> & os, intrusive_ptr<Y> const & p)\r
+# else\r
+template<class E, class T, class Y> std::basic_ostream<E, T> & operator<< (std::basic_ostream<E, T> & os, intrusive_ptr<Y> const & p)\r
+# endif \r
+{\r
+    os << p.get();\r
+    return os;\r
+}\r
+\r
+#endif // _STLP_NO_IOSTREAMS\r
+\r
+#endif // __GNUC__ < 3\r
+\r
+#endif // !defined(BOOST_NO_IOSTREAM)\r
+\r
+} // namespace boost\r
+\r
+#ifdef BOOST_MSVC\r
+# pragma warning(pop)\r
+#endif    \r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_INTRUSIVE_PTR_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/make_shared.hpp b/boost/boost/smart_ptr/make_shared.hpp
new file mode 100644 (file)
index 0000000..90e9d51
--- /dev/null
@@ -0,0 +1,504 @@
+#ifndef BOOST_SMART_PTR_MAKE_SHARED_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_MAKE_SHARED_HPP_INCLUDED\r
+\r
+//  make_shared.hpp\r
+//\r
+//  Copyright (c) 2007, 2008 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0.\r
+//  See accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt\r
+//\r
+//  See http://www.boost.org/libs/smart_ptr/make_shared.html\r
+//  for documentation.\r
+\r
+#include <boost/config.hpp>\r
+#include <boost/smart_ptr/shared_ptr.hpp>\r
+#include <boost/type_traits/type_with_alignment.hpp>\r
+#include <boost/type_traits/alignment_of.hpp>\r
+#include <cstddef>\r
+#include <new>\r
+\r
+namespace boost\r
+{\r
+\r
+namespace detail\r
+{\r
+\r
+template< std::size_t N, std::size_t A > struct sp_aligned_storage\r
+{\r
+    union type\r
+    {\r
+        char data_[ N ];\r
+        typename boost::type_with_alignment< A >::type align_;\r
+    };\r
+};\r
+\r
+template< class T > class sp_ms_deleter\r
+{\r
+private:\r
+\r
+    typedef typename sp_aligned_storage< sizeof( T ), ::boost::alignment_of< T >::value >::type storage_type;\r
+\r
+    bool initialized_;\r
+    storage_type storage_;\r
+\r
+private:\r
+\r
+    void destroy()\r
+    {\r
+        if( initialized_ )\r
+        {\r
+            reinterpret_cast< T* >( storage_.data_ )->~T();\r
+            initialized_ = false;\r
+        }\r
+    }\r
+\r
+public:\r
+\r
+    sp_ms_deleter(): initialized_( false )\r
+    {\r
+    }\r
+\r
+    // optimization: do not copy storage_\r
+    sp_ms_deleter( sp_ms_deleter const & ): initialized_( false )\r
+    {\r
+    }\r
+\r
+    ~sp_ms_deleter()\r
+    {\r
+        destroy();\r
+    }\r
+\r
+    void operator()( T * )\r
+    {\r
+        destroy();\r
+    }\r
+\r
+    void * address()\r
+    {\r
+        return storage_.data_;\r
+    }\r
+\r
+    void set_initialized()\r
+    {\r
+        initialized_ = true;\r
+    }\r
+};\r
+\r
+template< class T > T forward( T t )\r
+{\r
+    return t;\r
+}\r
+\r
+} // namespace detail\r
+\r
+// Zero-argument versions\r
+//\r
+// Used even when variadic templates are available because of the new T() vs new T issue\r
+\r
+template< class T > boost::shared_ptr< T > make_shared()\r
+{\r
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );\r
+\r
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
+\r
+    void * pv = pd->address();\r
+\r
+    ::new( pv ) T();\r
+    pd->set_initialized();\r
+\r
+    T * pt2 = static_cast< T* >( pv );\r
+\r
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
+    return boost::shared_ptr< T >( pt, pt2 );\r
+}\r
+\r
+template< class T, class A > boost::shared_ptr< T > allocate_shared( A const & a )\r
+{\r
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );\r
+\r
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
+\r
+    void * pv = pd->address();\r
+\r
+    ::new( pv ) T();\r
+    pd->set_initialized();\r
+\r
+    T * pt2 = static_cast< T* >( pv );\r
+\r
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
+    return boost::shared_ptr< T >( pt, pt2 );\r
+}\r
+\r
+#if defined( BOOST_HAS_VARIADIC_TMPL ) && defined( BOOST_HAS_RVALUE_REFS )\r
+\r
+// Variadic templates, rvalue reference\r
+\r
+template< class T, class... Args > boost::shared_ptr< T > make_shared( Args && ... args )\r
+{\r
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );\r
+\r
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
+\r
+    void * pv = pd->address();\r
+\r
+    ::new( pv ) T( detail::forward<Args>( args )... );\r
+    pd->set_initialized();\r
+\r
+    T * pt2 = static_cast< T* >( pv );\r
+\r
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
+    return boost::shared_ptr< T >( pt, pt2 );\r
+}\r
+\r
+template< class T, class A, class... Args > boost::shared_ptr< T > allocate_shared( A const & a, Args && ... args )\r
+{\r
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );\r
+\r
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
+\r
+    void * pv = pd->address();\r
+\r
+    ::new( pv ) T( detail::forward<Args>( args )... );\r
+    pd->set_initialized();\r
+\r
+    T * pt2 = static_cast< T* >( pv );\r
+\r
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
+    return boost::shared_ptr< T >( pt, pt2 );\r
+}\r
+\r
+#else\r
+\r
+// C++03 version\r
+\r
+template< class T, class A1 >\r
+boost::shared_ptr< T > make_shared( A1 const & a1 )\r
+{\r
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );\r
+\r
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
+\r
+    void * pv = pd->address();\r
+\r
+    ::new( pv ) T( a1 );\r
+    pd->set_initialized();\r
+\r
+    T * pt2 = static_cast< T* >( pv );\r
+\r
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
+    return boost::shared_ptr< T >( pt, pt2 );\r
+}\r
+\r
+template< class T, class A, class A1 >\r
+boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1 )\r
+{\r
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );\r
+\r
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
+\r
+    void * pv = pd->address();\r
+\r
+    ::new( pv ) T( a1 );\r
+    pd->set_initialized();\r
+\r
+    T * pt2 = static_cast< T* >( pv );\r
+\r
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
+    return boost::shared_ptr< T >( pt, pt2 );\r
+}\r
+\r
+template< class T, class A1, class A2 >\r
+boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2 )\r
+{\r
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );\r
+\r
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
+\r
+    void * pv = pd->address();\r
+\r
+    ::new( pv ) T( a1, a2 );\r
+    pd->set_initialized();\r
+\r
+    T * pt2 = static_cast< T* >( pv );\r
+\r
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
+    return boost::shared_ptr< T >( pt, pt2 );\r
+}\r
+\r
+template< class T, class A, class A1, class A2 >\r
+boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2 )\r
+{\r
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );\r
+\r
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
+\r
+    void * pv = pd->address();\r
+\r
+    ::new( pv ) T( a1, a2 );\r
+    pd->set_initialized();\r
+\r
+    T * pt2 = static_cast< T* >( pv );\r
+\r
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
+    return boost::shared_ptr< T >( pt, pt2 );\r
+}\r
+\r
+template< class T, class A1, class A2, class A3 >\r
+boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3 )\r
+{\r
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );\r
+\r
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
+\r
+    void * pv = pd->address();\r
+\r
+    ::new( pv ) T( a1, a2, a3 );\r
+    pd->set_initialized();\r
+\r
+    T * pt2 = static_cast< T* >( pv );\r
+\r
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
+    return boost::shared_ptr< T >( pt, pt2 );\r
+}\r
+\r
+template< class T, class A, class A1, class A2, class A3 >\r
+boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3 )\r
+{\r
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );\r
+\r
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
+\r
+    void * pv = pd->address();\r
+\r
+    ::new( pv ) T( a1, a2, a3 );\r
+    pd->set_initialized();\r
+\r
+    T * pt2 = static_cast< T* >( pv );\r
+\r
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
+    return boost::shared_ptr< T >( pt, pt2 );\r
+}\r
+\r
+template< class T, class A1, class A2, class A3, class A4 >\r
+boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4 )\r
+{\r
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );\r
+\r
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
+\r
+    void * pv = pd->address();\r
+\r
+    ::new( pv ) T( a1, a2, a3, a4 );\r
+    pd->set_initialized();\r
+\r
+    T * pt2 = static_cast< T* >( pv );\r
+\r
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
+    return boost::shared_ptr< T >( pt, pt2 );\r
+}\r
+\r
+template< class T, class A, class A1, class A2, class A3, class A4 >\r
+boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4 )\r
+{\r
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );\r
+\r
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
+\r
+    void * pv = pd->address();\r
+\r
+    ::new( pv ) T( a1, a2, a3, a4 );\r
+    pd->set_initialized();\r
+\r
+    T * pt2 = static_cast< T* >( pv );\r
+\r
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
+    return boost::shared_ptr< T >( pt, pt2 );\r
+}\r
+\r
+template< class T, class A1, class A2, class A3, class A4, class A5 >\r
+boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5 )\r
+{\r
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );\r
+\r
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
+\r
+    void * pv = pd->address();\r
+\r
+    ::new( pv ) T( a1, a2, a3, a4, a5 );\r
+    pd->set_initialized();\r
+\r
+    T * pt2 = static_cast< T* >( pv );\r
+\r
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
+    return boost::shared_ptr< T >( pt, pt2 );\r
+}\r
+\r
+template< class T, class A, class A1, class A2, class A3, class A4, class A5 >\r
+boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5 )\r
+{\r
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );\r
+\r
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
+\r
+    void * pv = pd->address();\r
+\r
+    ::new( pv ) T( a1, a2, a3, a4, a5 );\r
+    pd->set_initialized();\r
+\r
+    T * pt2 = static_cast< T* >( pv );\r
+\r
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
+    return boost::shared_ptr< T >( pt, pt2 );\r
+}\r
+\r
+template< class T, class A1, class A2, class A3, class A4, class A5, class A6 >\r
+boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6 )\r
+{\r
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );\r
+\r
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
+\r
+    void * pv = pd->address();\r
+\r
+    ::new( pv ) T( a1, a2, a3, a4, a5, a6 );\r
+    pd->set_initialized();\r
+\r
+    T * pt2 = static_cast< T* >( pv );\r
+\r
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
+    return boost::shared_ptr< T >( pt, pt2 );\r
+}\r
+\r
+template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6 >\r
+boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6 )\r
+{\r
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );\r
+\r
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
+\r
+    void * pv = pd->address();\r
+\r
+    ::new( pv ) T( a1, a2, a3, a4, a5, a6 );\r
+    pd->set_initialized();\r
+\r
+    T * pt2 = static_cast< T* >( pv );\r
+\r
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
+    return boost::shared_ptr< T >( pt, pt2 );\r
+}\r
+\r
+template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7 >\r
+boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7 )\r
+{\r
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );\r
+\r
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
+\r
+    void * pv = pd->address();\r
+\r
+    ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7 );\r
+    pd->set_initialized();\r
+\r
+    T * pt2 = static_cast< T* >( pv );\r
+\r
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
+    return boost::shared_ptr< T >( pt, pt2 );\r
+}\r
+\r
+template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7 >\r
+boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7 )\r
+{\r
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );\r
+\r
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
+\r
+    void * pv = pd->address();\r
+\r
+    ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7 );\r
+    pd->set_initialized();\r
+\r
+    T * pt2 = static_cast< T* >( pv );\r
+\r
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
+    return boost::shared_ptr< T >( pt, pt2 );\r
+}\r
+\r
+template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 >\r
+boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8 )\r
+{\r
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );\r
+\r
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
+\r
+    void * pv = pd->address();\r
+\r
+    ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8 );\r
+    pd->set_initialized();\r
+\r
+    T * pt2 = static_cast< T* >( pv );\r
+\r
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
+    return boost::shared_ptr< T >( pt, pt2 );\r
+}\r
+\r
+template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 >\r
+boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8 )\r
+{\r
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );\r
+\r
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
+\r
+    void * pv = pd->address();\r
+\r
+    ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8 );\r
+    pd->set_initialized();\r
+\r
+    T * pt2 = static_cast< T* >( pv );\r
+\r
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
+    return boost::shared_ptr< T >( pt, pt2 );\r
+}\r
+\r
+template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 >\r
+boost::shared_ptr< T > make_shared( A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9 )\r
+{\r
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >() );\r
+\r
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
+\r
+    void * pv = pd->address();\r
+\r
+    ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8, a9 );\r
+    pd->set_initialized();\r
+\r
+    T * pt2 = static_cast< T* >( pv );\r
+\r
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
+    return boost::shared_ptr< T >( pt, pt2 );\r
+}\r
+\r
+template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 >\r
+boost::shared_ptr< T > allocate_shared( A const & a, A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9 )\r
+{\r
+    boost::shared_ptr< T > pt( static_cast< T* >( 0 ), detail::sp_ms_deleter< T >(), a );\r
+\r
+    detail::sp_ms_deleter< T > * pd = boost::get_deleter< detail::sp_ms_deleter< T > >( pt );\r
+\r
+    void * pv = pd->address();\r
+\r
+    ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8, a9 );\r
+    pd->set_initialized();\r
+\r
+    T * pt2 = static_cast< T* >( pv );\r
+\r
+    boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );\r
+    return boost::shared_ptr< T >( pt, pt2 );\r
+}\r
+\r
+#endif\r
+\r
+} // namespace boost\r
+\r
+#endif // #ifndef BOOST_SMART_PTR_MAKE_SHARED_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/scoped_array.hpp b/boost/boost/smart_ptr/scoped_array.hpp
new file mode 100644 (file)
index 0000000..79c5a70
--- /dev/null
@@ -0,0 +1,107 @@
+#ifndef BOOST_SMART_PTR_SCOPED_ARRAY_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_SCOPED_ARRAY_HPP_INCLUDED\r
+\r
+//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.\r
+//  Copyright (c) 2001, 2002 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0. (See\r
+//  accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+//  http://www.boost.org/libs/smart_ptr/scoped_array.htm\r
+//\r
+\r
+#include <boost/assert.hpp>\r
+#include <boost/checked_delete.hpp>\r
+#include <boost/config.hpp>   // in case ptrdiff_t not in std\r
+\r
+#include <boost/detail/workaround.hpp>\r
+\r
+#include <cstddef>            // for std::ptrdiff_t\r
+\r
+namespace boost\r
+{\r
+\r
+// Debug hooks\r
+\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+\r
+void sp_array_constructor_hook(void * p);\r
+void sp_array_destructor_hook(void * p);\r
+\r
+#endif\r
+\r
+//  scoped_array extends scoped_ptr to arrays. Deletion of the array pointed to\r
+//  is guaranteed, either on destruction of the scoped_array or via an explicit\r
+//  reset(). Use shared_array or std::vector if your needs are more complex.\r
+\r
+template<class T> class scoped_array // noncopyable\r
+{\r
+private:\r
+\r
+    T * px;\r
+\r
+    scoped_array(scoped_array const &);\r
+    scoped_array & operator=(scoped_array const &);\r
+\r
+    typedef scoped_array<T> this_type;\r
+\r
+    void operator==( scoped_array const& ) const;\r
+    void operator!=( scoped_array const& ) const;\r
+\r
+public:\r
+\r
+    typedef T element_type;\r
+\r
+    explicit scoped_array( T * p = 0 ) : px( p ) // never throws\r
+    {\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+        boost::sp_array_constructor_hook( px );\r
+#endif\r
+    }\r
+\r
+    ~scoped_array() // never throws\r
+    {\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+        boost::sp_array_destructor_hook( px );\r
+#endif\r
+        boost::checked_array_delete( px );\r
+    }\r
+\r
+    void reset(T * p = 0) // never throws\r
+    {\r
+        BOOST_ASSERT( p == 0 || p != px ); // catch self-reset errors\r
+        this_type(p).swap(*this);\r
+    }\r
+\r
+    T & operator[](std::ptrdiff_t i) const // never throws\r
+    {\r
+        BOOST_ASSERT( px != 0 );\r
+        BOOST_ASSERT( i >= 0 );\r
+        return px[i];\r
+    }\r
+\r
+    T * get() const // never throws\r
+    {\r
+        return px;\r
+    }\r
+\r
+// implicit conversion to "bool"\r
+#include <boost/smart_ptr/detail/operator_bool.hpp>\r
+\r
+    void swap(scoped_array & b) // never throws\r
+    {\r
+        T * tmp = b.px;\r
+        b.px = px;\r
+        px = tmp;\r
+    }\r
+};\r
+\r
+template<class T> inline void swap(scoped_array<T> & a, scoped_array<T> & b) // never throws\r
+{\r
+    a.swap(b);\r
+}\r
+\r
+} // namespace boost\r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_SCOPED_ARRAY_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/scoped_ptr.hpp b/boost/boost/smart_ptr/scoped_ptr.hpp
new file mode 100644 (file)
index 0000000..ea22505
--- /dev/null
@@ -0,0 +1,131 @@
+#ifndef BOOST_SMART_PTR_SCOPED_PTR_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_SCOPED_PTR_HPP_INCLUDED\r
+\r
+//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.\r
+//  Copyright (c) 2001, 2002 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0. (See\r
+//  accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+//  http://www.boost.org/libs/smart_ptr/scoped_ptr.htm\r
+//\r
+\r
+#include <boost/assert.hpp>\r
+#include <boost/checked_delete.hpp>\r
+#include <boost/detail/workaround.hpp>\r
+\r
+#ifndef BOOST_NO_AUTO_PTR\r
+# include <memory>          // for std::auto_ptr\r
+#endif\r
+\r
+namespace boost\r
+{\r
+\r
+// Debug hooks\r
+\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+\r
+void sp_scalar_constructor_hook(void * p);\r
+void sp_scalar_destructor_hook(void * p);\r
+\r
+#endif\r
+\r
+//  scoped_ptr mimics a built-in pointer except that it guarantees deletion\r
+//  of the object pointed to, either on destruction of the scoped_ptr or via\r
+//  an explicit reset(). scoped_ptr is a simple solution for simple needs;\r
+//  use shared_ptr or std::auto_ptr if your needs are more complex.\r
+\r
+template<class T> class scoped_ptr // noncopyable\r
+{\r
+private:\r
+\r
+    T * px;\r
+\r
+    scoped_ptr(scoped_ptr const &);\r
+    scoped_ptr & operator=(scoped_ptr const &);\r
+\r
+    typedef scoped_ptr<T> this_type;\r
+\r
+    void operator==( scoped_ptr const& ) const;\r
+    void operator!=( scoped_ptr const& ) const;\r
+\r
+public:\r
+\r
+    typedef T element_type;\r
+\r
+    explicit scoped_ptr( T * p = 0 ): px( p ) // never throws\r
+    {\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+        boost::sp_scalar_constructor_hook( px );\r
+#endif\r
+    }\r
+\r
+#ifndef BOOST_NO_AUTO_PTR\r
+\r
+    explicit scoped_ptr( std::auto_ptr<T> p ): px( p.release() ) // never throws\r
+    {\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+        boost::sp_scalar_constructor_hook( px );\r
+#endif\r
+    }\r
+\r
+#endif\r
+\r
+    ~scoped_ptr() // never throws\r
+    {\r
+#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)\r
+        boost::sp_scalar_destructor_hook( px );\r
+#endif\r
+        boost::checked_delete( px );\r
+    }\r
+\r
+    void reset(T * p = 0) // never throws\r
+    {\r
+        BOOST_ASSERT( p == 0 || p != px ); // catch self-reset errors\r
+        this_type(p).swap(*this);\r
+    }\r
+\r
+    T & operator*() const // never throws\r
+    {\r
+        BOOST_ASSERT( px != 0 );\r
+        return *px;\r
+    }\r
+\r
+    T * operator->() const // never throws\r
+    {\r
+        BOOST_ASSERT( px != 0 );\r
+        return px;\r
+    }\r
+\r
+    T * get() const // never throws\r
+    {\r
+        return px;\r
+    }\r
+\r
+// implicit conversion to "bool"\r
+#include <boost/smart_ptr/detail/operator_bool.hpp>\r
+\r
+    void swap(scoped_ptr & b) // never throws\r
+    {\r
+        T * tmp = b.px;\r
+        b.px = px;\r
+        px = tmp;\r
+    }\r
+};\r
+\r
+template<class T> inline void swap(scoped_ptr<T> & a, scoped_ptr<T> & b) // never throws\r
+{\r
+    a.swap(b);\r
+}\r
+\r
+// get_pointer(p) is a generic way to say p.get()\r
+\r
+template<class T> inline T * get_pointer(scoped_ptr<T> const & p)\r
+{\r
+    return p.get();\r
+}\r
+\r
+} // namespace boost\r
+\r
+#endif // #ifndef BOOST_SMART_PTR_SCOPED_PTR_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/shared_array.hpp b/boost/boost/smart_ptr/shared_array.hpp
new file mode 100644 (file)
index 0000000..8641889
--- /dev/null
@@ -0,0 +1,147 @@
+#ifndef BOOST_SMART_PTR_SHARED_ARRAY_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_SHARED_ARRAY_HPP_INCLUDED\r
+\r
+//\r
+//  shared_array.hpp\r
+//\r
+//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.\r
+//  Copyright (c) 2001, 2002 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0. (See\r
+//  accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+//  See http://www.boost.org/libs/smart_ptr/shared_array.htm for documentation.\r
+//\r
+\r
+#include <boost/config.hpp>   // for broken compiler workarounds\r
+\r
+#if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)\r
+#include <boost/smart_ptr/detail/shared_array_nmt.hpp>\r
+#else\r
+\r
+#include <memory>             // TR1 cyclic inclusion fix\r
+\r
+#include <boost/assert.hpp>\r
+#include <boost/checked_delete.hpp>\r
+\r
+#include <boost/smart_ptr/detail/shared_count.hpp>\r
+#include <boost/detail/workaround.hpp>\r
+\r
+#include <cstddef>            // for std::ptrdiff_t\r
+#include <algorithm>          // for std::swap\r
+#include <functional>         // for std::less\r
+\r
+namespace boost\r
+{\r
+\r
+//\r
+//  shared_array\r
+//\r
+//  shared_array extends shared_ptr to arrays.\r
+//  The array pointed to is deleted when the last shared_array pointing to it\r
+//  is destroyed or reset.\r
+//\r
+\r
+template<class T> class shared_array\r
+{\r
+private:\r
+\r
+    // Borland 5.5.1 specific workarounds\r
+    typedef checked_array_deleter<T> deleter;\r
+    typedef shared_array<T> this_type;\r
+\r
+public:\r
+\r
+    typedef T element_type;\r
+\r
+    explicit shared_array(T * p = 0): px(p), pn(p, deleter())\r
+    {\r
+    }\r
+\r
+    //\r
+    // Requirements: D's copy constructor must not throw\r
+    //\r
+    // shared_array will release p by calling d(p)\r
+    //\r
+\r
+    template<class D> shared_array(T * p, D d): px(p), pn(p, d)\r
+    {\r
+    }\r
+\r
+//  generated copy constructor, assignment, destructor are fine\r
+\r
+    void reset(T * p = 0)\r
+    {\r
+        BOOST_ASSERT(p == 0 || p != px);\r
+        this_type(p).swap(*this);\r
+    }\r
+\r
+    template <class D> void reset(T * p, D d)\r
+    {\r
+        this_type(p, d).swap(*this);\r
+    }\r
+\r
+    T & operator[] (std::ptrdiff_t i) const // never throws\r
+    {\r
+        BOOST_ASSERT(px != 0);\r
+        BOOST_ASSERT(i >= 0);\r
+        return px[i];\r
+    }\r
+    \r
+    T * get() const // never throws\r
+    {\r
+        return px;\r
+    }\r
+\r
+// implicit conversion to "bool"\r
+#include <boost/smart_ptr/detail/operator_bool.hpp>\r
+\r
+    bool unique() const // never throws\r
+    {\r
+        return pn.unique();\r
+    }\r
+\r
+    long use_count() const // never throws\r
+    {\r
+        return pn.use_count();\r
+    }\r
+\r
+    void swap(shared_array<T> & other) // never throws\r
+    {\r
+        std::swap(px, other.px);\r
+        pn.swap(other.pn);\r
+    }\r
+\r
+private:\r
+\r
+    T * px;                     // contained pointer\r
+    detail::shared_count pn;    // reference counter\r
+\r
+};  // shared_array\r
+\r
+template<class T> inline bool operator==(shared_array<T> const & a, shared_array<T> const & b) // never throws\r
+{\r
+    return a.get() == b.get();\r
+}\r
+\r
+template<class T> inline bool operator!=(shared_array<T> const & a, shared_array<T> const & b) // never throws\r
+{\r
+    return a.get() != b.get();\r
+}\r
+\r
+template<class T> inline bool operator<(shared_array<T> const & a, shared_array<T> const & b) // never throws\r
+{\r
+    return std::less<T*>()(a.get(), b.get());\r
+}\r
+\r
+template<class T> void swap(shared_array<T> & a, shared_array<T> & b) // never throws\r
+{\r
+    a.swap(b);\r
+}\r
+\r
+} // namespace boost\r
+\r
+#endif  // #if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)\r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_SHARED_ARRAY_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/shared_ptr.hpp b/boost/boost/smart_ptr/shared_ptr.hpp
new file mode 100644 (file)
index 0000000..6d1d7cc
--- /dev/null
@@ -0,0 +1,692 @@
+#ifndef BOOST_SMART_PTR_SHARED_PTR_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_SHARED_PTR_HPP_INCLUDED\r
+\r
+//\r
+//  shared_ptr.hpp\r
+//\r
+//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.\r
+//  Copyright (c) 2001-2008 Peter Dimov\r
+//\r
+//  Distributed under the Boost Software License, Version 1.0. (See\r
+//  accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+//  See http://www.boost.org/libs/smart_ptr/shared_ptr.htm for documentation.\r
+//\r
+\r
+#include <boost/config.hpp>   // for broken compiler workarounds\r
+\r
+#if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)\r
+#include <boost/smart_ptr/detail/shared_ptr_nmt.hpp>\r
+#else\r
+\r
+// In order to avoid circular dependencies with Boost.TR1\r
+// we make sure that our include of <memory> doesn't try to\r
+// pull in the TR1 headers: that's why we use this header \r
+// rather than including <memory> directly:\r
+#include <boost/config/no_tr1/memory.hpp>  // std::auto_ptr\r
+\r
+#include <boost/assert.hpp>\r
+#include <boost/checked_delete.hpp>\r
+#include <boost/throw_exception.hpp>\r
+#include <boost/smart_ptr/detail/shared_count.hpp>\r
+#include <boost/detail/workaround.hpp>\r
+#include <boost/smart_ptr/detail/sp_convertible.hpp>\r
+\r
+#if !defined(BOOST_SP_NO_ATOMIC_ACCESS)\r
+#include <boost/smart_ptr/detail/spinlock_pool.hpp>\r
+#include <boost/memory_order.hpp>\r
+#endif\r
+\r
+#include <algorithm>            // for std::swap\r
+#include <functional>           // for std::less\r
+#include <typeinfo>             // for std::bad_cast\r
+\r
+#if !defined(BOOST_NO_IOSTREAM)\r
+#if !defined(BOOST_NO_IOSFWD)\r
+#include <iosfwd>               // for std::basic_ostream\r
+#else\r
+#include <ostream>\r
+#endif\r
+#endif\r
+\r
+#ifdef BOOST_MSVC  // moved here to work around VC++ compiler crash\r
+# pragma warning(push)\r
+# pragma warning(disable:4284) // odd return type for operator->\r
+#endif\r
+\r
+namespace boost\r
+{\r
+\r
+template<class T> class shared_ptr;\r
+template<class T> class weak_ptr;\r
+template<class T> class enable_shared_from_this;\r
+\r
+namespace detail\r
+{\r
+\r
+struct static_cast_tag {};\r
+struct const_cast_tag {};\r
+struct dynamic_cast_tag {};\r
+struct polymorphic_cast_tag {};\r
+\r
+template<class T> struct shared_ptr_traits\r
+{\r
+    typedef T & reference;\r
+};\r
+\r
+template<> struct shared_ptr_traits<void>\r
+{\r
+    typedef void reference;\r
+};\r
+\r
+#if !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS)\r
+\r
+template<> struct shared_ptr_traits<void const>\r
+{\r
+    typedef void reference;\r
+};\r
+\r
+template<> struct shared_ptr_traits<void volatile>\r
+{\r
+    typedef void reference;\r
+};\r
+\r
+template<> struct shared_ptr_traits<void const volatile>\r
+{\r
+    typedef void reference;\r
+};\r
+\r
+#endif\r
+\r
+// enable_shared_from_this support\r
+\r
+template< class X, class Y, class T > inline void sp_enable_shared_from_this( boost::shared_ptr<X> const * ppx, Y const * py, boost::enable_shared_from_this< T > const * pe )\r
+{\r
+    if( pe != 0 )\r
+    {\r
+        pe->_internal_accept_owner( ppx, const_cast< Y* >( py ) );\r
+    }\r
+}\r
+\r
+#ifdef _MANAGED\r
+\r
+// Avoid C4793, ... causes native code generation\r
+\r
+struct sp_any_pointer\r
+{\r
+    template<class T> sp_any_pointer( T* ) {}\r
+};\r
+\r
+inline void sp_enable_shared_from_this( sp_any_pointer, sp_any_pointer, sp_any_pointer )\r
+{\r
+}\r
+\r
+#else // _MANAGED\r
+\r
+inline void sp_enable_shared_from_this( ... )\r
+{\r
+}\r
+\r
+#endif // _MANAGED\r
+\r
+#if !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( BOOST_NO_AUTO_PTR )\r
+\r
+// rvalue auto_ptr support based on a technique by Dave Abrahams\r
+\r
+template< class T, class R > struct sp_enable_if_auto_ptr\r
+{\r
+};\r
+\r
+template< class T, class R > struct sp_enable_if_auto_ptr< std::auto_ptr< T >, R >\r
+{\r
+    typedef R type;\r
+}; \r
+\r
+#endif\r
+\r
+} // namespace detail\r
+\r
+\r
+//\r
+//  shared_ptr\r
+//\r
+//  An enhanced relative of scoped_ptr with reference counted copy semantics.\r
+//  The object pointed to is deleted when the last shared_ptr pointing to it\r
+//  is destroyed or reset.\r
+//\r
+\r
+template<class T> class shared_ptr\r
+{\r
+private:\r
+\r
+    // Borland 5.5.1 specific workaround\r
+    typedef shared_ptr<T> this_type;\r
+\r
+public:\r
+\r
+    typedef T element_type;\r
+    typedef T value_type;\r
+    typedef T * pointer;\r
+    typedef typename boost::detail::shared_ptr_traits<T>::reference reference;\r
+\r
+    shared_ptr(): px(0), pn() // never throws in 1.30+\r
+    {\r
+    }\r
+\r
+    template<class Y>\r
+    explicit shared_ptr( Y * p ): px( p ), pn( p ) // Y must be complete\r
+    {\r
+        boost::detail::sp_enable_shared_from_this( this, p, p );\r
+    }\r
+\r
+    //\r
+    // Requirements: D's copy constructor must not throw\r
+    //\r
+    // shared_ptr will release p by calling d(p)\r
+    //\r
+\r
+    template<class Y, class D> shared_ptr(Y * p, D d): px(p), pn(p, d)\r
+    {\r
+        boost::detail::sp_enable_shared_from_this( this, p, p );\r
+    }\r
+\r
+    // As above, but with allocator. A's copy constructor shall not throw.\r
+\r
+    template<class Y, class D, class A> shared_ptr( Y * p, D d, A a ): px( p ), pn( p, d, a )\r
+    {\r
+        boost::detail::sp_enable_shared_from_this( this, p, p );\r
+    }\r
+\r
+//  generated copy constructor, destructor are fine\r
+\r
+    template<class Y>\r
+    explicit shared_ptr(weak_ptr<Y> const & r): pn(r.pn) // may throw\r
+    {\r
+        // it is now safe to copy r.px, as pn(r.pn) did not throw\r
+        px = r.px;\r
+    }\r
+\r
+    template<class Y>\r
+    shared_ptr( weak_ptr<Y> const & r, boost::detail::sp_nothrow_tag ): px( 0 ), pn( r.pn, boost::detail::sp_nothrow_tag() ) // never throws\r
+    {\r
+        if( !pn.empty() )\r
+        {\r
+            px = r.px;\r
+        }\r
+    }\r
+\r
+    template<class Y>\r
+#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )\r
+\r
+    shared_ptr( shared_ptr<Y> const & r, typename detail::sp_enable_if_convertible<Y,T>::type = detail::sp_empty() )\r
+\r
+#else\r
+\r
+    shared_ptr( shared_ptr<Y> const & r )\r
+\r
+#endif\r
+    : px( r.px ), pn( r.pn ) // never throws\r
+    {\r
+    }\r
+\r
+    // aliasing\r
+    template< class Y >\r
+    shared_ptr( shared_ptr<Y> const & r, T * p ): px( p ), pn( r.pn ) // never throws\r
+    {\r
+    }\r
+\r
+    template<class Y>\r
+    shared_ptr(shared_ptr<Y> const & r, boost::detail::static_cast_tag): px(static_cast<element_type *>(r.px)), pn(r.pn)\r
+    {\r
+    }\r
+\r
+    template<class Y>\r
+    shared_ptr(shared_ptr<Y> const & r, boost::detail::const_cast_tag): px(const_cast<element_type *>(r.px)), pn(r.pn)\r
+    {\r
+    }\r
+\r
+    template<class Y>\r
+    shared_ptr(shared_ptr<Y> const & r, boost::detail::dynamic_cast_tag): px(dynamic_cast<element_type *>(r.px)), pn(r.pn)\r
+    {\r
+        if(px == 0) // need to allocate new counter -- the cast failed\r
+        {\r
+            pn = boost::detail::shared_count();\r
+        }\r
+    }\r
+\r
+    template<class Y>\r
+    shared_ptr(shared_ptr<Y> const & r, boost::detail::polymorphic_cast_tag): px(dynamic_cast<element_type *>(r.px)), pn(r.pn)\r
+    {\r
+        if(px == 0)\r
+        {\r
+            boost::throw_exception(std::bad_cast());\r
+        }\r
+    }\r
+\r
+#ifndef BOOST_NO_AUTO_PTR\r
+\r
+    template<class Y>\r
+    explicit shared_ptr(std::auto_ptr<Y> & r): px(r.get()), pn()\r
+    {\r
+        Y * tmp = r.get();\r
+        pn = boost::detail::shared_count(r);\r
+        boost::detail::sp_enable_shared_from_this( this, tmp, tmp );\r
+    }\r
+\r
+#if !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )\r
+\r
+    template<class Ap>\r
+    explicit shared_ptr( Ap r, typename boost::detail::sp_enable_if_auto_ptr<Ap, int>::type = 0 ): px( r.get() ), pn()\r
+    {\r
+        typename Ap::element_type * tmp = r.get();\r
+        pn = boost::detail::shared_count( r );\r
+        boost::detail::sp_enable_shared_from_this( this, tmp, tmp );\r
+    }\r
+\r
+\r
+#endif // BOOST_NO_SFINAE, BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION\r
+\r
+#endif // BOOST_NO_AUTO_PTR\r
+\r
+    // assignment\r
+\r
+    shared_ptr & operator=( shared_ptr const & r ) // never throws\r
+    {\r
+        this_type(r).swap(*this);\r
+        return *this;\r
+    }\r
+\r
+#if !defined(BOOST_MSVC) || (BOOST_MSVC >= 1400)\r
+\r
+    template<class Y>\r
+    shared_ptr & operator=(shared_ptr<Y> const & r) // never throws\r
+    {\r
+        this_type(r).swap(*this);\r
+        return *this;\r
+    }\r
+\r
+#endif\r
+\r
+#ifndef BOOST_NO_AUTO_PTR\r
+\r
+    template<class Y>\r
+    shared_ptr & operator=( std::auto_ptr<Y> & r )\r
+    {\r
+        this_type(r).swap(*this);\r
+        return *this;\r
+    }\r
+\r
+#if !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )\r
+\r
+    template<class Ap>\r
+    typename boost::detail::sp_enable_if_auto_ptr< Ap, shared_ptr & >::type operator=( Ap r )\r
+    {\r
+        this_type( r ).swap( *this );\r
+        return *this;\r
+    }\r
+\r
+\r
+#endif // BOOST_NO_SFINAE, BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION\r
+\r
+#endif // BOOST_NO_AUTO_PTR\r
+\r
+// Move support\r
+\r
+#if defined( BOOST_HAS_RVALUE_REFS )\r
+\r
+    shared_ptr( shared_ptr && r ): px( r.px ), pn() // never throws\r
+    {\r
+        pn.swap( r.pn );\r
+        r.px = 0;\r
+    }\r
+\r
+    template<class Y>\r
+#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )\r
+\r
+    shared_ptr( shared_ptr<Y> && r, typename detail::sp_enable_if_convertible<Y,T>::type = detail::sp_empty() )\r
+\r
+#else\r
+\r
+    shared_ptr( shared_ptr<Y> && r )\r
+\r
+#endif\r
+    : px( r.px ), pn() // never throws\r
+    {\r
+        pn.swap( r.pn );\r
+        r.px = 0;\r
+    }\r
+\r
+    shared_ptr & operator=( shared_ptr && r ) // never throws\r
+    {\r
+        this_type( static_cast< shared_ptr && >( r ) ).swap( *this );\r
+        return *this;\r
+    }\r
+\r
+    template<class Y>\r
+    shared_ptr & operator=( shared_ptr<Y> && r ) // never throws\r
+    {\r
+        this_type( static_cast< shared_ptr<Y> && >( r ) ).swap( *this );\r
+        return *this;\r
+    }\r
+\r
+#endif\r
+\r
+    void reset() // never throws in 1.30+\r
+    {\r
+        this_type().swap(*this);\r
+    }\r
+\r
+    template<class Y> void reset(Y * p) // Y must be complete\r
+    {\r
+        BOOST_ASSERT(p == 0 || p != px); // catch self-reset errors\r
+        this_type(p).swap(*this);\r
+    }\r
+\r
+    template<class Y, class D> void reset( Y * p, D d )\r
+    {\r
+        this_type( p, d ).swap( *this );\r
+    }\r
+\r
+    template<class Y, class D, class A> void reset( Y * p, D d, A a )\r
+    {\r
+        this_type( p, d, a ).swap( *this );\r
+    }\r
+\r
+    template<class Y> void reset( shared_ptr<Y> const & r, T * p )\r
+    {\r
+        this_type( r, p ).swap( *this );\r
+    }\r
+\r
+    reference operator* () const // never throws\r
+    {\r
+        BOOST_ASSERT(px != 0);\r
+        return *px;\r
+    }\r
+\r
+    T * operator-> () const // never throws\r
+    {\r
+        BOOST_ASSERT(px != 0);\r
+        return px;\r
+    }\r
+\r
+    T * get() const // never throws\r
+    {\r
+        return px;\r
+    }\r
+\r
+// implicit conversion to "bool"\r
+#include <boost/smart_ptr/detail/operator_bool.hpp>\r
+\r
+    bool unique() const // never throws\r
+    {\r
+        return pn.unique();\r
+    }\r
+\r
+    long use_count() const // never throws\r
+    {\r
+        return pn.use_count();\r
+    }\r
+\r
+    void swap(shared_ptr<T> & other) // never throws\r
+    {\r
+        std::swap(px, other.px);\r
+        pn.swap(other.pn);\r
+    }\r
+\r
+    template<class Y> bool _internal_less(shared_ptr<Y> const & rhs) const\r
+    {\r
+        return pn < rhs.pn;\r
+    }\r
+\r
+    void * _internal_get_deleter( detail::sp_typeinfo const & ti ) const\r
+    {\r
+        return pn.get_deleter( ti );\r
+    }\r
+\r
+    bool _internal_equiv( shared_ptr const & r ) const\r
+    {\r
+        return px == r.px && pn == r.pn;\r
+    }\r
+\r
+// Tasteless as this may seem, making all members public allows member templates\r
+// to work in the absence of member template friends. (Matthew Langston)\r
+\r
+#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS\r
+\r
+private:\r
+\r
+    template<class Y> friend class shared_ptr;\r
+    template<class Y> friend class weak_ptr;\r
+\r
+\r
+#endif\r
+\r
+    T * px;                     // contained pointer\r
+    boost::detail::shared_count pn;    // reference counter\r
+\r
+};  // shared_ptr\r
+\r
+template<class T, class U> inline bool operator==(shared_ptr<T> const & a, shared_ptr<U> const & b)\r
+{\r
+    return a.get() == b.get();\r
+}\r
+\r
+template<class T, class U> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<U> const & b)\r
+{\r
+    return a.get() != b.get();\r
+}\r
+\r
+#if __GNUC__ == 2 && __GNUC_MINOR__ <= 96\r
+\r
+// Resolve the ambiguity between our op!= and the one in rel_ops\r
+\r
+template<class T> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<T> const & b)\r
+{\r
+    return a.get() != b.get();\r
+}\r
+\r
+#endif\r
+\r
+template<class T, class U> inline bool operator<(shared_ptr<T> const & a, shared_ptr<U> const & b)\r
+{\r
+    return a._internal_less(b);\r
+}\r
+\r
+template<class T> inline void swap(shared_ptr<T> & a, shared_ptr<T> & b)\r
+{\r
+    a.swap(b);\r
+}\r
+\r
+template<class T, class U> shared_ptr<T> static_pointer_cast(shared_ptr<U> const & r)\r
+{\r
+    return shared_ptr<T>(r, boost::detail::static_cast_tag());\r
+}\r
+\r
+template<class T, class U> shared_ptr<T> const_pointer_cast(shared_ptr<U> const & r)\r
+{\r
+    return shared_ptr<T>(r, boost::detail::const_cast_tag());\r
+}\r
+\r
+template<class T, class U> shared_ptr<T> dynamic_pointer_cast(shared_ptr<U> const & r)\r
+{\r
+    return shared_ptr<T>(r, boost::detail::dynamic_cast_tag());\r
+}\r
+\r
+// shared_*_cast names are deprecated. Use *_pointer_cast instead.\r
+\r
+template<class T, class U> shared_ptr<T> shared_static_cast(shared_ptr<U> const & r)\r
+{\r
+    return shared_ptr<T>(r, boost::detail::static_cast_tag());\r
+}\r
+\r
+template<class T, class U> shared_ptr<T> shared_dynamic_cast(shared_ptr<U> const & r)\r
+{\r
+    return shared_ptr<T>(r, boost::detail::dynamic_cast_tag());\r
+}\r
+\r
+template<class T, class U> shared_ptr<T> shared_polymorphic_cast(shared_ptr<U> const & r)\r
+{\r
+    return shared_ptr<T>(r, boost::detail::polymorphic_cast_tag());\r
+}\r
+\r
+template<class T, class U> shared_ptr<T> shared_polymorphic_downcast(shared_ptr<U> const & r)\r
+{\r
+    BOOST_ASSERT(dynamic_cast<T *>(r.get()) == r.get());\r
+    return shared_static_cast<T>(r);\r
+}\r
+\r
+// get_pointer() enables boost::mem_fn to recognize shared_ptr\r
+\r
+template<class T> inline T * get_pointer(shared_ptr<T> const & p)\r
+{\r
+    return p.get();\r
+}\r
+\r
+// operator<<\r
+\r
+#if !defined(BOOST_NO_IOSTREAM)\r
+\r
+#if defined(BOOST_NO_TEMPLATED_IOSTREAMS) || ( defined(__GNUC__) &&  (__GNUC__ < 3) )\r
+\r
+template<class Y> std::ostream & operator<< (std::ostream & os, shared_ptr<Y> const & p)\r
+{\r
+    os << p.get();\r
+    return os;\r
+}\r
+\r
+#else\r
+\r
+// in STLport's no-iostreams mode no iostream symbols can be used\r
+#ifndef _STLP_NO_IOSTREAMS\r
+\r
+# if defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, < 1300 && __SGI_STL_PORT)\r
+// MSVC6 has problems finding std::basic_ostream through the using declaration in namespace _STL\r
+using std::basic_ostream;\r
+template<class E, class T, class Y> basic_ostream<E, T> & operator<< (basic_ostream<E, T> & os, shared_ptr<Y> const & p)\r
+# else\r
+template<class E, class T, class Y> std::basic_ostream<E, T> & operator<< (std::basic_ostream<E, T> & os, shared_ptr<Y> const & p)\r
+# endif\r
+{\r
+    os << p.get();\r
+    return os;\r
+}\r
+\r
+#endif // _STLP_NO_IOSTREAMS\r
+\r
+#endif // __GNUC__ < 3\r
+\r
+#endif // !defined(BOOST_NO_IOSTREAM)\r
+\r
+// get_deleter\r
+\r
+#if ( defined(__GNUC__) && BOOST_WORKAROUND(__GNUC__, < 3) ) || \\r
+    ( defined(__EDG_VERSION__) && BOOST_WORKAROUND(__EDG_VERSION__, <= 238) ) || \\r
+    ( defined(__HP_aCC) && BOOST_WORKAROUND(__HP_aCC, <= 33500) )\r
+\r
+// g++ 2.9x doesn't allow static_cast<X const *>(void *)\r
+// apparently EDG 2.38 and HP aCC A.03.35 also don't accept it\r
+\r
+template<class D, class T> D * get_deleter(shared_ptr<T> const & p)\r
+{\r
+    void const * q = p._internal_get_deleter(BOOST_SP_TYPEID(D));\r
+    return const_cast<D *>(static_cast<D const *>(q));\r
+}\r
+\r
+#else\r
+\r
+template<class D, class T> D * get_deleter(shared_ptr<T> const & p)\r
+{\r
+    return static_cast<D *>(p._internal_get_deleter(BOOST_SP_TYPEID(D)));\r
+}\r
+\r
+#endif\r
+\r
+// atomic access\r
+\r
+#if !defined(BOOST_SP_NO_ATOMIC_ACCESS)\r
+\r
+template<class T> inline bool atomic_is_lock_free( shared_ptr<T> const * /*p*/ )\r
+{\r
+    return false;\r
+}\r
+\r
+template<class T> shared_ptr<T> atomic_load( shared_ptr<T> const * p )\r
+{\r
+    boost::detail::spinlock_pool<2>::scoped_lock lock( p );\r
+    return *p;\r
+}\r
+\r
+template<class T> inline shared_ptr<T> atomic_load_explicit( shared_ptr<T> const * p, memory_order /*mo*/ )\r
+{\r
+    return atomic_load( p );\r
+}\r
+\r
+template<class T> void atomic_store( shared_ptr<T> * p, shared_ptr<T> r )\r
+{\r
+    boost::detail::spinlock_pool<2>::scoped_lock lock( p );\r
+    p->swap( r );\r
+}\r
+\r
+template<class T> inline void atomic_store_explicit( shared_ptr<T> * p, shared_ptr<T> r, memory_order /*mo*/ )\r
+{\r
+    atomic_store( p, r ); // std::move( r )\r
+}\r
+\r
+template<class T> shared_ptr<T> atomic_exchange( shared_ptr<T> * p, shared_ptr<T> r )\r
+{\r
+    boost::detail::spinlock & sp = boost::detail::spinlock_pool<2>::spinlock_for( p );\r
+\r
+    sp.lock();\r
+    p->swap( r );\r
+    sp.unlock();\r
+\r
+    return r; // return std::move( r )\r
+}\r
+\r
+template<class T> shared_ptr<T> atomic_exchange_explicit( shared_ptr<T> * p, shared_ptr<T> r, memory_order /*mo*/ )\r
+{\r
+    return atomic_exchange( p, r ); // std::move( r )\r
+}\r
+\r
+template<class T> bool atomic_compare_exchange( shared_ptr<T> * p, shared_ptr<T> * v, shared_ptr<T> w )\r
+{\r
+    boost::detail::spinlock & sp = boost::detail::spinlock_pool<2>::spinlock_for( p );\r
+\r
+    sp.lock();\r
+\r
+    if( p->_internal_equiv( *v ) )\r
+    {\r
+        p->swap( w );\r
+\r
+        sp.unlock();\r
+\r
+        return true;\r
+    }\r
+    else\r
+    {\r
+        shared_ptr<T> tmp( *p );\r
+\r
+        sp.unlock();\r
+\r
+        tmp.swap( *v );\r
+        return false;\r
+    }\r
+}\r
+\r
+template<class T> inline bool atomic_compare_exchange_explicit( shared_ptr<T> * p, shared_ptr<T> * v, shared_ptr<T> w, memory_order /*success*/, memory_order /*failure*/ )\r
+{\r
+    return atomic_compare_exchange( p, v, w ); // std::move( w )\r
+}\r
+\r
+#endif\r
+\r
+} // namespace boost\r
+\r
+#ifdef BOOST_MSVC\r
+# pragma warning(pop)\r
+#endif\r
+\r
+#endif  // #if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)\r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_SHARED_PTR_HPP_INCLUDED\r
diff --git a/boost/boost/smart_ptr/weak_ptr.hpp b/boost/boost/smart_ptr/weak_ptr.hpp
new file mode 100644 (file)
index 0000000..a0c83f1
--- /dev/null
@@ -0,0 +1,182 @@
+#ifndef BOOST_SMART_PTR_WEAK_PTR_HPP_INCLUDED\r
+#define BOOST_SMART_PTR_WEAK_PTR_HPP_INCLUDED\r
+\r
+//\r
+//  weak_ptr.hpp\r
+//\r
+//  Copyright (c) 2001, 2002, 2003 Peter Dimov\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. (See\r
+// accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+//  See http://www.boost.org/libs/smart_ptr/weak_ptr.htm for documentation.\r
+//\r
+\r
+#include <memory> // boost.TR1 include order fix\r
+#include <boost/smart_ptr/detail/shared_count.hpp>\r
+#include <boost/smart_ptr/shared_ptr.hpp>\r
+\r
+#ifdef BOOST_MSVC  // moved here to work around VC++ compiler crash\r
+# pragma warning(push)\r
+# pragma warning(disable:4284) // odd return type for operator->\r
+#endif\r
+\r
+namespace boost\r
+{\r
+\r
+template<class T> class weak_ptr\r
+{\r
+private:\r
+\r
+    // Borland 5.5.1 specific workarounds\r
+    typedef weak_ptr<T> this_type;\r
+\r
+public:\r
+\r
+    typedef T element_type;\r
+\r
+    weak_ptr(): px(0), pn() // never throws in 1.30+\r
+    {\r
+    }\r
+\r
+//  generated copy constructor, assignment, destructor are fine\r
+\r
+\r
+//\r
+//  The "obvious" converting constructor implementation:\r
+//\r
+//  template<class Y>\r
+//  weak_ptr(weak_ptr<Y> const & r): px(r.px), pn(r.pn) // never throws\r
+//  {\r
+//  }\r
+//\r
+//  has a serious problem.\r
+//\r
+//  r.px may already have been invalidated. The px(r.px)\r
+//  conversion may require access to *r.px (virtual inheritance).\r
+//\r
+//  It is not possible to avoid spurious access violations since\r
+//  in multithreaded programs r.px may be invalidated at any point.\r
+//\r
+\r
+    template<class Y>\r
+#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )\r
+\r
+    weak_ptr( weak_ptr<Y> const & r, typename detail::sp_enable_if_convertible<Y,T>::type = detail::sp_empty() )\r
+\r
+#else\r
+\r
+    weak_ptr( weak_ptr<Y> const & r )\r
+\r
+#endif\r
+    : pn(r.pn) // never throws\r
+    {\r
+        px = r.lock().get();\r
+    }\r
+\r
+    template<class Y>\r
+#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )\r
+\r
+    weak_ptr( shared_ptr<Y> const & r, typename detail::sp_enable_if_convertible<Y,T>::type = detail::sp_empty() )\r
+\r
+#else\r
+\r
+    weak_ptr( shared_ptr<Y> const & r )\r
+\r
+#endif\r
+    : px( r.px ), pn( r.pn ) // never throws\r
+    {\r
+    }\r
+\r
+#if !defined(BOOST_MSVC) || (BOOST_MSVC >= 1300)\r
+\r
+    template<class Y>\r
+    weak_ptr & operator=(weak_ptr<Y> const & r) // never throws\r
+    {\r
+        px = r.lock().get();\r
+        pn = r.pn;\r
+        return *this;\r
+    }\r
+\r
+    template<class Y>\r
+    weak_ptr & operator=(shared_ptr<Y> const & r) // never throws\r
+    {\r
+        px = r.px;\r
+        pn = r.pn;\r
+        return *this;\r
+    }\r
+\r
+#endif\r
+\r
+    shared_ptr<T> lock() const // never throws\r
+    {\r
+        return shared_ptr<element_type>( *this, boost::detail::sp_nothrow_tag() );\r
+    }\r
+\r
+    long use_count() const // never throws\r
+    {\r
+        return pn.use_count();\r
+    }\r
+\r
+    bool expired() const // never throws\r
+    {\r
+        return pn.use_count() == 0;\r
+    }\r
+\r
+    void reset() // never throws in 1.30+\r
+    {\r
+        this_type().swap(*this);\r
+    }\r
+\r
+    void swap(this_type & other) // never throws\r
+    {\r
+        std::swap(px, other.px);\r
+        pn.swap(other.pn);\r
+    }\r
+\r
+    void _internal_assign(T * px2, boost::detail::shared_count const & pn2)\r
+    {\r
+        px = px2;\r
+        pn = pn2;\r
+    }\r
+\r
+    template<class Y> bool _internal_less(weak_ptr<Y> const & rhs) const\r
+    {\r
+        return pn < rhs.pn;\r
+    }\r
+\r
+// Tasteless as this may seem, making all members public allows member templates\r
+// to work in the absence of member template friends. (Matthew Langston)\r
+\r
+#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS\r
+\r
+private:\r
+\r
+    template<class Y> friend class weak_ptr;\r
+    template<class Y> friend class shared_ptr;\r
+\r
+#endif\r
+\r
+    T * px;                       // contained pointer\r
+    boost::detail::weak_count pn; // reference counter\r
+\r
+};  // weak_ptr\r
+\r
+template<class T, class U> inline bool operator<(weak_ptr<T> const & a, weak_ptr<U> const & b)\r
+{\r
+    return a._internal_less(b);\r
+}\r
+\r
+template<class T> void swap(weak_ptr<T> & a, weak_ptr<T> & b)\r
+{\r
+    a.swap(b);\r
+}\r
+\r
+} // namespace boost\r
+\r
+#ifdef BOOST_MSVC\r
+# pragma warning(pop)\r
+#endif    \r
+\r
+#endif  // #ifndef BOOST_SMART_PTR_WEAK_PTR_HPP_INCLUDED\r
diff --git a/boost/boost/type_traits/has_new_operator.hpp b/boost/boost/type_traits/has_new_operator.hpp
new file mode 100644 (file)
index 0000000..796e38d
--- /dev/null
@@ -0,0 +1,115 @@
+\r
+//  (C) Copyright Runar Undheim, Robert Ramey & John Maddock 2008.\r
+//  Use, modification and distribution are subject to the Boost Software License,\r
+//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt).\r
+//\r
+//  See http://www.boost.org/libs/type_traits for most recent version including documentation.\r
+\r
+#ifndef BOOST_TT_HAS_NEW_OPERATOR_HPP_INCLUDED\r
+#define BOOST_TT_HAS_NEW_OPERATOR_HPP_INCLUDED\r
+\r
+#include <new> // std::nothrow_t\r
+#include <cstddef> // std::size_t\r
+#include <boost/type_traits/config.hpp>\r
+#include <boost/type_traits/detail/yes_no_type.hpp>\r
+#include <boost/type_traits/detail/ice_or.hpp>\r
+\r
+// should be the last #include\r
+#include <boost/type_traits/detail/bool_trait_def.hpp>\r
+\r
+namespace boost {\r
+namespace detail {\r
+    template <class U, U x> \r
+    struct test;\r
+\r
+    template <typename T>\r
+    struct has_new_operator_impl {\r
+        template<class U>\r
+        static type_traits::yes_type check_sig(\r
+            U*, \r
+            test<\r
+            void *(*)(std::size_t),\r
+                &U::operator new\r
+            >* = NULL\r
+        );\r
+        template<class U>\r
+        static type_traits::yes_type check_sig(\r
+            U*, \r
+            test<\r
+            void *(*)(std::size_t, const std::nothrow_t&),\r
+                &U::operator new\r
+            >* = NULL\r
+        );\r
+        template<class U>\r
+        static type_traits::yes_type check_sig(\r
+            U*, \r
+            test<\r
+            void *(*)(std::size_t, void*),\r
+                &U::operator new\r
+            >* = NULL\r
+        );\r
+        template<class U>\r
+        static type_traits::no_type check_sig(...);\r
+\r
+        template<class U>\r
+        static type_traits::yes_type check_sig2(\r
+            U*, \r
+            test<\r
+            void *(*)(std::size_t),\r
+                &U::operator new[]\r
+            >* = NULL\r
+        );\r
+        template<class U>\r
+        static type_traits::yes_type check_sig2(\r
+            U*, \r
+            test<\r
+            void *(*)(std::size_t, const std::nothrow_t&),\r
+                &U::operator new[]\r
+            >* = NULL\r
+        );\r
+        template<class U>\r
+        static type_traits::yes_type check_sig2(\r
+            U*, \r
+            test<\r
+            void *(*)(std::size_t, void*),\r
+                &U::operator new[]\r
+            >* = NULL\r
+        );\r
+        template<class U>\r
+        static type_traits::no_type check_sig2(...);\r
+\r
+        // GCC2 won't even parse this template if we embed the computation\r
+        // of s1 in the computation of value.\r
+        #ifdef __GNUC__\r
+            BOOST_STATIC_CONSTANT(unsigned, s1 = sizeof(has_new_operator_impl<T>::template check_sig<T>(0)));\r
+            BOOST_STATIC_CONSTANT(unsigned, s2 = sizeof(has_new_operator_impl<T>::template check_sig2<T>(0)));\r
+        #else\r
+            #if BOOST_WORKAROUND(_MSC_FULL_VER, >= 140050000)\r
+                #pragma warning(push)\r
+                #pragma warning(disable:6334)\r
+            #endif\r
+\r
+            BOOST_STATIC_CONSTANT(unsigned, s1 = sizeof(check_sig<T>(0)));\r
+            BOOST_STATIC_CONSTANT(unsigned, s2 = sizeof(check_sig2<T>(0)));\r
+\r
+            #if BOOST_WORKAROUND(_MSC_FULL_VER, >= 140050000)\r
+                #pragma warning(pop)\r
+            #endif\r
+        #endif\r
+        BOOST_STATIC_CONSTANT(bool, value = \r
+           (::boost::type_traits::ice_or<\r
+            (s1 == sizeof(type_traits::yes_type)),\r
+            (s2 == sizeof(type_traits::yes_type))\r
+           >::value)\r
+        );\r
+    };\r
+} // namespace detail\r
+\r
+BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_new_operator,T,::boost::detail::has_new_operator_impl<T>::value)\r
+\r
+} // namespace boost\r
+\r
+#include <boost/type_traits/detail/bool_trait_undef.hpp>\r
+\r
+#endif // BOOST_TT_HAS_NEW_OPERATOR_HPP_INCLUDED\r
diff --git a/boost/boost/type_traits/is_virtual_base_of.hpp b/boost/boost/type_traits/is_virtual_base_of.hpp
new file mode 100644 (file)
index 0000000..1a08754
--- /dev/null
@@ -0,0 +1,104 @@
+//  (C) Copyright Daniel Frey and Robert Ramey 2009.\r
+//  Use, modification and distribution are subject to the Boost Software License,\r
+//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt).\r
+//\r
+//  See http://www.boost.org/libs/type_traits for most recent version including documentation.\r
\r
+#ifndef BOOST_TT_IS_VIRTUAL_BASE_OF_HPP_INCLUDED\r
+#define BOOST_TT_IS_VIRTUAL_BASE_OF_HPP_INCLUDED\r
+\r
+#include <boost/type_traits/is_base_of.hpp>\r
+#include <boost/type_traits/is_same.hpp>\r
+#include <boost/mpl/and.hpp>\r
+#include <boost/mpl/not.hpp>\r
+\r
+// should be the last #include\r
+#include <boost/type_traits/detail/bool_trait_def.hpp>\r
+\r
+namespace boost {\r
+namespace detail {\r
+\r
+\r
+#ifdef BOOST_MSVC\r
+#pragma warning( push )\r
+#pragma warning( disable : 4584 )\r
+#elif defined __GNUC__\r
+#pragma GCC system_header\r
+#endif\r
+\r
+template<typename Base, typename Derived, typename tag>\r
+struct is_virtual_base_of_impl\r
+{\r
+    BOOST_STATIC_CONSTANT(bool, value = false);\r
+};\r
+\r
+template<typename Base, typename Derived>\r
+struct is_virtual_base_of_impl<Base, Derived, mpl::true_>\r
+{\r
+#ifdef __BORLANDC__\r
+    struct X : public virtual Derived, public virtual Base \r
+    {\r
+       X();\r
+       X(const X&);\r
+       X& operator=(const X&);\r
+       ~X();\r
+    };\r
+    struct Y : public virtual Derived \r
+    {\r
+       Y();\r
+       Y(const Y&);\r
+       Y& operator=(const Y&);\r
+       ~Y();\r
+    };\r
+#else\r
+    struct X : Derived, virtual Base \r
+    {\r
+       X();\r
+       X(const X&);\r
+       X& operator=(const X&);\r
+       ~X();\r
+    };\r
+    struct Y : Derived \r
+    {\r
+       Y();\r
+       Y(const Y&);\r
+       Y& operator=(const Y&);\r
+       ~Y();\r
+    };\r
+#endif\r
+    BOOST_STATIC_CONSTANT(bool, value = (sizeof(X)==sizeof(Y)));\r
+};\r
+\r
+template<typename Base, typename Derived>\r
+struct is_virtual_base_of_impl2\r
+{\r
+   typedef typename mpl::and_<is_base_of<Base, Derived>, mpl::not_<is_same<Base, Derived> > >::type tag_type;\r
+   typedef is_virtual_base_of_impl<Base, Derived, tag_type> imp;\r
+   BOOST_STATIC_CONSTANT(bool, value = imp::value);\r
+};\r
+\r
+#ifdef BOOST_MSVC\r
+#pragma warning( pop )\r
+#endif\r
+\r
+} // namespace detail\r
+\r
+BOOST_TT_AUX_BOOL_TRAIT_DEF2(\r
+      is_virtual_base_of\r
+       , Base\r
+       , Derived\r
+       , (::boost::detail::is_virtual_base_of_impl2<Base,Derived>::value) \r
+)\r
+\r
+#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION\r
+BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_virtual_base_of,Base&,Derived,false)\r
+BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_virtual_base_of,Base,Derived&,false)\r
+BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_virtual_base_of,Base&,Derived&,false)\r
+#endif\r
+\r
+} // namespace boost\r
+\r
+#include <boost/type_traits/detail/bool_trait_undef.hpp>\r
+\r
+#endif\r
diff --git a/boost/boost/utility/binary.hpp b/boost/boost/utility/binary.hpp
new file mode 100644 (file)
index 0000000..b05b6b9
--- /dev/null
@@ -0,0 +1,708 @@
+/*=============================================================================\r
+    Copyright (c) 2005 Matthew Calabrese\r
+\r
+    Use, modification and distribution is subject to the Boost Software\r
+    License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at\r
+    http://www.boost.org/LICENSE_1_0.txt)\r
+==============================================================================*/\r
+\r
+#ifndef BOOST_UTILITY_BINARY_HPP\r
+#define BOOST_UTILITY_BINARY_HPP\r
+\r
+/*=============================================================================\r
+\r
+    Binary Literal Utility\r
+    ______________________\r
+\r
+\r
+    The following code works by converting the input bit pattern into a\r
+    Boost.Preprocessor sequence, then converting groupings of 3 bits each into\r
+    the corresponding octal digit, and finally concatenating all of the digits\r
+    together along with a leading zero. This yields a standard octal literal\r
+    with the desired value as specified in bits.\r
+\r
+==============================================================================*/\r
+\r
+#include <boost/preprocessor/control/deduce_d.hpp>\r
+#include <boost/preprocessor/facilities/identity.hpp>\r
+#include <boost/preprocessor/cat.hpp>\r
+#include <boost/preprocessor/seq/cat.hpp>\r
+#include <boost/preprocessor/seq/transform.hpp>\r
+#include <boost/preprocessor/arithmetic/mod.hpp>\r
+#include <boost/preprocessor/seq/size.hpp>\r
+#include <boost/preprocessor/facilities/empty.hpp>\r
+#include <boost/preprocessor/control/while.hpp>\r
+\r
+#define BOOST_BINARY( bit_groupings )                                          \\r
+  BOOST_BINARY_LITERAL_D( BOOST_PP_DEDUCE_D(), bit_groupings ) \r
+\r
+#define BOOST_BINARY_U( bit_groupings )                                        \\r
+  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, U ) \r
+\r
+#define BOOST_BINARY_L( bit_groupings )                                        \\r
+  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, L ) \r
+\r
+#define BOOST_BINARY_UL( bit_groupings )                                       \\r
+  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, UL ) \r
+\r
+#define BOOST_BINARY_LU( bit_groupings )                                       \\r
+  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, LU ) \r
+\r
+#define BOOST_BINARY_LL( bit_groupings )                                       \\r
+  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, LL ) \r
+\r
+#define BOOST_BINARY_ULL( bit_groupings )                                      \\r
+  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, ULL ) \r
+\r
+#define BOOST_BINARY_LLU( bit_groupings )                                      \\r
+  BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, LLU ) \r
+\r
+#define BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, suffix )                 \\r
+  BOOST_SUFFIXED_BINARY_LITERAL_D( BOOST_PP_DEDUCE_D(), bit_groupings, suffix ) \r
+\r
+#define BOOST_SUFFIXED_BINARY_LITERAL_D( d, bit_groupings, suffix )            \\r
+  BOOST_PP_CAT( BOOST_BINARY_LITERAL_D( d, bit_groupings ), suffix ) \r
+\r
+#define BOOST_BINARY_LITERAL_D( d, bit_groupings )                             \\r
+  BOOST_PP_SEQ_CAT                                                             \\r
+  ( (0) BOOST_DETAIL_CREATE_BINARY_LITERAL_OCTAL_SEQUENCE( d, bit_groupings )  \\r
+  ) \r
+\r
+#define BOOST_DETAIL_CREATE_BINARY_LITERAL_OCTAL_SEQUENCE( d, bit_groupings )  \\r
+  BOOST_PP_SEQ_TRANSFORM                                                       \\r
+  ( BOOST_DETAIL_TRIPLE_TO_OCTAL_OPERATION                                     \\r
+  , BOOST_PP_NIL                                                               \\r
+  , BOOST_PP_IDENTITY( BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_TRIPLE_SEQUENCE )()\\r
+    ( BOOST_DETAIL_COMPLETE_TRIPLE_SEQUENCE                                    \\r
+      (                                                                        \\r
+        d                                                                      \\r
+      , BOOST_DETAIL_CREATE_BINARY_LITERAL_BIT_SEQUENCE( d, bit_groupings )    \\r
+      )                                                                        \\r
+    )                                                                          \\r
+  ) \r
+\r
+#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_TRIPLE_SEQUENCE( bit_sequence )   \\r
+  BOOST_PP_CAT                                                                 \\r
+  ( BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1 bit_sequence      \\r
+  , END_BIT                                                                    \\r
+  ) \r
+\r
+#define BOOST_DETAIL_BITS_PER_OCTIT 3\r
+\r
+#define BOOST_DETAIL_COMPLETE_TRIPLE_SEQUENCE( d, incomplete_nibble_sequence ) \\r
+  BOOST_PP_CAT                                                                 \\r
+  ( BOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_                            \\r
+  , BOOST_PP_MOD_D( d                                                          \\r
+                  , BOOST_PP_SEQ_SIZE( incomplete_nibble_sequence )            \\r
+                  , BOOST_DETAIL_BITS_PER_OCTIT                                \\r
+                  )                                                            \\r
+  )                                                                            \\r
+  incomplete_nibble_sequence \r
+\r
+#define BOOST_DETAIL_FIXED_COMPL( bit )                                        \\r
+  BOOST_PP_CAT( BOOST_DETAIL_FIXED_COMPL_, bit )\r
+\r
+#define BOOST_DETAIL_FIXED_COMPL_0 1 \r
+\r
+#define BOOST_DETAIL_FIXED_COMPL_1 0 \r
+\r
+#define BOOST_DETAIL_CREATE_BINARY_LITERAL_BIT_SEQUENCE( d, bit_groupings )    \\r
+  BOOST_PP_EMPTY                                                               \\r
+  BOOST_PP_CAT( BOOST_PP_WHILE_, d )                                           \\r
+  ( BOOST_DETAIL_BINARY_LITERAL_PREDICATE                                      \\r
+  , BOOST_DETAIL_BINARY_LITERAL_OPERATION                                      \\r
+  , bit_groupings ()                                                           \\r
+  ) \r
+\r
+#define BOOST_DETAIL_BINARY_LITERAL_PREDICATE( d, state )                      \\r
+  BOOST_DETAIL_FIXED_COMPL( BOOST_DETAIL_IS_NULLARY_ARGS( state ) ) \r
+\r
+#define BOOST_DETAIL_BINARY_LITERAL_OPERATION( d, state )                      \\r
+  BOOST_DETAIL_SPLIT_AND_SWAP                                                  \\r
+  ( BOOST_PP_CAT( BOOST_DETAIL_BINARY_LITERAL_ELEMENT_, state ) ) \r
+\r
+#define BOOST_DETAIL_TRIPLE_TO_OCTAL_OPERATION( s, dummy_param, tuple )        \\r
+  BOOST_DETAIL_TERNARY_TRIPLE_TO_OCTAL tuple \r
+\r
+#define BOOST_DETAIL_TERNARY_TRIPLE_TO_OCTAL( bit2, bit1, bit0 )               \\r
+  BOOST_DETAIL_TRIPLE_TO_OCTAL_ ## bit2 ## bit1 ## bit0 \r
+\r
+#define BOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_1 (0)(0)\r
+#define BOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_2 (0)\r
+#define BOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_0  \r
+\r
+#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1END_BIT  \r
+\r
+#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1( bit )        \\r
+  ( ( bit, BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_2 \r
+\r
+#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_2( bit )        \\r
+  bit, BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_3 \r
+\r
+#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_3( bit )        \\r
+  bit ) ) BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1 \r
+\r
+#define BOOST_DETAIL_SPLIT_AND_SWAP( params )                                  \\r
+  BOOST_PP_IDENTITY( BOOST_DETAIL_SPLIT_AND_SWAP_PARAMS )()( params )\r
+\r
+#define BOOST_DETAIL_SPLIT_AND_SWAP_PARAMS( first_param, second_param )        \\r
+  second_param first_param \r
+\r
+#define BOOST_DETAIL_LEFT_OF_COMMA( params )                                   \\r
+  BOOST_PP_IDENTITY( BOOST_DETAIL_FIRST_MACRO_PARAM )()( params ) \r
+\r
+#define BOOST_DETAIL_FIRST_MACRO_PARAM( first_param, second_param )            \\r
+  first_param \r
+\r
+/* Begin derived concepts from Chaos by Paul Mensonides */\r
+\r
+#define BOOST_DETAIL_IS_NULLARY_ARGS( param )                                  \\r
+  BOOST_DETAIL_LEFT_OF_COMMA                                                   \\r
+  ( BOOST_PP_CAT( BOOST_DETAIL_IS_NULLARY_ARGS_R_                              \\r
+                , BOOST_DETAIL_IS_NULLARY_ARGS_C param                         \\r
+                )                                                              \\r
+  ) \r
+\r
+#define BOOST_DETAIL_IS_NULLARY_ARGS_C()                                       \\r
+  1 \r
+\r
+#define BOOST_DETAIL_IS_NULLARY_ARGS_R_1                                       \\r
+  1, BOOST_PP_NIL \r
+\r
+#define BOOST_DETAIL_IS_NULLARY_ARGS_R_BOOST_DETAIL_IS_NULLARY_ARGS_C          \\r
+  0, BOOST_PP_NIL \r
+\r
+/* End derived concepts from Chaos by Paul Mensonides */\r
+\r
+#define BOOST_DETAIL_TRIPLE_TO_OCTAL_000 0 \r
+#define BOOST_DETAIL_TRIPLE_TO_OCTAL_001 1 \r
+#define BOOST_DETAIL_TRIPLE_TO_OCTAL_010 2 \r
+#define BOOST_DETAIL_TRIPLE_TO_OCTAL_011 3 \r
+#define BOOST_DETAIL_TRIPLE_TO_OCTAL_100 4 \r
+#define BOOST_DETAIL_TRIPLE_TO_OCTAL_101 5 \r
+#define BOOST_DETAIL_TRIPLE_TO_OCTAL_110 6 \r
+#define BOOST_DETAIL_TRIPLE_TO_OCTAL_111 7 \r
+\r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0 (0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1 (1), \r
+\r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00 (0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01 (0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10 (1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11 (1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00 (0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01 (0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10 (1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11 (1)(1), \r
+\r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000 (0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001 (0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010 (0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011 (0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100 (1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101 (1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110 (1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111 (1)(1)(1), \r
+\r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000 (0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001 (0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010 (0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011 (0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100 (0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101 (0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110 (0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111 (0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000 (1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001 (1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010 (1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011 (1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100 (1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101 (1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110 (1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111 (1)(1)(1)(1), \r
+\r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000 (0)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001 (0)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010 (0)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011 (0)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100 (0)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101 (0)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110 (0)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111 (0)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000 (0)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001 (0)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010 (0)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011 (0)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100 (0)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101 (0)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110 (0)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111 (0)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000 (1)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001 (1)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010 (1)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011 (1)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100 (1)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101 (1)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110 (1)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111 (1)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000 (1)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001 (1)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010 (1)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011 (1)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100 (1)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101 (1)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110 (1)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111 (1)(1)(1)(1)(1), \r
+\r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000000 (0)(0)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000001 (0)(0)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000010 (0)(0)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000011 (0)(0)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000100 (0)(0)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000101 (0)(0)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000110 (0)(0)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000111 (0)(0)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001000 (0)(0)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001001 (0)(0)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001010 (0)(0)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001011 (0)(0)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001100 (0)(0)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001101 (0)(0)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001110 (0)(0)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001111 (0)(0)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010000 (0)(1)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010001 (0)(1)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010010 (0)(1)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010011 (0)(1)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010100 (0)(1)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010101 (0)(1)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010110 (0)(1)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010111 (0)(1)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011000 (0)(1)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011001 (0)(1)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011010 (0)(1)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011011 (0)(1)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011100 (0)(1)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011101 (0)(1)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011110 (0)(1)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011111 (0)(1)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100000 (1)(0)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100001 (1)(0)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100010 (1)(0)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100011 (1)(0)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100100 (1)(0)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100101 (1)(0)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100110 (1)(0)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100111 (1)(0)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101000 (1)(0)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101001 (1)(0)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101010 (1)(0)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101011 (1)(0)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101100 (1)(0)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101101 (1)(0)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101110 (1)(0)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101111 (1)(0)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110000 (1)(1)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110001 (1)(1)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110010 (1)(1)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110011 (1)(1)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110100 (1)(1)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110101 (1)(1)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110110 (1)(1)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110111 (1)(1)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111000 (1)(1)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111001 (1)(1)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111010 (1)(1)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111011 (1)(1)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111100 (1)(1)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111101 (1)(1)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111110 (1)(1)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111111 (1)(1)(1)(1)(1)(1), \r
+\r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000000 (0)(0)(0)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000001 (0)(0)(0)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000010 (0)(0)(0)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000011 (0)(0)(0)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000100 (0)(0)(0)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000101 (0)(0)(0)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000110 (0)(0)(0)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000111 (0)(0)(0)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001000 (0)(0)(0)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001001 (0)(0)(0)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001010 (0)(0)(0)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001011 (0)(0)(0)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001100 (0)(0)(0)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001101 (0)(0)(0)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001110 (0)(0)(0)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001111 (0)(0)(0)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010000 (0)(0)(1)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010001 (0)(0)(1)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010010 (0)(0)(1)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010011 (0)(0)(1)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010100 (0)(0)(1)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010101 (0)(0)(1)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010110 (0)(0)(1)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010111 (0)(0)(1)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011000 (0)(0)(1)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011001 (0)(0)(1)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011010 (0)(0)(1)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011011 (0)(0)(1)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011100 (0)(0)(1)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011101 (0)(0)(1)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011110 (0)(0)(1)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011111 (0)(0)(1)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100000 (0)(1)(0)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100001 (0)(1)(0)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100010 (0)(1)(0)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100011 (0)(1)(0)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100100 (0)(1)(0)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100101 (0)(1)(0)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100110 (0)(1)(0)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100111 (0)(1)(0)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101000 (0)(1)(0)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101001 (0)(1)(0)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101010 (0)(1)(0)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101011 (0)(1)(0)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101100 (0)(1)(0)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101101 (0)(1)(0)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101110 (0)(1)(0)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101111 (0)(1)(0)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110000 (0)(1)(1)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110001 (0)(1)(1)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110010 (0)(1)(1)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110011 (0)(1)(1)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110100 (0)(1)(1)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110101 (0)(1)(1)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110110 (0)(1)(1)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110111 (0)(1)(1)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111000 (0)(1)(1)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111001 (0)(1)(1)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111010 (0)(1)(1)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111011 (0)(1)(1)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111100 (0)(1)(1)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111101 (0)(1)(1)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111110 (0)(1)(1)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111111 (0)(1)(1)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000000 (1)(0)(0)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000001 (1)(0)(0)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000010 (1)(0)(0)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000011 (1)(0)(0)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000100 (1)(0)(0)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000101 (1)(0)(0)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000110 (1)(0)(0)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000111 (1)(0)(0)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001000 (1)(0)(0)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001001 (1)(0)(0)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001010 (1)(0)(0)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001011 (1)(0)(0)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001100 (1)(0)(0)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001101 (1)(0)(0)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001110 (1)(0)(0)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001111 (1)(0)(0)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010000 (1)(0)(1)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010001 (1)(0)(1)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010010 (1)(0)(1)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010011 (1)(0)(1)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010100 (1)(0)(1)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010101 (1)(0)(1)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010110 (1)(0)(1)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010111 (1)(0)(1)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011000 (1)(0)(1)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011001 (1)(0)(1)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011010 (1)(0)(1)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011011 (1)(0)(1)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011100 (1)(0)(1)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011101 (1)(0)(1)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011110 (1)(0)(1)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011111 (1)(0)(1)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100000 (1)(1)(0)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100001 (1)(1)(0)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100010 (1)(1)(0)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100011 (1)(1)(0)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100100 (1)(1)(0)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100101 (1)(1)(0)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100110 (1)(1)(0)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100111 (1)(1)(0)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101000 (1)(1)(0)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101001 (1)(1)(0)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101010 (1)(1)(0)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101011 (1)(1)(0)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101100 (1)(1)(0)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101101 (1)(1)(0)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101110 (1)(1)(0)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101111 (1)(1)(0)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110000 (1)(1)(1)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110001 (1)(1)(1)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110010 (1)(1)(1)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110011 (1)(1)(1)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110100 (1)(1)(1)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110101 (1)(1)(1)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110110 (1)(1)(1)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110111 (1)(1)(1)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111000 (1)(1)(1)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111001 (1)(1)(1)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111010 (1)(1)(1)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111011 (1)(1)(1)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111100 (1)(1)(1)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111101 (1)(1)(1)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111110 (1)(1)(1)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111111 (1)(1)(1)(1)(1)(1)(1), \r
+\r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000000 (0)(0)(0)(0)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000001 (0)(0)(0)(0)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000010 (0)(0)(0)(0)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000011 (0)(0)(0)(0)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000100 (0)(0)(0)(0)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000101 (0)(0)(0)(0)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000110 (0)(0)(0)(0)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000111 (0)(0)(0)(0)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001000 (0)(0)(0)(0)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001001 (0)(0)(0)(0)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001010 (0)(0)(0)(0)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001011 (0)(0)(0)(0)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001100 (0)(0)(0)(0)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001101 (0)(0)(0)(0)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001110 (0)(0)(0)(0)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001111 (0)(0)(0)(0)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010000 (0)(0)(0)(1)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010001 (0)(0)(0)(1)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010010 (0)(0)(0)(1)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010011 (0)(0)(0)(1)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010100 (0)(0)(0)(1)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010101 (0)(0)(0)(1)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010110 (0)(0)(0)(1)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010111 (0)(0)(0)(1)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011000 (0)(0)(0)(1)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011001 (0)(0)(0)(1)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011010 (0)(0)(0)(1)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011011 (0)(0)(0)(1)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011100 (0)(0)(0)(1)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011101 (0)(0)(0)(1)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011110 (0)(0)(0)(1)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011111 (0)(0)(0)(1)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100000 (0)(0)(1)(0)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100001 (0)(0)(1)(0)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100010 (0)(0)(1)(0)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100011 (0)(0)(1)(0)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100100 (0)(0)(1)(0)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100101 (0)(0)(1)(0)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100110 (0)(0)(1)(0)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100111 (0)(0)(1)(0)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101000 (0)(0)(1)(0)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101001 (0)(0)(1)(0)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101010 (0)(0)(1)(0)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101011 (0)(0)(1)(0)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101100 (0)(0)(1)(0)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101101 (0)(0)(1)(0)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101110 (0)(0)(1)(0)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101111 (0)(0)(1)(0)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110000 (0)(0)(1)(1)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110001 (0)(0)(1)(1)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110010 (0)(0)(1)(1)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110011 (0)(0)(1)(1)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110100 (0)(0)(1)(1)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110101 (0)(0)(1)(1)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110110 (0)(0)(1)(1)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110111 (0)(0)(1)(1)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111000 (0)(0)(1)(1)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111001 (0)(0)(1)(1)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111010 (0)(0)(1)(1)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111011 (0)(0)(1)(1)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111100 (0)(0)(1)(1)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111101 (0)(0)(1)(1)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111110 (0)(0)(1)(1)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111111 (0)(0)(1)(1)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000000 (0)(1)(0)(0)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000001 (0)(1)(0)(0)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000010 (0)(1)(0)(0)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000011 (0)(1)(0)(0)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000100 (0)(1)(0)(0)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000101 (0)(1)(0)(0)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000110 (0)(1)(0)(0)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000111 (0)(1)(0)(0)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001000 (0)(1)(0)(0)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001001 (0)(1)(0)(0)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001010 (0)(1)(0)(0)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001011 (0)(1)(0)(0)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001100 (0)(1)(0)(0)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001101 (0)(1)(0)(0)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001110 (0)(1)(0)(0)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001111 (0)(1)(0)(0)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010000 (0)(1)(0)(1)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010001 (0)(1)(0)(1)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010010 (0)(1)(0)(1)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010011 (0)(1)(0)(1)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010100 (0)(1)(0)(1)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010101 (0)(1)(0)(1)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010110 (0)(1)(0)(1)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010111 (0)(1)(0)(1)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011000 (0)(1)(0)(1)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011001 (0)(1)(0)(1)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011010 (0)(1)(0)(1)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011011 (0)(1)(0)(1)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011100 (0)(1)(0)(1)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011101 (0)(1)(0)(1)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011110 (0)(1)(0)(1)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011111 (0)(1)(0)(1)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100000 (0)(1)(1)(0)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100001 (0)(1)(1)(0)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100010 (0)(1)(1)(0)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100011 (0)(1)(1)(0)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100100 (0)(1)(1)(0)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100101 (0)(1)(1)(0)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100110 (0)(1)(1)(0)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100111 (0)(1)(1)(0)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101000 (0)(1)(1)(0)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101001 (0)(1)(1)(0)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101010 (0)(1)(1)(0)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101011 (0)(1)(1)(0)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101100 (0)(1)(1)(0)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101101 (0)(1)(1)(0)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101110 (0)(1)(1)(0)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101111 (0)(1)(1)(0)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110000 (0)(1)(1)(1)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110001 (0)(1)(1)(1)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110010 (0)(1)(1)(1)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110011 (0)(1)(1)(1)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110100 (0)(1)(1)(1)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110101 (0)(1)(1)(1)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110110 (0)(1)(1)(1)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110111 (0)(1)(1)(1)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111000 (0)(1)(1)(1)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111001 (0)(1)(1)(1)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111010 (0)(1)(1)(1)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111011 (0)(1)(1)(1)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111100 (0)(1)(1)(1)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111101 (0)(1)(1)(1)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111110 (0)(1)(1)(1)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111111 (0)(1)(1)(1)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000000 (1)(0)(0)(0)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000001 (1)(0)(0)(0)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000010 (1)(0)(0)(0)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000011 (1)(0)(0)(0)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000100 (1)(0)(0)(0)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000101 (1)(0)(0)(0)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000110 (1)(0)(0)(0)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000111 (1)(0)(0)(0)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001000 (1)(0)(0)(0)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001001 (1)(0)(0)(0)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001010 (1)(0)(0)(0)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001011 (1)(0)(0)(0)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001100 (1)(0)(0)(0)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001101 (1)(0)(0)(0)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001110 (1)(0)(0)(0)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001111 (1)(0)(0)(0)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010000 (1)(0)(0)(1)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010001 (1)(0)(0)(1)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010010 (1)(0)(0)(1)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010011 (1)(0)(0)(1)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010100 (1)(0)(0)(1)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010101 (1)(0)(0)(1)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010110 (1)(0)(0)(1)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010111 (1)(0)(0)(1)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011000 (1)(0)(0)(1)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011001 (1)(0)(0)(1)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011010 (1)(0)(0)(1)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011011 (1)(0)(0)(1)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011100 (1)(0)(0)(1)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011101 (1)(0)(0)(1)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011110 (1)(0)(0)(1)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011111 (1)(0)(0)(1)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100000 (1)(0)(1)(0)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100001 (1)(0)(1)(0)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100010 (1)(0)(1)(0)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100011 (1)(0)(1)(0)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100100 (1)(0)(1)(0)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100101 (1)(0)(1)(0)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100110 (1)(0)(1)(0)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100111 (1)(0)(1)(0)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101000 (1)(0)(1)(0)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101001 (1)(0)(1)(0)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101010 (1)(0)(1)(0)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101011 (1)(0)(1)(0)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101100 (1)(0)(1)(0)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101101 (1)(0)(1)(0)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101110 (1)(0)(1)(0)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101111 (1)(0)(1)(0)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110000 (1)(0)(1)(1)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110001 (1)(0)(1)(1)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110010 (1)(0)(1)(1)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110011 (1)(0)(1)(1)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110100 (1)(0)(1)(1)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110101 (1)(0)(1)(1)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110110 (1)(0)(1)(1)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110111 (1)(0)(1)(1)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111000 (1)(0)(1)(1)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111001 (1)(0)(1)(1)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111010 (1)(0)(1)(1)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111011 (1)(0)(1)(1)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111100 (1)(0)(1)(1)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111101 (1)(0)(1)(1)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111110 (1)(0)(1)(1)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111111 (1)(0)(1)(1)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000000 (1)(1)(0)(0)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000001 (1)(1)(0)(0)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000010 (1)(1)(0)(0)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000011 (1)(1)(0)(0)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000100 (1)(1)(0)(0)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000101 (1)(1)(0)(0)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000110 (1)(1)(0)(0)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000111 (1)(1)(0)(0)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001000 (1)(1)(0)(0)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001001 (1)(1)(0)(0)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001010 (1)(1)(0)(0)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001011 (1)(1)(0)(0)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001100 (1)(1)(0)(0)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001101 (1)(1)(0)(0)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001110 (1)(1)(0)(0)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001111 (1)(1)(0)(0)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010000 (1)(1)(0)(1)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010001 (1)(1)(0)(1)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010010 (1)(1)(0)(1)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010011 (1)(1)(0)(1)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010100 (1)(1)(0)(1)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010101 (1)(1)(0)(1)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010110 (1)(1)(0)(1)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010111 (1)(1)(0)(1)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011000 (1)(1)(0)(1)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011001 (1)(1)(0)(1)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011010 (1)(1)(0)(1)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011011 (1)(1)(0)(1)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011100 (1)(1)(0)(1)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011101 (1)(1)(0)(1)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011110 (1)(1)(0)(1)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011111 (1)(1)(0)(1)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100000 (1)(1)(1)(0)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100001 (1)(1)(1)(0)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100010 (1)(1)(1)(0)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100011 (1)(1)(1)(0)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100100 (1)(1)(1)(0)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100101 (1)(1)(1)(0)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100110 (1)(1)(1)(0)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100111 (1)(1)(1)(0)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101000 (1)(1)(1)(0)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101001 (1)(1)(1)(0)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101010 (1)(1)(1)(0)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101011 (1)(1)(1)(0)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101100 (1)(1)(1)(0)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101101 (1)(1)(1)(0)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101110 (1)(1)(1)(0)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101111 (1)(1)(1)(0)(1)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110000 (1)(1)(1)(1)(0)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110001 (1)(1)(1)(1)(0)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110010 (1)(1)(1)(1)(0)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110011 (1)(1)(1)(1)(0)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110100 (1)(1)(1)(1)(0)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110101 (1)(1)(1)(1)(0)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110110 (1)(1)(1)(1)(0)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110111 (1)(1)(1)(1)(0)(1)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111000 (1)(1)(1)(1)(1)(0)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111001 (1)(1)(1)(1)(1)(0)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111010 (1)(1)(1)(1)(1)(0)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111011 (1)(1)(1)(1)(1)(0)(1)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111100 (1)(1)(1)(1)(1)(1)(0)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111101 (1)(1)(1)(1)(1)(1)(0)(1), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111110 (1)(1)(1)(1)(1)(1)(1)(0), \r
+#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111111 (1)(1)(1)(1)(1)(1)(1)(1), \r
+\r
+#endif\r
diff --git a/boost/boost/utility/detail/in_place_factory_prefix.hpp b/boost/boost/utility/detail/in_place_factory_prefix.hpp
new file mode 100644 (file)
index 0000000..03a08fb
--- /dev/null
@@ -0,0 +1,36 @@
+// Copyright (C) 2003, Fernando Luis Cacciola Carballal.\r
+// Copyright (C) 2007, Tobias Schwinger.\r
+//\r
+// Use, modification, and distribution is subject to the Boost Software\r
+// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+// See http://www.boost.org/lib/optional for documentation.\r
+//\r
+// You are welcome to contact the author at:\r
+//  fernando_cacciola@hotmail.com\r
+//\r
+#ifndef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP\r
+#define BOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP\r
+\r
+#include <new>\r
+#include <cstddef>\r
+#include <boost/config.hpp>\r
+#include <boost/preprocessor/cat.hpp>\r
+#include <boost/preprocessor/punctuation/paren.hpp>\r
+#include <boost/preprocessor/iteration/iterate.hpp>\r
+#include <boost/preprocessor/repetition/repeat.hpp>\r
+#include <boost/preprocessor/repetition/enum.hpp>\r
+#include <boost/preprocessor/repetition/enum_params.hpp>\r
+#include <boost/preprocessor/repetition/enum_binary_params.hpp>\r
+#include <boost/preprocessor/repetition/enum_trailing_params.hpp>\r
+\r
+#define BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT(z,n,_) BOOST_PP_CAT(m_a,n) BOOST_PP_LPAREN() BOOST_PP_CAT(a,n) BOOST_PP_RPAREN()\r
+#define BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL(z,n,_) BOOST_PP_CAT(A,n) const& BOOST_PP_CAT(m_a,n);\r
+\r
+#define BOOST_MAX_INPLACE_FACTORY_ARITY 10\r
+\r
+#undef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP\r
+\r
+#endif\r
+\r
diff --git a/boost/boost/utility/detail/in_place_factory_suffix.hpp b/boost/boost/utility/detail/in_place_factory_suffix.hpp
new file mode 100644 (file)
index 0000000..9a3cf22
--- /dev/null
@@ -0,0 +1,23 @@
+// Copyright (C) 2003, Fernando Luis Cacciola Carballal.\r
+// Copyright (C) 2007, Tobias Schwinger.\r
+//\r
+// Use, modification, and distribution is subject to the Boost Software\r
+// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+// See http://www.boost.org/lib/optional for documentation.\r
+//\r
+// You are welcome to contact the author at:\r
+//  fernando_cacciola@hotmail.com\r
+//\r
+#ifndef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP\r
+#define BOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP\r
+\r
+#undef BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT\r
+#undef BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL\r
+#undef BOOST_MAX_INPLACE_FACTORY_ARITY\r
+\r
+#undef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP\r
+\r
+#endif\r
+\r
diff --git a/boost/boost/utility/detail/result_of_iterate.hpp b/boost/boost/utility/detail/result_of_iterate.hpp
new file mode 100644 (file)
index 0000000..dd32cc2
--- /dev/null
@@ -0,0 +1,89 @@
+// Boost result_of library\r
+\r
+//  Copyright Douglas Gregor 2004. Use, modification and\r
+//  distribution is subject to the Boost Software License, Version\r
+//  1.0. (See accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+\r
+// For more information, see http://www.boost.org/libs/utility\r
+#if !defined(BOOST_PP_IS_ITERATING)\r
+# error Boost result_of - do not include this file!\r
+#endif\r
+\r
+// CWPro8 requires an argument in a function type specialization\r
+#if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3002)) && BOOST_PP_ITERATION() == 0\r
+# define BOOST_RESULT_OF_ARGS void\r
+#else\r
+# define BOOST_RESULT_OF_ARGS BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)\r
+#endif\r
+\r
+#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))\r
+template<typename F BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())\r
+         BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),typename T)>\r
+struct result_of<F(BOOST_RESULT_OF_ARGS)>\r
+    : boost::detail::result_of_impl<F, F(BOOST_RESULT_OF_ARGS), (boost::detail::has_result_type<F>::value)> {};\r
+#endif\r
+\r
+#undef BOOST_RESULT_OF_ARGS\r
+\r
+#if BOOST_PP_ITERATION() >= 1 \r
+\r
+namespace detail {\r
+\r
+template<typename R,  typename FArgs BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())\r
+         BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),typename T)>\r
+struct result_of_impl<R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)), FArgs, false>\r
+{\r
+  typedef R type;\r
+};\r
+\r
+template<typename R,  typename FArgs BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())\r
+         BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),typename T)>\r
+struct result_of_impl<R (&)(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)), FArgs, false>\r
+{\r
+  typedef R type;\r
+};\r
+\r
+#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))\r
+template<typename R, typename FArgs BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())\r
+         BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),typename T)>\r
+struct result_of_impl<R (T0::*)\r
+                     (BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_PP_ITERATION(),T)),\r
+                 FArgs, false>\r
+{\r
+  typedef R type;\r
+};\r
+\r
+template<typename R, typename FArgs BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())\r
+         BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),typename T)>\r
+struct result_of_impl<R (T0::*)\r
+                     (BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_PP_ITERATION(),T))\r
+                     const,\r
+                 FArgs, false>\r
+{\r
+  typedef R type;\r
+};\r
+\r
+template<typename R, typename FArgs BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())\r
+         BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),typename T)>\r
+struct result_of_impl<R (T0::*)\r
+                     (BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_PP_ITERATION(),T))\r
+                     volatile,\r
+                 FArgs, false>\r
+{\r
+  typedef R type;\r
+};\r
+\r
+template<typename R, typename FArgs BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())\r
+         BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),typename T)>\r
+struct result_of_impl<R (T0::*)\r
+                     (BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_PP_ITERATION(),T))\r
+                     const volatile,\r
+                 FArgs, false>\r
+{\r
+  typedef R type;\r
+};\r
+#endif\r
+\r
+}\r
+#endif\r
diff --git a/boost/boost/utility/in_place_factory.hpp b/boost/boost/utility/in_place_factory.hpp
new file mode 100644 (file)
index 0000000..a7f72c3
--- /dev/null
@@ -0,0 +1,88 @@
+// Copyright (C) 2003, Fernando Luis Cacciola Carballal.\r
+// Copyright (C) 2007, Tobias Schwinger.\r
+//\r
+// Use, modification, and distribution is subject to the Boost Software\r
+// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+// See http://www.boost.org/lib/optional for documentation.\r
+//\r
+// You are welcome to contact the author at:\r
+//  fernando_cacciola@hotmail.com\r
+//\r
+#ifndef BOOST_UTILITY_INPLACE_FACTORY_04APR2007_HPP\r
+#ifndef BOOST_PP_IS_ITERATING\r
+\r
+#include <boost/utility/detail/in_place_factory_prefix.hpp>\r
+\r
+namespace boost {\r
+\r
+class in_place_factory_base {} ;\r
+\r
+#define  BOOST_PP_ITERATION_LIMITS (0, BOOST_MAX_INPLACE_FACTORY_ARITY)\r
+#define  BOOST_PP_FILENAME_1 <boost/utility/in_place_factory.hpp>\r
+#include BOOST_PP_ITERATE()\r
+\r
+} // namespace boost\r
+\r
+#include <boost/utility/detail/in_place_factory_suffix.hpp>\r
+\r
+#define BOOST_UTILITY_INPLACE_FACTORY_04APR2007_HPP\r
+#else\r
+#define N BOOST_PP_ITERATION()\r
+\r
+#if N\r
+template< BOOST_PP_ENUM_PARAMS(N, class A) >\r
+#endif\r
+class BOOST_PP_CAT(in_place_factory,N)\r
+  : \r
+  public in_place_factory_base\r
+{\r
+public:\r
+\r
+  explicit BOOST_PP_CAT(in_place_factory,N)\r
+      ( BOOST_PP_ENUM_BINARY_PARAMS(N,A,const& a) )\r
+#if N > 0\r
+    : BOOST_PP_ENUM(N, BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT, _)\r
+#endif\r
+  {}\r
+\r
+  template<class T>\r
+  void* apply(void* address\r
+      BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(T)) const\r
+  {\r
+    return new(address) T( BOOST_PP_ENUM_PARAMS(N, m_a) );\r
+  }\r
+\r
+  template<class T>\r
+  void* apply(void* address, std::size_t n\r
+      BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(T)) const\r
+  {\r
+    for(char* next = address = this->BOOST_NESTED_TEMPLATE apply<T>(address);\r
+        !! --n;)\r
+      this->BOOST_NESTED_TEMPLATE apply<T>(next = next+sizeof(T));\r
+    return address; \r
+  }\r
+\r
+  BOOST_PP_REPEAT(N, BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL, _)\r
+};\r
+\r
+#if N > 0\r
+template< BOOST_PP_ENUM_PARAMS(N, class A) >\r
+inline BOOST_PP_CAT(in_place_factory,N)< BOOST_PP_ENUM_PARAMS(N, A) >\r
+in_place( BOOST_PP_ENUM_BINARY_PARAMS(N, A, const& a) )\r
+{\r
+  return BOOST_PP_CAT(in_place_factory,N)< BOOST_PP_ENUM_PARAMS(N, A) >\r
+      ( BOOST_PP_ENUM_PARAMS(N, a) );\r
+}\r
+#else\r
+inline in_place_factory0 in_place()\r
+{\r
+  return in_place_factory0();\r
+}\r
+#endif\r
+\r
+#undef N\r
+#endif\r
+#endif\r
+\r
diff --git a/boost/boost/utility/result_of.hpp b/boost/boost/utility/result_of.hpp
new file mode 100644 (file)
index 0000000..dc42030
--- /dev/null
@@ -0,0 +1,88 @@
+// Boost result_of library\r
+\r
+//  Copyright Douglas Gregor 2004. Use, modification and\r
+//  distribution is subject to the Boost Software License, Version\r
+//  1.0. (See accompanying file LICENSE_1_0.txt or copy at\r
+//  http://www.boost.org/LICENSE_1_0.txt)\r
+\r
+// For more information, see http://www.boost.org/libs/utility\r
+#ifndef BOOST_RESULT_OF_HPP\r
+#define BOOST_RESULT_OF_HPP\r
+\r
+#include <boost/config.hpp>\r
+#include <boost/type_traits/ice.hpp>\r
+#include <boost/type.hpp>\r
+#include <boost/preprocessor.hpp>\r
+#include <boost/detail/workaround.hpp>\r
+#include <boost/mpl/has_xxx.hpp>\r
+#include <boost/mpl/if.hpp>\r
+#include <boost/mpl/bool.hpp>\r
+\r
+#ifndef BOOST_RESULT_OF_NUM_ARGS\r
+#  define BOOST_RESULT_OF_NUM_ARGS 10\r
+#endif\r
+\r
+namespace boost {\r
+\r
+template<typename F> struct result_of;\r
+\r
+#if !defined(BOOST_NO_SFINAE) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)\r
+namespace detail {\r
+\r
+BOOST_MPL_HAS_XXX_TRAIT_DEF(result_type)\r
+\r
+template<typename F, typename FArgs, bool HasResultType> struct result_of_impl;\r
+\r
+template<typename F>\r
+struct result_of_void_impl\r
+{\r
+  typedef void type;\r
+};\r
+\r
+template<typename R>\r
+struct result_of_void_impl<R (*)(void)>\r
+{\r
+  typedef R type;\r
+};\r
+\r
+template<typename R>\r
+struct result_of_void_impl<R (&)(void)>\r
+{\r
+  typedef R type;\r
+};\r
+\r
+template<typename F, typename FArgs>\r
+struct result_of_impl<F, FArgs, true>\r
+{\r
+  typedef typename F::result_type type;\r
+};\r
+\r
+template<typename FArgs>\r
+struct is_function_with_no_args : mpl::false_ {};\r
+\r
+template<typename F>\r
+struct is_function_with_no_args<F(void)> : mpl::true_ {};\r
+\r
+template<typename F, typename FArgs>\r
+struct result_of_nested_result : F::template result<FArgs>\r
+{};\r
+\r
+template<typename F, typename FArgs>\r
+struct result_of_impl<F, FArgs, false>\r
+  : mpl::if_<is_function_with_no_args<FArgs>,\r
+            result_of_void_impl<F>,\r
+            result_of_nested_result<F, FArgs> >::type\r
+{};\r
+\r
+} // end namespace detail\r
+\r
+#define BOOST_PP_ITERATION_PARAMS_1 (3,(0,BOOST_RESULT_OF_NUM_ARGS,<boost/utility/detail/result_of_iterate.hpp>))\r
+#include BOOST_PP_ITERATE()\r
+\r
+#else\r
+#  define BOOST_NO_RESULT_OF 1\r
+#endif\r
+\r
+}\r
+\r
+#endif // BOOST_RESULT_OF_HPP\r
diff --git a/boost/boost/utility/swap.hpp b/boost/boost/utility/swap.hpp
new file mode 100644 (file)
index 0000000..85de422
--- /dev/null
@@ -0,0 +1,55 @@
+// Copyright (C) 2007, 2008 Steven Watanabe, Joseph Gauterin, Niels Dekker\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. (See\r
+// accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+// For more information, see http://www.boost.org\r
+\r
+\r
+#ifndef BOOST_UTILITY_SWAP_HPP\r
+#define BOOST_UTILITY_SWAP_HPP\r
+\r
+// Note: the implementation of this utility contains various workarounds:\r
+// - swap_impl is put outside the boost namespace, to avoid infinite\r
+// recursion (causing stack overflow) when swapping objects of a primitive\r
+// type.\r
+// - swap_impl has a using-directive, rather than a using-declaration,\r
+// because some compilers (including MSVC 7.1, Borland 5.9.3, and\r
+// Intel 8.1) don't do argument-dependent lookup when it has a\r
+// using-declaration instead.\r
+// - boost::swap has two template arguments, instead of one, to\r
+// avoid ambiguity when swapping objects of a Boost type that does\r
+// not have its own boost::swap overload.\r
+\r
+#include <algorithm> //for std::swap\r
+#include <cstddef> //for std::size_t\r
+\r
+namespace boost_swap_impl\r
+{\r
+  template<class T>\r
+  void swap_impl(T& left, T& right)\r
+  {\r
+    using namespace std;//use std::swap if argument dependent lookup fails\r
+    swap(left,right);\r
+  }\r
+\r
+  template<class T, std::size_t N>\r
+  void swap_impl(T (& left)[N], T (& right)[N])\r
+  {\r
+    for (std::size_t i = 0; i < N; ++i)\r
+    {\r
+      ::boost_swap_impl::swap_impl(left[i], right[i]);\r
+    }\r
+  }\r
+}\r
+\r
+namespace boost\r
+{\r
+  template<class T1, class T2>\r
+  void swap(T1& left, T2& right)\r
+  {\r
+    ::boost_swap_impl::swap_impl(left, right);\r
+  }\r
+}\r
+\r
+#endif\r
diff --git a/boost/boost/utility/typed_in_place_factory.hpp b/boost/boost/utility/typed_in_place_factory.hpp
new file mode 100644 (file)
index 0000000..7beb8cc
--- /dev/null
@@ -0,0 +1,77 @@
+// Copyright (C) 2003, Fernando Luis Cacciola Carballal.\r
+// Copyright (C) 2007, Tobias Schwinger.\r
+//\r
+// Use, modification, and distribution is subject to the Boost Software\r
+// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+// See http://www.boost.org/lib/optional for documentation.\r
+//\r
+// You are welcome to contact the author at:\r
+//  fernando_cacciola@hotmail.com\r
+//\r
+#ifndef BOOST_UTILITY_TYPED_INPLACE_FACTORY_04APR2007_HPP\r
+#ifndef BOOST_PP_IS_ITERATING\r
+\r
+#include <boost/utility/detail/in_place_factory_prefix.hpp>\r
+\r
+namespace boost {\r
+\r
+class typed_in_place_factory_base {} ;\r
+\r
+#define  BOOST_PP_ITERATION_LIMITS (0, BOOST_MAX_INPLACE_FACTORY_ARITY)\r
+#define  BOOST_PP_FILENAME_1 <boost/utility/typed_in_place_factory.hpp>\r
+#include BOOST_PP_ITERATE()\r
+\r
+} // namespace boost\r
+\r
+#include <boost/utility/detail/in_place_factory_suffix.hpp>\r
+\r
+#define BOOST_UTILITY_TYPED_INPLACE_FACTORY_04APR2007_HPP\r
+#else \r
+#define N BOOST_PP_ITERATION()\r
+\r
+template< class T BOOST_PP_ENUM_TRAILING_PARAMS(N,class A) >\r
+class BOOST_PP_CAT(typed_in_place_factory,N) \r
+  : \r
+  public typed_in_place_factory_base\r
+{\r
+public:\r
+\r
+  typedef T value_type;\r
+\r
+  explicit BOOST_PP_CAT(typed_in_place_factory,N) \r
+      ( BOOST_PP_ENUM_BINARY_PARAMS(N, A, const& a) )\r
+#if N > 0\r
+    : BOOST_PP_ENUM(N, BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT, _)\r
+#endif\r
+  {}\r
+\r
+  void* apply (void* address) const\r
+  {\r
+    return new(address) T( BOOST_PP_ENUM_PARAMS(N, m_a) );\r
+  }\r
+\r
+  void* apply (void* address, std::size_t n) const\r
+  {\r
+    for(void* next = address = this->apply(address); !! --n;)\r
+      this->apply(next = static_cast<char *>(next) + sizeof(T));\r
+    return address; \r
+  }\r
+\r
+  BOOST_PP_REPEAT(N, BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL, _)\r
+};\r
+\r
+template< class T BOOST_PP_ENUM_TRAILING_PARAMS(N, class A) >\r
+inline BOOST_PP_CAT(typed_in_place_factory,N)<\r
+    T BOOST_PP_ENUM_TRAILING_PARAMS(N, A) >\r
+in_place( BOOST_PP_ENUM_BINARY_PARAMS(N, A, const& a) )\r
+{\r
+  return BOOST_PP_CAT(typed_in_place_factory,N)< \r
+      T BOOST_PP_ENUM_TRAILING_PARAMS(N, A) >( BOOST_PP_ENUM_PARAMS(N, a) );\r
+}\r
+\r
+#undef N\r
+#endif\r
+#endif\r
+\r
diff --git a/boost/boost/utility/value_init.hpp b/boost/boost/utility/value_init.hpp
new file mode 100644 (file)
index 0000000..45ba3b6
--- /dev/null
@@ -0,0 +1,143 @@
+// (C) Copyright 2002-2008, Fernando Luis Cacciola Carballal.\r
+//\r
+// Distributed under the Boost Software License, Version 1.0. (See\r
+// accompanying file LICENSE_1_0.txt or copy at\r
+// http://www.boost.org/LICENSE_1_0.txt)\r
+//\r
+// 21 Ago 2002 (Created) Fernando Cacciola\r
+// 24 Dec 2007 (Refactored and worked around various compiler bugs) Fernando Cacciola, Niels Dekker\r
+// 23 May 2008 (Fixed operator= const issue, added initialized_value) Niels Dekker, Fernando Cacciola\r
+// 21 Ago 2008 (Added swap) Niels Dekker, Fernando Cacciola\r
+//\r
+#ifndef BOOST_UTILITY_VALUE_INIT_21AGO2002_HPP\r
+#define BOOST_UTILITY_VALUE_INIT_21AGO2002_HPP\r
+\r
+// Note: The implementation of boost::value_initialized had to deal with the\r
+// fact that various compilers haven't fully implemented value-initialization.\r
+// The constructor of boost::value_initialized<T> works around these compiler\r
+// issues, by clearing the bytes of T, before constructing the T object it\r
+// contains. More details on these issues are at libs/utility/value_init.htm\r
+\r
+#include <boost/aligned_storage.hpp>\r
+#include <boost/detail/workaround.hpp>\r
+#include <boost/static_assert.hpp>\r
+#include <boost/type_traits/cv_traits.hpp>\r
+#include <boost/type_traits/alignment_of.hpp>\r
+#include <boost/swap.hpp>\r
+#include <cstring>\r
+#include <new>\r
+\r
+namespace boost {\r
+\r
+template<class T>\r
+class value_initialized\r
+{\r
+  private :\r
+    struct wrapper\r
+    {\r
+#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x592))\r
+      typename\r
+#endif \r
+      remove_const<T>::type data;\r
+    };\r
+\r
+    mutable\r
+#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x592))\r
+      typename\r
+#endif \r
+      aligned_storage<sizeof(wrapper), alignment_of<wrapper>::value>::type x;\r
+\r
+    wrapper * wrapper_address() const\r
+    {\r
+      return static_cast<wrapper *>( static_cast<void*>(&x));\r
+    }\r
+\r
+  public :\r
+\r
+    value_initialized()\r
+    {\r
+      std::memset(&x, 0, sizeof(x));\r
+#ifdef BOOST_MSVC\r
+#pragma warning(push)\r
+#if _MSC_VER >= 1310\r
+// When using MSVC 7.1 or higher, the following placement new expression may trigger warning C4345:\r
+// "behavior change: an object of POD type constructed with an initializer of the form ()\r
+// will be default-initialized".  It is safe to ignore this warning when using value_initialized.\r
+#pragma warning(disable: 4345)\r
+#endif\r
+#endif\r
+      new (wrapper_address()) wrapper();\r
+#ifdef BOOST_MSVC\r
+#pragma warning(pop)\r
+#endif\r
+    }\r
+\r
+    value_initialized(value_initialized const & arg)\r
+    {\r
+      new (wrapper_address()) wrapper( static_cast<wrapper const &>(*(arg.wrapper_address())));\r
+    }\r
+\r
+    value_initialized & operator=(value_initialized const & arg)\r
+    {\r
+      // Assignment is only allowed when T is non-const.\r
+      BOOST_STATIC_ASSERT( ! is_const<T>::value );\r
+      *wrapper_address() = static_cast<wrapper const &>(*(arg.wrapper_address()));\r
+      return *this;\r
+    }\r
+\r
+    ~value_initialized()\r
+    {\r
+      wrapper_address()->wrapper::~wrapper();\r
+    }\r
+\r
+    T& data() const\r
+    {\r
+      return wrapper_address()->data;\r
+    }\r
+\r
+    void swap(value_initialized & arg)\r
+    {\r
+      ::boost::swap( this->data(), arg.data() );\r
+    }\r
+\r
+    operator T&() const { return this->data(); }\r
+\r
+} ;\r
+\r
+\r
+\r
+template<class T>\r
+T const& get ( value_initialized<T> const& x )\r
+{\r
+  return x.data() ;\r
+}\r
+template<class T>\r
+T& get ( value_initialized<T>& x )\r
+{\r
+  return x.data() ;\r
+}\r
+\r
+template<class T>\r
+void swap ( value_initialized<T> & lhs, value_initialized<T> & rhs )\r
+{\r
+  lhs.swap(rhs) ;\r
+}\r
+\r
+\r
+class initialized_value_t\r
+{\r
+  public :\r
+    \r
+    template <class T> operator T() const\r
+    {\r
+      return get( value_initialized<T>() );\r
+    }\r
+};\r
+\r
+initialized_value_t const initialized_value = {} ;\r
+\r
+\r
+} // namespace boost\r
+\r
+\r
+#endif\r