From 6be4d1e46e4623e91aab2764c90c55b815468616 Mon Sep 17 00:00:00 2001 From: Cormac Cannon Date: Thu, 5 Apr 2018 12:56:36 +0100 Subject: [PATCH] Variadic macro extensions to the FFF See header comment in fff.h for details -- summary extracted below: Return value macros: SET_RETURN_VAL_SEQ(function_name, ...) Accepts a raw list of appropriately typed values SET_RETURN_VAL(function_name, value) Provided for API consistency Assertion macros: TEST_ASSERT_CALLS(function_name, expected_call_count) TEST_ASSERT_CALLED(function_name) Only one call made to the function. TEST_ASSERT_NOT_CALLED(function_name) No calls made to the function. TEST_ASSERT_CALL(function_name, ...parameters) Only one call made to the function with the specified parameter values. TEST_ASSERT_LAST_CALL(function_name, ...parameters) The final call to this function was made with the specified parameter values. TEST_ASSERT_ANY_CALL(function_name, ...parameters) At least one call was made with the specified parameter values. TEST_ASSERT_NO_CALL(function_name, ...parameters) No calls were made with the specified parameter values. TEST_ASSERT_NTH_CALL(function_name, call_index, ...parameters) A specified invocation of the function used the specified parameter values. <> Added unit tests. Added TEST_ASSERT_CALL(...), as couldn't get optional parameter verification for TEST_ASSERT_CALLED to work in c99 mode. --- fff.h | 170 +++++++-------- fff_ext.h | 206 ++++++++++++++++++ test/fff_test_c.c | 49 ++++- test/test_cases_assertions.include | 332 +++++++++++++++++++++++++++++ vaiter64.h | 314 +++++++++++++++++++++++++++ 5 files changed, 984 insertions(+), 87 deletions(-) create mode 100644 fff_ext.h create mode 100644 test/test_cases_assertions.include create mode 100644 vaiter64.h diff --git a/fff.h b/fff.h index 230144e..d31b5de 100644 --- a/fff.h +++ b/fff.h @@ -105,10 +105,10 @@ SOFTWARE. #ifdef __cplusplus #define FFF_EXTERN_C extern "C"{ - #define FFF_END_EXTERN_C } + #define FFF_END_EXTERN_C } #else /* ansi c */ - #define FFF_EXTERN_C - #define FFF_END_EXTERN_C + #define FFF_EXTERN_C + #define FFF_END_EXTERN_C #endif /* cpp/ansi c */ #define DEFINE_RESET_FUNCTION(FUNCNAME) \ @@ -119,7 +119,7 @@ SOFTWARE. /* -- END INTERNAL HELPER MACROS -- */ typedef void (*fff_function_t)(void); -typedef struct { +typedef struct { fff_function_t call_history[FFF_CALL_HISTORY_LEN]; unsigned int call_history_idx; } fff_globals_t; @@ -179,7 +179,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC0(FUNCNAME) \ DECLARE_FAKE_VOID_FUNC0(FUNCNAME) \ DEFINE_FAKE_VOID_FUNC0(FUNCNAME) \ - + #define DECLARE_FAKE_VOID_FUNC1(FUNCNAME, ARG0_TYPE) \ FFF_EXTERN_C \ @@ -224,7 +224,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC1(FUNCNAME, ARG0_TYPE) \ DECLARE_FAKE_VOID_FUNC1(FUNCNAME, ARG0_TYPE) \ DEFINE_FAKE_VOID_FUNC1(FUNCNAME, ARG0_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC2(FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ FFF_EXTERN_C \ @@ -272,7 +272,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC2(FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ DECLARE_FAKE_VOID_FUNC2(FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ DEFINE_FAKE_VOID_FUNC2(FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC3(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ FFF_EXTERN_C \ @@ -323,7 +323,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC3(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ DECLARE_FAKE_VOID_FUNC3(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ DEFINE_FAKE_VOID_FUNC3(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC4(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ FFF_EXTERN_C \ @@ -377,7 +377,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC4(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ DECLARE_FAKE_VOID_FUNC4(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ DEFINE_FAKE_VOID_FUNC4(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC5(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ FFF_EXTERN_C \ @@ -434,7 +434,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC5(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ DECLARE_FAKE_VOID_FUNC5(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ DEFINE_FAKE_VOID_FUNC5(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC6(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ FFF_EXTERN_C \ @@ -494,7 +494,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC6(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ DECLARE_FAKE_VOID_FUNC6(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ DEFINE_FAKE_VOID_FUNC6(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC7(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ FFF_EXTERN_C \ @@ -557,7 +557,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC7(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ DECLARE_FAKE_VOID_FUNC7(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ DEFINE_FAKE_VOID_FUNC7(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC8(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ FFF_EXTERN_C \ @@ -623,7 +623,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC8(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ DECLARE_FAKE_VOID_FUNC8(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ DEFINE_FAKE_VOID_FUNC8(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC9(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ FFF_EXTERN_C \ @@ -692,7 +692,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC9(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ DECLARE_FAKE_VOID_FUNC9(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ DEFINE_FAKE_VOID_FUNC9(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC10(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ FFF_EXTERN_C \ @@ -764,7 +764,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC10(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ DECLARE_FAKE_VOID_FUNC10(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ DEFINE_FAKE_VOID_FUNC10(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC11(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ FFF_EXTERN_C \ @@ -839,7 +839,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC11(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ DECLARE_FAKE_VOID_FUNC11(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ DEFINE_FAKE_VOID_FUNC11(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC12(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ FFF_EXTERN_C \ @@ -917,7 +917,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC12(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ DECLARE_FAKE_VOID_FUNC12(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ DEFINE_FAKE_VOID_FUNC12(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC13(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ FFF_EXTERN_C \ @@ -998,7 +998,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC13(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ DECLARE_FAKE_VOID_FUNC13(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ DEFINE_FAKE_VOID_FUNC13(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC14(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ FFF_EXTERN_C \ @@ -1082,7 +1082,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC14(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ DECLARE_FAKE_VOID_FUNC14(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ DEFINE_FAKE_VOID_FUNC14(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC15(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ FFF_EXTERN_C \ @@ -1169,7 +1169,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC15(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ DECLARE_FAKE_VOID_FUNC15(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ DEFINE_FAKE_VOID_FUNC15(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC16(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ FFF_EXTERN_C \ @@ -1259,7 +1259,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC16(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ DECLARE_FAKE_VOID_FUNC16(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ DEFINE_FAKE_VOID_FUNC16(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC17(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ FFF_EXTERN_C \ @@ -1352,7 +1352,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC17(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ DECLARE_FAKE_VOID_FUNC17(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ DEFINE_FAKE_VOID_FUNC17(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC18(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ FFF_EXTERN_C \ @@ -1448,7 +1448,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC18(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ DECLARE_FAKE_VOID_FUNC18(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ DEFINE_FAKE_VOID_FUNC18(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC19(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ FFF_EXTERN_C \ @@ -1547,7 +1547,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC19(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ DECLARE_FAKE_VOID_FUNC19(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ DEFINE_FAKE_VOID_FUNC19(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC20(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ FFF_EXTERN_C \ @@ -1649,7 +1649,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC20(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ DECLARE_FAKE_VOID_FUNC20(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ DEFINE_FAKE_VOID_FUNC20(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC0(RETURN_TYPE, FUNCNAME) \ FFF_EXTERN_C \ @@ -1699,7 +1699,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC0(RETURN_TYPE, FUNCNAME) \ DECLARE_FAKE_VALUE_FUNC0(RETURN_TYPE, FUNCNAME) \ DEFINE_FAKE_VALUE_FUNC0(RETURN_TYPE, FUNCNAME) \ - + #define DECLARE_FAKE_VALUE_FUNC1(RETURN_TYPE, FUNCNAME, ARG0_TYPE) \ FFF_EXTERN_C \ @@ -1752,7 +1752,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC1(RETURN_TYPE, FUNCNAME, ARG0_TYPE) \ DECLARE_FAKE_VALUE_FUNC1(RETURN_TYPE, FUNCNAME, ARG0_TYPE) \ DEFINE_FAKE_VALUE_FUNC1(RETURN_TYPE, FUNCNAME, ARG0_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC2(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ FFF_EXTERN_C \ @@ -1808,7 +1808,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC2(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ DECLARE_FAKE_VALUE_FUNC2(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ DEFINE_FAKE_VALUE_FUNC2(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC3(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ FFF_EXTERN_C \ @@ -1867,7 +1867,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC3(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ DECLARE_FAKE_VALUE_FUNC3(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ DEFINE_FAKE_VALUE_FUNC3(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC4(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ FFF_EXTERN_C \ @@ -1929,7 +1929,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC4(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ DECLARE_FAKE_VALUE_FUNC4(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ DEFINE_FAKE_VALUE_FUNC4(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC5(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ FFF_EXTERN_C \ @@ -1994,7 +1994,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC5(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ DECLARE_FAKE_VALUE_FUNC5(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ DEFINE_FAKE_VALUE_FUNC5(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC6(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ FFF_EXTERN_C \ @@ -2062,7 +2062,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC6(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ DECLARE_FAKE_VALUE_FUNC6(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ DEFINE_FAKE_VALUE_FUNC6(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC7(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ FFF_EXTERN_C \ @@ -2133,7 +2133,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC7(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ DECLARE_FAKE_VALUE_FUNC7(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ DEFINE_FAKE_VALUE_FUNC7(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC8(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ FFF_EXTERN_C \ @@ -2207,7 +2207,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC8(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ DECLARE_FAKE_VALUE_FUNC8(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ DEFINE_FAKE_VALUE_FUNC8(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC9(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ FFF_EXTERN_C \ @@ -2284,7 +2284,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC9(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ DECLARE_FAKE_VALUE_FUNC9(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ DEFINE_FAKE_VALUE_FUNC9(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC10(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ FFF_EXTERN_C \ @@ -2364,7 +2364,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC10(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ DECLARE_FAKE_VALUE_FUNC10(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ DEFINE_FAKE_VALUE_FUNC10(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC11(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ FFF_EXTERN_C \ @@ -2447,7 +2447,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC11(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ DECLARE_FAKE_VALUE_FUNC11(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ DEFINE_FAKE_VALUE_FUNC11(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC12(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ FFF_EXTERN_C \ @@ -2533,7 +2533,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC12(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ DECLARE_FAKE_VALUE_FUNC12(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ DEFINE_FAKE_VALUE_FUNC12(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC13(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ FFF_EXTERN_C \ @@ -2622,7 +2622,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC13(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ DECLARE_FAKE_VALUE_FUNC13(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ DEFINE_FAKE_VALUE_FUNC13(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC14(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ FFF_EXTERN_C \ @@ -2714,7 +2714,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC14(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ DECLARE_FAKE_VALUE_FUNC14(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ DEFINE_FAKE_VALUE_FUNC14(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC15(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ FFF_EXTERN_C \ @@ -2809,7 +2809,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC15(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ DECLARE_FAKE_VALUE_FUNC15(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ DEFINE_FAKE_VALUE_FUNC15(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC16(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ FFF_EXTERN_C \ @@ -2907,7 +2907,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC16(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ DECLARE_FAKE_VALUE_FUNC16(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ DEFINE_FAKE_VALUE_FUNC16(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC17(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ FFF_EXTERN_C \ @@ -3008,7 +3008,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC17(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ DECLARE_FAKE_VALUE_FUNC17(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ DEFINE_FAKE_VALUE_FUNC17(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC18(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ FFF_EXTERN_C \ @@ -3112,7 +3112,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC18(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ DECLARE_FAKE_VALUE_FUNC18(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ DEFINE_FAKE_VALUE_FUNC18(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC19(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ FFF_EXTERN_C \ @@ -3219,7 +3219,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC19(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ DECLARE_FAKE_VALUE_FUNC19(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ DEFINE_FAKE_VALUE_FUNC19(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC20(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ FFF_EXTERN_C \ @@ -3329,7 +3329,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC20(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ DECLARE_FAKE_VALUE_FUNC20(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ DEFINE_FAKE_VALUE_FUNC20(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC2_VARARG(FUNCNAME, ARG0_TYPE, ...) \ FFF_EXTERN_C \ @@ -3371,7 +3371,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC2_VARARG(FUNCNAME, ARG0_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC2_VARARG(FUNCNAME, ARG0_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC2_VARARG(FUNCNAME, ARG0_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC3_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ FFF_EXTERN_C \ @@ -3416,7 +3416,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC3_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC3_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC3_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC4_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ FFF_EXTERN_C \ @@ -3464,7 +3464,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC4_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC4_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC4_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC5_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ FFF_EXTERN_C \ @@ -3515,7 +3515,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC5_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC5_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC5_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC6_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ FFF_EXTERN_C \ @@ -3569,7 +3569,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC6_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC6_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC6_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC7_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ FFF_EXTERN_C \ @@ -3626,7 +3626,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC7_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC7_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC7_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC8_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ FFF_EXTERN_C \ @@ -3686,7 +3686,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC8_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC8_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC8_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC9_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ FFF_EXTERN_C \ @@ -3749,7 +3749,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC9_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC9_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC9_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC10_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ FFF_EXTERN_C \ @@ -3815,7 +3815,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC10_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC10_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC10_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC11_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ FFF_EXTERN_C \ @@ -3884,7 +3884,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC11_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC11_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC11_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC12_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ FFF_EXTERN_C \ @@ -3956,7 +3956,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC12_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC12_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC12_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC13_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ FFF_EXTERN_C \ @@ -4031,7 +4031,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC13_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC13_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC13_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC14_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ FFF_EXTERN_C \ @@ -4109,7 +4109,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC14_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC14_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC14_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC15_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ FFF_EXTERN_C \ @@ -4190,7 +4190,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC15_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC15_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC15_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC16_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ FFF_EXTERN_C \ @@ -4274,7 +4274,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC16_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC16_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC16_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC17_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ FFF_EXTERN_C \ @@ -4361,7 +4361,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC17_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC17_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC17_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC18_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ FFF_EXTERN_C \ @@ -4451,7 +4451,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC18_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC18_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC18_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC19_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ FFF_EXTERN_C \ @@ -4544,7 +4544,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC19_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC19_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC19_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC20_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ FFF_EXTERN_C \ @@ -4640,7 +4640,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC20_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC20_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC20_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC2_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ...) \ FFF_EXTERN_C \ @@ -4688,7 +4688,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC2_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC2_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC2_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC3_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ FFF_EXTERN_C \ @@ -4739,7 +4739,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC3_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC3_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC3_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC4_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ FFF_EXTERN_C \ @@ -4793,7 +4793,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC4_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC4_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC4_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC5_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ FFF_EXTERN_C \ @@ -4850,7 +4850,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC5_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC5_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC5_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC6_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ FFF_EXTERN_C \ @@ -4910,7 +4910,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC6_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC6_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC6_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC7_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ FFF_EXTERN_C \ @@ -4973,7 +4973,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC7_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC7_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC7_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC8_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ FFF_EXTERN_C \ @@ -5039,7 +5039,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC8_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC8_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC8_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC9_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ FFF_EXTERN_C \ @@ -5108,7 +5108,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC9_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC9_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC9_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC10_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ FFF_EXTERN_C \ @@ -5180,7 +5180,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC10_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC10_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC10_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC11_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ FFF_EXTERN_C \ @@ -5255,7 +5255,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC11_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC11_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC11_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC12_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ FFF_EXTERN_C \ @@ -5333,7 +5333,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC12_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC12_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC12_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC13_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ FFF_EXTERN_C \ @@ -5414,7 +5414,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC13_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC13_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC13_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC14_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ FFF_EXTERN_C \ @@ -5498,7 +5498,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC14_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC14_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC14_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC15_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ FFF_EXTERN_C \ @@ -5585,7 +5585,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC15_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC15_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC15_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC16_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ FFF_EXTERN_C \ @@ -5675,7 +5675,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC16_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC16_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC16_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC17_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ FFF_EXTERN_C \ @@ -5768,7 +5768,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC17_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC17_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC17_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC18_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ FFF_EXTERN_C \ @@ -5864,7 +5864,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC18_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC18_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC18_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC19_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ FFF_EXTERN_C \ @@ -5963,7 +5963,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC19_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC19_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC19_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC20_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ FFF_EXTERN_C \ @@ -6065,7 +6065,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC20_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC20_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC20_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ - + /* MSVC expand macro fix */ #define EXPAND(x) x @@ -6180,6 +6180,6 @@ FFF_END_EXTERN_C \ #define DEFINE_FUNC_VOID_VARARG_N(N,...) EXPAND(DEFINE_FAKE_VOID_FUNC ## N ## _VARARG(__VA_ARGS__)) - +#include "fff_ext.h" #endif /* FAKE_FUNCTIONS */ diff --git a/fff_ext.h b/fff_ext.h new file mode 100644 index 0000000..6126310 --- /dev/null +++ b/fff_ext.h @@ -0,0 +1,206 @@ +/** + * @file + * + * Extensions to the fake function framework + * + * @author Cormac Cannon (cormacc-public@gmail.com) + * + * These macros provide some syntactic sugar for the fake function framework. + * Mostly to eliminate boilerplate construction of arrays, iteration over fake members etc. + * + * Their use should be fairly self-explanatory... + * + * Return value macros: + * SET_RETURN_VAL_SEQ(function_name, ...) Accepts a raw list of appropriately typed values + * SET_RETURN_VAL(function_name, value) Provided for API consistency + * + * Assertion macros: + * TEST_ASSERT_CALLS(function_name, expected_call_count) + * TEST_ASSERT_CALLED(function_name) Only one call made to the function + * TEST_ASSERT_NOT_CALLED(function_name) No calls made to the function + * TEST_ASSERT_CALL(function_name, ...parameters (optional)) Only one call made to the function (verifies parameter values if provided). + * TEST_ASSERT_LAST_CALL(function_name, ...parameters) The final call to this function was made with the specified parameter values. + * TEST_ASSERT_ANY_CALL(function_name, ...parameters) At least one call was made with the specified parameter values. + * TEST_ASSERT_NO_CALL(function_name, ...parameters) No calls were made with the specified parameter values. + * TEST_ASSERT_NTH_CALL(function_name, call_index, ...parameters) A specified invocation of the function used the specified parameter values. + * + * The function call verification macros allow incomplete specification of the parameters, + * i.e. given + * + * my_function(arg0, arg1, arg2) + * + * ... we can ignore the rightmost argument(s) ... + * + * TEST_ASSERT_ANY_CALL(my_function, ); + * TEST_ASSERT_ANY_CALL(my_function, , ); + * TEST_ASSERT_ANY_CALL(my_function, , , ); + * + * Some of the functions use variadic macro counting and iteration methods in vaiter64.h, + * which is limited to 64 arguments. This should be sufficient for most uses, however the + * ruby generator script at https://github.com/cormacc/va_args_iterators can be used to + * generate a version suitable for an arbitrary number of arguments. + * + * If using the assertions, you should probably redefine the _FFF_ASSERT_EQ_MSG + * macro. The default implementation using assert.h omits a lot of useful + * diagnostic messages. + * + * E.g. for Ceedling/Unity: + * + * #define _FFF_ASSERT_EQ_MSG(expected, actual, message) TEST_ASSERT_EQUAL_MESSAGE(expected, actual, message) + * #include "fff_ext.h" + */ + +#ifndef fffext_H +# define fffext_H + +# ifdef __cplusplus +extern "C" { +# endif + +// ---------------------------------------------------------------------------- +// Includes +// ---------------------------------------------------------------------------- + +/* #include "fff.h" */ +// __VA_ARGS__ counting and iteration macros -- required for _FFF_VERIFY_ANY_CALL +#include "vaiter64.h" + +// ---------------------------------------------------------------------------- +// Public API +// ---------------------------------------------------------------------------- + +/** + * Set one or more return values for a given mocked function. + * The values are returned successively. If the number of calls exceeds the number + * of defined return values, the final value is repeated indefinitely. + * @param FN The function name + * @param ... The sequence of return values + * This is a convenient wrapper for existing FFF functionality: + * @code + * SET_RETURN(SomeModule_doSomething, 1, 2, 3, 4, 5); + * @endcode + * ... expands to ... + * @code + * { + * typeof(SomeModule_doSomething.return_val) return_seq[] = {1, 2, 3, 4, 5}; + * SET_RETURN_SEQ(SomeModule_doSomething, return_seq, 5); + * } + * @endcode + * + * Implementation note 1: The single line definition is essential here, as __LINE__ is used to generate + * a unique sequence ID + * Implementation note 2: Using >1 rather than >0 in the sequence length assertion, as VA_NARGS() returns + * 1 with the default fff build settings. + */ +#define SET_RETURN(FN, ...) \ + __typeof__(_FFF_NAME(FN).return_val) _FFF_SEQ(FN)[] = {__VA_ARGS__}; SET_RETURN_SEQ(FN, _FFF_SEQ(FN), sizeof(_FFF_SEQ(FN))/sizeof(_FFF_SEQ(FN)[0])); \ + _FFF_ASSERT_TRUE_MSG(_FFF_NAME(FN).return_val_seq_len>0, "No return values specified") + +/** + * Verify that the named function was called COUNT times + * @param FN The mocked function name + * @param COUNT The expected number of calls + */ +#define TEST_ASSERT_CALLS(FN, COUNT) _FFF_ASSERT_EQ_MSG(COUNT, _FFF_CALLS(FN), #FN " called incorrect number of times") + +/** + * Verifies that the named function was called once and only once + * @param FN The mocked function name + */ +#define TEST_ASSERT_CALLED(FN) TEST_ASSERT_CALLS(FN, 1); + +/** + * Verifies that the named function was not called + * @param FN The mocked function name + */ +#define TEST_ASSERT_NOT_CALLED(FN) TEST_ASSERT_CALLS(FN, 0); + +/** + * Verifies that the named function was called once and only once, with the specified arguments + * @param FN The mocked function name + * @param ... Expected values of the function arguments + */ +#define TEST_ASSERT_CALL(FN, ...) \ + TEST_ASSERT_CALLS(FN, 1); \ + VA_FIX_IDX_EACH(_FFF_ASSERT_ARG, FN, __VA_ARGS__) + +/** + * Verifies that the named function at least CALL_IDX times, and verifies the arguments for that call. + * @param FN The mocked function name + * @param CALL_IDX The (1-based) call index + * @param ... Expected values of the function arguments + */ +#define TEST_ASSERT_NTH_CALL(FN, CALL_IDX, ...) \ + _FFF_ASSERT_TRUE_MSG(CALL_IDX > 0, "Invalid call index -- expected >0, got " #CALL_IDX); \ + _FFF_ASSERT_TRUE_MSG(_FFF_CALLS(FN) >= CALL_IDX, #FN " not called " #CALL_IDX " times"); \ + VA_2FIX_IDX_EACH(_FFF_ASSERT_HISTORICAL_ARG, FN, CALL_IDX, __VA_ARGS__) + +/** + * Verifies that the named function was called at least once, and optionally verifies the arguments for the final call + * @param FN The mocked function name + * @param ... Expected values of the function arguments + */ +#define TEST_ASSERT_LAST_CALL(FN, ...) TEST_ASSERT_NTH_CALL(FN, _FFF_CALLS(FN), __VA_ARGS__) + +#define TEST_ASSERT_ANY_CALL(FN, ...) _FFF_ASSERT_TRUE_MSG(_FFF_VERIFY_ANY_CALL(FN, __VA_ARGS__), "No calls made to '"#FN"("#__VA_ARGS__")'") +#define TEST_ASSERT_NO_CALL(FN, ...) _FFF_ASSERT_FALSE_MSG(_FFF_VERIFY_ANY_CALL(FN, __VA_ARGS__), "At least one call made to '"#FN"("#__VA_ARGS__")'") + +// ---------------------------------------------------------------------------- +// Building blocks +// ---------------------------------------------------------------------------- +#define _FFF__CAT(A, B) A ## B +#define _FFF_CAT(A, B) _FFF__CAT(A,B) + +#define _FFF_NAME(FN) FN##_fake +#define _FFF_SEQ(FN) _FFF_CAT(FN, __LINE__) +#define _FFF_CALLS(FN) _FFF_NAME(FN).call_count +#define _FFF_LAST_ARG_VAL(FN, IDX) _FFF_NAME(FN).arg##IDX##_val +#define _FFF_NTH_ARG_VAL(FN, CALL_IDX, ARG_IDX) _FFF_NAME(FN).arg##ARG_IDX##_history[CALL_IDX-1] + +#define _FFF_VERIFY_ARG(FN, VAL, ARG_IDX) VAL == _FFF_LAST_ARG_VAL(FN, ARG_IDX) +#define _FFF_VERIFY_HISTORICAL_ARG(FN, CALL_IDX, VAL, ARG_IDX) (VAL == _FFF_NTH_ARG_VAL(FN, CALL_IDX, ARG_IDX)) + +#define _FFF_AND_VERIFY_NTH_CALL_ARG(FN, CALL_IDX, VAL, ARG_IDX) && _FFF_VERIFY_HISTORICAL_ARG(FN, CALL_IDX, VAL, ARG_IDX) +#define _FFF_VERIFY_NTH_CALL(FN, CALL_IDX, ...) \ + ( (CALL_IDX > 0) && (CALL_IDX <= _FFF_CALLS(FN)) VA_2FIX_IDX_EACH(_FFF_AND_VERIFY_NTH_CALL_ARG, FN, CALL_IDX, __VA_ARGS__) ) + +//This uses GCC compound statement expression: +//https://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html +#define _FFF_VERIFY_ANY_CALL(FN, ...) ({ \ + int verified = 0; \ + int call_idx = _FFF_CALLS(FN); \ + while(call_idx && !verified) { \ + verified |= _FFF_VERIFY_NTH_CALL(FN, call_idx, __VA_ARGS__); \ + call_idx--; \ + } \ + verified; \ + }) + + +// ---------------------------------------------------------------------------- +// Assertions +// ---------------------------------------------------------------------------- + +#ifndef _FFF_ASSERT_EQ_MSG +/* #warning Using fallback assertion from (i.e. no failure messages) */ +#include +#define _FFF_ASSERT_EQ_MSG(expected, actual, message) assert(expected==actual) +#endif + +#ifndef _FFF_ASSERT_EQ +#define _FFF_ASSERT_EQ(expected, actual) _FFF_ASSERT_EQ_MSG(expected, actual, "Expected " #expected " / Got " #actual) +#endif + +#define _FFF_ASSERT_TRUE_MSG(COND, MSG) _FFF_ASSERT_EQ_MSG(((COND)>0), 1, MSG) +#define _FFF_ASSERT_FALSE_MSG(COND, MSG) _FFF_ASSERT_EQ_MSG((COND), 0, MSG) + +#define _FFF_ASSERT_ARG(FN, VAL, ARG_IDX) _FFF_ASSERT_EQ_MSG(VAL, _FFF_LAST_ARG_VAL(FN, ARG_IDX), #FN" parameter value mismatch at ARG"#ARG_IDX); + +#define _FFF_ASSERT_HISTORICAL_ARG(FN, CALL_IDX, VAL, ARG_IDX) _FFF_ASSERT_EQ_MSG(VAL, _FFF_NTH_ARG_VAL(FN, CALL_IDX, ARG_IDX), #FN", call "#CALL_IDX": value mismatch for arg"#ARG_IDX); + + +# ifdef __cplusplus +} +# endif + +#endif /* fffext_H */ diff --git a/test/fff_test_c.c b/test/fff_test_c.c index 6763439..c4ae47b 100644 --- a/test/fff_test_c.c +++ b/test/fff_test_c.c @@ -1,4 +1,3 @@ - // Want to keep the argument history for 13 calls #define OVERRIDE_ARG_HIST_LEN 13u #define FFF_ARG_HISTORY_LEN OVERRIDE_ARG_HIST_LEN @@ -6,6 +5,7 @@ #define OVERRIDE_CALL_HIST_LEN 17u #define FFF_CALL_HISTORY_LEN OVERRIDE_CALL_HIST_LEN + #include "../fff.h" #include "c_test_framework.h" @@ -34,6 +34,9 @@ FAKE_VALUE_FUNC(int, strlcpy3, char* const, const char* const, const size_t); FAKE_VOID_FUNC(voidfunc20, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int); FAKE_VALUE_FUNC(int, valuefunc20, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int); +#include "test_cases.include" +#include "test_cases_assertions.include" + void setup() { RESET_FAKE(voidfunc1); @@ -46,10 +49,10 @@ void setup() RESET_FAKE(valuefunc3var); RESET_FAKE(strlcpy3); FFF_RESET_HISTORY(); + RESET_FAKE_ASSERTIONS(); } -#include "test_cases.include" TEST_F(FFFTestSuite, default_constants_can_be_overridden) { @@ -58,6 +61,10 @@ TEST_F(FFFTestSuite, default_constants_can_be_overridden) ASSERT_EQ(OVERRIDE_ARG_HIST_LEN, voidfunc2_fake.arg_history_len); } +//TODO move this into test suite definition once I've integrated my va_args stuff with the existing generator... +#define RUN_INDEXED_TEST(SUITE, TEST_COUNT, TESTNAME, IDX) do { printf(" Running (%d/%d) %s.%s: \n", IDX+1, TEST_COUNT, #SUITE, #TESTNAME); setup(); TESTNAME(); printf(" SUCCESS\n"); } while (0); +#define RUN_TESTS(SUITE, ...) VA_2FIX_IDX_EACH(RUN_INDEXED_TEST, SUITE, VA_NARGS(__VA_ARGS__), __VA_ARGS__) + DEFINE_FFF_GLOBALS; int main() { @@ -88,6 +95,7 @@ int main() RUN_TEST(FFFTestSuite, value_func_will_return_zero_by_default); RUN_TEST(FFFTestSuite, value_func_will_return_value_given); RUN_TEST(FFFTestSuite, value_func_will_return_zero_after_reset); + RUN_TEST(FFFTestSuite, register_call_macro_registers_one_call); RUN_TEST(FFFTestSuite, register_call_macro_registers_two_calls); RUN_TEST(FFFTestSuite, reset_call_history_resets_call_history); @@ -96,6 +104,7 @@ int main() RUN_TEST(FFFTestSuite, return_value_sequences_not_exhausted); RUN_TEST(FFFTestSuite, return_value_sequences_exhausted); + RUN_TEST(FFFTestSuite, default_constants_can_be_overridden); RUN_TEST(FFFTestSuite, can_register_custom_fake); @@ -107,6 +116,42 @@ int main() RUN_TEST(FFFTestSuite, can_capture_upto_20_arguments_correctly); RUN_TEST(FFFTestSuite, value_func_can_capture_upto_20_arguments_correctly); + RUN_TESTS(FFFTestSuite, + variadic_return_values, + variadic_return_values_no_array_name_collisions_when_called_repeatedly, + variadic_return_values_assertion_valid_given_single_value, + variadic_return_values_assertion_valid_given_value_sequence, + variadic_return_values_assertion_invalid_given_0_length_sequence, + + assert_calls_assertion_valid_given_match, + assert_calls_assertion_invalid_when_underestimated, + assert_calls_assertion_invalid_when_overestimated, + + assert_called_assertion_valid_when_called_once, + assert_called_assertion_invalid_when_not_called, + assert_called_assertion_invalid_when_called_more_than_once, + + assert_not_called_assertion_valid_when_not_called, + assert_not_called_assertion_invalid_when_called_once, + assert_not_called_assertion_invalid_when_called_more_than_once, + + assert_call_assertion_valid_when_all_args_specified_and_matched, + assert_call_assertion_valid_when_some_args_specified_and_matched, + assert_call_assertion_invalid_when_called_more_than_once, + assert_call_assertion_invalid_given_arg_mismatch, + + assert_nth_call_assertion_valid_given_matching_args, + assert_nth_call_assertion_invalid_given_arg_mismatch, + + assert_last_call_assertion_valid_given_multiple_calls, + assert_last_call_assertion_invalid_given_previous_call_args, + + assert_any_call_assertion_valid_given_any_match, + assert_any_call_assertion_invalid_given_no_match, + assert_no_call_assertion_invalid_given_any_match, + assert_no_call_assertion_valid_given_no_match + ) + printf("\n-------------\n"); printf("Complete\n"); printf("-------------\n\n"); diff --git a/test/test_cases_assertions.include b/test/test_cases_assertions.include new file mode 100644 index 0000000..8dfa786 --- /dev/null +++ b/test/test_cases_assertions.include @@ -0,0 +1,332 @@ +static int valid_assertions_, invalid_assertions_; +#define _FFF_ASSERT_EQ_MSG(EXP, ACT, MSG) if ((EXP)==(ACT)) { valid_assertions_++; } else { invalid_assertions_++; } + +enum AssertionResult { + INVALID, + VALID +}; + +#define ASSERT_FAKE_ASSERTION_WAS(RSLT) \ + if((RSLT)==VALID) ASSERT_EQ(1, valid_assertions_>0); \ + ASSERT_EQ((!(RSLT)), invalid_assertions_>0) + +#define RESET_FAKE_ASSERTIONS() valid_assertions_ = invalid_assertions_ = 0 + +TEST_F(FFFTestSuite, variadic_return_values) +{ + SET_RETURN(longfunc0, 3, 7, 9); + ASSERT_EQ(3, longfunc0()); + ASSERT_EQ(7, longfunc0()); + ASSERT_EQ(9, longfunc0()); + ASSERT_EQ(9, longfunc0()); + ASSERT_EQ(9, longfunc0()); +} + +TEST_F(FFFTestSuite, variadic_return_values_no_array_name_collisions_when_called_repeatedly) +{ + SET_RETURN(longfunc0, 3, 7, 9); + SET_RETURN(longfunc0, 2, 4); + ASSERT_EQ(2, longfunc0()); + ASSERT_EQ(4, longfunc0()); + ASSERT_EQ(4, longfunc0()); +} + +TEST_F(FFFTestSuite, variadic_return_values_assertion_valid_given_single_value) +{ + SET_RETURN(longfunc0, 1); + + ASSERT_FAKE_ASSERTION_WAS(VALID); +} + +TEST_F(FFFTestSuite, variadic_return_values_assertion_valid_given_value_sequence) +{ + SET_RETURN(longfunc0, 1, 2, 3); + + ASSERT_FAKE_ASSERTION_WAS(VALID); +} + +TEST_F(FFFTestSuite, variadic_return_values_assertion_invalid_given_0_length_sequence) +{ + SET_RETURN(longfunc0); + + ASSERT_FAKE_ASSERTION_WAS(INVALID); +} + +static void _callFake(int ncalls) +{ + //... reset assertion counters + valid_assertions_ = invalid_assertions_ = 0; + RESET_FAKE(longfunc0); + //... make the calls + while(ncalls--) { + longfunc0(); + } +} + + +static void do_TEST_ASSERT_CALLS_test(int ncalls_made, int ncalls_asserted) +{ + + //Given + _callFake(ncalls_made); + + //When + TEST_ASSERT_CALLS(longfunc0, ncalls_asserted); + + //Then + ASSERT_FAKE_ASSERTION_WAS(ncalls_made==ncalls_asserted); +} + +TEST_F(FFFTestSuite, assert_calls_assertion_valid_given_match) +{ + do_TEST_ASSERT_CALLS_test(0,0); + do_TEST_ASSERT_CALLS_test(1,1); + do_TEST_ASSERT_CALLS_test(9,9); +} + +TEST_F(FFFTestSuite, assert_calls_assertion_invalid_when_overestimated) +{ + do_TEST_ASSERT_CALLS_test(0,1); + do_TEST_ASSERT_CALLS_test(1,3); + do_TEST_ASSERT_CALLS_test(9,15); +} + +TEST_F(FFFTestSuite, assert_calls_assertion_invalid_when_underestimated) +{ + do_TEST_ASSERT_CALLS_test(3,2); + do_TEST_ASSERT_CALLS_test(9,7); +} + +TEST_F(FFFTestSuite, assert_called_assertion_valid_when_called_once) +{ + //Given + _callFake(1); + + //When + TEST_ASSERT_CALLED(longfunc0); + + //Then + ASSERT_FAKE_ASSERTION_WAS(VALID); +} + +TEST_F(FFFTestSuite, assert_called_assertion_invalid_when_not_called) +{ + //Given + _callFake(0); + + //When + TEST_ASSERT_CALLED(longfunc0); + + //Then + ASSERT_FAKE_ASSERTION_WAS(INVALID); +} + +TEST_F(FFFTestSuite, assert_called_assertion_invalid_when_called_more_than_once) +{ + //Given + _callFake(2); + + //When + TEST_ASSERT_CALLED(longfunc0); + + //Then + ASSERT_FAKE_ASSERTION_WAS(INVALID); +} + +TEST_F(FFFTestSuite, assert_not_called_assertion_valid_when_not_called) +{ + //Given + _callFake(0); + + //When + TEST_ASSERT_NOT_CALLED(longfunc0); + + //Then + ASSERT_FAKE_ASSERTION_WAS(VALID); +} + + +TEST_F(FFFTestSuite, assert_not_called_assertion_invalid_when_called_once) +{ + //Given + _callFake(1); + + //When + TEST_ASSERT_NOT_CALLED(longfunc0); + + //Then + ASSERT_FAKE_ASSERTION_WAS(INVALID); +} + +TEST_F(FFFTestSuite, assert_not_called_assertion_invalid_when_called_more_than_once) +{ + //Given + _callFake(5); + + //When + TEST_ASSERT_NOT_CALLED(longfunc0); + + //Then + ASSERT_FAKE_ASSERTION_WAS(INVALID); +} + +TEST_F(FFFTestSuite, assert_call_assertion_valid_when_all_args_specified_and_matched) +{ + //Given + voidfunc2('a', 'b'); + + //When + TEST_ASSERT_CALL(voidfunc2, 'a', 'b'); + + //Then + ASSERT_FAKE_ASSERTION_WAS(VALID); +} + +TEST_F(FFFTestSuite, assert_call_assertion_valid_when_some_args_specified_and_matched) +{ + //Given + voidfunc2('a', 'b'); + + //When + TEST_ASSERT_CALL(voidfunc2, 'a'); + + //Then + ASSERT_FAKE_ASSERTION_WAS(VALID); +} + +TEST_F(FFFTestSuite, assert_call_assertion_invalid_when_called_more_than_once) +{ + //Given + voidfunc2('a', 'b'); + voidfunc2('a', 'b'); + + //When + TEST_ASSERT_CALL(voidfunc2, 'a', 'b'); + + //Then + ASSERT_FAKE_ASSERTION_WAS(INVALID); +} + +TEST_F(FFFTestSuite, assert_call_assertion_invalid_given_arg_mismatch) +{ + //Given + voidfunc2('a', 'b'); + + //When + TEST_ASSERT_CALL(voidfunc2, 'a', 'a'); + + //Then + ASSERT_FAKE_ASSERTION_WAS(INVALID); +} + +TEST_F(FFFTestSuite, assert_nth_call_assertion_valid_given_matching_args) +{ + //Given + voidfunc2('a', 'a'); + voidfunc2('a', 'b'); + voidfunc2('b', 'a'); + + //When + TEST_ASSERT_NTH_CALL(voidfunc2, 2, 'a', 'b'); + + //Then + ASSERT_FAKE_ASSERTION_WAS(VALID); +} + +TEST_F(FFFTestSuite, assert_nth_call_assertion_invalid_given_arg_mismatch) +{ + //Given + voidfunc2('a', 'a'); + voidfunc2('a', 'b'); + voidfunc2('b', 'a'); + + //When + TEST_ASSERT_NTH_CALL(voidfunc2, 3, 'a', 'b'); + + //Then + ASSERT_FAKE_ASSERTION_WAS(INVALID); +} + +TEST_F(FFFTestSuite, assert_last_call_assertion_valid_given_multiple_calls) +{ + //Given + voidfunc2('a', 'a'); + voidfunc2('a', 'b'); + + //When + TEST_ASSERT_LAST_CALL(voidfunc2, 'a', 'b'); + + //Then + ASSERT_FAKE_ASSERTION_WAS(VALID); +} + +TEST_F(FFFTestSuite, assert_last_call_assertion_invalid_given_previous_call_args) +{ + //Given + voidfunc2('a', 'a'); + voidfunc2('a', 'b'); + + //When + TEST_ASSERT_LAST_CALL(voidfunc2, 'a', 'a'); + + //Then + ASSERT_FAKE_ASSERTION_WAS(INVALID); +} + +TEST_F(FFFTestSuite, assert_any_call_assertion_valid_given_any_match) +{ + //Given + voidfunc2('a', 'a'); + voidfunc2('a', 'b'); + voidfunc2('b', 'a'); + + //When + TEST_ASSERT_ANY_CALL(voidfunc2, 'a', 'b'); + TEST_ASSERT_ANY_CALL(voidfunc2, 'a', 'a'); + TEST_ASSERT_ANY_CALL(voidfunc2, 'b', 'a'); + + //Then + ASSERT_FAKE_ASSERTION_WAS(VALID); +} + +TEST_F(FFFTestSuite, assert_any_call_assertion_invalid_given_no_match) +{ + //Given + voidfunc2('a', 'a'); + voidfunc2('a', 'b'); + voidfunc2('b', 'a'); + + //When + TEST_ASSERT_ANY_CALL(voidfunc2, 'a', 'c'); + + //Then + ASSERT_FAKE_ASSERTION_WAS(INVALID); +} + +TEST_F(FFFTestSuite, assert_no_call_assertion_invalid_given_any_match) +{ + //Given + voidfunc2('a', 'a'); + voidfunc2('a', 'b'); + voidfunc2('b', 'a'); + + //When + TEST_ASSERT_NO_CALL(voidfunc2, 'a', 'a'); + + //Then + ASSERT_FAKE_ASSERTION_WAS(INVALID); +} + +TEST_F(FFFTestSuite, assert_no_call_assertion_valid_given_no_match) +{ + //Given + voidfunc2('a', 'a'); + voidfunc2('a', 'b'); + voidfunc2('b', 'a'); + + //When + TEST_ASSERT_NO_CALL(voidfunc2, 'a', 'c'); + + //Then + ASSERT_FAKE_ASSERTION_WAS(VALID); +} diff --git a/vaiter64.h b/vaiter64.h new file mode 100644 index 0000000..9fc8b1f --- /dev/null +++ b/vaiter64.h @@ -0,0 +1,314 @@ +/** + * @file + * + * va_iter.h + * Some useful c preprocessor extensions for dealing with variadic macros + * + * @author Cormac Cannon (cormacc.public@gmail.com) + * + * This is auto-generated code. The generator script and further background/usage info may be found here: + * https://github.com/cormacc/va_args_iterators + * + * Autogenerated on 26/03/2018 16:48 + * - Script: ./vaiter_generator.rb + * - Max argument count: 64 + * + * I initially encountered the variadic macro counting logic in this post by Laurent Deniau: + * https://groups.google.com/forum/#!topic/comp.std.c/d-6Mj5Lko_s + * Refined by arpad. and zhangj to handle the no-argument case + * + * Recursive VA_EACH implementation based on this blog post by Daniel Hardman: + * https://codecraft.co/2014/11/25/variadic-macros-tricks/ + * + * Non-recursive VA_IDX_EACH and VA_FIX_IDX_EACH macro implementations extend + * the VA_EACH implementation described in this (anonymous) blog post: + * http://ptspts.blogspot.ie/2013/11/how-to-apply-macro-to-all-arguments-of.html + */ + +#ifndef VA_ITER_H +# define VA_ITER_H + +# ifdef __cplusplus +extern "C" { +# endif + +#define VA_ARG_N(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, _65, N, ...) N +#define VA_NARGS(...) VA_ARG_N(_0, ## __VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0) +#define __VA_APPLY_0(TF, ...) +#define __VA_APPLY_1(TF, next_arg) TF(next_arg) +#define __VA_APPLY_2(TF, next_arg, ...) TF(next_arg) __VA_APPLY_1(TF, __VA_ARGS__) +#define __VA_APPLY_3(TF, next_arg, ...) TF(next_arg) __VA_APPLY_2(TF, __VA_ARGS__) +#define __VA_APPLY_4(TF, next_arg, ...) TF(next_arg) __VA_APPLY_3(TF, __VA_ARGS__) +#define __VA_APPLY_5(TF, next_arg, ...) TF(next_arg) __VA_APPLY_4(TF, __VA_ARGS__) +#define __VA_APPLY_6(TF, next_arg, ...) TF(next_arg) __VA_APPLY_5(TF, __VA_ARGS__) +#define __VA_APPLY_7(TF, next_arg, ...) TF(next_arg) __VA_APPLY_6(TF, __VA_ARGS__) +#define __VA_APPLY_8(TF, next_arg, ...) TF(next_arg) __VA_APPLY_7(TF, __VA_ARGS__) +#define __VA_APPLY_9(TF, next_arg, ...) TF(next_arg) __VA_APPLY_8(TF, __VA_ARGS__) +#define __VA_APPLY_10(TF, next_arg, ...) TF(next_arg) __VA_APPLY_9(TF, __VA_ARGS__) +#define __VA_APPLY_11(TF, next_arg, ...) TF(next_arg) __VA_APPLY_10(TF, __VA_ARGS__) +#define __VA_APPLY_12(TF, next_arg, ...) TF(next_arg) __VA_APPLY_11(TF, __VA_ARGS__) +#define __VA_APPLY_13(TF, next_arg, ...) TF(next_arg) __VA_APPLY_12(TF, __VA_ARGS__) +#define __VA_APPLY_14(TF, next_arg, ...) TF(next_arg) __VA_APPLY_13(TF, __VA_ARGS__) +#define __VA_APPLY_15(TF, next_arg, ...) TF(next_arg) __VA_APPLY_14(TF, __VA_ARGS__) +#define __VA_APPLY_16(TF, next_arg, ...) TF(next_arg) __VA_APPLY_15(TF, __VA_ARGS__) +#define __VA_APPLY_17(TF, next_arg, ...) TF(next_arg) __VA_APPLY_16(TF, __VA_ARGS__) +#define __VA_APPLY_18(TF, next_arg, ...) TF(next_arg) __VA_APPLY_17(TF, __VA_ARGS__) +#define __VA_APPLY_19(TF, next_arg, ...) TF(next_arg) __VA_APPLY_18(TF, __VA_ARGS__) +#define __VA_APPLY_20(TF, next_arg, ...) TF(next_arg) __VA_APPLY_19(TF, __VA_ARGS__) +#define __VA_APPLY_21(TF, next_arg, ...) TF(next_arg) __VA_APPLY_20(TF, __VA_ARGS__) +#define __VA_APPLY_22(TF, next_arg, ...) TF(next_arg) __VA_APPLY_21(TF, __VA_ARGS__) +#define __VA_APPLY_23(TF, next_arg, ...) TF(next_arg) __VA_APPLY_22(TF, __VA_ARGS__) +#define __VA_APPLY_24(TF, next_arg, ...) TF(next_arg) __VA_APPLY_23(TF, __VA_ARGS__) +#define __VA_APPLY_25(TF, next_arg, ...) TF(next_arg) __VA_APPLY_24(TF, __VA_ARGS__) +#define __VA_APPLY_26(TF, next_arg, ...) TF(next_arg) __VA_APPLY_25(TF, __VA_ARGS__) +#define __VA_APPLY_27(TF, next_arg, ...) TF(next_arg) __VA_APPLY_26(TF, __VA_ARGS__) +#define __VA_APPLY_28(TF, next_arg, ...) TF(next_arg) __VA_APPLY_27(TF, __VA_ARGS__) +#define __VA_APPLY_29(TF, next_arg, ...) TF(next_arg) __VA_APPLY_28(TF, __VA_ARGS__) +#define __VA_APPLY_30(TF, next_arg, ...) TF(next_arg) __VA_APPLY_29(TF, __VA_ARGS__) +#define __VA_APPLY_31(TF, next_arg, ...) TF(next_arg) __VA_APPLY_30(TF, __VA_ARGS__) +#define __VA_APPLY_32(TF, next_arg, ...) TF(next_arg) __VA_APPLY_31(TF, __VA_ARGS__) +#define __VA_APPLY_33(TF, next_arg, ...) TF(next_arg) __VA_APPLY_32(TF, __VA_ARGS__) +#define __VA_APPLY_34(TF, next_arg, ...) TF(next_arg) __VA_APPLY_33(TF, __VA_ARGS__) +#define __VA_APPLY_35(TF, next_arg, ...) TF(next_arg) __VA_APPLY_34(TF, __VA_ARGS__) +#define __VA_APPLY_36(TF, next_arg, ...) TF(next_arg) __VA_APPLY_35(TF, __VA_ARGS__) +#define __VA_APPLY_37(TF, next_arg, ...) TF(next_arg) __VA_APPLY_36(TF, __VA_ARGS__) +#define __VA_APPLY_38(TF, next_arg, ...) TF(next_arg) __VA_APPLY_37(TF, __VA_ARGS__) +#define __VA_APPLY_39(TF, next_arg, ...) TF(next_arg) __VA_APPLY_38(TF, __VA_ARGS__) +#define __VA_APPLY_40(TF, next_arg, ...) TF(next_arg) __VA_APPLY_39(TF, __VA_ARGS__) +#define __VA_APPLY_41(TF, next_arg, ...) TF(next_arg) __VA_APPLY_40(TF, __VA_ARGS__) +#define __VA_APPLY_42(TF, next_arg, ...) TF(next_arg) __VA_APPLY_41(TF, __VA_ARGS__) +#define __VA_APPLY_43(TF, next_arg, ...) TF(next_arg) __VA_APPLY_42(TF, __VA_ARGS__) +#define __VA_APPLY_44(TF, next_arg, ...) TF(next_arg) __VA_APPLY_43(TF, __VA_ARGS__) +#define __VA_APPLY_45(TF, next_arg, ...) TF(next_arg) __VA_APPLY_44(TF, __VA_ARGS__) +#define __VA_APPLY_46(TF, next_arg, ...) TF(next_arg) __VA_APPLY_45(TF, __VA_ARGS__) +#define __VA_APPLY_47(TF, next_arg, ...) TF(next_arg) __VA_APPLY_46(TF, __VA_ARGS__) +#define __VA_APPLY_48(TF, next_arg, ...) TF(next_arg) __VA_APPLY_47(TF, __VA_ARGS__) +#define __VA_APPLY_49(TF, next_arg, ...) TF(next_arg) __VA_APPLY_48(TF, __VA_ARGS__) +#define __VA_APPLY_50(TF, next_arg, ...) TF(next_arg) __VA_APPLY_49(TF, __VA_ARGS__) +#define __VA_APPLY_51(TF, next_arg, ...) TF(next_arg) __VA_APPLY_50(TF, __VA_ARGS__) +#define __VA_APPLY_52(TF, next_arg, ...) TF(next_arg) __VA_APPLY_51(TF, __VA_ARGS__) +#define __VA_APPLY_53(TF, next_arg, ...) TF(next_arg) __VA_APPLY_52(TF, __VA_ARGS__) +#define __VA_APPLY_54(TF, next_arg, ...) TF(next_arg) __VA_APPLY_53(TF, __VA_ARGS__) +#define __VA_APPLY_55(TF, next_arg, ...) TF(next_arg) __VA_APPLY_54(TF, __VA_ARGS__) +#define __VA_APPLY_56(TF, next_arg, ...) TF(next_arg) __VA_APPLY_55(TF, __VA_ARGS__) +#define __VA_APPLY_57(TF, next_arg, ...) TF(next_arg) __VA_APPLY_56(TF, __VA_ARGS__) +#define __VA_APPLY_58(TF, next_arg, ...) TF(next_arg) __VA_APPLY_57(TF, __VA_ARGS__) +#define __VA_APPLY_59(TF, next_arg, ...) TF(next_arg) __VA_APPLY_58(TF, __VA_ARGS__) +#define __VA_APPLY_60(TF, next_arg, ...) TF(next_arg) __VA_APPLY_59(TF, __VA_ARGS__) +#define __VA_APPLY_61(TF, next_arg, ...) TF(next_arg) __VA_APPLY_60(TF, __VA_ARGS__) +#define __VA_APPLY_62(TF, next_arg, ...) TF(next_arg) __VA_APPLY_61(TF, __VA_ARGS__) +#define __VA_APPLY_63(TF, next_arg, ...) TF(next_arg) __VA_APPLY_62(TF, __VA_ARGS__) +#define __VA_APPLY_64(TF, next_arg, ...) TF(next_arg) __VA_APPLY_63(TF, __VA_ARGS__) +#define VA_EACH(TF, ...) VA_ARG_N("ignored", ##__VA_ARGS__, __VA_APPLY_64, __VA_APPLY_63, __VA_APPLY_62, __VA_APPLY_61, __VA_APPLY_60, __VA_APPLY_59, __VA_APPLY_58, __VA_APPLY_57, __VA_APPLY_56, __VA_APPLY_55, __VA_APPLY_54, __VA_APPLY_53, __VA_APPLY_52, __VA_APPLY_51, __VA_APPLY_50, __VA_APPLY_49, __VA_APPLY_48, __VA_APPLY_47, __VA_APPLY_46, __VA_APPLY_45, __VA_APPLY_44, __VA_APPLY_43, __VA_APPLY_42, __VA_APPLY_41, __VA_APPLY_40, __VA_APPLY_39, __VA_APPLY_38, __VA_APPLY_37, __VA_APPLY_36, __VA_APPLY_35, __VA_APPLY_34, __VA_APPLY_33, __VA_APPLY_32, __VA_APPLY_31, __VA_APPLY_30, __VA_APPLY_29, __VA_APPLY_28, __VA_APPLY_27, __VA_APPLY_26, __VA_APPLY_25, __VA_APPLY_24, __VA_APPLY_23, __VA_APPLY_22, __VA_APPLY_21, __VA_APPLY_20, __VA_APPLY_19, __VA_APPLY_18, __VA_APPLY_17, __VA_APPLY_16, __VA_APPLY_15, __VA_APPLY_14, __VA_APPLY_13, __VA_APPLY_12, __VA_APPLY_11, __VA_APPLY_10, __VA_APPLY_9, __VA_APPLY_8, __VA_APPLY_7, __VA_APPLY_6, __VA_APPLY_5, __VA_APPLY_4, __VA_APPLY_3, __VA_APPLY_2, __VA_APPLY_1, __VA_APPLY_0)(TF, ##__VA_ARGS__) +#define __VA_IDX_APPLY_0(TF, dummy) +#define __VA_IDX_APPLY_1(TF, _0) TF(_0, 0) +#define __VA_IDX_APPLY_2(TF, _0, _1) TF(_0, 0) TF(_1, 1) +#define __VA_IDX_APPLY_3(TF, _0, _1, _2) TF(_0, 0) TF(_1, 1) TF(_2, 2) +#define __VA_IDX_APPLY_4(TF, _0, _1, _2, _3) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) +#define __VA_IDX_APPLY_5(TF, _0, _1, _2, _3, _4) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) +#define __VA_IDX_APPLY_6(TF, _0, _1, _2, _3, _4, _5) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) +#define __VA_IDX_APPLY_7(TF, _0, _1, _2, _3, _4, _5, _6) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) +#define __VA_IDX_APPLY_8(TF, _0, _1, _2, _3, _4, _5, _6, _7) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) +#define __VA_IDX_APPLY_9(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) +#define __VA_IDX_APPLY_10(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) +#define __VA_IDX_APPLY_11(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) +#define __VA_IDX_APPLY_12(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) +#define __VA_IDX_APPLY_13(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) +#define __VA_IDX_APPLY_14(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) +#define __VA_IDX_APPLY_15(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) +#define __VA_IDX_APPLY_16(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) +#define __VA_IDX_APPLY_17(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) +#define __VA_IDX_APPLY_18(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) +#define __VA_IDX_APPLY_19(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) +#define __VA_IDX_APPLY_20(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) +#define __VA_IDX_APPLY_21(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) +#define __VA_IDX_APPLY_22(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) +#define __VA_IDX_APPLY_23(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) +#define __VA_IDX_APPLY_24(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) +#define __VA_IDX_APPLY_25(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) +#define __VA_IDX_APPLY_26(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) +#define __VA_IDX_APPLY_27(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) +#define __VA_IDX_APPLY_28(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) +#define __VA_IDX_APPLY_29(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) +#define __VA_IDX_APPLY_30(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) +#define __VA_IDX_APPLY_31(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) +#define __VA_IDX_APPLY_32(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) +#define __VA_IDX_APPLY_33(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) +#define __VA_IDX_APPLY_34(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) +#define __VA_IDX_APPLY_35(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) +#define __VA_IDX_APPLY_36(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) +#define __VA_IDX_APPLY_37(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) +#define __VA_IDX_APPLY_38(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) +#define __VA_IDX_APPLY_39(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) +#define __VA_IDX_APPLY_40(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) TF(_39, 39) +#define __VA_IDX_APPLY_41(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) TF(_39, 39) TF(_40, 40) +#define __VA_IDX_APPLY_42(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) TF(_39, 39) TF(_40, 40) TF(_41, 41) +#define __VA_IDX_APPLY_43(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) TF(_39, 39) TF(_40, 40) TF(_41, 41) TF(_42, 42) +#define __VA_IDX_APPLY_44(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) TF(_39, 39) TF(_40, 40) TF(_41, 41) TF(_42, 42) TF(_43, 43) +#define __VA_IDX_APPLY_45(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) TF(_39, 39) TF(_40, 40) TF(_41, 41) TF(_42, 42) TF(_43, 43) TF(_44, 44) +#define __VA_IDX_APPLY_46(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) TF(_39, 39) TF(_40, 40) TF(_41, 41) TF(_42, 42) TF(_43, 43) TF(_44, 44) TF(_45, 45) +#define __VA_IDX_APPLY_47(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) TF(_39, 39) TF(_40, 40) TF(_41, 41) TF(_42, 42) TF(_43, 43) TF(_44, 44) TF(_45, 45) TF(_46, 46) +#define __VA_IDX_APPLY_48(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) TF(_39, 39) TF(_40, 40) TF(_41, 41) TF(_42, 42) TF(_43, 43) TF(_44, 44) TF(_45, 45) TF(_46, 46) TF(_47, 47) +#define __VA_IDX_APPLY_49(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) TF(_39, 39) TF(_40, 40) TF(_41, 41) TF(_42, 42) TF(_43, 43) TF(_44, 44) TF(_45, 45) TF(_46, 46) TF(_47, 47) TF(_48, 48) +#define __VA_IDX_APPLY_50(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) TF(_39, 39) TF(_40, 40) TF(_41, 41) TF(_42, 42) TF(_43, 43) TF(_44, 44) TF(_45, 45) TF(_46, 46) TF(_47, 47) TF(_48, 48) TF(_49, 49) +#define __VA_IDX_APPLY_51(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) TF(_39, 39) TF(_40, 40) TF(_41, 41) TF(_42, 42) TF(_43, 43) TF(_44, 44) TF(_45, 45) TF(_46, 46) TF(_47, 47) TF(_48, 48) TF(_49, 49) TF(_50, 50) +#define __VA_IDX_APPLY_52(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) TF(_39, 39) TF(_40, 40) TF(_41, 41) TF(_42, 42) TF(_43, 43) TF(_44, 44) TF(_45, 45) TF(_46, 46) TF(_47, 47) TF(_48, 48) TF(_49, 49) TF(_50, 50) TF(_51, 51) +#define __VA_IDX_APPLY_53(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) TF(_39, 39) TF(_40, 40) TF(_41, 41) TF(_42, 42) TF(_43, 43) TF(_44, 44) TF(_45, 45) TF(_46, 46) TF(_47, 47) TF(_48, 48) TF(_49, 49) TF(_50, 50) TF(_51, 51) TF(_52, 52) +#define __VA_IDX_APPLY_54(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) TF(_39, 39) TF(_40, 40) TF(_41, 41) TF(_42, 42) TF(_43, 43) TF(_44, 44) TF(_45, 45) TF(_46, 46) TF(_47, 47) TF(_48, 48) TF(_49, 49) TF(_50, 50) TF(_51, 51) TF(_52, 52) TF(_53, 53) +#define __VA_IDX_APPLY_55(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) TF(_39, 39) TF(_40, 40) TF(_41, 41) TF(_42, 42) TF(_43, 43) TF(_44, 44) TF(_45, 45) TF(_46, 46) TF(_47, 47) TF(_48, 48) TF(_49, 49) TF(_50, 50) TF(_51, 51) TF(_52, 52) TF(_53, 53) TF(_54, 54) +#define __VA_IDX_APPLY_56(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) TF(_39, 39) TF(_40, 40) TF(_41, 41) TF(_42, 42) TF(_43, 43) TF(_44, 44) TF(_45, 45) TF(_46, 46) TF(_47, 47) TF(_48, 48) TF(_49, 49) TF(_50, 50) TF(_51, 51) TF(_52, 52) TF(_53, 53) TF(_54, 54) TF(_55, 55) +#define __VA_IDX_APPLY_57(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) TF(_39, 39) TF(_40, 40) TF(_41, 41) TF(_42, 42) TF(_43, 43) TF(_44, 44) TF(_45, 45) TF(_46, 46) TF(_47, 47) TF(_48, 48) TF(_49, 49) TF(_50, 50) TF(_51, 51) TF(_52, 52) TF(_53, 53) TF(_54, 54) TF(_55, 55) TF(_56, 56) +#define __VA_IDX_APPLY_58(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) TF(_39, 39) TF(_40, 40) TF(_41, 41) TF(_42, 42) TF(_43, 43) TF(_44, 44) TF(_45, 45) TF(_46, 46) TF(_47, 47) TF(_48, 48) TF(_49, 49) TF(_50, 50) TF(_51, 51) TF(_52, 52) TF(_53, 53) TF(_54, 54) TF(_55, 55) TF(_56, 56) TF(_57, 57) +#define __VA_IDX_APPLY_59(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) TF(_39, 39) TF(_40, 40) TF(_41, 41) TF(_42, 42) TF(_43, 43) TF(_44, 44) TF(_45, 45) TF(_46, 46) TF(_47, 47) TF(_48, 48) TF(_49, 49) TF(_50, 50) TF(_51, 51) TF(_52, 52) TF(_53, 53) TF(_54, 54) TF(_55, 55) TF(_56, 56) TF(_57, 57) TF(_58, 58) +#define __VA_IDX_APPLY_60(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) TF(_39, 39) TF(_40, 40) TF(_41, 41) TF(_42, 42) TF(_43, 43) TF(_44, 44) TF(_45, 45) TF(_46, 46) TF(_47, 47) TF(_48, 48) TF(_49, 49) TF(_50, 50) TF(_51, 51) TF(_52, 52) TF(_53, 53) TF(_54, 54) TF(_55, 55) TF(_56, 56) TF(_57, 57) TF(_58, 58) TF(_59, 59) +#define __VA_IDX_APPLY_61(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) TF(_39, 39) TF(_40, 40) TF(_41, 41) TF(_42, 42) TF(_43, 43) TF(_44, 44) TF(_45, 45) TF(_46, 46) TF(_47, 47) TF(_48, 48) TF(_49, 49) TF(_50, 50) TF(_51, 51) TF(_52, 52) TF(_53, 53) TF(_54, 54) TF(_55, 55) TF(_56, 56) TF(_57, 57) TF(_58, 58) TF(_59, 59) TF(_60, 60) +#define __VA_IDX_APPLY_62(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) TF(_39, 39) TF(_40, 40) TF(_41, 41) TF(_42, 42) TF(_43, 43) TF(_44, 44) TF(_45, 45) TF(_46, 46) TF(_47, 47) TF(_48, 48) TF(_49, 49) TF(_50, 50) TF(_51, 51) TF(_52, 52) TF(_53, 53) TF(_54, 54) TF(_55, 55) TF(_56, 56) TF(_57, 57) TF(_58, 58) TF(_59, 59) TF(_60, 60) TF(_61, 61) +#define __VA_IDX_APPLY_63(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) TF(_39, 39) TF(_40, 40) TF(_41, 41) TF(_42, 42) TF(_43, 43) TF(_44, 44) TF(_45, 45) TF(_46, 46) TF(_47, 47) TF(_48, 48) TF(_49, 49) TF(_50, 50) TF(_51, 51) TF(_52, 52) TF(_53, 53) TF(_54, 54) TF(_55, 55) TF(_56, 56) TF(_57, 57) TF(_58, 58) TF(_59, 59) TF(_60, 60) TF(_61, 61) TF(_62, 62) +#define __VA_IDX_APPLY_64(TF, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) TF(_0, 0) TF(_1, 1) TF(_2, 2) TF(_3, 3) TF(_4, 4) TF(_5, 5) TF(_6, 6) TF(_7, 7) TF(_8, 8) TF(_9, 9) TF(_10, 10) TF(_11, 11) TF(_12, 12) TF(_13, 13) TF(_14, 14) TF(_15, 15) TF(_16, 16) TF(_17, 17) TF(_18, 18) TF(_19, 19) TF(_20, 20) TF(_21, 21) TF(_22, 22) TF(_23, 23) TF(_24, 24) TF(_25, 25) TF(_26, 26) TF(_27, 27) TF(_28, 28) TF(_29, 29) TF(_30, 30) TF(_31, 31) TF(_32, 32) TF(_33, 33) TF(_34, 34) TF(_35, 35) TF(_36, 36) TF(_37, 37) TF(_38, 38) TF(_39, 39) TF(_40, 40) TF(_41, 41) TF(_42, 42) TF(_43, 43) TF(_44, 44) TF(_45, 45) TF(_46, 46) TF(_47, 47) TF(_48, 48) TF(_49, 49) TF(_50, 50) TF(_51, 51) TF(_52, 52) TF(_53, 53) TF(_54, 54) TF(_55, 55) TF(_56, 56) TF(_57, 57) TF(_58, 58) TF(_59, 59) TF(_60, 60) TF(_61, 61) TF(_62, 62) TF(_63, 63) +#define _VA_IDX_EACH_H3(TF, N, ...) __VA_IDX_APPLY_##N(TF, __VA_ARGS__) +#define _VA_IDX_EACH_H2(TF, N, ...) _VA_IDX_EACH_H3(TF, N, __VA_ARGS__) +#define VA_IDX_EACH(TF, ...) _VA_IDX_EACH_H2(TF, VA_NARGS(__VA_ARGS__), __VA_ARGS__) +#define VA_EACH_WITH_INDEX(...) VA_IDX_EACH(...) +#define __VA_FIX_IDX_APPLY_0(TF, ARG, dummy) +#define __VA_FIX_IDX_APPLY_1(TF, FARG, _0) TF(FARG, _0, 0) +#define __VA_FIX_IDX_APPLY_2(TF, FARG, _0, _1) TF(FARG, _0, 0) TF(FARG, _1, 1) +#define __VA_FIX_IDX_APPLY_3(TF, FARG, _0, _1, _2) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) +#define __VA_FIX_IDX_APPLY_4(TF, FARG, _0, _1, _2, _3) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) +#define __VA_FIX_IDX_APPLY_5(TF, FARG, _0, _1, _2, _3, _4) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) +#define __VA_FIX_IDX_APPLY_6(TF, FARG, _0, _1, _2, _3, _4, _5) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) +#define __VA_FIX_IDX_APPLY_7(TF, FARG, _0, _1, _2, _3, _4, _5, _6) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) +#define __VA_FIX_IDX_APPLY_8(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) +#define __VA_FIX_IDX_APPLY_9(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) +#define __VA_FIX_IDX_APPLY_10(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) +#define __VA_FIX_IDX_APPLY_11(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) +#define __VA_FIX_IDX_APPLY_12(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) +#define __VA_FIX_IDX_APPLY_13(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) +#define __VA_FIX_IDX_APPLY_14(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) +#define __VA_FIX_IDX_APPLY_15(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) +#define __VA_FIX_IDX_APPLY_16(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) +#define __VA_FIX_IDX_APPLY_17(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) +#define __VA_FIX_IDX_APPLY_18(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) +#define __VA_FIX_IDX_APPLY_19(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) +#define __VA_FIX_IDX_APPLY_20(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) +#define __VA_FIX_IDX_APPLY_21(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) +#define __VA_FIX_IDX_APPLY_22(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) +#define __VA_FIX_IDX_APPLY_23(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) +#define __VA_FIX_IDX_APPLY_24(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) +#define __VA_FIX_IDX_APPLY_25(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) +#define __VA_FIX_IDX_APPLY_26(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) +#define __VA_FIX_IDX_APPLY_27(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) +#define __VA_FIX_IDX_APPLY_28(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) +#define __VA_FIX_IDX_APPLY_29(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) +#define __VA_FIX_IDX_APPLY_30(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) +#define __VA_FIX_IDX_APPLY_31(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) +#define __VA_FIX_IDX_APPLY_32(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) +#define __VA_FIX_IDX_APPLY_33(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) +#define __VA_FIX_IDX_APPLY_34(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) +#define __VA_FIX_IDX_APPLY_35(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) +#define __VA_FIX_IDX_APPLY_36(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) +#define __VA_FIX_IDX_APPLY_37(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) +#define __VA_FIX_IDX_APPLY_38(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) +#define __VA_FIX_IDX_APPLY_39(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) +#define __VA_FIX_IDX_APPLY_40(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) TF(FARG, _39, 39) +#define __VA_FIX_IDX_APPLY_41(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) TF(FARG, _39, 39) TF(FARG, _40, 40) +#define __VA_FIX_IDX_APPLY_42(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) TF(FARG, _39, 39) TF(FARG, _40, 40) TF(FARG, _41, 41) +#define __VA_FIX_IDX_APPLY_43(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) TF(FARG, _39, 39) TF(FARG, _40, 40) TF(FARG, _41, 41) TF(FARG, _42, 42) +#define __VA_FIX_IDX_APPLY_44(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) TF(FARG, _39, 39) TF(FARG, _40, 40) TF(FARG, _41, 41) TF(FARG, _42, 42) TF(FARG, _43, 43) +#define __VA_FIX_IDX_APPLY_45(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) TF(FARG, _39, 39) TF(FARG, _40, 40) TF(FARG, _41, 41) TF(FARG, _42, 42) TF(FARG, _43, 43) TF(FARG, _44, 44) +#define __VA_FIX_IDX_APPLY_46(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) TF(FARG, _39, 39) TF(FARG, _40, 40) TF(FARG, _41, 41) TF(FARG, _42, 42) TF(FARG, _43, 43) TF(FARG, _44, 44) TF(FARG, _45, 45) +#define __VA_FIX_IDX_APPLY_47(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) TF(FARG, _39, 39) TF(FARG, _40, 40) TF(FARG, _41, 41) TF(FARG, _42, 42) TF(FARG, _43, 43) TF(FARG, _44, 44) TF(FARG, _45, 45) TF(FARG, _46, 46) +#define __VA_FIX_IDX_APPLY_48(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) TF(FARG, _39, 39) TF(FARG, _40, 40) TF(FARG, _41, 41) TF(FARG, _42, 42) TF(FARG, _43, 43) TF(FARG, _44, 44) TF(FARG, _45, 45) TF(FARG, _46, 46) TF(FARG, _47, 47) +#define __VA_FIX_IDX_APPLY_49(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) TF(FARG, _39, 39) TF(FARG, _40, 40) TF(FARG, _41, 41) TF(FARG, _42, 42) TF(FARG, _43, 43) TF(FARG, _44, 44) TF(FARG, _45, 45) TF(FARG, _46, 46) TF(FARG, _47, 47) TF(FARG, _48, 48) +#define __VA_FIX_IDX_APPLY_50(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) TF(FARG, _39, 39) TF(FARG, _40, 40) TF(FARG, _41, 41) TF(FARG, _42, 42) TF(FARG, _43, 43) TF(FARG, _44, 44) TF(FARG, _45, 45) TF(FARG, _46, 46) TF(FARG, _47, 47) TF(FARG, _48, 48) TF(FARG, _49, 49) +#define __VA_FIX_IDX_APPLY_51(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) TF(FARG, _39, 39) TF(FARG, _40, 40) TF(FARG, _41, 41) TF(FARG, _42, 42) TF(FARG, _43, 43) TF(FARG, _44, 44) TF(FARG, _45, 45) TF(FARG, _46, 46) TF(FARG, _47, 47) TF(FARG, _48, 48) TF(FARG, _49, 49) TF(FARG, _50, 50) +#define __VA_FIX_IDX_APPLY_52(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) TF(FARG, _39, 39) TF(FARG, _40, 40) TF(FARG, _41, 41) TF(FARG, _42, 42) TF(FARG, _43, 43) TF(FARG, _44, 44) TF(FARG, _45, 45) TF(FARG, _46, 46) TF(FARG, _47, 47) TF(FARG, _48, 48) TF(FARG, _49, 49) TF(FARG, _50, 50) TF(FARG, _51, 51) +#define __VA_FIX_IDX_APPLY_53(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) TF(FARG, _39, 39) TF(FARG, _40, 40) TF(FARG, _41, 41) TF(FARG, _42, 42) TF(FARG, _43, 43) TF(FARG, _44, 44) TF(FARG, _45, 45) TF(FARG, _46, 46) TF(FARG, _47, 47) TF(FARG, _48, 48) TF(FARG, _49, 49) TF(FARG, _50, 50) TF(FARG, _51, 51) TF(FARG, _52, 52) +#define __VA_FIX_IDX_APPLY_54(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) TF(FARG, _39, 39) TF(FARG, _40, 40) TF(FARG, _41, 41) TF(FARG, _42, 42) TF(FARG, _43, 43) TF(FARG, _44, 44) TF(FARG, _45, 45) TF(FARG, _46, 46) TF(FARG, _47, 47) TF(FARG, _48, 48) TF(FARG, _49, 49) TF(FARG, _50, 50) TF(FARG, _51, 51) TF(FARG, _52, 52) TF(FARG, _53, 53) +#define __VA_FIX_IDX_APPLY_55(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) TF(FARG, _39, 39) TF(FARG, _40, 40) TF(FARG, _41, 41) TF(FARG, _42, 42) TF(FARG, _43, 43) TF(FARG, _44, 44) TF(FARG, _45, 45) TF(FARG, _46, 46) TF(FARG, _47, 47) TF(FARG, _48, 48) TF(FARG, _49, 49) TF(FARG, _50, 50) TF(FARG, _51, 51) TF(FARG, _52, 52) TF(FARG, _53, 53) TF(FARG, _54, 54) +#define __VA_FIX_IDX_APPLY_56(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) TF(FARG, _39, 39) TF(FARG, _40, 40) TF(FARG, _41, 41) TF(FARG, _42, 42) TF(FARG, _43, 43) TF(FARG, _44, 44) TF(FARG, _45, 45) TF(FARG, _46, 46) TF(FARG, _47, 47) TF(FARG, _48, 48) TF(FARG, _49, 49) TF(FARG, _50, 50) TF(FARG, _51, 51) TF(FARG, _52, 52) TF(FARG, _53, 53) TF(FARG, _54, 54) TF(FARG, _55, 55) +#define __VA_FIX_IDX_APPLY_57(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) TF(FARG, _39, 39) TF(FARG, _40, 40) TF(FARG, _41, 41) TF(FARG, _42, 42) TF(FARG, _43, 43) TF(FARG, _44, 44) TF(FARG, _45, 45) TF(FARG, _46, 46) TF(FARG, _47, 47) TF(FARG, _48, 48) TF(FARG, _49, 49) TF(FARG, _50, 50) TF(FARG, _51, 51) TF(FARG, _52, 52) TF(FARG, _53, 53) TF(FARG, _54, 54) TF(FARG, _55, 55) TF(FARG, _56, 56) +#define __VA_FIX_IDX_APPLY_58(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) TF(FARG, _39, 39) TF(FARG, _40, 40) TF(FARG, _41, 41) TF(FARG, _42, 42) TF(FARG, _43, 43) TF(FARG, _44, 44) TF(FARG, _45, 45) TF(FARG, _46, 46) TF(FARG, _47, 47) TF(FARG, _48, 48) TF(FARG, _49, 49) TF(FARG, _50, 50) TF(FARG, _51, 51) TF(FARG, _52, 52) TF(FARG, _53, 53) TF(FARG, _54, 54) TF(FARG, _55, 55) TF(FARG, _56, 56) TF(FARG, _57, 57) +#define __VA_FIX_IDX_APPLY_59(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) TF(FARG, _39, 39) TF(FARG, _40, 40) TF(FARG, _41, 41) TF(FARG, _42, 42) TF(FARG, _43, 43) TF(FARG, _44, 44) TF(FARG, _45, 45) TF(FARG, _46, 46) TF(FARG, _47, 47) TF(FARG, _48, 48) TF(FARG, _49, 49) TF(FARG, _50, 50) TF(FARG, _51, 51) TF(FARG, _52, 52) TF(FARG, _53, 53) TF(FARG, _54, 54) TF(FARG, _55, 55) TF(FARG, _56, 56) TF(FARG, _57, 57) TF(FARG, _58, 58) +#define __VA_FIX_IDX_APPLY_60(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) TF(FARG, _39, 39) TF(FARG, _40, 40) TF(FARG, _41, 41) TF(FARG, _42, 42) TF(FARG, _43, 43) TF(FARG, _44, 44) TF(FARG, _45, 45) TF(FARG, _46, 46) TF(FARG, _47, 47) TF(FARG, _48, 48) TF(FARG, _49, 49) TF(FARG, _50, 50) TF(FARG, _51, 51) TF(FARG, _52, 52) TF(FARG, _53, 53) TF(FARG, _54, 54) TF(FARG, _55, 55) TF(FARG, _56, 56) TF(FARG, _57, 57) TF(FARG, _58, 58) TF(FARG, _59, 59) +#define __VA_FIX_IDX_APPLY_61(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) TF(FARG, _39, 39) TF(FARG, _40, 40) TF(FARG, _41, 41) TF(FARG, _42, 42) TF(FARG, _43, 43) TF(FARG, _44, 44) TF(FARG, _45, 45) TF(FARG, _46, 46) TF(FARG, _47, 47) TF(FARG, _48, 48) TF(FARG, _49, 49) TF(FARG, _50, 50) TF(FARG, _51, 51) TF(FARG, _52, 52) TF(FARG, _53, 53) TF(FARG, _54, 54) TF(FARG, _55, 55) TF(FARG, _56, 56) TF(FARG, _57, 57) TF(FARG, _58, 58) TF(FARG, _59, 59) TF(FARG, _60, 60) +#define __VA_FIX_IDX_APPLY_62(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) TF(FARG, _39, 39) TF(FARG, _40, 40) TF(FARG, _41, 41) TF(FARG, _42, 42) TF(FARG, _43, 43) TF(FARG, _44, 44) TF(FARG, _45, 45) TF(FARG, _46, 46) TF(FARG, _47, 47) TF(FARG, _48, 48) TF(FARG, _49, 49) TF(FARG, _50, 50) TF(FARG, _51, 51) TF(FARG, _52, 52) TF(FARG, _53, 53) TF(FARG, _54, 54) TF(FARG, _55, 55) TF(FARG, _56, 56) TF(FARG, _57, 57) TF(FARG, _58, 58) TF(FARG, _59, 59) TF(FARG, _60, 60) TF(FARG, _61, 61) +#define __VA_FIX_IDX_APPLY_63(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) TF(FARG, _39, 39) TF(FARG, _40, 40) TF(FARG, _41, 41) TF(FARG, _42, 42) TF(FARG, _43, 43) TF(FARG, _44, 44) TF(FARG, _45, 45) TF(FARG, _46, 46) TF(FARG, _47, 47) TF(FARG, _48, 48) TF(FARG, _49, 49) TF(FARG, _50, 50) TF(FARG, _51, 51) TF(FARG, _52, 52) TF(FARG, _53, 53) TF(FARG, _54, 54) TF(FARG, _55, 55) TF(FARG, _56, 56) TF(FARG, _57, 57) TF(FARG, _58, 58) TF(FARG, _59, 59) TF(FARG, _60, 60) TF(FARG, _61, 61) TF(FARG, _62, 62) +#define __VA_FIX_IDX_APPLY_64(TF, FARG, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) TF(FARG, _0, 0) TF(FARG, _1, 1) TF(FARG, _2, 2) TF(FARG, _3, 3) TF(FARG, _4, 4) TF(FARG, _5, 5) TF(FARG, _6, 6) TF(FARG, _7, 7) TF(FARG, _8, 8) TF(FARG, _9, 9) TF(FARG, _10, 10) TF(FARG, _11, 11) TF(FARG, _12, 12) TF(FARG, _13, 13) TF(FARG, _14, 14) TF(FARG, _15, 15) TF(FARG, _16, 16) TF(FARG, _17, 17) TF(FARG, _18, 18) TF(FARG, _19, 19) TF(FARG, _20, 20) TF(FARG, _21, 21) TF(FARG, _22, 22) TF(FARG, _23, 23) TF(FARG, _24, 24) TF(FARG, _25, 25) TF(FARG, _26, 26) TF(FARG, _27, 27) TF(FARG, _28, 28) TF(FARG, _29, 29) TF(FARG, _30, 30) TF(FARG, _31, 31) TF(FARG, _32, 32) TF(FARG, _33, 33) TF(FARG, _34, 34) TF(FARG, _35, 35) TF(FARG, _36, 36) TF(FARG, _37, 37) TF(FARG, _38, 38) TF(FARG, _39, 39) TF(FARG, _40, 40) TF(FARG, _41, 41) TF(FARG, _42, 42) TF(FARG, _43, 43) TF(FARG, _44, 44) TF(FARG, _45, 45) TF(FARG, _46, 46) TF(FARG, _47, 47) TF(FARG, _48, 48) TF(FARG, _49, 49) TF(FARG, _50, 50) TF(FARG, _51, 51) TF(FARG, _52, 52) TF(FARG, _53, 53) TF(FARG, _54, 54) TF(FARG, _55, 55) TF(FARG, _56, 56) TF(FARG, _57, 57) TF(FARG, _58, 58) TF(FARG, _59, 59) TF(FARG, _60, 60) TF(FARG, _61, 61) TF(FARG, _62, 62) TF(FARG, _63, 63) +#define _VA_FIX_IDX_EACH_H3(TF, FARG, N, ...) __VA_FIX_IDX_APPLY_##N(TF, FARG, __VA_ARGS__) +#define _VA_FIX_IDX_EACH_H2(TF, FARG, N, ...) _VA_FIX_IDX_EACH_H3(TF, FARG, N, __VA_ARGS__) +#define VA_FIX_IDX_EACH(TF, FARG, ...) _VA_FIX_IDX_EACH_H2(TF, FARG, VA_NARGS(__VA_ARGS__), __VA_ARGS__) +#define VA_EACH_WITH_INDEX_AND_FIXED_ARG(...) VA_FIX_IDX_EACH(...) +#define __VA_2FIX_IDX_APPLY_0(TF, ARG, dummy) +#define __VA_2FIX_IDX_APPLY_1(TF, FARG1, FARG2, _0) TF(FARG1, FARG2, _0, 0) +#define __VA_2FIX_IDX_APPLY_2(TF, FARG1, FARG2, _0, _1) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) +#define __VA_2FIX_IDX_APPLY_3(TF, FARG1, FARG2, _0, _1, _2) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) +#define __VA_2FIX_IDX_APPLY_4(TF, FARG1, FARG2, _0, _1, _2, _3) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) +#define __VA_2FIX_IDX_APPLY_5(TF, FARG1, FARG2, _0, _1, _2, _3, _4) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) +#define __VA_2FIX_IDX_APPLY_6(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) +#define __VA_2FIX_IDX_APPLY_7(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) +#define __VA_2FIX_IDX_APPLY_8(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) +#define __VA_2FIX_IDX_APPLY_9(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) +#define __VA_2FIX_IDX_APPLY_10(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) +#define __VA_2FIX_IDX_APPLY_11(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) +#define __VA_2FIX_IDX_APPLY_12(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) +#define __VA_2FIX_IDX_APPLY_13(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) +#define __VA_2FIX_IDX_APPLY_14(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) +#define __VA_2FIX_IDX_APPLY_15(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) +#define __VA_2FIX_IDX_APPLY_16(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) +#define __VA_2FIX_IDX_APPLY_17(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) +#define __VA_2FIX_IDX_APPLY_18(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) +#define __VA_2FIX_IDX_APPLY_19(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) +#define __VA_2FIX_IDX_APPLY_20(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) +#define __VA_2FIX_IDX_APPLY_21(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) +#define __VA_2FIX_IDX_APPLY_22(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) +#define __VA_2FIX_IDX_APPLY_23(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) +#define __VA_2FIX_IDX_APPLY_24(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) +#define __VA_2FIX_IDX_APPLY_25(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) +#define __VA_2FIX_IDX_APPLY_26(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) +#define __VA_2FIX_IDX_APPLY_27(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) +#define __VA_2FIX_IDX_APPLY_28(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) +#define __VA_2FIX_IDX_APPLY_29(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) +#define __VA_2FIX_IDX_APPLY_30(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) +#define __VA_2FIX_IDX_APPLY_31(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) +#define __VA_2FIX_IDX_APPLY_32(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) +#define __VA_2FIX_IDX_APPLY_33(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) +#define __VA_2FIX_IDX_APPLY_34(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) +#define __VA_2FIX_IDX_APPLY_35(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) +#define __VA_2FIX_IDX_APPLY_36(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) +#define __VA_2FIX_IDX_APPLY_37(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) +#define __VA_2FIX_IDX_APPLY_38(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) +#define __VA_2FIX_IDX_APPLY_39(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) +#define __VA_2FIX_IDX_APPLY_40(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) TF(FARG1, FARG2, _39, 39) +#define __VA_2FIX_IDX_APPLY_41(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) TF(FARG1, FARG2, _39, 39) TF(FARG1, FARG2, _40, 40) +#define __VA_2FIX_IDX_APPLY_42(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) TF(FARG1, FARG2, _39, 39) TF(FARG1, FARG2, _40, 40) TF(FARG1, FARG2, _41, 41) +#define __VA_2FIX_IDX_APPLY_43(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) TF(FARG1, FARG2, _39, 39) TF(FARG1, FARG2, _40, 40) TF(FARG1, FARG2, _41, 41) TF(FARG1, FARG2, _42, 42) +#define __VA_2FIX_IDX_APPLY_44(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) TF(FARG1, FARG2, _39, 39) TF(FARG1, FARG2, _40, 40) TF(FARG1, FARG2, _41, 41) TF(FARG1, FARG2, _42, 42) TF(FARG1, FARG2, _43, 43) +#define __VA_2FIX_IDX_APPLY_45(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) TF(FARG1, FARG2, _39, 39) TF(FARG1, FARG2, _40, 40) TF(FARG1, FARG2, _41, 41) TF(FARG1, FARG2, _42, 42) TF(FARG1, FARG2, _43, 43) TF(FARG1, FARG2, _44, 44) +#define __VA_2FIX_IDX_APPLY_46(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) TF(FARG1, FARG2, _39, 39) TF(FARG1, FARG2, _40, 40) TF(FARG1, FARG2, _41, 41) TF(FARG1, FARG2, _42, 42) TF(FARG1, FARG2, _43, 43) TF(FARG1, FARG2, _44, 44) TF(FARG1, FARG2, _45, 45) +#define __VA_2FIX_IDX_APPLY_47(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) TF(FARG1, FARG2, _39, 39) TF(FARG1, FARG2, _40, 40) TF(FARG1, FARG2, _41, 41) TF(FARG1, FARG2, _42, 42) TF(FARG1, FARG2, _43, 43) TF(FARG1, FARG2, _44, 44) TF(FARG1, FARG2, _45, 45) TF(FARG1, FARG2, _46, 46) +#define __VA_2FIX_IDX_APPLY_48(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) TF(FARG1, FARG2, _39, 39) TF(FARG1, FARG2, _40, 40) TF(FARG1, FARG2, _41, 41) TF(FARG1, FARG2, _42, 42) TF(FARG1, FARG2, _43, 43) TF(FARG1, FARG2, _44, 44) TF(FARG1, FARG2, _45, 45) TF(FARG1, FARG2, _46, 46) TF(FARG1, FARG2, _47, 47) +#define __VA_2FIX_IDX_APPLY_49(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) TF(FARG1, FARG2, _39, 39) TF(FARG1, FARG2, _40, 40) TF(FARG1, FARG2, _41, 41) TF(FARG1, FARG2, _42, 42) TF(FARG1, FARG2, _43, 43) TF(FARG1, FARG2, _44, 44) TF(FARG1, FARG2, _45, 45) TF(FARG1, FARG2, _46, 46) TF(FARG1, FARG2, _47, 47) TF(FARG1, FARG2, _48, 48) +#define __VA_2FIX_IDX_APPLY_50(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) TF(FARG1, FARG2, _39, 39) TF(FARG1, FARG2, _40, 40) TF(FARG1, FARG2, _41, 41) TF(FARG1, FARG2, _42, 42) TF(FARG1, FARG2, _43, 43) TF(FARG1, FARG2, _44, 44) TF(FARG1, FARG2, _45, 45) TF(FARG1, FARG2, _46, 46) TF(FARG1, FARG2, _47, 47) TF(FARG1, FARG2, _48, 48) TF(FARG1, FARG2, _49, 49) +#define __VA_2FIX_IDX_APPLY_51(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) TF(FARG1, FARG2, _39, 39) TF(FARG1, FARG2, _40, 40) TF(FARG1, FARG2, _41, 41) TF(FARG1, FARG2, _42, 42) TF(FARG1, FARG2, _43, 43) TF(FARG1, FARG2, _44, 44) TF(FARG1, FARG2, _45, 45) TF(FARG1, FARG2, _46, 46) TF(FARG1, FARG2, _47, 47) TF(FARG1, FARG2, _48, 48) TF(FARG1, FARG2, _49, 49) TF(FARG1, FARG2, _50, 50) +#define __VA_2FIX_IDX_APPLY_52(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) TF(FARG1, FARG2, _39, 39) TF(FARG1, FARG2, _40, 40) TF(FARG1, FARG2, _41, 41) TF(FARG1, FARG2, _42, 42) TF(FARG1, FARG2, _43, 43) TF(FARG1, FARG2, _44, 44) TF(FARG1, FARG2, _45, 45) TF(FARG1, FARG2, _46, 46) TF(FARG1, FARG2, _47, 47) TF(FARG1, FARG2, _48, 48) TF(FARG1, FARG2, _49, 49) TF(FARG1, FARG2, _50, 50) TF(FARG1, FARG2, _51, 51) +#define __VA_2FIX_IDX_APPLY_53(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) TF(FARG1, FARG2, _39, 39) TF(FARG1, FARG2, _40, 40) TF(FARG1, FARG2, _41, 41) TF(FARG1, FARG2, _42, 42) TF(FARG1, FARG2, _43, 43) TF(FARG1, FARG2, _44, 44) TF(FARG1, FARG2, _45, 45) TF(FARG1, FARG2, _46, 46) TF(FARG1, FARG2, _47, 47) TF(FARG1, FARG2, _48, 48) TF(FARG1, FARG2, _49, 49) TF(FARG1, FARG2, _50, 50) TF(FARG1, FARG2, _51, 51) TF(FARG1, FARG2, _52, 52) +#define __VA_2FIX_IDX_APPLY_54(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) TF(FARG1, FARG2, _39, 39) TF(FARG1, FARG2, _40, 40) TF(FARG1, FARG2, _41, 41) TF(FARG1, FARG2, _42, 42) TF(FARG1, FARG2, _43, 43) TF(FARG1, FARG2, _44, 44) TF(FARG1, FARG2, _45, 45) TF(FARG1, FARG2, _46, 46) TF(FARG1, FARG2, _47, 47) TF(FARG1, FARG2, _48, 48) TF(FARG1, FARG2, _49, 49) TF(FARG1, FARG2, _50, 50) TF(FARG1, FARG2, _51, 51) TF(FARG1, FARG2, _52, 52) TF(FARG1, FARG2, _53, 53) +#define __VA_2FIX_IDX_APPLY_55(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) TF(FARG1, FARG2, _39, 39) TF(FARG1, FARG2, _40, 40) TF(FARG1, FARG2, _41, 41) TF(FARG1, FARG2, _42, 42) TF(FARG1, FARG2, _43, 43) TF(FARG1, FARG2, _44, 44) TF(FARG1, FARG2, _45, 45) TF(FARG1, FARG2, _46, 46) TF(FARG1, FARG2, _47, 47) TF(FARG1, FARG2, _48, 48) TF(FARG1, FARG2, _49, 49) TF(FARG1, FARG2, _50, 50) TF(FARG1, FARG2, _51, 51) TF(FARG1, FARG2, _52, 52) TF(FARG1, FARG2, _53, 53) TF(FARG1, FARG2, _54, 54) +#define __VA_2FIX_IDX_APPLY_56(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) TF(FARG1, FARG2, _39, 39) TF(FARG1, FARG2, _40, 40) TF(FARG1, FARG2, _41, 41) TF(FARG1, FARG2, _42, 42) TF(FARG1, FARG2, _43, 43) TF(FARG1, FARG2, _44, 44) TF(FARG1, FARG2, _45, 45) TF(FARG1, FARG2, _46, 46) TF(FARG1, FARG2, _47, 47) TF(FARG1, FARG2, _48, 48) TF(FARG1, FARG2, _49, 49) TF(FARG1, FARG2, _50, 50) TF(FARG1, FARG2, _51, 51) TF(FARG1, FARG2, _52, 52) TF(FARG1, FARG2, _53, 53) TF(FARG1, FARG2, _54, 54) TF(FARG1, FARG2, _55, 55) +#define __VA_2FIX_IDX_APPLY_57(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) TF(FARG1, FARG2, _39, 39) TF(FARG1, FARG2, _40, 40) TF(FARG1, FARG2, _41, 41) TF(FARG1, FARG2, _42, 42) TF(FARG1, FARG2, _43, 43) TF(FARG1, FARG2, _44, 44) TF(FARG1, FARG2, _45, 45) TF(FARG1, FARG2, _46, 46) TF(FARG1, FARG2, _47, 47) TF(FARG1, FARG2, _48, 48) TF(FARG1, FARG2, _49, 49) TF(FARG1, FARG2, _50, 50) TF(FARG1, FARG2, _51, 51) TF(FARG1, FARG2, _52, 52) TF(FARG1, FARG2, _53, 53) TF(FARG1, FARG2, _54, 54) TF(FARG1, FARG2, _55, 55) TF(FARG1, FARG2, _56, 56) +#define __VA_2FIX_IDX_APPLY_58(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) TF(FARG1, FARG2, _39, 39) TF(FARG1, FARG2, _40, 40) TF(FARG1, FARG2, _41, 41) TF(FARG1, FARG2, _42, 42) TF(FARG1, FARG2, _43, 43) TF(FARG1, FARG2, _44, 44) TF(FARG1, FARG2, _45, 45) TF(FARG1, FARG2, _46, 46) TF(FARG1, FARG2, _47, 47) TF(FARG1, FARG2, _48, 48) TF(FARG1, FARG2, _49, 49) TF(FARG1, FARG2, _50, 50) TF(FARG1, FARG2, _51, 51) TF(FARG1, FARG2, _52, 52) TF(FARG1, FARG2, _53, 53) TF(FARG1, FARG2, _54, 54) TF(FARG1, FARG2, _55, 55) TF(FARG1, FARG2, _56, 56) TF(FARG1, FARG2, _57, 57) +#define __VA_2FIX_IDX_APPLY_59(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) TF(FARG1, FARG2, _39, 39) TF(FARG1, FARG2, _40, 40) TF(FARG1, FARG2, _41, 41) TF(FARG1, FARG2, _42, 42) TF(FARG1, FARG2, _43, 43) TF(FARG1, FARG2, _44, 44) TF(FARG1, FARG2, _45, 45) TF(FARG1, FARG2, _46, 46) TF(FARG1, FARG2, _47, 47) TF(FARG1, FARG2, _48, 48) TF(FARG1, FARG2, _49, 49) TF(FARG1, FARG2, _50, 50) TF(FARG1, FARG2, _51, 51) TF(FARG1, FARG2, _52, 52) TF(FARG1, FARG2, _53, 53) TF(FARG1, FARG2, _54, 54) TF(FARG1, FARG2, _55, 55) TF(FARG1, FARG2, _56, 56) TF(FARG1, FARG2, _57, 57) TF(FARG1, FARG2, _58, 58) +#define __VA_2FIX_IDX_APPLY_60(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) TF(FARG1, FARG2, _39, 39) TF(FARG1, FARG2, _40, 40) TF(FARG1, FARG2, _41, 41) TF(FARG1, FARG2, _42, 42) TF(FARG1, FARG2, _43, 43) TF(FARG1, FARG2, _44, 44) TF(FARG1, FARG2, _45, 45) TF(FARG1, FARG2, _46, 46) TF(FARG1, FARG2, _47, 47) TF(FARG1, FARG2, _48, 48) TF(FARG1, FARG2, _49, 49) TF(FARG1, FARG2, _50, 50) TF(FARG1, FARG2, _51, 51) TF(FARG1, FARG2, _52, 52) TF(FARG1, FARG2, _53, 53) TF(FARG1, FARG2, _54, 54) TF(FARG1, FARG2, _55, 55) TF(FARG1, FARG2, _56, 56) TF(FARG1, FARG2, _57, 57) TF(FARG1, FARG2, _58, 58) TF(FARG1, FARG2, _59, 59) +#define __VA_2FIX_IDX_APPLY_61(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) TF(FARG1, FARG2, _39, 39) TF(FARG1, FARG2, _40, 40) TF(FARG1, FARG2, _41, 41) TF(FARG1, FARG2, _42, 42) TF(FARG1, FARG2, _43, 43) TF(FARG1, FARG2, _44, 44) TF(FARG1, FARG2, _45, 45) TF(FARG1, FARG2, _46, 46) TF(FARG1, FARG2, _47, 47) TF(FARG1, FARG2, _48, 48) TF(FARG1, FARG2, _49, 49) TF(FARG1, FARG2, _50, 50) TF(FARG1, FARG2, _51, 51) TF(FARG1, FARG2, _52, 52) TF(FARG1, FARG2, _53, 53) TF(FARG1, FARG2, _54, 54) TF(FARG1, FARG2, _55, 55) TF(FARG1, FARG2, _56, 56) TF(FARG1, FARG2, _57, 57) TF(FARG1, FARG2, _58, 58) TF(FARG1, FARG2, _59, 59) TF(FARG1, FARG2, _60, 60) +#define __VA_2FIX_IDX_APPLY_62(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) TF(FARG1, FARG2, _39, 39) TF(FARG1, FARG2, _40, 40) TF(FARG1, FARG2, _41, 41) TF(FARG1, FARG2, _42, 42) TF(FARG1, FARG2, _43, 43) TF(FARG1, FARG2, _44, 44) TF(FARG1, FARG2, _45, 45) TF(FARG1, FARG2, _46, 46) TF(FARG1, FARG2, _47, 47) TF(FARG1, FARG2, _48, 48) TF(FARG1, FARG2, _49, 49) TF(FARG1, FARG2, _50, 50) TF(FARG1, FARG2, _51, 51) TF(FARG1, FARG2, _52, 52) TF(FARG1, FARG2, _53, 53) TF(FARG1, FARG2, _54, 54) TF(FARG1, FARG2, _55, 55) TF(FARG1, FARG2, _56, 56) TF(FARG1, FARG2, _57, 57) TF(FARG1, FARG2, _58, 58) TF(FARG1, FARG2, _59, 59) TF(FARG1, FARG2, _60, 60) TF(FARG1, FARG2, _61, 61) +#define __VA_2FIX_IDX_APPLY_63(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) TF(FARG1, FARG2, _39, 39) TF(FARG1, FARG2, _40, 40) TF(FARG1, FARG2, _41, 41) TF(FARG1, FARG2, _42, 42) TF(FARG1, FARG2, _43, 43) TF(FARG1, FARG2, _44, 44) TF(FARG1, FARG2, _45, 45) TF(FARG1, FARG2, _46, 46) TF(FARG1, FARG2, _47, 47) TF(FARG1, FARG2, _48, 48) TF(FARG1, FARG2, _49, 49) TF(FARG1, FARG2, _50, 50) TF(FARG1, FARG2, _51, 51) TF(FARG1, FARG2, _52, 52) TF(FARG1, FARG2, _53, 53) TF(FARG1, FARG2, _54, 54) TF(FARG1, FARG2, _55, 55) TF(FARG1, FARG2, _56, 56) TF(FARG1, FARG2, _57, 57) TF(FARG1, FARG2, _58, 58) TF(FARG1, FARG2, _59, 59) TF(FARG1, FARG2, _60, 60) TF(FARG1, FARG2, _61, 61) TF(FARG1, FARG2, _62, 62) +#define __VA_2FIX_IDX_APPLY_64(TF, FARG1, FARG2, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) TF(FARG1, FARG2, _0, 0) TF(FARG1, FARG2, _1, 1) TF(FARG1, FARG2, _2, 2) TF(FARG1, FARG2, _3, 3) TF(FARG1, FARG2, _4, 4) TF(FARG1, FARG2, _5, 5) TF(FARG1, FARG2, _6, 6) TF(FARG1, FARG2, _7, 7) TF(FARG1, FARG2, _8, 8) TF(FARG1, FARG2, _9, 9) TF(FARG1, FARG2, _10, 10) TF(FARG1, FARG2, _11, 11) TF(FARG1, FARG2, _12, 12) TF(FARG1, FARG2, _13, 13) TF(FARG1, FARG2, _14, 14) TF(FARG1, FARG2, _15, 15) TF(FARG1, FARG2, _16, 16) TF(FARG1, FARG2, _17, 17) TF(FARG1, FARG2, _18, 18) TF(FARG1, FARG2, _19, 19) TF(FARG1, FARG2, _20, 20) TF(FARG1, FARG2, _21, 21) TF(FARG1, FARG2, _22, 22) TF(FARG1, FARG2, _23, 23) TF(FARG1, FARG2, _24, 24) TF(FARG1, FARG2, _25, 25) TF(FARG1, FARG2, _26, 26) TF(FARG1, FARG2, _27, 27) TF(FARG1, FARG2, _28, 28) TF(FARG1, FARG2, _29, 29) TF(FARG1, FARG2, _30, 30) TF(FARG1, FARG2, _31, 31) TF(FARG1, FARG2, _32, 32) TF(FARG1, FARG2, _33, 33) TF(FARG1, FARG2, _34, 34) TF(FARG1, FARG2, _35, 35) TF(FARG1, FARG2, _36, 36) TF(FARG1, FARG2, _37, 37) TF(FARG1, FARG2, _38, 38) TF(FARG1, FARG2, _39, 39) TF(FARG1, FARG2, _40, 40) TF(FARG1, FARG2, _41, 41) TF(FARG1, FARG2, _42, 42) TF(FARG1, FARG2, _43, 43) TF(FARG1, FARG2, _44, 44) TF(FARG1, FARG2, _45, 45) TF(FARG1, FARG2, _46, 46) TF(FARG1, FARG2, _47, 47) TF(FARG1, FARG2, _48, 48) TF(FARG1, FARG2, _49, 49) TF(FARG1, FARG2, _50, 50) TF(FARG1, FARG2, _51, 51) TF(FARG1, FARG2, _52, 52) TF(FARG1, FARG2, _53, 53) TF(FARG1, FARG2, _54, 54) TF(FARG1, FARG2, _55, 55) TF(FARG1, FARG2, _56, 56) TF(FARG1, FARG2, _57, 57) TF(FARG1, FARG2, _58, 58) TF(FARG1, FARG2, _59, 59) TF(FARG1, FARG2, _60, 60) TF(FARG1, FARG2, _61, 61) TF(FARG1, FARG2, _62, 62) TF(FARG1, FARG2, _63, 63) +#define _VA_2FIX_IDX_EACH_H3(TF, FARG1, FARG2, N, ...) __VA_2FIX_IDX_APPLY_##N(TF, FARG1, FARG2, __VA_ARGS__) +#define _VA_2FIX_IDX_EACH_H2(TF, FARG1, FARG2, N, ...) _VA_2FIX_IDX_EACH_H3(TF, FARG1, FARG2, N, __VA_ARGS__) +#define VA_2FIX_IDX_EACH(TF, FARG1, FARG2, ...) _VA_2FIX_IDX_EACH_H2(TF, FARG1, FARG2, VA_NARGS(__VA_ARGS__), __VA_ARGS__) + +# ifdef __cplusplus +} +# endif + +#endif /* VA_ITER_H */