348 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			348 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//! Copyright (c) 2011-2012
							 | 
						||
| 
								 | 
							
								//! Brandon Kohn
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//  Distributed under the Boost Software License, Version 1.0. (See
							 | 
						||
| 
								 | 
							
								//  accompanying file LICENSE_1_0.txt or copy at
							 | 
						||
| 
								 | 
							
								//  http://www.boost.org/LICENSE_1_0.txt)
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								namespace boost { namespace numeric {
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            char
							 | 
						||
| 
								 | 
							
								          , boost::long_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::long_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            char
							 | 
						||
| 
								 | 
							
								          , boost::ulong_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::ulong_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            signed char
							 | 
						||
| 
								 | 
							
								          , boost::long_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::long_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            signed char
							 | 
						||
| 
								 | 
							
								          , boost::ulong_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::ulong_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            unsigned char
							 | 
						||
| 
								 | 
							
								          , boost::long_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::long_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            unsigned char
							 | 
						||
| 
								 | 
							
								          , boost::ulong_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::ulong_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            short
							 | 
						||
| 
								 | 
							
								          , boost::long_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::long_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            short
							 | 
						||
| 
								 | 
							
								          , boost::ulong_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::ulong_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            unsigned short
							 | 
						||
| 
								 | 
							
								          , boost::long_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::long_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            unsigned short
							 | 
						||
| 
								 | 
							
								          , boost::ulong_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::ulong_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            int
							 | 
						||
| 
								 | 
							
								          , boost::long_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::long_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            int
							 | 
						||
| 
								 | 
							
								          , boost::ulong_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::ulong_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            unsigned int
							 | 
						||
| 
								 | 
							
								          , boost::long_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::long_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            unsigned int
							 | 
						||
| 
								 | 
							
								          , boost::ulong_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::ulong_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            long
							 | 
						||
| 
								 | 
							
								          , boost::long_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::long_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            long
							 | 
						||
| 
								 | 
							
								          , boost::ulong_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::ulong_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            unsigned long
							 | 
						||
| 
								 | 
							
								          , boost::long_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::long_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            unsigned long
							 | 
						||
| 
								 | 
							
								          , boost::ulong_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::ulong_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            float
							 | 
						||
| 
								 | 
							
								          , boost::long_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::long_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            float
							 | 
						||
| 
								 | 
							
								          , boost::ulong_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::ulong_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            double
							 | 
						||
| 
								 | 
							
								          , boost::long_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::long_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            double
							 | 
						||
| 
								 | 
							
								          , boost::ulong_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::ulong_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            long double
							 | 
						||
| 
								 | 
							
								          , boost::long_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::long_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            long double
							 | 
						||
| 
								 | 
							
								          , boost::ulong_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::ulong_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            boost::long_long_type
							 | 
						||
| 
								 | 
							
								          , boost::long_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::long_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            boost::long_long_type
							 | 
						||
| 
								 | 
							
								          , boost::ulong_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::ulong_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            boost::ulong_long_type
							 | 
						||
| 
								 | 
							
								          , boost::long_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::long_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    template <>
							 | 
						||
| 
								 | 
							
								    struct numeric_cast_traits
							 | 
						||
| 
								 | 
							
								        <
							 | 
						||
| 
								 | 
							
								            boost::ulong_long_type
							 | 
						||
| 
								 | 
							
								          , boost::ulong_long_type
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef def_overflow_handler overflow_policy;
							 | 
						||
| 
								 | 
							
								        typedef UseInternalRangeChecker range_checking_policy;
							 | 
						||
| 
								 | 
							
								        typedef Trunc<boost::ulong_long_type> rounding_policy;
							 | 
						||
| 
								 | 
							
								    }; 
							 | 
						||
| 
								 | 
							
								}}
							 |