# /* **************************************************************************
#  *                                                                          *
#  *     (C) Copyright Paul Mensonides 2002.
#  *     Distributed under the Boost Software License, Version 1.0. (See
#  *     accompanying file LICENSE_1_0.txt or copy at
#  *     http://www.boost.org/LICENSE_1_0.txt)
#  *                                                                          *
#  ************************************************************************** */
#
# /* See http://www.boost.org for most recent version. */
#
# include <ndnboost/preprocessor/slot/detail/shared.hpp>
#
# undef NDNBOOST_PP_SLOT_2
#
# undef NDNBOOST_PP_SLOT_2_DIGIT_1
# undef NDNBOOST_PP_SLOT_2_DIGIT_2
# undef NDNBOOST_PP_SLOT_2_DIGIT_3
# undef NDNBOOST_PP_SLOT_2_DIGIT_4
# undef NDNBOOST_PP_SLOT_2_DIGIT_5
# undef NDNBOOST_PP_SLOT_2_DIGIT_6
# undef NDNBOOST_PP_SLOT_2_DIGIT_7
# undef NDNBOOST_PP_SLOT_2_DIGIT_8
# undef NDNBOOST_PP_SLOT_2_DIGIT_9
# undef NDNBOOST_PP_SLOT_2_DIGIT_10
#
# if NDNBOOST_PP_SLOT_TEMP_10 == 0
#    define NDNBOOST_PP_SLOT_2_DIGIT_10 0
# elif NDNBOOST_PP_SLOT_TEMP_10 == 1
#    define NDNBOOST_PP_SLOT_2_DIGIT_10 1
# elif NDNBOOST_PP_SLOT_TEMP_10 == 2
#    define NDNBOOST_PP_SLOT_2_DIGIT_10 2
# elif NDNBOOST_PP_SLOT_TEMP_10 == 3
#    define NDNBOOST_PP_SLOT_2_DIGIT_10 3
# elif NDNBOOST_PP_SLOT_TEMP_10 == 4
#    define NDNBOOST_PP_SLOT_2_DIGIT_10 4
# elif NDNBOOST_PP_SLOT_TEMP_10 == 5
#    define NDNBOOST_PP_SLOT_2_DIGIT_10 5
# elif NDNBOOST_PP_SLOT_TEMP_10 == 6
#    define NDNBOOST_PP_SLOT_2_DIGIT_10 6
# elif NDNBOOST_PP_SLOT_TEMP_10 == 7
#    define NDNBOOST_PP_SLOT_2_DIGIT_10 7
# elif NDNBOOST_PP_SLOT_TEMP_10 == 8
#    define NDNBOOST_PP_SLOT_2_DIGIT_10 8
# elif NDNBOOST_PP_SLOT_TEMP_10 == 9
#    define NDNBOOST_PP_SLOT_2_DIGIT_10 9
# endif
#
# if NDNBOOST_PP_SLOT_TEMP_9 == 0
#    define NDNBOOST_PP_SLOT_2_DIGIT_9 0
# elif NDNBOOST_PP_SLOT_TEMP_9 == 1
#    define NDNBOOST_PP_SLOT_2_DIGIT_9 1
# elif NDNBOOST_PP_SLOT_TEMP_9 == 2
#    define NDNBOOST_PP_SLOT_2_DIGIT_9 2
# elif NDNBOOST_PP_SLOT_TEMP_9 == 3
#    define NDNBOOST_PP_SLOT_2_DIGIT_9 3
# elif NDNBOOST_PP_SLOT_TEMP_9 == 4
#    define NDNBOOST_PP_SLOT_2_DIGIT_9 4
# elif NDNBOOST_PP_SLOT_TEMP_9 == 5
#    define NDNBOOST_PP_SLOT_2_DIGIT_9 5
# elif NDNBOOST_PP_SLOT_TEMP_9 == 6
#    define NDNBOOST_PP_SLOT_2_DIGIT_9 6
# elif NDNBOOST_PP_SLOT_TEMP_9 == 7
#    define NDNBOOST_PP_SLOT_2_DIGIT_9 7
# elif NDNBOOST_PP_SLOT_TEMP_9 == 8
#    define NDNBOOST_PP_SLOT_2_DIGIT_9 8
# elif NDNBOOST_PP_SLOT_TEMP_9 == 9
#    define NDNBOOST_PP_SLOT_2_DIGIT_9 9
# endif
#
# if NDNBOOST_PP_SLOT_TEMP_8 == 0
#    define NDNBOOST_PP_SLOT_2_DIGIT_8 0
# elif NDNBOOST_PP_SLOT_TEMP_8 == 1
#    define NDNBOOST_PP_SLOT_2_DIGIT_8 1
# elif NDNBOOST_PP_SLOT_TEMP_8 == 2
#    define NDNBOOST_PP_SLOT_2_DIGIT_8 2
# elif NDNBOOST_PP_SLOT_TEMP_8 == 3
#    define NDNBOOST_PP_SLOT_2_DIGIT_8 3
# elif NDNBOOST_PP_SLOT_TEMP_8 == 4
#    define NDNBOOST_PP_SLOT_2_DIGIT_8 4
# elif NDNBOOST_PP_SLOT_TEMP_8 == 5
#    define NDNBOOST_PP_SLOT_2_DIGIT_8 5
# elif NDNBOOST_PP_SLOT_TEMP_8 == 6
#    define NDNBOOST_PP_SLOT_2_DIGIT_8 6
# elif NDNBOOST_PP_SLOT_TEMP_8 == 7
#    define NDNBOOST_PP_SLOT_2_DIGIT_8 7
# elif NDNBOOST_PP_SLOT_TEMP_8 == 8
#    define NDNBOOST_PP_SLOT_2_DIGIT_8 8
# elif NDNBOOST_PP_SLOT_TEMP_8 == 9
#    define NDNBOOST_PP_SLOT_2_DIGIT_8 9
# endif
#
# if NDNBOOST_PP_SLOT_TEMP_7 == 0
#    define NDNBOOST_PP_SLOT_2_DIGIT_7 0
# elif NDNBOOST_PP_SLOT_TEMP_7 == 1
#    define NDNBOOST_PP_SLOT_2_DIGIT_7 1
# elif NDNBOOST_PP_SLOT_TEMP_7 == 2
#    define NDNBOOST_PP_SLOT_2_DIGIT_7 2
# elif NDNBOOST_PP_SLOT_TEMP_7 == 3
#    define NDNBOOST_PP_SLOT_2_DIGIT_7 3
# elif NDNBOOST_PP_SLOT_TEMP_7 == 4
#    define NDNBOOST_PP_SLOT_2_DIGIT_7 4
# elif NDNBOOST_PP_SLOT_TEMP_7 == 5
#    define NDNBOOST_PP_SLOT_2_DIGIT_7 5
# elif NDNBOOST_PP_SLOT_TEMP_7 == 6
#    define NDNBOOST_PP_SLOT_2_DIGIT_7 6
# elif NDNBOOST_PP_SLOT_TEMP_7 == 7
#    define NDNBOOST_PP_SLOT_2_DIGIT_7 7
# elif NDNBOOST_PP_SLOT_TEMP_7 == 8
#    define NDNBOOST_PP_SLOT_2_DIGIT_7 8
# elif NDNBOOST_PP_SLOT_TEMP_7 == 9
#    define NDNBOOST_PP_SLOT_2_DIGIT_7 9
# endif
#
# if NDNBOOST_PP_SLOT_TEMP_6 == 0
#    define NDNBOOST_PP_SLOT_2_DIGIT_6 0
# elif NDNBOOST_PP_SLOT_TEMP_6 == 1
#    define NDNBOOST_PP_SLOT_2_DIGIT_6 1
# elif NDNBOOST_PP_SLOT_TEMP_6 == 2
#    define NDNBOOST_PP_SLOT_2_DIGIT_6 2
# elif NDNBOOST_PP_SLOT_TEMP_6 == 3
#    define NDNBOOST_PP_SLOT_2_DIGIT_6 3
# elif NDNBOOST_PP_SLOT_TEMP_6 == 4
#    define NDNBOOST_PP_SLOT_2_DIGIT_6 4
# elif NDNBOOST_PP_SLOT_TEMP_6 == 5
#    define NDNBOOST_PP_SLOT_2_DIGIT_6 5
# elif NDNBOOST_PP_SLOT_TEMP_6 == 6
#    define NDNBOOST_PP_SLOT_2_DIGIT_6 6
# elif NDNBOOST_PP_SLOT_TEMP_6 == 7
#    define NDNBOOST_PP_SLOT_2_DIGIT_6 7
# elif NDNBOOST_PP_SLOT_TEMP_6 == 8
#    define NDNBOOST_PP_SLOT_2_DIGIT_6 8
# elif NDNBOOST_PP_SLOT_TEMP_6 == 9
#    define NDNBOOST_PP_SLOT_2_DIGIT_6 9
# endif
#
# if NDNBOOST_PP_SLOT_TEMP_5 == 0
#    define NDNBOOST_PP_SLOT_2_DIGIT_5 0
# elif NDNBOOST_PP_SLOT_TEMP_5 == 1
#    define NDNBOOST_PP_SLOT_2_DIGIT_5 1
# elif NDNBOOST_PP_SLOT_TEMP_5 == 2
#    define NDNBOOST_PP_SLOT_2_DIGIT_5 2
# elif NDNBOOST_PP_SLOT_TEMP_5 == 3
#    define NDNBOOST_PP_SLOT_2_DIGIT_5 3
# elif NDNBOOST_PP_SLOT_TEMP_5 == 4
#    define NDNBOOST_PP_SLOT_2_DIGIT_5 4
# elif NDNBOOST_PP_SLOT_TEMP_5 == 5
#    define NDNBOOST_PP_SLOT_2_DIGIT_5 5
# elif NDNBOOST_PP_SLOT_TEMP_5 == 6
#    define NDNBOOST_PP_SLOT_2_DIGIT_5 6
# elif NDNBOOST_PP_SLOT_TEMP_5 == 7
#    define NDNBOOST_PP_SLOT_2_DIGIT_5 7
# elif NDNBOOST_PP_SLOT_TEMP_5 == 8
#    define NDNBOOST_PP_SLOT_2_DIGIT_5 8
# elif NDNBOOST_PP_SLOT_TEMP_5 == 9
#    define NDNBOOST_PP_SLOT_2_DIGIT_5 9
# endif
#
# if NDNBOOST_PP_SLOT_TEMP_4 == 0
#    define NDNBOOST_PP_SLOT_2_DIGIT_4 0
# elif NDNBOOST_PP_SLOT_TEMP_4 == 1
#    define NDNBOOST_PP_SLOT_2_DIGIT_4 1
# elif NDNBOOST_PP_SLOT_TEMP_4 == 2
#    define NDNBOOST_PP_SLOT_2_DIGIT_4 2
# elif NDNBOOST_PP_SLOT_TEMP_4 == 3
#    define NDNBOOST_PP_SLOT_2_DIGIT_4 3
# elif NDNBOOST_PP_SLOT_TEMP_4 == 4
#    define NDNBOOST_PP_SLOT_2_DIGIT_4 4
# elif NDNBOOST_PP_SLOT_TEMP_4 == 5
#    define NDNBOOST_PP_SLOT_2_DIGIT_4 5
# elif NDNBOOST_PP_SLOT_TEMP_4 == 6
#    define NDNBOOST_PP_SLOT_2_DIGIT_4 6
# elif NDNBOOST_PP_SLOT_TEMP_4 == 7
#    define NDNBOOST_PP_SLOT_2_DIGIT_4 7
# elif NDNBOOST_PP_SLOT_TEMP_4 == 8
#    define NDNBOOST_PP_SLOT_2_DIGIT_4 8
# elif NDNBOOST_PP_SLOT_TEMP_4 == 9
#    define NDNBOOST_PP_SLOT_2_DIGIT_4 9
# endif
#
# if NDNBOOST_PP_SLOT_TEMP_3 == 0
#    define NDNBOOST_PP_SLOT_2_DIGIT_3 0
# elif NDNBOOST_PP_SLOT_TEMP_3 == 1
#    define NDNBOOST_PP_SLOT_2_DIGIT_3 1
# elif NDNBOOST_PP_SLOT_TEMP_3 == 2
#    define NDNBOOST_PP_SLOT_2_DIGIT_3 2
# elif NDNBOOST_PP_SLOT_TEMP_3 == 3
#    define NDNBOOST_PP_SLOT_2_DIGIT_3 3
# elif NDNBOOST_PP_SLOT_TEMP_3 == 4
#    define NDNBOOST_PP_SLOT_2_DIGIT_3 4
# elif NDNBOOST_PP_SLOT_TEMP_3 == 5
#    define NDNBOOST_PP_SLOT_2_DIGIT_3 5
# elif NDNBOOST_PP_SLOT_TEMP_3 == 6
#    define NDNBOOST_PP_SLOT_2_DIGIT_3 6
# elif NDNBOOST_PP_SLOT_TEMP_3 == 7
#    define NDNBOOST_PP_SLOT_2_DIGIT_3 7
# elif NDNBOOST_PP_SLOT_TEMP_3 == 8
#    define NDNBOOST_PP_SLOT_2_DIGIT_3 8
# elif NDNBOOST_PP_SLOT_TEMP_3 == 9
#    define NDNBOOST_PP_SLOT_2_DIGIT_3 9
# endif
#
# if NDNBOOST_PP_SLOT_TEMP_2 == 0
#    define NDNBOOST_PP_SLOT_2_DIGIT_2 0
# elif NDNBOOST_PP_SLOT_TEMP_2 == 1
#    define NDNBOOST_PP_SLOT_2_DIGIT_2 1
# elif NDNBOOST_PP_SLOT_TEMP_2 == 2
#    define NDNBOOST_PP_SLOT_2_DIGIT_2 2
# elif NDNBOOST_PP_SLOT_TEMP_2 == 3
#    define NDNBOOST_PP_SLOT_2_DIGIT_2 3
# elif NDNBOOST_PP_SLOT_TEMP_2 == 4
#    define NDNBOOST_PP_SLOT_2_DIGIT_2 4
# elif NDNBOOST_PP_SLOT_TEMP_2 == 5
#    define NDNBOOST_PP_SLOT_2_DIGIT_2 5
# elif NDNBOOST_PP_SLOT_TEMP_2 == 6
#    define NDNBOOST_PP_SLOT_2_DIGIT_2 6
# elif NDNBOOST_PP_SLOT_TEMP_2 == 7
#    define NDNBOOST_PP_SLOT_2_DIGIT_2 7
# elif NDNBOOST_PP_SLOT_TEMP_2 == 8
#    define NDNBOOST_PP_SLOT_2_DIGIT_2 8
# elif NDNBOOST_PP_SLOT_TEMP_2 == 9
#    define NDNBOOST_PP_SLOT_2_DIGIT_2 9
# endif
#
# if NDNBOOST_PP_SLOT_TEMP_1 == 0
#    define NDNBOOST_PP_SLOT_2_DIGIT_1 0
# elif NDNBOOST_PP_SLOT_TEMP_1 == 1
#    define NDNBOOST_PP_SLOT_2_DIGIT_1 1
# elif NDNBOOST_PP_SLOT_TEMP_1 == 2
#    define NDNBOOST_PP_SLOT_2_DIGIT_1 2
# elif NDNBOOST_PP_SLOT_TEMP_1 == 3
#    define NDNBOOST_PP_SLOT_2_DIGIT_1 3
# elif NDNBOOST_PP_SLOT_TEMP_1 == 4
#    define NDNBOOST_PP_SLOT_2_DIGIT_1 4
# elif NDNBOOST_PP_SLOT_TEMP_1 == 5
#    define NDNBOOST_PP_SLOT_2_DIGIT_1 5
# elif NDNBOOST_PP_SLOT_TEMP_1 == 6
#    define NDNBOOST_PP_SLOT_2_DIGIT_1 6
# elif NDNBOOST_PP_SLOT_TEMP_1 == 7
#    define NDNBOOST_PP_SLOT_2_DIGIT_1 7
# elif NDNBOOST_PP_SLOT_TEMP_1 == 8
#    define NDNBOOST_PP_SLOT_2_DIGIT_1 8
# elif NDNBOOST_PP_SLOT_TEMP_1 == 9
#    define NDNBOOST_PP_SLOT_2_DIGIT_1 9
# endif
#
# if NDNBOOST_PP_SLOT_2_DIGIT_10
#    define NDNBOOST_PP_SLOT_2() NDNBOOST_PP_SLOT_CC_10(NDNBOOST_PP_SLOT_2_DIGIT_10, NDNBOOST_PP_SLOT_2_DIGIT_9, NDNBOOST_PP_SLOT_2_DIGIT_8, NDNBOOST_PP_SLOT_2_DIGIT_7, NDNBOOST_PP_SLOT_2_DIGIT_6, NDNBOOST_PP_SLOT_2_DIGIT_5, NDNBOOST_PP_SLOT_2_DIGIT_4, NDNBOOST_PP_SLOT_2_DIGIT_3, NDNBOOST_PP_SLOT_2_DIGIT_2, NDNBOOST_PP_SLOT_2_DIGIT_1)
# elif NDNBOOST_PP_SLOT_2_DIGIT_9
#    define NDNBOOST_PP_SLOT_2() NDNBOOST_PP_SLOT_CC_9(NDNBOOST_PP_SLOT_2_DIGIT_9, NDNBOOST_PP_SLOT_2_DIGIT_8, NDNBOOST_PP_SLOT_2_DIGIT_7, NDNBOOST_PP_SLOT_2_DIGIT_6, NDNBOOST_PP_SLOT_2_DIGIT_5, NDNBOOST_PP_SLOT_2_DIGIT_4, NDNBOOST_PP_SLOT_2_DIGIT_3, NDNBOOST_PP_SLOT_2_DIGIT_2, NDNBOOST_PP_SLOT_2_DIGIT_1)
# elif NDNBOOST_PP_SLOT_2_DIGIT_8
#    define NDNBOOST_PP_SLOT_2() NDNBOOST_PP_SLOT_CC_8(NDNBOOST_PP_SLOT_2_DIGIT_8, NDNBOOST_PP_SLOT_2_DIGIT_7, NDNBOOST_PP_SLOT_2_DIGIT_6, NDNBOOST_PP_SLOT_2_DIGIT_5, NDNBOOST_PP_SLOT_2_DIGIT_4, NDNBOOST_PP_SLOT_2_DIGIT_3, NDNBOOST_PP_SLOT_2_DIGIT_2, NDNBOOST_PP_SLOT_2_DIGIT_1)
# elif NDNBOOST_PP_SLOT_2_DIGIT_7
#    define NDNBOOST_PP_SLOT_2() NDNBOOST_PP_SLOT_CC_7(NDNBOOST_PP_SLOT_2_DIGIT_7, NDNBOOST_PP_SLOT_2_DIGIT_6, NDNBOOST_PP_SLOT_2_DIGIT_5, NDNBOOST_PP_SLOT_2_DIGIT_4, NDNBOOST_PP_SLOT_2_DIGIT_3, NDNBOOST_PP_SLOT_2_DIGIT_2, NDNBOOST_PP_SLOT_2_DIGIT_1)
# elif NDNBOOST_PP_SLOT_2_DIGIT_6
#    define NDNBOOST_PP_SLOT_2() NDNBOOST_PP_SLOT_CC_6(NDNBOOST_PP_SLOT_2_DIGIT_6, NDNBOOST_PP_SLOT_2_DIGIT_5, NDNBOOST_PP_SLOT_2_DIGIT_4, NDNBOOST_PP_SLOT_2_DIGIT_3, NDNBOOST_PP_SLOT_2_DIGIT_2, NDNBOOST_PP_SLOT_2_DIGIT_1)
# elif NDNBOOST_PP_SLOT_2_DIGIT_5
#    define NDNBOOST_PP_SLOT_2() NDNBOOST_PP_SLOT_CC_5(NDNBOOST_PP_SLOT_2_DIGIT_5, NDNBOOST_PP_SLOT_2_DIGIT_4, NDNBOOST_PP_SLOT_2_DIGIT_3, NDNBOOST_PP_SLOT_2_DIGIT_2, NDNBOOST_PP_SLOT_2_DIGIT_1)
# elif NDNBOOST_PP_SLOT_2_DIGIT_4
#    define NDNBOOST_PP_SLOT_2() NDNBOOST_PP_SLOT_CC_4(NDNBOOST_PP_SLOT_2_DIGIT_4, NDNBOOST_PP_SLOT_2_DIGIT_3, NDNBOOST_PP_SLOT_2_DIGIT_2, NDNBOOST_PP_SLOT_2_DIGIT_1)
# elif NDNBOOST_PP_SLOT_2_DIGIT_3
#    define NDNBOOST_PP_SLOT_2() NDNBOOST_PP_SLOT_CC_3(NDNBOOST_PP_SLOT_2_DIGIT_3, NDNBOOST_PP_SLOT_2_DIGIT_2, NDNBOOST_PP_SLOT_2_DIGIT_1)
# elif NDNBOOST_PP_SLOT_2_DIGIT_2
#    define NDNBOOST_PP_SLOT_2() NDNBOOST_PP_SLOT_CC_2(NDNBOOST_PP_SLOT_2_DIGIT_2, NDNBOOST_PP_SLOT_2_DIGIT_1)
# else
#    define NDNBOOST_PP_SLOT_2() NDNBOOST_PP_SLOT_2_DIGIT_1
# endif
