code:
# /* **************************************************************************
#  *                                                                          *
#  *     (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. */
#
# ifndef BOOST_PREPROCESSOR_SEQ_ELEM_HPP
# define BOOST_PREPROCESSOR_SEQ_ELEM_HPP
#
# include <boost/preprocessor/cat.hpp>
# include <boost/preprocessor/config/config.hpp>
# include <boost/preprocessor/facilities/empty.hpp>
#
# /* BOOST_PP_SEQ_ELEM */
#
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
#    define BOOST_PP_SEQ_ELEM(i, seq) BOOST_PP_SEQ_ELEM_I(i, seq)
# else
#    define BOOST_PP_SEQ_ELEM(i, seq) BOOST_PP_SEQ_ELEM_I((i, seq))
# endif
#
# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
#    define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II((BOOST_PP_SEQ_ELEM_ ## i seq))
#    define BOOST_PP_SEQ_ELEM_II(res) BOOST_PP_SEQ_ELEM_IV(BOOST_PP_SEQ_ELEM_III res)
#    define BOOST_PP_SEQ_ELEM_III(x, _) x BOOST_PP_EMPTY()
#    define BOOST_PP_SEQ_ELEM_IV(x) x
# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
#    define BOOST_PP_SEQ_ELEM_I(par) BOOST_PP_SEQ_ELEM_II ## par
#    define BOOST_PP_SEQ_ELEM_II(i, seq) BOOST_PP_SEQ_ELEM_III(BOOST_PP_SEQ_ELEM_ ## i ## seq)
#    define BOOST_PP_SEQ_ELEM_III(im) BOOST_PP_SEQ_ELEM_IV(im)
#    define BOOST_PP_SEQ_ELEM_IV(x, _) x
# else
#    if defined(__IBMC__) || defined(__IBMCPP__)
#        define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_CAT(BOOST_PP_SEQ_ELEM_ ## i, seq))
#    else
#        define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_SEQ_ELEM_ ## i seq)
#    endif
#    define BOOST_PP_SEQ_ELEM_II(im) BOOST_PP_SEQ_ELEM_III(im)
#    define BOOST_PP_SEQ_ELEM_III(x, _) x
# endif
#
# define BOOST_PP_SEQ_ELEM_0(x) x, BOOST_PP_NIL
# define BOOST_PP_SEQ_ELEM_1(_) BOOST_PP_SEQ_ELEM_0
# define BOOST_PP_SEQ_ELEM_2(_) BOOST_PP_SEQ_ELEM_1
# define BOOST_PP_SEQ_ELEM_3(_) BOOST_PP_SEQ_ELEM_2
# define BOOST_PP_SEQ_ELEM_4(_) BOOST_PP_SEQ_ELEM_3
# define BOOST_PP_SEQ_ELEM_5(_) BOOST_PP_SEQ_ELEM_4
# define BOOST_PP_SEQ_ELEM_6(_) BOOST_PP_SEQ_ELEM_5
# define BOOST_PP_SEQ_ELEM_7(_) BOOST_PP_SEQ_ELEM_6
# define BOOST_PP_SEQ_ELEM_8(_) BOOST_PP_SEQ_ELEM_7
# define BOOST_PP_SEQ_ELEM_9(_) BOOST_PP_SEQ_ELEM_8
# define BOOST_PP_SEQ_ELEM_10(_) BOOST_PP_SEQ_ELEM_9
# define BOOST_PP_SEQ_ELEM_11(_) BOOST_PP_SEQ_ELEM_10
# define BOOST_PP_SEQ_ELEM_12(_) BOOST_PP_SEQ_ELEM_11
# define BOOST_PP_SEQ_ELEM_13(_) BOOST_PP_SEQ_ELEM_12
# define BOOST_PP_SEQ_ELEM_14(_) BOOST_PP_SEQ_ELEM_13
# define BOOST_PP_SEQ_ELEM_15(_) BOOST_PP_SEQ_ELEM_14
# define BOOST_PP_SEQ_ELEM_16(_) BOOST_PP_SEQ_ELEM_15
# define BOOST_PP_SEQ_ELEM_17(_) BOOST_PP_SEQ_ELEM_16
# define BOOST_PP_SEQ_ELEM_18(_) BOOST_PP_SEQ_ELEM_17
# define BOOST_PP_SEQ_ELEM_19(_) BOOST_PP_SEQ_ELEM_18
# define BOOST_PP_SEQ_ELEM_20(_) BOOST_PP_SEQ_ELEM_19
# define BOOST_PP_SEQ_ELEM_21(_) BOOST_PP_SEQ_ELEM_20
# define BOOST_PP_SEQ_ELEM_22(_) BOOST_PP_SEQ_ELEM_21
# define BOOST_PP_SEQ_ELEM_23(_) BOOST_PP_SEQ_ELEM_22
# define BOOST_PP_SEQ_ELEM_24(_) BOOST_PP_SEQ_ELEM_23
# define BOOST_PP_SEQ_ELEM_25(_) BOOST_PP_SEQ_ELEM_24
# define BOOST_PP_SEQ_ELEM_26(_) BOOST_PP_SEQ_ELEM_25
# define BOOST_PP_SEQ_ELEM_27(_) BOOST_PP_SEQ_ELEM_26
# define BOOST_PP_SEQ_ELEM_28(_) BOOST_PP_SEQ_ELEM_27
# define BOOST_PP_SEQ_ELEM_29(_) BOOST_PP_SEQ_ELEM_28
# define BOOST_PP_SEQ_ELEM_30(_) BOOST_PP_SEQ_ELEM_29
# define BOOST_PP_SEQ_ELEM_31(_) BOOST_PP_SEQ_ELEM_30
# define BOOST_PP_SEQ_ELEM_32(_) BOOST_PP_SEQ_ELEM_31
# define BOOST_PP_SEQ_ELEM_33(_) BOOST_PP_SEQ_ELEM_32
# define BOOST_PP_SEQ_ELEM_34(_) BOOST_PP_SEQ_ELEM_33
# define BOOST_PP_SEQ_ELEM_35(_) BOOST_PP_SEQ_ELEM_34
# define BOOST_PP_SEQ_ELEM_36(_) BOOST_PP_SEQ_ELEM_35
# define BOOST_PP_SEQ_ELEM_37(_) BOOST_PP_SEQ_ELEM_36
# define BOOST_PP_SEQ_ELEM_38(_) BOOST_PP_SEQ_ELEM_37
# define BOOST_PP_SEQ_ELEM_39(_) BOOST_PP_SEQ_ELEM_38
# define BOOST_PP_SEQ_ELEM_40(_) BOOST_PP_SEQ_ELEM_39
# define BOOST_PP_SEQ_ELEM_41(_) BOOST_PP_SEQ_ELEM_40
# define BOOST_PP_SEQ_ELEM_42(_) BOOST_PP_SEQ_ELEM_41
# define BOOST_PP_SEQ_ELEM_43(_) BOOST_PP_SEQ_ELEM_42
# define BOOST_PP_SEQ_ELEM_44(_) BOOST_PP_SEQ_ELEM_43
# define BOOST_PP_SEQ_ELEM_45(_) BOOST_PP_SEQ_ELEM_44
# define BOOST_PP_SEQ_ELEM_46(_) BOOST_PP_SEQ_ELEM_45
# define BOOST_PP_SEQ_ELEM_47(_) BOOST_PP_SEQ_ELEM_46
# define BOOST_PP_SEQ_ELEM_48(_) BOOST_PP_SEQ_ELEM_47
# define BOOST_PP_SEQ_ELEM_49(_) BOOST_PP_SEQ_ELEM_48
# define BOOST_PP_SEQ_ELEM_50(_) BOOST_PP_SEQ_ELEM_49
# define BOOST_PP_SEQ_ELEM_51(_) BOOST_PP_SEQ_ELEM_50
# define BOOST_PP_SEQ_ELEM_52(_) BOOST_PP_SEQ_ELEM_51
# define BOOST_PP_SEQ_ELEM_53(_) BOOST_PP_SEQ_ELEM_52
# define BOOST_PP_SEQ_ELEM_54(_) BOOST_PP_SEQ_ELEM_53
# define BOOST_PP_SEQ_ELEM_55(_) BOOST_PP_SEQ_ELEM_54
# define BOOST_PP_SEQ_ELEM_56(_) BOOST_PP_SEQ_ELEM_55
# define BOOST_PP_SEQ_ELEM_57(_) BOOST_PP_SEQ_ELEM_56
# define BOOST_PP_SEQ_ELEM_58(_) BOOST_PP_SEQ_ELEM_57
# define BOOST_PP_SEQ_ELEM_59(_) BOOST_PP_SEQ_ELEM_58
# define BOOST_PP_SEQ_ELEM_60(_) BOOST_PP_SEQ_ELEM_59
# define BOOST_PP_SEQ_ELEM_61(_) BOOST_PP_SEQ_ELEM_60
# define BOOST_PP_SEQ_ELEM_62(_) BOOST_PP_SEQ_ELEM_61
# define BOOST_PP_SEQ_ELEM_63(_) BOOST_PP_SEQ_ELEM_62
# define BOOST_PP_SEQ_ELEM_64(_) BOOST_PP_SEQ_ELEM_63
# define BOOST_PP_SEQ_ELEM_65(_) BOOST_PP_SEQ_ELEM_64
# define BOOST_PP_SEQ_ELEM_66(_) BOOST_PP_SEQ_ELEM_65
# define BOOST_PP_SEQ_ELEM_67(_) BOOST_PP_SEQ_ELEM_66
# define BOOST_PP_SEQ_ELEM_68(_) BOOST_PP_SEQ_ELEM_67
# define BOOST_PP_SEQ_ELEM_69(_) BOOST_PP_SEQ_ELEM_68
# define BOOST_PP_SEQ_ELEM_70(_) BOOST_PP_SEQ_ELEM_69
# define BOOST_PP_SEQ_ELEM_71(_) BOOST_PP_SEQ_ELEM_70
# define BOOST_PP_SEQ_ELEM_72(_) BOOST_PP_SEQ_ELEM_71
# define BOOST_PP_SEQ_ELEM_73(_) BOOST_PP_SEQ_ELEM_72
# define BOOST_PP_SEQ_ELEM_74(_) BOOST_PP_SEQ_ELEM_73
# define BOOST_PP_SEQ_ELEM_75(_) BOOST_PP_SEQ_ELEM_74
# define BOOST_PP_SEQ_ELEM_76(_) BOOST_PP_SEQ_ELEM_75
# define BOOST_PP_SEQ_ELEM_77(_) BOOST_PP_SEQ_ELEM_76
# define BOOST_PP_SEQ_ELEM_78(_) BOOST_PP_SEQ_ELEM_77
# define BOOST_PP_SEQ_ELEM_79(_) BOOST_PP_SEQ_ELEM_78
# define BOOST_PP_SEQ_ELEM_80(_) BOOST_PP_SEQ_ELEM_79
# define BOOST_PP_SEQ_ELEM_81(_) BOOST_PP_SEQ_ELEM_80
# define BOOST_PP_SEQ_ELEM_82(_) BOOST_PP_SEQ_ELEM_81
# define BOOST_PP_SEQ_ELEM_83(_) BOOST_PP_SEQ_ELEM_82
# define BOOST_PP_SEQ_ELEM_84(_) BOOST_PP_SEQ_ELEM_83
# define BOOST_PP_SEQ_ELEM_85(_) BOOST_PP_SEQ_ELEM_84
# define BOOST_PP_SEQ_ELEM_86(_) BOOST_PP_SEQ_ELEM_85
# define BOOST_PP_SEQ_ELEM_87(_) BOOST_PP_SEQ_ELEM_86
# define BOOST_PP_SEQ_ELEM_88(_) BOOST_PP_SEQ_ELEM_87
# define BOOST_PP_SEQ_ELEM_89(_) BOOST_PP_SEQ_ELEM_88
# define BOOST_PP_SEQ_ELEM_90(_) BOOST_PP_SEQ_ELEM_89
# define BOOST_PP_SEQ_ELEM_91(_) BOOST_PP_SEQ_ELEM_90
# define BOOST_PP_SEQ_ELEM_92(_) BOOST_PP_SEQ_ELEM_91
# define BOOST_PP_SEQ_ELEM_93(_) BOOST_PP_SEQ_ELEM_92
# define BOOST_PP_SEQ_ELEM_94(_) BOOST_PP_SEQ_ELEM_93
# define BOOST_PP_SEQ_ELEM_95(_) BOOST_PP_SEQ_ELEM_94
# define BOOST_PP_SEQ_ELEM_96(_) BOOST_PP_SEQ_ELEM_95
# define BOOST_PP_SEQ_ELEM_97(_) BOOST_PP_SEQ_ELEM_96
# define BOOST_PP_SEQ_ELEM_98(_) BOOST_PP_SEQ_ELEM_97
# define BOOST_PP_SEQ_ELEM_99(_) BOOST_PP_SEQ_ELEM_98
# define BOOST_PP_SEQ_ELEM_100(_) BOOST_PP_SEQ_ELEM_99
# define BOOST_PP_SEQ_ELEM_101(_) BOOST_PP_SEQ_ELEM_100
# define BOOST_PP_SEQ_ELEM_102(_) BOOST_PP_SEQ_ELEM_101
# define BOOST_PP_SEQ_ELEM_103(_) BOOST_PP_SEQ_ELEM_102
# define BOOST_PP_SEQ_ELEM_104(_) BOOST_PP_SEQ_ELEM_103
# define BOOST_PP_SEQ_ELEM_105(_) BOOST_PP_SEQ_ELEM_104
# define BOOST_PP_SEQ_ELEM_106(_) BOOST_PP_SEQ_ELEM_105
# define BOOST_PP_SEQ_ELEM_107(_) BOOST_PP_SEQ_ELEM_106
# define BOOST_PP_SEQ_ELEM_108(_) BOOST_PP_SEQ_ELEM_107
# define BOOST_PP_SEQ_ELEM_109(_) BOOST_PP_SEQ_ELEM_108
# define BOOST_PP_SEQ_ELEM_110(_) BOOST_PP_SEQ_ELEM_109
# define BOOST_PP_SEQ_ELEM_111(_) BOOST_PP_SEQ_ELEM_110
# define BOOST_PP_SEQ_ELEM_112(_) BOOST_PP_SEQ_ELEM_111
# define BOOST_PP_SEQ_ELEM_113(_) BOOST_PP_SEQ_ELEM_112
# define BOOST_PP_SEQ_ELEM_114(_) BOOST_PP_SEQ_ELEM_113
# define BOOST_PP_SEQ_ELEM_115(_) BOOST_PP_SEQ_ELEM_114
# define BOOST_PP_SEQ_ELEM_116(_) BOOST_PP_SEQ_ELEM_115
# define BOOST_PP_SEQ_ELEM_117(_) BOOST_PP_SEQ_ELEM_116
# define BOOST_PP_SEQ_ELEM_118(_) BOOST_PP_SEQ_ELEM_117
# define BOOST_PP_SEQ_ELEM_119(_) BOOST_PP_SEQ_ELEM_118
# define BOOST_PP_SEQ_ELEM_120(_) BOOST_PP_SEQ_ELEM_119
# define BOOST_PP_SEQ_ELEM_121(_) BOOST_PP_SEQ_ELEM_120
# define BOOST_PP_SEQ_ELEM_122(_) BOOST_PP_SEQ_ELEM_121
# define BOOST_PP_SEQ_ELEM_123(_) BOOST_PP_SEQ_ELEM_122
# define BOOST_PP_SEQ_ELEM_124(_) BOOST_PP_SEQ_ELEM_123
# define BOOST_PP_SEQ_ELEM_125(_) BOOST_PP_SEQ_ELEM_124
# define BOOST_PP_SEQ_ELEM_126(_) BOOST_PP_SEQ_ELEM_125
# define BOOST_PP_SEQ_ELEM_127(_) BOOST_PP_SEQ_ELEM_126
# define BOOST_PP_SEQ_ELEM_128(_) BOOST_PP_SEQ_ELEM_127
# define BOOST_PP_SEQ_ELEM_129(_) BOOST_PP_SEQ_ELEM_128
# define BOOST_PP_SEQ_ELEM_130(_) BOOST_PP_SEQ_ELEM_129
# define BOOST_PP_SEQ_ELEM_131(_) BOOST_PP_SEQ_ELEM_130
# define BOOST_PP_SEQ_ELEM_132(_) BOOST_PP_SEQ_ELEM_131
# define BOOST_PP_SEQ_ELEM_133(_) BOOST_PP_SEQ_ELEM_132
# define BOOST_PP_SEQ_ELEM_134(_) BOOST_PP_SEQ_ELEM_133
# define BOOST_PP_SEQ_ELEM_135(_) BOOST_PP_SEQ_ELEM_134
# define BOOST_PP_SEQ_ELEM_136(_) BOOST_PP_SEQ_ELEM_135
# define BOOST_PP_SEQ_ELEM_137(_) BOOST_PP_SEQ_ELEM_136
# define BOOST_PP_SEQ_ELEM_138(_) BOOST_PP_SEQ_ELEM_137
# define BOOST_PP_SEQ_ELEM_139(_) BOOST_PP_SEQ_ELEM_138
# define BOOST_PP_SEQ_ELEM_140(_) BOOST_PP_SEQ_ELEM_139
# define BOOST_PP_SEQ_ELEM_141(_) BOOST_PP_SEQ_ELEM_140
# define BOOST_PP_SEQ_ELEM_142(_) BOOST_PP_SEQ_ELEM_141
# define BOOST_PP_SEQ_ELEM_143(_) BOOST_PP_SEQ_ELEM_142
# define BOOST_PP_SEQ_ELEM_144(_) BOOST_PP_SEQ_ELEM_143
# define BOOST_PP_SEQ_ELEM_145(_) BOOST_PP_SEQ_ELEM_144
# define BOOST_PP_SEQ_ELEM_146(_) BOOST_PP_SEQ_ELEM_145
# define BOOST_PP_SEQ_ELEM_147(_) BOOST_PP_SEQ_ELEM_146
# define BOOST_PP_SEQ_ELEM_148(_) BOOST_PP_SEQ_ELEM_147
# define BOOST_PP_SEQ_ELEM_149(_) BOOST_PP_SEQ_ELEM_148
# define BOOST_PP_SEQ_ELEM_150(_) BOOST_PP_SEQ_ELEM_149
# define BOOST_PP_SEQ_ELEM_151(_) BOOST_PP_SEQ_ELEM_150
# define BOOST_PP_SEQ_ELEM_152(_) BOOST_PP_SEQ_ELEM_151
# define BOOST_PP_SEQ_ELEM_153(_) BOOST_PP_SEQ_ELEM_152
# define BOOST_PP_SEQ_ELEM_154(_) BOOST_PP_SEQ_ELEM_153
# define BOOST_PP_SEQ_ELEM_155(_) BOOST_PP_SEQ_ELEM_154
# define BOOST_PP_SEQ_ELEM_156(_) BOOST_PP_SEQ_ELEM_155
# define BOOST_PP_SEQ_ELEM_157(_) BOOST_PP_SEQ_ELEM_156
# define BOOST_PP_SEQ_ELEM_158(_) BOOST_PP_SEQ_ELEM_157
# define BOOST_PP_SEQ_ELEM_159(_) BOOST_PP_SEQ_ELEM_158
# define BOOST_PP_SEQ_ELEM_160(_) BOOST_PP_SEQ_ELEM_159
# define BOOST_PP_SEQ_ELEM_161(_) BOOST_PP_SEQ_ELEM_160
# define BOOST_PP_SEQ_ELEM_162(_) BOOST_PP_SEQ_ELEM_161
# define BOOST_PP_SEQ_ELEM_163(_) BOOST_PP_SEQ_ELEM_162
# define BOOST_PP_SEQ_ELEM_164(_) BOOST_PP_SEQ_ELEM_163
# define BOOST_PP_SEQ_ELEM_165(_) BOOST_PP_SEQ_ELEM_164
# define BOOST_PP_SEQ_ELEM_166(_) BOOST_PP_SEQ_ELEM_165
# define BOOST_PP_SEQ_ELEM_167(_) BOOST_PP_SEQ_ELEM_166
# define BOOST_PP_SEQ_ELEM_168(_) BOOST_PP_SEQ_ELEM_167
# define BOOST_PP_SEQ_ELEM_169(_) BOOST_PP_SEQ_ELEM_168
# define BOOST_PP_SEQ_ELEM_170(_) BOOST_PP_SEQ_ELEM_169
# define BOOST_PP_SEQ_ELEM_171(_) BOOST_PP_SEQ_ELEM_170
# define BOOST_PP_SEQ_ELEM_172(_) BOOST_PP_SEQ_ELEM_171
# define BOOST_PP_SEQ_ELEM_173(_) BOOST_PP_SEQ_ELEM_172
# define BOOST_PP_SEQ_ELEM_174(_) BOOST_PP_SEQ_ELEM_173
# define BOOST_PP_SEQ_ELEM_175(_) BOOST_PP_SEQ_ELEM_174
# define BOOST_PP_SEQ_ELEM_176(_) BOOST_PP_SEQ_ELEM_175
# define BOOST_PP_SEQ_ELEM_177(_) BOOST_PP_SEQ_ELEM_176
# define BOOST_PP_SEQ_ELEM_178(_) BOOST_PP_SEQ_ELEM_177
# define BOOST_PP_SEQ_ELEM_179(_) BOOST_PP_SEQ_ELEM_178
# define BOOST_PP_SEQ_ELEM_180(_) BOOST_PP_SEQ_ELEM_179
# define BOOST_PP_SEQ_ELEM_181(_) BOOST_PP_SEQ_ELEM_180
# define BOOST_PP_SEQ_ELEM_182(_) BOOST_PP_SEQ_ELEM_181
# define BOOST_PP_SEQ_ELEM_183(_) BOOST_PP_SEQ_ELEM_182
# define BOOST_PP_SEQ_ELEM_184(_) BOOST_PP_SEQ_ELEM_183
# define BOOST_PP_SEQ_ELEM_185(_) BOOST_PP_SEQ_ELEM_184
# define BOOST_PP_SEQ_ELEM_186(_) BOOST_PP_SEQ_ELEM_185
# define BOOST_PP_SEQ_ELEM_187(_) BOOST_PP_SEQ_ELEM_186
# define BOOST_PP_SEQ_ELEM_188(_) BOOST_PP_SEQ_ELEM_187
# define BOOST_PP_SEQ_ELEM_189(_) BOOST_PP_SEQ_ELEM_188
# define BOOST_PP_SEQ_ELEM_190(_) BOOST_PP_SEQ_ELEM_189
# define BOOST_PP_SEQ_ELEM_191(_) BOOST_PP_SEQ_ELEM_190
# define BOOST_PP_SEQ_ELEM_192(_) BOOST_PP_SEQ_ELEM_191
# define BOOST_PP_SEQ_ELEM_193(_) BOOST_PP_SEQ_ELEM_192
# define BOOST_PP_SEQ_ELEM_194(_) BOOST_PP_SEQ_ELEM_193
# define BOOST_PP_SEQ_ELEM_195(_) BOOST_PP_SEQ_ELEM_194
# define BOOST_PP_SEQ_ELEM_196(_) BOOST_PP_SEQ_ELEM_195
# define BOOST_PP_SEQ_ELEM_197(_) BOOST_PP_SEQ_ELEM_196
# define BOOST_PP_SEQ_ELEM_198(_) BOOST_PP_SEQ_ELEM_197
# define BOOST_PP_SEQ_ELEM_199(_) BOOST_PP_SEQ_ELEM_198
# define BOOST_PP_SEQ_ELEM_200(_) BOOST_PP_SEQ_ELEM_199
# define BOOST_PP_SEQ_ELEM_201(_) BOOST_PP_SEQ_ELEM_200
# define BOOST_PP_SEQ_ELEM_202(_) BOOST_PP_SEQ_ELEM_201
# define BOOST_PP_SEQ_ELEM_203(_) BOOST_PP_SEQ_ELEM_202
# define BOOST_PP_SEQ_ELEM_204(_) BOOST_PP_SEQ_ELEM_203
# define BOOST_PP_SEQ_ELEM_205(_) BOOST_PP_SEQ_ELEM_204
# define BOOST_PP_SEQ_ELEM_206(_) BOOST_PP_SEQ_ELEM_205
# define BOOST_PP_SEQ_ELEM_207(_) BOOST_PP_SEQ_ELEM_206
# define BOOST_PP_SEQ_ELEM_208(_) BOOST_PP_SEQ_ELEM_207
# define BOOST_PP_SEQ_ELEM_209(_) BOOST_PP_SEQ_ELEM_208
# define BOOST_PP_SEQ_ELEM_210(_) BOOST_PP_SEQ_ELEM_209
# define BOOST_PP_SEQ_ELEM_211(_) BOOST_PP_SEQ_ELEM_210
# define BOOST_PP_SEQ_ELEM_212(_) BOOST_PP_SEQ_ELEM_211
# define BOOST_PP_SEQ_ELEM_213(_) BOOST_PP_SEQ_ELEM_212
# define BOOST_PP_SEQ_ELEM_214(_) BOOST_PP_SEQ_ELEM_213
# define BOOST_PP_SEQ_ELEM_215(_) BOOST_PP_SEQ_ELEM_214
# define BOOST_PP_SEQ_ELEM_216(_) BOOST_PP_SEQ_ELEM_215
# define BOOST_PP_SEQ_ELEM_217(_) BOOST_PP_SEQ_ELEM_216
# define BOOST_PP_SEQ_ELEM_218(_) BOOST_PP_SEQ_ELEM_217
# define BOOST_PP_SEQ_ELEM_219(_) BOOST_PP_SEQ_ELEM_218
# define BOOST_PP_SEQ_ELEM_220(_) BOOST_PP_SEQ_ELEM_219
# define BOOST_PP_SEQ_ELEM_221(_) BOOST_PP_SEQ_ELEM_220
# define BOOST_PP_SEQ_ELEM_222(_) BOOST_PP_SEQ_ELEM_221
# define BOOST_PP_SEQ_ELEM_223(_) BOOST_PP_SEQ_ELEM_222
# define BOOST_PP_SEQ_ELEM_224(_) BOOST_PP_SEQ_ELEM_223
# define BOOST_PP_SEQ_ELEM_225(_) BOOST_PP_SEQ_ELEM_224
# define BOOST_PP_SEQ_ELEM_226(_) BOOST_PP_SEQ_ELEM_225
# define BOOST_PP_SEQ_ELEM_227(_) BOOST_PP_SEQ_ELEM_226
# define BOOST_PP_SEQ_ELEM_228(_) BOOST_PP_SEQ_ELEM_227
# define BOOST_PP_SEQ_ELEM_229(_) BOOST_PP_SEQ_ELEM_228
# define BOOST_PP_SEQ_ELEM_230(_) BOOST_PP_SEQ_ELEM_229
# define BOOST_PP_SEQ_ELEM_231(_) BOOST_PP_SEQ_ELEM_230
# define BOOST_PP_SEQ_ELEM_232(_) BOOST_PP_SEQ_ELEM_231
# define BOOST_PP_SEQ_ELEM_233(_) BOOST_PP_SEQ_ELEM_232
# define BOOST_PP_SEQ_ELEM_234(_) BOOST_PP_SEQ_ELEM_233
# define BOOST_PP_SEQ_ELEM_235(_) BOOST_PP_SEQ_ELEM_234
# define BOOST_PP_SEQ_ELEM_236(_) BOOST_PP_SEQ_ELEM_235
# define BOOST_PP_SEQ_ELEM_237(_) BOOST_PP_SEQ_ELEM_236
# define BOOST_PP_SEQ_ELEM_238(_) BOOST_PP_SEQ_ELEM_237
# define BOOST_PP_SEQ_ELEM_239(_) BOOST_PP_SEQ_ELEM_238
# define BOOST_PP_SEQ_ELEM_240(_) BOOST_PP_SEQ_ELEM_239
# define BOOST_PP_SEQ_ELEM_241(_) BOOST_PP_SEQ_ELEM_240
# define BOOST_PP_SEQ_ELEM_242(_) BOOST_PP_SEQ_ELEM_241
# define BOOST_PP_SEQ_ELEM_243(_) BOOST_PP_SEQ_ELEM_242
# define BOOST_PP_SEQ_ELEM_244(_) BOOST_PP_SEQ_ELEM_243
# define BOOST_PP_SEQ_ELEM_245(_) BOOST_PP_SEQ_ELEM_244
# define BOOST_PP_SEQ_ELEM_246(_) BOOST_PP_SEQ_ELEM_245
# define BOOST_PP_SEQ_ELEM_247(_) BOOST_PP_SEQ_ELEM_246
# define BOOST_PP_SEQ_ELEM_248(_) BOOST_PP_SEQ_ELEM_247
# define BOOST_PP_SEQ_ELEM_249(_) BOOST_PP_SEQ_ELEM_248
# define BOOST_PP_SEQ_ELEM_250(_) BOOST_PP_SEQ_ELEM_249
# define BOOST_PP_SEQ_ELEM_251(_) BOOST_PP_SEQ_ELEM_250
# define BOOST_PP_SEQ_ELEM_252(_) BOOST_PP_SEQ_ELEM_251
# define BOOST_PP_SEQ_ELEM_253(_) BOOST_PP_SEQ_ELEM_252
# define BOOST_PP_SEQ_ELEM_254(_) BOOST_PP_SEQ_ELEM_253
# define BOOST_PP_SEQ_ELEM_255(_) BOOST_PP_SEQ_ELEM_254
#
# endif


code:
# /* **************************************************************************
#  *                                                                          *
#  *     (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. */
#
# ifndef BOOST_PREPROCESSOR_SEQ_ENUM_HPP
# define BOOST_PREPROCESSOR_SEQ_ENUM_HPP
#
# include <boost/preprocessor/cat.hpp>
# include <boost/preprocessor/config/config.hpp>
# include <boost/preprocessor/seq/size.hpp>
#
# /* BOOST_PP_SEQ_ENUM */
#
# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
#    define BOOST_PP_SEQ_ENUM(seq) BOOST_PP_SEQ_ENUM_I(seq)
#    define BOOST_PP_SEQ_ENUM_I(seq) BOOST_PP_CAT(BOOST_PP_SEQ_ENUM_, BOOST_PP_SEQ_SIZE(seq)) seq
# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
#    define BOOST_PP_SEQ_ENUM(seq) BOOST_PP_SEQ_ENUM_I(BOOST_PP_SEQ_SIZE(seq), seq)
#    define BOOST_PP_SEQ_ENUM_I(size, seq) BOOST_PP_CAT(BOOST_PP_SEQ_ENUM_, size) seq
# else
#    define BOOST_PP_SEQ_ENUM(seq) BOOST_PP_CAT(BOOST_PP_SEQ_ENUM_, BOOST_PP_SEQ_SIZE(seq)) seq
# endif
#
# define BOOST_PP_SEQ_ENUM_1(x) x
# define BOOST_PP_SEQ_ENUM_2(x) x, BOOST_PP_SEQ_ENUM_1
# define BOOST_PP_SEQ_ENUM_3(x) x, BOOST_PP_SEQ_ENUM_2
# define BOOST_PP_SEQ_ENUM_4(x) x, BOOST_PP_SEQ_ENUM_3
# define BOOST_PP_SEQ_ENUM_5(x) x, BOOST_PP_SEQ_ENUM_4
# define BOOST_PP_SEQ_ENUM_6(x) x, BOOST_PP_SEQ_ENUM_5
# define BOOST_PP_SEQ_ENUM_7(x) x, BOOST_PP_SEQ_ENUM_6
# define BOOST_PP_SEQ_ENUM_8(x) x, BOOST_PP_SEQ_ENUM_7
# define BOOST_PP_SEQ_ENUM_9(x) x, BOOST_PP_SEQ_ENUM_8
# define BOOST_PP_SEQ_ENUM_10(x) x, BOOST_PP_SEQ_ENUM_9
# define BOOST_PP_SEQ_ENUM_11(x) x, BOOST_PP_SEQ_ENUM_10
# define BOOST_PP_SEQ_ENUM_12(x) x, BOOST_PP_SEQ_ENUM_11
# define BOOST_PP_SEQ_ENUM_13(x) x, BOOST_PP_SEQ_ENUM_12
# define BOOST_PP_SEQ_ENUM_14(x) x, BOOST_PP_SEQ_ENUM_13
# define BOOST_PP_SEQ_ENUM_15(x) x, BOOST_PP_SEQ_ENUM_14
# define BOOST_PP_SEQ_ENUM_16(x) x, BOOST_PP_SEQ_ENUM_15
# define BOOST_PP_SEQ_ENUM_17(x) x, BOOST_PP_SEQ_ENUM_16
# define BOOST_PP_SEQ_ENUM_18(x) x, BOOST_PP_SEQ_ENUM_17
# define BOOST_PP_SEQ_ENUM_19(x) x, BOOST_PP_SEQ_ENUM_18
# define BOOST_PP_SEQ_ENUM_20(x) x, BOOST_PP_SEQ_ENUM_19
# define BOOST_PP_SEQ_ENUM_21(x) x, BOOST_PP_SEQ_ENUM_20
# define BOOST_PP_SEQ_ENUM_22(x) x, BOOST_PP_SEQ_ENUM_21
# define BOOST_PP_SEQ_ENUM_23(x) x, BOOST_PP_SEQ_ENUM_22
# define BOOST_PP_SEQ_ENUM_24(x) x, BOOST_PP_SEQ_ENUM_23
# define BOOST_PP_SEQ_ENUM_25(x) x, BOOST_PP_SEQ_ENUM_24
# define BOOST_PP_SEQ_ENUM_26(x) x, BOOST_PP_SEQ_ENUM_25
# define BOOST_PP_SEQ_ENUM_27(x) x, BOOST_PP_SEQ_ENUM_26
# define BOOST_PP_SEQ_ENUM_28(x) x, BOOST_PP_SEQ_ENUM_27
# define BOOST_PP_SEQ_ENUM_29(x) x, BOOST_PP_SEQ_ENUM_28
# define BOOST_PP_SEQ_ENUM_30(x) x, BOOST_PP_SEQ_ENUM_29
# define BOOST_PP_SEQ_ENUM_31(x) x, BOOST_PP_SEQ_ENUM_30
# define BOOST_PP_SEQ_ENUM_32(x) x, BOOST_PP_SEQ_ENUM_31
# define BOOST_PP_SEQ_ENUM_33(x) x, BOOST_PP_SEQ_ENUM_32
# define BOOST_PP_SEQ_ENUM_34(x) x, BOOST_PP_SEQ_ENUM_33
# define BOOST_PP_SEQ_ENUM_35(x) x, BOOST_PP_SEQ_ENUM_34
# define BOOST_PP_SEQ_ENUM_36(x) x, BOOST_PP_SEQ_ENUM_35
# define BOOST_PP_SEQ_ENUM_37(x) x, BOOST_PP_SEQ_ENUM_36
# define BOOST_PP_SEQ_ENUM_38(x) x, BOOST_PP_SEQ_ENUM_37
# define BOOST_PP_SEQ_ENUM_39(x) x, BOOST_PP_SEQ_ENUM_38
# define BOOST_PP_SEQ_ENUM_40(x) x, BOOST_PP_SEQ_ENUM_39
# define BOOST_PP_SEQ_ENUM_41(x) x, BOOST_PP_SEQ_ENUM_40
# define BOOST_PP_SEQ_ENUM_42(x) x, BOOST_PP_SEQ_ENUM_41
# define BOOST_PP_SEQ_ENUM_43(x) x, BOOST_PP_SEQ_ENUM_42
# define BOOST_PP_SEQ_ENUM_44(x) x, BOOST_PP_SEQ_ENUM_43
# define BOOST_PP_SEQ_ENUM_45(x) x, BOOST_PP_SEQ_ENUM_44
# define BOOST_PP_SEQ_ENUM_46(x) x, BOOST_PP_SEQ_ENUM_45
# define BOOST_PP_SEQ_ENUM_47(x) x, BOOST_PP_SEQ_ENUM_46
# define BOOST_PP_SEQ_ENUM_48(x) x, BOOST_PP_SEQ_ENUM_47
# define BOOST_PP_SEQ_ENUM_49(x) x, BOOST_PP_SEQ_ENUM_48
# define BOOST_PP_SEQ_ENUM_50(x) x, BOOST_PP_SEQ_ENUM_49
# define BOOST_PP_SEQ_ENUM_51(x) x, BOOST_PP_SEQ_ENUM_50
# define BOOST_PP_SEQ_ENUM_52(x) x, BOOST_PP_SEQ_ENUM_51
# define BOOST_PP_SEQ_ENUM_53(x) x, BOOST_PP_SEQ_ENUM_52
# define BOOST_PP_SEQ_ENUM_54(x) x, BOOST_PP_SEQ_ENUM_53
# define BOOST_PP_SEQ_ENUM_55(x) x, BOOST_PP_SEQ_ENUM_54
# define BOOST_PP_SEQ_ENUM_56(x) x, BOOST_PP_SEQ_ENUM_55
# define BOOST_PP_SEQ_ENUM_57(x) x, BOOST_PP_SEQ_ENUM_56
# define BOOST_PP_SEQ_ENUM_58(x) x, BOOST_PP_SEQ_ENUM_57
# define BOOST_PP_SEQ_ENUM_59(x) x, BOOST_PP_SEQ_ENUM_58
# define BOOST_PP_SEQ_ENUM_60(x) x, BOOST_PP_SEQ_ENUM_59
# define BOOST_PP_SEQ_ENUM_61(x) x, BOOST_PP_SEQ_ENUM_60
# define BOOST_PP_SEQ_ENUM_62(x) x, BOOST_PP_SEQ_ENUM_61
# define BOOST_PP_SEQ_ENUM_63(x) x, BOOST_PP_SEQ_ENUM_62
# define BOOST_PP_SEQ_ENUM_64(x) x, BOOST_PP_SEQ_ENUM_63
# define BOOST_PP_SEQ_ENUM_65(x) x, BOOST_PP_SEQ_ENUM_64
# define BOOST_PP_SEQ_ENUM_66(x) x, BOOST_PP_SEQ_ENUM_65
# define BOOST_PP_SEQ_ENUM_67(x) x, BOOST_PP_SEQ_ENUM_66
# define BOOST_PP_SEQ_ENUM_68(x) x, BOOST_PP_SEQ_ENUM_67
# define BOOST_PP_SEQ_ENUM_69(x) x, BOOST_PP_SEQ_ENUM_68
# define BOOST_PP_SEQ_ENUM_70(x) x, BOOST_PP_SEQ_ENUM_69
# define BOOST_PP_SEQ_ENUM_71(x) x, BOOST_PP_SEQ_ENUM_70
# define BOOST_PP_SEQ_ENUM_72(x) x, BOOST_PP_SEQ_ENUM_71
# define BOOST_PP_SEQ_ENUM_73(x) x, BOOST_PP_SEQ_ENUM_72
# define BOOST_PP_SEQ_ENUM_74(x) x, BOOST_PP_SEQ_ENUM_73
# define BOOST_PP_SEQ_ENUM_75(x) x, BOOST_PP_SEQ_ENUM_74
# define BOOST_PP_SEQ_ENUM_76(x) x, BOOST_PP_SEQ_ENUM_75
# define BOOST_PP_SEQ_ENUM_77(x) x, BOOST_PP_SEQ_ENUM_76
# define BOOST_PP_SEQ_ENUM_78(x) x, BOOST_PP_SEQ_ENUM_77
# define BOOST_PP_SEQ_ENUM_79(x) x, BOOST_PP_SEQ_ENUM_78
# define BOOST_PP_SEQ_ENUM_80(x) x, BOOST_PP_SEQ_ENUM_79
# define BOOST_PP_SEQ_ENUM_81(x) x, BOOST_PP_SEQ_ENUM_80
# define BOOST_PP_SEQ_ENUM_82(x) x, BOOST_PP_SEQ_ENUM_81
# define BOOST_PP_SEQ_ENUM_83(x) x, BOOST_PP_SEQ_ENUM_82
# define BOOST_PP_SEQ_ENUM_84(x) x, BOOST_PP_SEQ_ENUM_83
# define BOOST_PP_SEQ_ENUM_85(x) x, BOOST_PP_SEQ_ENUM_84
# define BOOST_PP_SEQ_ENUM_86(x) x, BOOST_PP_SEQ_ENUM_85
# define BOOST_PP_SEQ_ENUM_87(x) x, BOOST_PP_SEQ_ENUM_86
# define BOOST_PP_SEQ_ENUM_88(x) x, BOOST_PP_SEQ_ENUM_87
# define BOOST_PP_SEQ_ENUM_89(x) x, BOOST_PP_SEQ_ENUM_88
# define BOOST_PP_SEQ_ENUM_90(x) x, BOOST_PP_SEQ_ENUM_89
# define BOOST_PP_SEQ_ENUM_91(x) x, BOOST_PP_SEQ_ENUM_90
# define BOOST_PP_SEQ_ENUM_92(x) x, BOOST_PP_SEQ_ENUM_91
# define BOOST_PP_SEQ_ENUM_93(x) x, BOOST_PP_SEQ_ENUM_92
# define BOOST_PP_SEQ_ENUM_94(x) x, BOOST_PP_SEQ_ENUM_93
# define BOOST_PP_SEQ_ENUM_95(x) x, BOOST_PP_SEQ_ENUM_94
# define BOOST_PP_SEQ_ENUM_96(x) x, BOOST_PP_SEQ_ENUM_95
# define BOOST_PP_SEQ_ENUM_97(x) x, BOOST_PP_SEQ_ENUM_96
# define BOOST_PP_SEQ_ENUM_98(x) x, BOOST_PP_SEQ_ENUM_97
# define BOOST_PP_SEQ_ENUM_99(x) x, BOOST_PP_SEQ_ENUM_98
# define BOOST_PP_SEQ_ENUM_100(x) x, BOOST_PP_SEQ_ENUM_99
# define BOOST_PP_SEQ_ENUM_101(x) x, BOOST_PP_SEQ_ENUM_100
# define BOOST_PP_SEQ_ENUM_102(x) x, BOOST_PP_SEQ_ENUM_101
# define BOOST_PP_SEQ_ENUM_103(x) x, BOOST_PP_SEQ_ENUM_102
# define BOOST_PP_SEQ_ENUM_104(x) x, BOOST_PP_SEQ_ENUM_103
# define BOOST_PP_SEQ_ENUM_105(x) x, BOOST_PP_SEQ_ENUM_104
# define BOOST_PP_SEQ_ENUM_106(x) x, BOOST_PP_SEQ_ENUM_105
# define BOOST_PP_SEQ_ENUM_107(x) x, BOOST_PP_SEQ_ENUM_106
# define BOOST_PP_SEQ_ENUM_108(x) x, BOOST_PP_SEQ_ENUM_107
# define BOOST_PP_SEQ_ENUM_109(x) x, BOOST_PP_SEQ_ENUM_108
# define BOOST_PP_SEQ_ENUM_110(x) x, BOOST_PP_SEQ_ENUM_109
# define BOOST_PP_SEQ_ENUM_111(x) x, BOOST_PP_SEQ_ENUM_110
# define BOOST_PP_SEQ_ENUM_112(x) x, BOOST_PP_SEQ_ENUM_111
# define BOOST_PP_SEQ_ENUM_113(x) x, BOOST_PP_SEQ_ENUM_112
# define BOOST_PP_SEQ_ENUM_114(x) x, BOOST_PP_SEQ_ENUM_113
# define BOOST_PP_SEQ_ENUM_115(x) x, BOOST_PP_SEQ_ENUM_114
# define BOOST_PP_SEQ_ENUM_116(x) x, BOOST_PP_SEQ_ENUM_115
# define BOOST_PP_SEQ_ENUM_117(x) x, BOOST_PP_SEQ_ENUM_116
# define BOOST_PP_SEQ_ENUM_118(x) x, BOOST_PP_SEQ_ENUM_117
# define BOOST_PP_SEQ_ENUM_119(x) x, BOOST_PP_SEQ_ENUM_118
# define BOOST_PP_SEQ_ENUM_120(x) x, BOOST_PP_SEQ_ENUM_119
# define BOOST_PP_SEQ_ENUM_121(x) x, BOOST_PP_SEQ_ENUM_120
# define BOOST_PP_SEQ_ENUM_122(x) x, BOOST_PP_SEQ_ENUM_121
# define BOOST_PP_SEQ_ENUM_123(x) x, BOOST_PP_SEQ_ENUM_122
# define BOOST_PP_SEQ_ENUM_124(x) x, BOOST_PP_SEQ_ENUM_123
# define BOOST_PP_SEQ_ENUM_125(x) x, BOOST_PP_SEQ_ENUM_124
# define BOOST_PP_SEQ_ENUM_126(x) x, BOOST_PP_SEQ_ENUM_125
# define BOOST_PP_SEQ_ENUM_127(x) x, BOOST_PP_SEQ_ENUM_126
# define BOOST_PP_SEQ_ENUM_128(x) x, BOOST_PP_SEQ_ENUM_127
# define BOOST_PP_SEQ_ENUM_129(x) x, BOOST_PP_SEQ_ENUM_128
# define BOOST_PP_SEQ_ENUM_130(x) x, BOOST_PP_SEQ_ENUM_129
# define BOOST_PP_SEQ_ENUM_131(x) x, BOOST_PP_SEQ_ENUM_130
# define BOOST_PP_SEQ_ENUM_132(x) x, BOOST_PP_SEQ_ENUM_131
# define BOOST_PP_SEQ_ENUM_133(x) x, BOOST_PP_SEQ_ENUM_132
# define BOOST_PP_SEQ_ENUM_134(x) x, BOOST_PP_SEQ_ENUM_133
# define BOOST_PP_SEQ_ENUM_135(x) x, BOOST_PP_SEQ_ENUM_134
# define BOOST_PP_SEQ_ENUM_136(x) x, BOOST_PP_SEQ_ENUM_135
# define BOOST_PP_SEQ_ENUM_137(x) x, BOOST_PP_SEQ_ENUM_136
# define BOOST_PP_SEQ_ENUM_138(x) x, BOOST_PP_SEQ_ENUM_137
# define BOOST_PP_SEQ_ENUM_139(x) x, BOOST_PP_SEQ_ENUM_138
# define BOOST_PP_SEQ_ENUM_140(x) x, BOOST_PP_SEQ_ENUM_139
# define BOOST_PP_SEQ_ENUM_141(x) x, BOOST_PP_SEQ_ENUM_140
# define BOOST_PP_SEQ_ENUM_142(x) x, BOOST_PP_SEQ_ENUM_141
# define BOOST_PP_SEQ_ENUM_143(x) x, BOOST_PP_SEQ_ENUM_142
# define BOOST_PP_SEQ_ENUM_144(x) x, BOOST_PP_SEQ_ENUM_143
# define BOOST_PP_SEQ_ENUM_145(x) x, BOOST_PP_SEQ_ENUM_144
# define BOOST_PP_SEQ_ENUM_146(x) x, BOOST_PP_SEQ_ENUM_145
# define BOOST_PP_SEQ_ENUM_147(x) x, BOOST_PP_SEQ_ENUM_146
# define BOOST_PP_SEQ_ENUM_148(x) x, BOOST_PP_SEQ_ENUM_147
# define BOOST_PP_SEQ_ENUM_149(x) x, BOOST_PP_SEQ_ENUM_148
# define BOOST_PP_SEQ_ENUM_150(x) x, BOOST_PP_SEQ_ENUM_149
# define BOOST_PP_SEQ_ENUM_151(x) x, BOOST_PP_SEQ_ENUM_150
# define BOOST_PP_SEQ_ENUM_152(x) x, BOOST_PP_SEQ_ENUM_151
# define BOOST_PP_SEQ_ENUM_153(x) x, BOOST_PP_SEQ_ENUM_152
# define BOOST_PP_SEQ_ENUM_154(x) x, BOOST_PP_SEQ_ENUM_153
# define BOOST_PP_SEQ_ENUM_155(x) x, BOOST_PP_SEQ_ENUM_154
# define BOOST_PP_SEQ_ENUM_156(x) x, BOOST_PP_SEQ_ENUM_155
# define BOOST_PP_SEQ_ENUM_157(x) x, BOOST_PP_SEQ_ENUM_156
# define BOOST_PP_SEQ_ENUM_158(x) x, BOOST_PP_SEQ_ENUM_157
# define BOOST_PP_SEQ_ENUM_159(x) x, BOOST_PP_SEQ_ENUM_158
# define BOOST_PP_SEQ_ENUM_160(x) x, BOOST_PP_SEQ_ENUM_159
# define BOOST_PP_SEQ_ENUM_161(x) x, BOOST_PP_SEQ_ENUM_160
# define BOOST_PP_SEQ_ENUM_162(x) x, BOOST_PP_SEQ_ENUM_161
# define BOOST_PP_SEQ_ENUM_163(x) x, BOOST_PP_SEQ_ENUM_162
# define BOOST_PP_SEQ_ENUM_164(x) x, BOOST_PP_SEQ_ENUM_163
# define BOOST_PP_SEQ_ENUM_165(x) x, BOOST_PP_SEQ_ENUM_164
# define BOOST_PP_SEQ_ENUM_166(x) x, BOOST_PP_SEQ_ENUM_165
# define BOOST_PP_SEQ_ENUM_167(x) x, BOOST_PP_SEQ_ENUM_166
# define BOOST_PP_SEQ_ENUM_168(x) x, BOOST_PP_SEQ_ENUM_167
# define BOOST_PP_SEQ_ENUM_169(x) x, BOOST_PP_SEQ_ENUM_168
# define BOOST_PP_SEQ_ENUM_170(x) x, BOOST_PP_SEQ_ENUM_169
# define BOOST_PP_SEQ_ENUM_171(x) x, BOOST_PP_SEQ_ENUM_170
# define BOOST_PP_SEQ_ENUM_172(x) x, BOOST_PP_SEQ_ENUM_171
# define BOOST_PP_SEQ_ENUM_173(x) x, BOOST_PP_SEQ_ENUM_172
# define BOOST_PP_SEQ_ENUM_174(x) x, BOOST_PP_SEQ_ENUM_173
# define BOOST_PP_SEQ_ENUM_175(x) x, BOOST_PP_SEQ_ENUM_174
# define BOOST_PP_SEQ_ENUM_176(x) x, BOOST_PP_SEQ_ENUM_175
# define BOOST_PP_SEQ_ENUM_177(x) x, BOOST_PP_SEQ_ENUM_176
# define BOOST_PP_SEQ_ENUM_178(x) x, BOOST_PP_SEQ_ENUM_177
# define BOOST_PP_SEQ_ENUM_179(x) x, BOOST_PP_SEQ_ENUM_178
# define BOOST_PP_SEQ_ENUM_180(x) x, BOOST_PP_SEQ_ENUM_179
# define BOOST_PP_SEQ_ENUM_181(x) x, BOOST_PP_SEQ_ENUM_180
# define BOOST_PP_SEQ_ENUM_182(x) x, BOOST_PP_SEQ_ENUM_181
# define BOOST_PP_SEQ_ENUM_183(x) x, BOOST_PP_SEQ_ENUM_182
# define BOOST_PP_SEQ_ENUM_184(x) x, BOOST_PP_SEQ_ENUM_183
# define BOOST_PP_SEQ_ENUM_185(x) x, BOOST_PP_SEQ_ENUM_184
# define BOOST_PP_SEQ_ENUM_186(x) x, BOOST_PP_SEQ_ENUM_185
# define BOOST_PP_SEQ_ENUM_187(x) x, BOOST_PP_SEQ_ENUM_186
# define BOOST_PP_SEQ_ENUM_188(x) x, BOOST_PP_SEQ_ENUM_187
# define BOOST_PP_SEQ_ENUM_189(x) x, BOOST_PP_SEQ_ENUM_188
# define BOOST_PP_SEQ_ENUM_190(x) x, BOOST_PP_SEQ_ENUM_189
# define BOOST_PP_SEQ_ENUM_191(x) x, BOOST_PP_SEQ_ENUM_190
# define BOOST_PP_SEQ_ENUM_192(x) x, BOOST_PP_SEQ_ENUM_191
# define BOOST_PP_SEQ_ENUM_193(x) x, BOOST_PP_SEQ_ENUM_192
# define BOOST_PP_SEQ_ENUM_194(x) x, BOOST_PP_SEQ_ENUM_193
# define BOOST_PP_SEQ_ENUM_195(x) x, BOOST_PP_SEQ_ENUM_194
# define BOOST_PP_SEQ_ENUM_196(x) x, BOOST_PP_SEQ_ENUM_195
# define BOOST_PP_SEQ_ENUM_197(x) x, BOOST_PP_SEQ_ENUM_196
# define BOOST_PP_SEQ_ENUM_198(x) x, BOOST_PP_SEQ_ENUM_197
# define BOOST_PP_SEQ_ENUM_199(x) x, BOOST_PP_SEQ_ENUM_198
# define BOOST_PP_SEQ_ENUM_200(x) x, BOOST_PP_SEQ_ENUM_199
# define BOOST_PP_SEQ_ENUM_201(x) x, BOOST_PP_SEQ_ENUM_200
# define BOOST_PP_SEQ_ENUM_202(x) x, BOOST_PP_SEQ_ENUM_201
# define BOOST_PP_SEQ_ENUM_203(x) x, BOOST_PP_SEQ_ENUM_202
# define BOOST_PP_SEQ_ENUM_204(x) x, BOOST_PP_SEQ_ENUM_203
# define BOOST_PP_SEQ_ENUM_205(x) x, BOOST_PP_SEQ_ENUM_204
# define BOOST_PP_SEQ_ENUM_206(x) x, BOOST_PP_SEQ_ENUM_205
# define BOOST_PP_SEQ_ENUM_207(x) x, BOOST_PP_SEQ_ENUM_206
# define BOOST_PP_SEQ_ENUM_208(x) x, BOOST_PP_SEQ_ENUM_207
# define BOOST_PP_SEQ_ENUM_209(x) x, BOOST_PP_SEQ_ENUM_208
# define BOOST_PP_SEQ_ENUM_210(x) x, BOOST_PP_SEQ_ENUM_209
# define BOOST_PP_SEQ_ENUM_211(x) x, BOOST_PP_SEQ_ENUM_210
# define BOOST_PP_SEQ_ENUM_212(x) x, BOOST_PP_SEQ_ENUM_211
# define BOOST_PP_SEQ_ENUM_213(x) x, BOOST_PP_SEQ_ENUM_212
# define BOOST_PP_SEQ_ENUM_214(x) x, BOOST_PP_SEQ_ENUM_213
# define BOOST_PP_SEQ_ENUM_215(x) x, BOOST_PP_SEQ_ENUM_214
# define BOOST_PP_SEQ_ENUM_216(x) x, BOOST_PP_SEQ_ENUM_215
# define BOOST_PP_SEQ_ENUM_217(x) x, BOOST_PP_SEQ_ENUM_216
# define BOOST_PP_SEQ_ENUM_218(x) x, BOOST_PP_SEQ_ENUM_217
# define BOOST_PP_SEQ_ENUM_219(x) x, BOOST_PP_SEQ_ENUM_218
# define BOOST_PP_SEQ_ENUM_220(x) x, BOOST_PP_SEQ_ENUM_219
# define BOOST_PP_SEQ_ENUM_221(x) x, BOOST_PP_SEQ_ENUM_220
# define BOOST_PP_SEQ_ENUM_222(x) x, BOOST_PP_SEQ_ENUM_221
# define BOOST_PP_SEQ_ENUM_223(x) x, BOOST_PP_SEQ_ENUM_222
# define BOOST_PP_SEQ_ENUM_224(x) x, BOOST_PP_SEQ_ENUM_223
# define BOOST_PP_SEQ_ENUM_225(x) x, BOOST_PP_SEQ_ENUM_224
# define BOOST_PP_SEQ_ENUM_226(x) x, BOOST_PP_SEQ_ENUM_225
# define BOOST_PP_SEQ_ENUM_227(x) x, BOOST_PP_SEQ_ENUM_226
# define BOOST_PP_SEQ_ENUM_228(x) x, BOOST_PP_SEQ_ENUM_227
# define BOOST_PP_SEQ_ENUM_229(x) x, BOOST_PP_SEQ_ENUM_228
# define BOOST_PP_SEQ_ENUM_230(x) x, BOOST_PP_SEQ_ENUM_229
# define BOOST_PP_SEQ_ENUM_231(x) x, BOOST_PP_SEQ_ENUM_230
# define BOOST_PP_SEQ_ENUM_232(x) x, BOOST_PP_SEQ_ENUM_231
# define BOOST_PP_SEQ_ENUM_233(x) x, BOOST_PP_SEQ_ENUM_232
# define BOOST_PP_SEQ_ENUM_234(x) x, BOOST_PP_SEQ_ENUM_233
# define BOOST_PP_SEQ_ENUM_235(x) x, BOOST_PP_SEQ_ENUM_234
# define BOOST_PP_SEQ_ENUM_236(x) x, BOOST_PP_SEQ_ENUM_235
# define BOOST_PP_SEQ_ENUM_237(x) x, BOOST_PP_SEQ_ENUM_236
# define BOOST_PP_SEQ_ENUM_238(x) x, BOOST_PP_SEQ_ENUM_237
# define BOOST_PP_SEQ_ENUM_239(x) x, BOOST_PP_SEQ_ENUM_238
# define BOOST_PP_SEQ_ENUM_240(x) x, BOOST_PP_SEQ_ENUM_239
# define BOOST_PP_SEQ_ENUM_241(x) x, BOOST_PP_SEQ_ENUM_240
# define BOOST_PP_SEQ_ENUM_242(x) x, BOOST_PP_SEQ_ENUM_241
# define BOOST_PP_SEQ_ENUM_243(x) x, BOOST_PP_SEQ_ENUM_242
# define BOOST_PP_SEQ_ENUM_244(x) x, BOOST_PP_SEQ_ENUM_243
# define BOOST_PP_SEQ_ENUM_245(x) x, BOOST_PP_SEQ_ENUM_244
# define BOOST_PP_SEQ_ENUM_246(x) x, BOOST_PP_SEQ_ENUM_245
# define BOOST_PP_SEQ_ENUM_247(x) x, BOOST_PP_SEQ_ENUM_246
# define BOOST_PP_SEQ_ENUM_248(x) x, BOOST_PP_SEQ_ENUM_247
# define BOOST_PP_SEQ_ENUM_249(x) x, BOOST_PP_SEQ_ENUM_248
# define BOOST_PP_SEQ_ENUM_250(x) x, BOOST_PP_SEQ_ENUM_249
# define BOOST_PP_SEQ_ENUM_251(x) x, BOOST_PP_SEQ_ENUM_250
# define BOOST_PP_SEQ_ENUM_252(x) x, BOOST_PP_SEQ_ENUM_251
# define BOOST_PP_SEQ_ENUM_253(x) x, BOOST_PP_SEQ_ENUM_252
# define BOOST_PP_SEQ_ENUM_254(x) x, BOOST_PP_SEQ_ENUM_253
# define BOOST_PP_SEQ_ENUM_255(x) x, BOOST_PP_SEQ_ENUM_254
# define BOOST_PP_SEQ_ENUM_256(x) x, BOOST_PP_SEQ_ENUM_255
#
# endif

license: mit


code:
# /* **************************************************************************
#  *                                                                          *
#  *     (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. */
#
# ifndef BOOST_PREPROCESSOR_SEQ_FILTER_HPP
# define BOOST_PREPROCESSOR_SEQ_FILTER_HPP
#
# include <boost/preprocessor/config/config.hpp>
# include <boost/preprocessor/control/expr_if.hpp>
# include <boost/preprocessor/facilities/empty.hpp>
# include <boost/preprocessor/seq/fold_left.hpp>
# include <boost/preprocessor/seq/seq.hpp>
# include <boost/preprocessor/tuple/elem.hpp>
# include <boost/preprocessor/tuple/rem.hpp>
#
# /* BOOST_PP_SEQ_FILTER */
#
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
#    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)))
# else
#    define BOOST_PP_SEQ_FILTER(pred, data, seq) BOOST_PP_SEQ_FILTER_I(pred, data, seq)
#    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)))
# endif
#
# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
#    define BOOST_PP_SEQ_FILTER_O(s, st, elem) BOOST_PP_SEQ_FILTER_O_IM(s, BOOST_PP_TUPLE_REM_3 st, elem)
#    define BOOST_PP_SEQ_FILTER_O_IM(s, im, elem) BOOST_PP_SEQ_FILTER_O_I(s, im, elem)
# else
#    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)
# endif
#
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
#   define BOOST_PP_SEQ_FILTER_O_I(s, pred, data, res, elem) (pred, data, res BOOST_PP_EXPR_IF(pred(s, data, elem), (elem)))
# else
#   define BOOST_PP_SEQ_FILTER_O_I(s, pred, data, res, elem) (pred, data, res BOOST_PP_EXPR_IF(pred##(s, data, elem), (elem)))
# endif
#
# /* BOOST_PP_SEQ_FILTER_S */
#
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
#    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)))
# else
#    define BOOST_PP_SEQ_FILTER_S(s, pred, data, seq) BOOST_PP_SEQ_FILTER_S_I(s, pred, data, seq)
#    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)))
# endif
#
# endif


code:
# /* **************************************************************************
#  *                                                                          *
#  *     (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. */
#
# ifndef BOOST_PREPROCESSOR_SEQ_FIRST_N_HPP
# define BOOST_PREPROCESSOR_SEQ_FIRST_N_HPP
#
# include <boost/preprocessor/config/config.hpp>
# include <boost/preprocessor/control/if.hpp>
# include <boost/preprocessor/seq/detail/split.hpp>
# include <boost/preprocessor/tuple/eat.hpp>
# include <boost/preprocessor/tuple/elem.hpp>
#
# /* BOOST_PP_SEQ_FIRST_N */
#
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
#    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)))
# else
#    define BOOST_PP_SEQ_FIRST_N(n, seq) BOOST_PP_SEQ_FIRST_N_I(n, seq)
#    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)))
# endif
#
# endif