diff --git a/.gitignore b/.gitignore index 2cd61d03..488c8004 100644 --- a/.gitignore +++ b/.gitignore @@ -350,3 +350,5 @@ patches test/vs2019/Debug MSVC - No Tests test/vs2019/Debug MSVC - No STL - Force Built-ins test/vs2019/Debug MSVC - No STL - Force Constexpr Algorithms +test/vs2019/Debug Intel +test/vs2019/Debug Intel - No STL diff --git a/include/etl/initializer_list.h b/include/etl/initializer_list.h index 5134c54a..4578f1d6 100644 --- a/include/etl/initializer_list.h +++ b/include/etl/initializer_list.h @@ -61,52 +61,75 @@ namespace std using iterator = const T*; using const_iterator = const T*; - constexpr initializer_list() noexcept : m_first(nullptr), m_last(nullptr) + //************************************************************************* + /// Default constructor + //************************************************************************* + constexpr initializer_list() noexcept + : pfirst(nullptr), plast(nullptr) { } - constexpr initializer_list(const T* first, const T* last) noexcept - : m_first(first), m_last(last) + //************************************************************************* + /// Constructor + //************************************************************************* + constexpr initializer_list(const T* pfirst_, const T* plast_) noexcept + : pfirst(pfirst_), plast(plast_) { } + //************************************************************************* + /// Get the beginning of the list. + //************************************************************************* constexpr const T* begin() const noexcept { - return m_first; + return pfirst; } + //************************************************************************* + /// Get the end of the list. + //************************************************************************* constexpr const T* end() const noexcept { - return m_last; + return plast; } + //************************************************************************* + /// Get the size of the list. + //************************************************************************* constexpr size_t size() const noexcept { - return static_cast(m_last - m_first); + return static_cast(plast - pfirst); } private: - const T* m_first; - const T* m_last; + const T* pfirst; + const T* plast; }; + //************************************************************************* + /// Get the beginning of the list. + //************************************************************************* template - constexpr const T* begin(initializer_list il) noexcept + constexpr const T* begin(initializer_list init) noexcept { - return il.begin(); + return init.begin(); } + //************************************************************************* + /// Get the end of the list. + //************************************************************************* template - constexpr const T* end(initializer_list il) noexcept + constexpr const T* end(initializer_list init) noexcept { - return il.end(); + return init.end(); } -#elif defined(ETL_COMPILER_GCC) || defined(ETL_COMPILER_CLANG) || defined(ETL_COMPILER_ARM6) || defined(ETL_COMPILER_ARM7) +#elif defined(ETL_COMPILER_GCC) || defined(ETL_COMPILER_CLANG) || defined(ETL_COMPILER_ARM6) || \ + defined(ETL_COMPILER_ARM7) || defined(ETL_COMPILER_IAR) || defined(ETL_COMPILER_TEXAS_INSTRUMENTS) ///************************************************************************** - /// A definition of initializer_list that is compatible with Clang, GCC and related compilers. + /// A definition of initializer_list that is compatible with Clang, GCC and other compilers. ///************************************************************************** template class initializer_list @@ -120,50 +143,72 @@ namespace std using iterator = const T*; using const_iterator = const T*; - constexpr initializer_list() noexcept : m_begin(nullptr), m_size(0) + //************************************************************************* + /// Default constructor + //************************************************************************* + constexpr initializer_list() noexcept + : pfirst(nullptr), length(0) { } - constexpr size_t size() const noexcept - { - return m_size; - } - + //************************************************************************* + /// Get the beginning of the list. + //************************************************************************* constexpr const T* begin() const noexcept { - return m_begin; + return pfirst; } - constexpr const T* end() const noexcept + //************************************************************************* + /// Get the end of the list. + //************************************************************************* + constexpr const T* end() const noexcept { - return m_begin + m_size; + return pfirst + length; + } + + //************************************************************************* + /// Get the size of the list. + //************************************************************************* + constexpr size_t size() const noexcept + { + return length; } private: - constexpr initializer_list(const T* b, size_t s) noexcept - : m_begin(b) - , m_size(s) + //************************************************************************* + /// Constructor + //************************************************************************* + constexpr initializer_list(const T* pfirst_, size_t length_) noexcept + : pfirst(pfirst_) + , length(length_) { } - const T* m_begin; - size_t m_size; + const T* pfirst; + size_t length; }; + //************************************************************************* + /// Get the beginning of the list. + //************************************************************************* template constexpr const T* begin(initializer_list init) noexcept { return init.begin(); } + //************************************************************************* + /// Get the end of the list. + //************************************************************************* template constexpr const T* end(initializer_list init) noexcept { return init.end(); } #else - #error No definition for initializer_list is currently available. + #error No definition for initializer_list is currently available for your compiler. Visit https://www.etlcpp.com to request support. #endif // Compiler tests } #endif // ETL_USING_STL diff --git a/test/sanity-check/initializer_list.h.t.cpp b/test/sanity-check/initializer_list.h.t.cpp index 0a6b282a..866c12ed 100644 --- a/test/sanity-check/initializer_list.h.t.cpp +++ b/test/sanity-check/initializer_list.h.t.cpp @@ -26,4 +26,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ******************************************************************************/ -#include +#if (__cplusplus >= 201103L) + #include +#endif + diff --git a/test/test_initializer_list.cpp b/test/test_initializer_list.cpp index c6d9159c..e8c14f4f 100644 --- a/test/test_initializer_list.cpp +++ b/test/test_initializer_list.cpp @@ -61,8 +61,12 @@ namespace T buffer[10]; }; + //*************************************************************************** + // Test constexpr. constexpr Container container = { 1, 2, 3, 4, 5 }; + //*************************************************************************** + // Test non-constexpr. static Container TestInitializerList() { static Container container = { 1, 2, 3, 4, 5 }; diff --git a/test/vs2019/etl.sln b/test/vs2019/etl.sln index 004d54b1..9362b484 100644 --- a/test/vs2019/etl.sln +++ b/test/vs2019/etl.sln @@ -7,6 +7,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "etl", "etl.vcxproj", "{C21D EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug Intel - No STL|Win32 = Debug Intel - No STL|Win32 + Debug Intel - No STL|x64 = Debug Intel - No STL|x64 + Debug Intel|Win32 = Debug Intel|Win32 + Debug Intel|x64 = Debug Intel|x64 Debug LLVM - No STL - Force Built-ins|Win32 = Debug LLVM - No STL - Force Built-ins|Win32 Debug LLVM - No STL - Force Built-ins|x64 = Debug LLVM - No STL - Force Built-ins|x64 Debug LLVM - No STL|Win32 = Debug LLVM - No STL|Win32 @@ -45,6 +49,14 @@ Global Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug Intel - No STL|Win32.ActiveCfg = Debug Intel - No STL|Win32 + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug Intel - No STL|Win32.Build.0 = Debug Intel - No STL|Win32 + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug Intel - No STL|x64.ActiveCfg = Debug Intel - No STL|x64 + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug Intel - No STL|x64.Build.0 = Debug Intel - No STL|x64 + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug Intel|Win32.ActiveCfg = Debug Intel|Win32 + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug Intel|Win32.Build.0 = Debug Intel|Win32 + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug Intel|x64.ActiveCfg = Debug Intel|x64 + {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug Intel|x64.Build.0 = Debug Intel|x64 {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug LLVM - No STL - Force Built-ins|Win32.ActiveCfg = Debug|Win32 {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug LLVM - No STL - Force Built-ins|Win32.Build.0 = Debug|Win32 {C21DF78C-D8E0-46AB-9D6F-D38A3C1CB0FB}.Debug LLVM - No STL - Force Built-ins|x64.ActiveCfg = Test2|x64 diff --git a/test/vs2019/etl.vcxproj b/test/vs2019/etl.vcxproj index 734fa2ba..117d35a7 100644 --- a/test/vs2019/etl.vcxproj +++ b/test/vs2019/etl.vcxproj @@ -9,6 +9,22 @@ Debug Clang x64 + + Debug Intel - No STL + Win32 + + + Debug Intel - No STL + x64 + + + Debug Intel + Win32 + + + Debug Intel + x64 + Debug LLVM - No STL - Built-ins Win32 @@ -209,6 +225,20 @@ Unicode false + + Application + true + Intel C++ Compiler 2022 + Unicode + false + + + Application + true + Intel C++ Compiler 2022 + Unicode + false + Application true @@ -362,6 +392,18 @@ v142 Unicode + + Application + true + v142 + Unicode + + + Application + true + v142 + Unicode + Application true @@ -550,6 +592,12 @@ + + + + + + @@ -622,6 +670,12 @@ + + + + + + @@ -715,6 +769,16 @@ true $(Configuration)\ + + true + true + $(Configuration)\ + + + true + true + $(Configuration)\ + true false @@ -840,6 +904,14 @@ true true + + true + true + + + true + true + true true @@ -983,6 +1055,50 @@ "$(OutDir)\etl.exe" + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;_LIB;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;ETL_NO_STL;%(PreprocessorDefinitions) + ../../../unittest-cpp/;../../include;../../test + + + true + stdcpp17 + EditAndContinue + + + Console + true + + + "$(OutDir)\etl.exe" + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;_LIB;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + ../../../unittest-cpp/;../../include;../../test + + + true + stdcpp17 + EditAndContinue + + + Console + true + + + "$(OutDir)\etl.exe" + + @@ -1542,6 +1658,48 @@ $(OutDir)\etl.exe + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;_LIB;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + ../../unittest-cpp/UnitTest++/;../../include/etl;../../test + + + false + stdcpp14 + + + Console + true + + + $(OutDir)\etl.exe + + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;_LIB;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + ../../unittest-cpp/UnitTest++/;../../include/etl;../../test + + + false + stdcpp14 + + + Console + true + + + $(OutDir)\etl.exe + + @@ -2549,6 +2707,8 @@ true true true + true + true true true true @@ -2579,6 +2739,8 @@ true true true + true + true true true true @@ -2609,6 +2771,8 @@ true true true + true + true true true true @@ -2639,6 +2803,8 @@ true true true + true + true true true true @@ -2669,6 +2835,8 @@ true true true + true + true true true true @@ -2699,6 +2867,8 @@ true true true + true + true true true true @@ -2729,6 +2899,8 @@ true true true + true + true true true true @@ -2759,6 +2931,8 @@ true true true + true + true true true true @@ -2789,6 +2963,8 @@ true true true + true + true true true true @@ -2819,6 +2995,8 @@ true true true + true + true true true true @@ -2849,6 +3027,8 @@ true true true + true + true true true true @@ -2865,6 +3045,8 @@ true + true + true true true true @@ -2890,6 +3072,8 @@ true + true + true true true true @@ -2930,6 +3114,8 @@ true true true + true + true true true true @@ -2960,6 +3146,8 @@ true true true + true + true true true true @@ -2990,6 +3178,8 @@ true true true + true + true true true true @@ -3020,6 +3210,8 @@ true true true + true + true true true true @@ -3050,6 +3242,8 @@ true true true + true + true true true true @@ -3066,6 +3260,8 @@ true + true + true true true true @@ -3106,6 +3302,8 @@ true true true + true + true true true true @@ -3136,6 +3334,8 @@ true true true + true + true true true true @@ -3166,6 +3366,8 @@ true true true + true + true true true true @@ -3182,6 +3384,8 @@ true + true + true true true true @@ -3222,6 +3426,8 @@ true true true + true + true true true true @@ -3252,6 +3458,8 @@ true true true + true + true true true true @@ -3282,6 +3490,8 @@ true true true + true + true true true true @@ -3312,6 +3522,8 @@ true true true + true + true true true true @@ -3342,6 +3554,8 @@ true true true + true + true true true true @@ -3372,6 +3586,8 @@ true true true + true + true true true true @@ -3402,6 +3618,8 @@ true true true + true + true true true true @@ -3432,6 +3650,8 @@ true true true + true + true true true true @@ -3462,6 +3682,8 @@ true true true + true + true true true true @@ -3492,6 +3714,8 @@ true true true + true + true true true true @@ -3522,6 +3746,8 @@ true true true + true + true true true true @@ -3552,6 +3778,8 @@ true true true + true + true true true true @@ -3582,6 +3810,8 @@ true true true + true + true true true true @@ -3612,6 +3842,8 @@ true true true + true + true true true true @@ -3642,6 +3874,8 @@ true true true + true + true true true true @@ -3672,6 +3906,8 @@ true true true + true + true true true true @@ -3702,6 +3938,8 @@ true true true + true + true true true true @@ -3732,6 +3970,8 @@ true true true + true + true true true true @@ -3762,6 +4002,8 @@ true true true + true + true true true true @@ -3792,6 +4034,8 @@ true true true + true + true true true true @@ -3822,6 +4066,8 @@ true true true + true + true true true true @@ -3852,6 +4098,8 @@ true true true + true + true true true true @@ -3882,6 +4130,8 @@ true true true + true + true true true true @@ -3912,6 +4162,8 @@ true true true + true + true true true true @@ -3942,6 +4194,8 @@ true true true + true + true true true true @@ -3972,6 +4226,8 @@ true true true + true + true true true true @@ -4002,6 +4258,8 @@ true true true + true + true true true true @@ -4032,6 +4290,8 @@ true true true + true + true true true true @@ -4062,6 +4322,8 @@ true true true + true + true true true true @@ -4092,6 +4354,8 @@ true true true + true + true true true true @@ -4122,6 +4386,8 @@ true true true + true + true true true true @@ -4152,6 +4418,8 @@ true true true + true + true true true true @@ -4182,6 +4450,8 @@ true true true + true + true true true true @@ -4212,6 +4482,8 @@ true true true + true + true true true true @@ -4242,6 +4514,8 @@ true true true + true + true true true true @@ -4272,6 +4546,8 @@ true true true + true + true true true true @@ -4302,6 +4578,8 @@ true true true + true + true true true true @@ -4332,6 +4610,8 @@ true true true + true + true true true true @@ -4362,6 +4642,8 @@ true true true + true + true true true true @@ -4392,6 +4674,8 @@ true true true + true + true true true true @@ -4422,6 +4706,8 @@ true true true + true + true true true true @@ -4452,6 +4738,8 @@ true true true + true + true true true true @@ -4482,6 +4770,8 @@ true true true + true + true true true true @@ -4512,6 +4802,8 @@ true true true + true + true true true true @@ -4542,6 +4834,8 @@ true true true + true + true true true true @@ -4572,6 +4866,8 @@ true true true + true + true true true true @@ -4602,6 +4898,8 @@ true true true + true + true true true true @@ -4632,6 +4930,8 @@ true true true + true + true true true true @@ -4662,6 +4962,8 @@ true true true + true + true true true true @@ -4692,6 +4994,8 @@ true true true + true + true true true true @@ -4722,6 +5026,8 @@ true true true + true + true true true true @@ -4752,6 +5058,8 @@ true true true + true + true true true true @@ -4782,6 +5090,8 @@ true true true + true + true true true true @@ -4812,6 +5122,8 @@ true true true + true + true true true true @@ -4842,6 +5154,8 @@ true true true + true + true true true true @@ -4872,6 +5186,8 @@ true true true + true + true true true true @@ -4902,6 +5218,8 @@ true true true + true + true true true true @@ -4932,6 +5250,8 @@ true true true + true + true true true true @@ -4962,6 +5282,8 @@ true true true + true + true true true true @@ -4992,6 +5314,8 @@ true true true + true + true true true true @@ -5022,6 +5346,8 @@ true true true + true + true true true true @@ -5052,6 +5378,8 @@ true true true + true + true true true true @@ -5082,6 +5410,8 @@ true true true + true + true true true true @@ -5112,6 +5442,8 @@ true true true + true + true true true true @@ -5142,6 +5474,8 @@ true true true + true + true true true true @@ -5172,6 +5506,8 @@ true true true + true + true true true true @@ -5202,6 +5538,8 @@ true true true + true + true true true true @@ -5232,6 +5570,8 @@ true true true + true + true true true true @@ -5262,6 +5602,8 @@ true true true + true + true true true true @@ -5292,6 +5634,8 @@ true true true + true + true true true true @@ -5322,6 +5666,8 @@ true true true + true + true true true true @@ -5352,6 +5698,8 @@ true true true + true + true true true true @@ -5382,6 +5730,8 @@ true true true + true + true true true true @@ -5412,6 +5762,8 @@ true true true + true + true true true true @@ -5442,6 +5794,8 @@ true true true + true + true true true true @@ -5472,6 +5826,8 @@ true true true + true + true true true true @@ -5502,6 +5858,8 @@ true true true + true + true true true true @@ -5532,6 +5890,8 @@ true true true + true + true true true true @@ -5562,6 +5922,8 @@ true true true + true + true true true true @@ -5592,6 +5954,8 @@ true true true + true + true true true true @@ -5622,6 +5986,8 @@ true true true + true + true true true true @@ -5652,6 +6018,8 @@ true true true + true + true true true true @@ -5682,6 +6050,8 @@ true true true + true + true true true true @@ -5712,6 +6082,8 @@ true true true + true + true true true true @@ -5742,6 +6114,8 @@ true true true + true + true true true true @@ -5772,6 +6146,8 @@ true true true + true + true true true true @@ -5802,6 +6178,8 @@ true true true + true + true true true true @@ -5832,6 +6210,8 @@ true true true + true + true true true true @@ -5862,6 +6242,8 @@ true true true + true + true true true true @@ -5878,6 +6260,8 @@ true + true + true true true true @@ -5918,6 +6302,8 @@ true true true + true + true true true true @@ -5948,6 +6334,8 @@ true true true + true + true true true true @@ -5978,6 +6366,8 @@ true true true + true + true true true true @@ -6008,6 +6398,8 @@ true true true + true + true true true true @@ -6038,6 +6430,8 @@ true true true + true + true true true true @@ -6068,6 +6462,8 @@ true true true + true + true true true true @@ -6098,6 +6494,8 @@ true true true + true + true true true true @@ -6128,6 +6526,8 @@ true true true + true + true true true true @@ -6158,6 +6558,8 @@ true true true + true + true true true true @@ -6188,6 +6590,8 @@ true true true + true + true true true true @@ -6218,6 +6622,8 @@ true true true + true + true true true true @@ -6248,6 +6654,8 @@ true true true + true + true true true true @@ -6278,6 +6686,8 @@ true true true + true + true true true true @@ -6308,6 +6718,8 @@ true true true + true + true true true true @@ -6338,6 +6750,8 @@ true true true + true + true true true true @@ -6368,6 +6782,8 @@ true true true + true + true true true true @@ -6398,6 +6814,8 @@ true true true + true + true true true true @@ -6428,6 +6846,8 @@ true true true + true + true true true true @@ -6458,6 +6878,8 @@ true true true + true + true true true true @@ -6488,6 +6910,8 @@ true true true + true + true true true true @@ -6518,6 +6942,8 @@ true true true + true + true true true true @@ -6548,6 +6974,8 @@ true true true + true + true true true true @@ -6578,6 +7006,8 @@ true true true + true + true true true true @@ -6608,6 +7038,8 @@ true true true + true + true true true true @@ -6638,6 +7070,8 @@ true true true + true + true true true true @@ -6668,6 +7102,8 @@ true true true + true + true true true true @@ -6698,6 +7134,8 @@ true true true + true + true true true true @@ -6728,6 +7166,8 @@ true true true + true + true true true true @@ -6758,6 +7198,8 @@ true true true + true + true true true true @@ -6788,6 +7230,8 @@ true true true + true + true true true true @@ -6818,6 +7262,8 @@ true true true + true + true true true true @@ -6834,6 +7280,8 @@ true + true + true true true true @@ -6874,6 +7322,8 @@ true true true + true + true true true true @@ -6904,6 +7354,8 @@ true true true + true + true true true true @@ -6934,6 +7386,8 @@ true true true + true + true true true true @@ -6964,6 +7418,8 @@ true true true + true + true true true true @@ -6994,6 +7450,8 @@ true true true + true + true true true true @@ -7010,6 +7468,8 @@ true + true + true true true true @@ -7036,6 +7496,8 @@ true + true + true true true true @@ -7076,6 +7538,8 @@ true true true + true + true true true true @@ -7106,6 +7570,8 @@ true true true + true + true true true true @@ -7136,6 +7602,8 @@ true true true + true + true true true true @@ -7152,6 +7620,8 @@ true + true + true true true true @@ -7192,6 +7662,8 @@ true true true + true + true true true true @@ -7222,6 +7694,8 @@ true true true + true + true true true true @@ -7252,6 +7726,8 @@ true true true + true + true true true true @@ -7282,6 +7758,8 @@ true true true + true + true true true true @@ -7312,6 +7790,8 @@ true true true + true + true true true true @@ -7342,6 +7822,8 @@ true true true + true + true true true true @@ -7372,6 +7854,8 @@ true true true + true + true true true true @@ -7402,6 +7886,8 @@ true true true + true + true true true true @@ -7432,6 +7918,8 @@ true true true + true + true true true true @@ -7462,6 +7950,8 @@ true true true + true + true true true true @@ -7492,6 +7982,8 @@ true true true + true + true true true true @@ -7522,6 +8014,8 @@ true true true + true + true true true true @@ -7552,6 +8046,8 @@ true true true + true + true true true true @@ -7582,6 +8078,8 @@ true true true + true + true true true true @@ -7612,6 +8110,8 @@ true true true + true + true true true true @@ -7642,6 +8142,8 @@ true true true + true + true true true true @@ -7672,6 +8174,8 @@ true true true + true + true true true true @@ -7702,6 +8206,8 @@ true true true + true + true true true true @@ -7732,6 +8238,8 @@ true true true + true + true true true true @@ -7762,6 +8270,8 @@ true true true + true + true true true true @@ -7792,6 +8302,8 @@ true true true + true + true true true true @@ -7822,6 +8334,8 @@ true true true + true + true true true true @@ -7852,6 +8366,8 @@ true true true + true + true true true true @@ -7882,6 +8398,8 @@ true true true + true + true true true true @@ -7912,6 +8430,8 @@ true true true + true + true true true true @@ -7942,6 +8462,8 @@ true true true + true + true true true true @@ -7972,6 +8494,8 @@ true true true + true + true true true true @@ -8002,6 +8526,8 @@ true true true + true + true true true true @@ -8032,6 +8558,8 @@ true true true + true + true true true true @@ -8062,6 +8590,8 @@ true true true + true + true true true true @@ -8092,6 +8622,8 @@ true true true + true + true true true true @@ -8122,6 +8654,8 @@ true true true + true + true true true true @@ -8152,6 +8686,8 @@ true true true + true + true true true true @@ -8182,6 +8718,8 @@ true true true + true + true true true true @@ -8212,6 +8750,8 @@ true true true + true + true true true true @@ -8242,6 +8782,8 @@ true true true + true + true true true true @@ -8272,6 +8814,8 @@ true true true + true + true true true true @@ -8302,6 +8846,8 @@ true true true + true + true true true true @@ -8332,6 +8878,8 @@ true true true + true + true true true true @@ -8348,6 +8896,8 @@ true + true + true true true true @@ -8388,6 +8938,8 @@ true true true + true + true true true true @@ -8418,6 +8970,8 @@ true true true + true + true true true true @@ -8448,6 +9002,8 @@ true true true + true + true true true true @@ -8478,6 +9034,8 @@ true true true + true + true true true true @@ -8508,6 +9066,8 @@ true true true + true + true true true true @@ -8538,6 +9098,8 @@ true true true + true + true true true true @@ -8568,6 +9130,8 @@ true true true + true + true true true true @@ -8598,6 +9162,8 @@ true true true + true + true true true true @@ -8628,6 +9194,8 @@ true true true + true + true true true true @@ -8658,6 +9226,8 @@ true true true + true + true true true true @@ -8688,6 +9258,8 @@ true true true + true + true true true true @@ -8718,6 +9290,8 @@ true true true + true + true true true true @@ -8748,6 +9322,8 @@ true true true + true + true true true true @@ -8778,6 +9354,8 @@ true true true + true + true true true true @@ -8808,6 +9386,8 @@ true true true + true + true true true true @@ -8838,6 +9418,8 @@ true true true + true + true true true true @@ -8868,6 +9450,8 @@ true true true + true + true true true true @@ -8898,6 +9482,8 @@ true true true + true + true true true true @@ -8928,6 +9514,8 @@ true true true + true + true true true true @@ -8958,6 +9546,8 @@ true true true + true + true true true true @@ -8988,6 +9578,8 @@ true true true + true + true true true true @@ -9018,6 +9610,8 @@ true true true + true + true true true true @@ -9048,6 +9642,8 @@ true true true + true + true true true true @@ -9078,6 +9674,8 @@ true true true + true + true true true true @@ -9108,6 +9706,8 @@ true true true + true + true true true true @@ -9138,6 +9738,8 @@ true true true + true + true true true true @@ -9168,6 +9770,8 @@ true true true + true + true true true true @@ -9198,6 +9802,8 @@ true true true + true + true true true true @@ -9228,6 +9834,8 @@ true true true + true + true true true true @@ -9244,6 +9852,8 @@ true + true + true true true true @@ -9284,6 +9894,8 @@ true true true + true + true true true true @@ -9314,6 +9926,8 @@ true true true + true + true true true true @@ -9344,6 +9958,8 @@ true true true + true + true true true true @@ -9374,6 +9990,8 @@ true true true + true + true true true true @@ -9404,6 +10022,8 @@ true true true + true + true true true true @@ -9434,6 +10054,8 @@ true true true + true + true true true true @@ -9464,6 +10086,8 @@ true true true + true + true true true true @@ -9494,6 +10118,8 @@ true true true + true + true true true true @@ -9524,6 +10150,8 @@ true true true + true + true true true true @@ -9554,6 +10182,8 @@ true true true + true + true true true true @@ -9584,6 +10214,8 @@ true true true + true + true true true true @@ -9614,6 +10246,8 @@ true true true + true + true true true true @@ -9644,6 +10278,8 @@ true true true + true + true true true true @@ -9674,6 +10310,8 @@ true true true + true + true true true true @@ -9704,6 +10342,8 @@ true true true + true + true true true true @@ -9734,6 +10374,8 @@ true true true + true + true true true true @@ -9764,6 +10406,8 @@ true true true + true + true true true true @@ -9794,6 +10438,8 @@ true true true + true + true true true true @@ -9924,6 +10570,8 @@ false false false + false + false false false false @@ -9950,6 +10598,8 @@ false false false + false + false false false false @@ -9995,6 +10645,8 @@ false + false + false false false false @@ -10021,6 +10673,8 @@ false false false + false + false false false false @@ -10061,6 +10715,8 @@ false + false + false false false false @@ -10087,6 +10743,8 @@ false false false + false + false false false false @@ -10117,6 +10775,8 @@ false + false + false false false false @@ -10143,6 +10803,8 @@ false false false + false + false false false false @@ -10173,6 +10835,8 @@ false + false + false false false false @@ -10199,6 +10863,8 @@ false false false + false + false false false false @@ -10229,6 +10895,8 @@ false + false + false false false false @@ -10255,6 +10923,8 @@ false false false + false + false false false false @@ -10285,6 +10955,8 @@ false + false + false false false false @@ -10311,6 +10983,8 @@ false false false + false + false false false false @@ -10346,6 +11020,8 @@ false + false + false false false false @@ -10372,6 +11048,8 @@ false false false + false + false false false false @@ -10406,6 +11084,8 @@ true true false + false + false false false false @@ -10432,6 +11112,8 @@ false false false + false + false false false false @@ -10474,6 +11156,8 @@ false + false + false false false false @@ -10500,6 +11184,8 @@ false false false + false + false false false false