diff --git a/be/src/exec/olap_common.h b/be/src/exec/olap_common.h index 47005ef042..91a27d980f 100644 --- a/be/src/exec/olap_common.h +++ b/be/src/exec/olap_common.h @@ -55,7 +55,7 @@ std::string cast_to_string(T value, int scale) { } else if constexpr (primitive_type == TYPE_DECIMAL128I) { return ((vectorized::Decimal)value).to_string(scale); } else if constexpr (primitive_type == TYPE_DECIMAL256) { - return ((vectorized::Decimal)value).to_string(scale); + return ((vectorized::Decimal)value).to_string(scale); } else if constexpr (primitive_type == TYPE_TINYINT) { return std::to_string(static_cast(value)); } else if constexpr (primitive_type == TYPE_LARGEINT) { diff --git a/be/src/gutil/endian.h b/be/src/gutil/endian.h index 66d849f73c..f1a9cf2a1a 100644 --- a/be/src/gutil/endian.h +++ b/be/src/gutil/endian.h @@ -61,7 +61,8 @@ inline unsigned __int128 gbswap_128(unsigned __int128 host_int) { } inline wide::UInt256 gbswap_256(wide::UInt256 host_int) { - wide::UInt256 result{gbswap_64(host_int.items[0]), gbswap_64(host_int.items[1]), gbswap_64(host_int.items[2]), gbswap_64(host_int.items[3])}; + wide::UInt256 result{gbswap_64(host_int.items[3]), gbswap_64(host_int.items[2]), + gbswap_64(host_int.items[1]), gbswap_64(host_int.items[0])}; return result; } diff --git a/be/src/olap/types.h b/be/src/olap/types.h index 40c68a3e36..a0c38975f7 100644 --- a/be/src/olap/types.h +++ b/be/src/olap/types.h @@ -693,7 +693,7 @@ struct CppTypeTraits { }; template <> struct CppTypeTraits { - using CppType = Int256; + using CppType = wide::Int256; using UnsignedCppType = wide::UInt256; }; template <> @@ -1210,17 +1210,12 @@ struct FieldTypeTraits return Status::Error( "FieldTypeTraits::from_string meet PARSE_FAILURE"); } - *reinterpret_cast(buf) = value; + *reinterpret_cast(buf) = value; return Status::OK(); } static std::string to_string(const void* src) { - // TODO: support decimal256 - DCHECK(false); - return ""; - // auto value = reinterpret_cast(src); - // fmt::memory_buffer buffer; - // fmt::format_to(buffer, "{}", *value); - // return std::string(buffer.data(), buffer.size()); + const auto* value = reinterpret_cast(src); + return wide::to_string(*value); } }; diff --git a/be/src/runtime/type_limit.h b/be/src/runtime/type_limit.h index d406689644..374f4d9099 100644 --- a/be/src/runtime/type_limit.h +++ b/be/src/runtime/type_limit.h @@ -70,8 +70,8 @@ struct type_limit { } static vectorized::Decimal128 min() { return -max(); } }; -static Int256 MAX_DECIMAL256_INT({18446744073709551615ul, 8607968719199866879ul, - 532749306367912313ul, 1593091911132452277ul}); +static wide::Int256 MAX_DECIMAL256_INT({18446744073709551615ul, 8607968719199866879ul, + 532749306367912313ul, 1593091911132452277ul}); template <> struct type_limit { static vectorized::Decimal256 max() { return vectorized::Decimal256(MAX_DECIMAL256_INT); } diff --git a/be/src/util/string_parser.hpp b/be/src/util/string_parser.hpp index 2e09559771..a37ffe9d14 100644 --- a/be/src/util/string_parser.hpp +++ b/be/src/util/string_parser.hpp @@ -93,7 +93,7 @@ public: template static T get_scale_multiplier(int scale) { static_assert(std::is_same_v || std::is_same_v || - std::is_same_v || std::is_same_v, + std::is_same_v || std::is_same_v, "You can only instantiate as int32_t, int64_t, __int128."); if constexpr (std::is_same_v) { return common::exp10_i32(scale); @@ -101,7 +101,7 @@ public: return common::exp10_i64(scale); } else if constexpr (std::is_same_v) { return common::exp10_i128(scale); - } else if constexpr (std::is_same_v) { + } else if constexpr (std::is_same_v) { return common::exp10_i256(scale); } } diff --git a/be/src/vec/common/int_exp.h b/be/src/vec/common/int_exp.h index 81ca11bb11..03829218f7 100644 --- a/be/src/vec/common/int_exp.h +++ b/be/src/vec/common/int_exp.h @@ -80,32 +80,30 @@ inline constexpr __int128 exp10_i128(int x) { return exp_details::get_exp<__int128, 10, 39>(x); } -using wide::Int256; -inline Int256 exp10_i256(int x) { +inline wide::Int256 exp10_i256(int x) { if (x < 0) return 0; - if (x > 76) return std::numeric_limits::max(); + if (x > 76) return std::numeric_limits::max(); - using Int256 = Int256; - static constexpr Int256 i10e18 {1000000000000000000ll}; - static const Int256 values[] = { - static_cast(1ll), - static_cast(10ll), - static_cast(100ll), - static_cast(1000ll), - static_cast(10000ll), - static_cast(100000ll), - static_cast(1000000ll), - static_cast(10000000ll), - static_cast(100000000ll), - static_cast(1000000000ll), - static_cast(10000000000ll), - static_cast(100000000000ll), - static_cast(1000000000000ll), - static_cast(10000000000000ll), - static_cast(100000000000000ll), - static_cast(1000000000000000ll), - static_cast(10000000000000000ll), - static_cast(100000000000000000ll), + static constexpr wide::Int256 i10e18 {1000000000000000000ll}; + static const wide::Int256 values[] = { + static_cast(1ll), + static_cast(10ll), + static_cast(100ll), + static_cast(1000ll), + static_cast(10000ll), + static_cast(100000ll), + static_cast(1000000ll), + static_cast(10000000ll), + static_cast(100000000ll), + static_cast(1000000000ll), + static_cast(10000000000ll), + static_cast(100000000000ll), + static_cast(1000000000000ll), + static_cast(10000000000000ll), + static_cast(100000000000000ll), + static_cast(1000000000000000ll), + static_cast(10000000000000000ll), + static_cast(100000000000000000ll), i10e18, i10e18 * 10ll, i10e18 * 100ll, diff --git a/be/src/vec/core/accurate_comparison.h b/be/src/vec/core/accurate_comparison.h index dc3d54ebb5..71189d37d6 100644 --- a/be/src/vec/core/accurate_comparison.h +++ b/be/src/vec/core/accurate_comparison.h @@ -181,17 +181,17 @@ bool lessOp(A a, B b) { /// int vs int if constexpr (wide::is_integer && wide::is_integer) { /// same signedness - if constexpr (wide::is_signed_v == wide::is_signed_v) { + if constexpr (std::is_signed_v == std::is_signed_v) { return a < b; } /// different signedness - if constexpr (wide::is_signed_v && !wide::is_signed_v) { + if constexpr (std::is_signed_v && !std::is_signed_v) { return a < 0 || static_cast>(a) < b; } - if constexpr (!wide::is_signed_v && wide::is_signed_v) { + if constexpr (!std::is_signed_v && std::is_signed_v) { return b >= 0 && a < static_cast>(b); } } @@ -260,17 +260,17 @@ bool equalsOp(A a, B b) { /// int vs int if constexpr (wide::is_integer && wide::is_integer) { /// same signedness - if constexpr (wide::is_signed_v == wide::is_signed_v) { + if constexpr (std::is_signed_v == std::is_signed_v) { return a == b; } /// different signedness - if constexpr (wide::is_signed_v && !wide::is_signed_v) { + if constexpr (std::is_signed_v && !std::is_signed_v) { return a >= 0 && static_cast>(a) == b; } - if constexpr (!wide::is_signed_v && wide::is_signed_v) { + if constexpr (!std::is_signed_v && std::is_signed_v) { return b >= 0 && a == static_cast>(b); } } diff --git a/be/src/vec/core/decimal_comparison.h b/be/src/vec/core/decimal_comparison.h index 82cba4fe84..46c6f729ca 100644 --- a/be/src/vec/core/decimal_comparison.h +++ b/be/src/vec/core/decimal_comparison.h @@ -56,7 +56,7 @@ struct ConstructDecInt<16> { }; template <> struct ConstructDecInt<32> { - using Type = Int256; + using Type = wide::Int256; }; template diff --git a/be/src/vec/core/decomposed_float.h b/be/src/vec/core/decomposed_float.h index bccfd0cb43..d7651145ae 100644 --- a/be/src/vec/core/decomposed_float.h +++ b/be/src/vec/core/decomposed_float.h @@ -113,16 +113,16 @@ struct DecomposedFloat { } /// The case of the most negative integer - if constexpr (wide::is_signed_v) { + if constexpr (std::is_signed_v) { if (rhs == std::numeric_limits::lowest()) { assert(isNegative()); if (normalizedExponent() < - static_cast(8 * sizeof(Int) - wide::is_signed_v)) { + static_cast(8 * sizeof(Int) - std::is_signed_v)) { return 1; } if (normalizedExponent() > - static_cast(8 * sizeof(Int) - wide::is_signed_v)) { + static_cast(8 * sizeof(Int) - std::is_signed_v)) { return -1; } @@ -134,8 +134,7 @@ struct DecomposedFloat { } /// Too large number: abs(float) > abs(rhs). Also the case with infinities and NaN. - if (normalizedExponent() >= - static_cast(8 * sizeof(Int) - wide::is_signed_v)) { + if (normalizedExponent() >= static_cast(8 * sizeof(Int) - std::is_signed_v)) { return isNegative() ? -1 : 1; } @@ -151,7 +150,7 @@ struct DecomposedFloat { /// Larger octave: abs(rhs) > abs(float) if (normalizedExponent() + 1 < - static_cast(8 * sizeof(Int) - wide::is_signed_v) && + static_cast(8 * sizeof(Int) - std::is_signed_v) && uint_rhs >= (static_cast(1) << (normalizedExponent() + 1))) { return isNegative() ? 1 : -1; } diff --git a/be/src/vec/core/extended_types.h b/be/src/vec/core/extended_types.h index d14e9673da..5ecbad0bc7 100644 --- a/be/src/vec/core/extended_types.h +++ b/be/src/vec/core/extended_types.h @@ -23,60 +23,48 @@ #include "wide_integer.h" -using Int256 = wide::integer<256, signed>; -using UInt256 = wide::integer<256, unsigned>; - -static_assert(sizeof(Int256) == 32); -static_assert(sizeof(UInt256) == 32); +static_assert(sizeof(wide::Int256) == 32); +static_assert(sizeof(wide::UInt256) == 32); /// The standard library type traits, such as std::is_arithmetic, with one exception /// (std::common_type), are "set in stone". Attempting to specialize them causes undefined behavior. /// So instead of using the std type_traits, we use our own version which allows extension. namespace wide { -template -struct is_signed // NOLINT(readability-identifier-naming) -{ - static constexpr bool value = std::is_signed_v; -}; - +template +concept is_integer = std::is_integral_v || std::is_same_v || + std::is_same_v; +} template <> -struct is_signed { +struct std::is_signed { static constexpr bool value = true; }; - -template -inline constexpr bool is_signed_v = is_signed::value; - -template -struct is_unsigned // NOLINT(readability-identifier-naming) -{ - static constexpr bool value = std::is_unsigned_v; -}; - -template -inline constexpr bool is_unsigned_v = is_unsigned::value; - -template -concept is_integer = - std::is_integral_v || std::is_same_v || std::is_same_v; -} // namespace wide - -namespace std { template <> -struct make_unsigned { - using type = UInt256; -}; -template <> -struct make_unsigned { - using type = UInt256; +struct std::is_signed { + static constexpr bool value = false; }; template <> -struct make_signed { - using type = Int256; +struct std::is_unsigned { + static constexpr bool value = false; }; template <> -struct make_signed { - using type = Int256; +struct std::is_unsigned { + static constexpr bool value = true; }; -} // namespace std \ No newline at end of file +template <> +struct std::make_unsigned { + using type = wide::UInt256; +}; +template <> +struct std::make_unsigned { + using type = wide::UInt256; +}; + +template <> +struct std::make_signed { + using type = wide::Int256; +}; +template <> +struct std::make_signed { + using type = wide::Int256; +}; \ No newline at end of file diff --git a/be/src/vec/core/field.h b/be/src/vec/core/field.h index 026de2d54e..339776d654 100644 --- a/be/src/vec/core/field.h +++ b/be/src/vec/core/field.h @@ -828,7 +828,7 @@ struct Field::TypeToEnum { static constexpr Types::Which value = Types::Int128; }; template <> -struct Field::TypeToEnum { +struct Field::TypeToEnum { static constexpr Types::Which value = Types::Int256; }; template <> diff --git a/be/src/vec/core/types.h b/be/src/vec/core/types.h index 861126a030..9bf289787d 100644 --- a/be/src/vec/core/types.h +++ b/be/src/vec/core/types.h @@ -32,8 +32,6 @@ #include "vec/core/wide_integer.h" #include "vec/core/wide_integer_to_string.h" -using wide::Int256; - namespace doris { class BitmapValue; @@ -290,9 +288,9 @@ struct TypeName { static const char* get() { return "Int128"; } }; template <> -inline constexpr bool IsNumber = true; +inline constexpr bool IsNumber = true; template <> -struct TypeName { +struct TypeName { static const char* get() { return "Int256"; } }; template <> @@ -301,7 +299,7 @@ struct TypeId { }; template <> -struct TypeId { +struct TypeId { static constexpr const TypeIndex value = TypeIndex::Int256; }; @@ -326,7 +324,7 @@ inline constexpr Int128 decimal_scale_multiplier(UInt32 scale) { } // gcc report error if add constexpr in declaration template <> -inline Int256 decimal_scale_multiplier(UInt32 scale) { +inline wide::Int256 decimal_scale_multiplier(UInt32 scale) { return common::exp10_i256(scale); } @@ -345,7 +343,7 @@ struct Decimal { #define DECLARE_NUMERIC_CTOR(TYPE) \ Decimal(const TYPE& value_) : value(value_) {} - DECLARE_NUMERIC_CTOR(Int256) + DECLARE_NUMERIC_CTOR(wide::Int256) DECLARE_NUMERIC_CTOR(Int128) DECLARE_NUMERIC_CTOR(Int32) DECLARE_NUMERIC_CTOR(Int64) @@ -434,7 +432,7 @@ struct Decimal { std::string to_string(UInt32 scale) const { if (value == std::numeric_limits::min()) { - if constexpr (std::is_same_v) { + if constexpr (std::is_same_v) { std::string res {wide::to_string(value)}; res.insert(res.size() - scale, "."); return res; @@ -475,7 +473,7 @@ struct Decimal { whole_part = abs_value / decimal_scale_multiplier(scale); frac_part = abs_value % decimal_scale_multiplier(scale); } - if constexpr (std::is_same_v) { + if constexpr (std::is_same_v) { std::string num_str {wide::to_string(whole_part)}; auto end = fmt::format_to(str.data() + pos, "{}", num_str); pos = end - str.data(); @@ -506,7 +504,7 @@ struct Decimal { __attribute__((always_inline)) size_t to_string(char* dst, UInt32 scale, const T& scale_multiplier) const { if (UNLIKELY(value == std::numeric_limits::min())) { - if constexpr (std::is_same_v) { + if constexpr (std::is_same_v) { // handle scale? std::string num_str {wide::to_string(value)}; auto end = fmt::format_to(dst, "{}", num_str); @@ -532,7 +530,7 @@ struct Decimal { whole_part = abs_value / scale_multiplier; frac_part = abs_value % scale_multiplier; } - if constexpr (std::is_same_v) { + if constexpr (std::is_same_v) { std::string num_str {wide::to_string(whole_part)}; auto end = fmt::format_to(dst + pos, "{}", num_str); pos = end - dst; @@ -559,7 +557,7 @@ struct Decimal { pos += scale - low_scale; } if (frac_part) { - if constexpr (std::is_same_v) { + if constexpr (std::is_same_v) { std::string num_str {wide::to_string(whole_part)}; auto end = fmt::format_to(&dst[pos], "{}", num_str); pos = end - dst; @@ -582,7 +580,7 @@ struct Decimal128I : public Decimal { #define DECLARE_NUMERIC_CTOR(TYPE) \ Decimal128I(const TYPE& value_) : Decimal(value_) {} - DECLARE_NUMERIC_CTOR(Int256) + DECLARE_NUMERIC_CTOR(wide::Int256) DECLARE_NUMERIC_CTOR(Int128) DECLARE_NUMERIC_CTOR(Int32) DECLARE_NUMERIC_CTOR(Int64) @@ -599,9 +597,9 @@ struct Decimal128I : public Decimal { }; template <> -struct Decimal { - using T = Int256; - using NativeType = Int256; +struct Decimal { + using T = wide::Int256; + using NativeType = wide::Int256; Decimal() = default; Decimal(Decimal&&) = default; @@ -610,7 +608,7 @@ struct Decimal { #define DECLARE_NUMERIC_CTOR(TYPE) \ explicit Decimal(const TYPE& value_) : value(value_) {} - DECLARE_NUMERIC_CTOR(Int256) + DECLARE_NUMERIC_CTOR(wide::Int256) DECLARE_NUMERIC_CTOR(Int128) DECLARE_NUMERIC_CTOR(Int32) DECLARE_NUMERIC_CTOR(Int64) @@ -694,7 +692,7 @@ struct Decimal { std::string to_string(UInt32 scale) const { if (value == std::numeric_limits::min()) { - if constexpr (std::is_same_v) { + if constexpr (std::is_same_v) { std::string res {wide::to_string(value)}; res.insert(res.size() - scale, "."); return res; @@ -735,7 +733,7 @@ struct Decimal { whole_part = abs_value / decimal_scale_multiplier(scale); frac_part = abs_value % decimal_scale_multiplier(scale); } - if constexpr (std::is_same_v) { + if constexpr (std::is_same_v) { std::string num_str {wide::to_string(whole_part)}; auto end = fmt::format_to(str.data() + pos, "{}", num_str); pos = end - str.data(); @@ -766,7 +764,7 @@ struct Decimal { __attribute__((always_inline)) size_t to_string(char* dst, UInt32 scale, const T& scale_multiplier) const { if (UNLIKELY(value == std::numeric_limits::min())) { - if constexpr (std::is_same_v) { + if constexpr (std::is_same_v) { std::string num_str {wide::to_string(value)}; auto end = fmt::format_to(dst, "{}", num_str); return end - dst; @@ -791,7 +789,7 @@ struct Decimal { whole_part = abs_value / scale_multiplier; frac_part = abs_value % scale_multiplier; } - if constexpr (std::is_same_v) { + if constexpr (std::is_same_v) { std::string num_str {wide::to_string(whole_part)}; auto end = fmt::format_to(dst + pos, "{}", num_str); pos = end - dst; @@ -818,7 +816,7 @@ struct Decimal { pos += scale - low_scale; } if (frac_part) { - if constexpr (std::is_same_v) { + if constexpr (std::is_same_v) { std::string num_str {wide::to_string(frac_part)}; auto end = fmt::format_to(dst + pos, "{}", num_str); pos = end - dst; @@ -838,7 +836,7 @@ struct Decimal { using Decimal32 = Decimal; using Decimal64 = Decimal; using Decimal128 = Decimal; -using Decimal256 = Decimal; +using Decimal256 = Decimal; template inline Decimal operator-(const Decimal& x) { return -x.value; @@ -993,7 +991,7 @@ struct NativeType { }; template <> struct NativeType { - using Type = Int256; + using Type = wide::Int256; }; inline const char* getTypeName(TypeIndex idx) { @@ -1021,7 +1019,7 @@ inline const char* getTypeName(TypeIndex idx) { case TypeIndex::Int128: return TypeName::get(); case TypeIndex::Int256: - return TypeName::get(); + return TypeName::get(); case TypeIndex::Float32: return TypeName::get(); case TypeIndex::Float64: diff --git a/be/src/vec/data_types/data_type_decimal.h b/be/src/vec/data_types/data_type_decimal.h index 35b87afcab..9cafe0e3a1 100644 --- a/be/src/vec/data_types/data_type_decimal.h +++ b/be/src/vec/data_types/data_type_decimal.h @@ -612,7 +612,7 @@ ToDataType::FieldType convert_to_decimal(const typename FromDataType::FieldType& return convert_decimals, ToDataType>(value, 0, scale); } - if constexpr (std::is_same_v) { + if constexpr (std::is_same_v) { return convert_decimals, ToDataType>(value, 0, scale); } return convert_decimals, ToDataType>(value, 0, scale); diff --git a/fe/fe-common/src/main/java/org/apache/doris/catalog/ArrayType.java b/fe/fe-common/src/main/java/org/apache/doris/catalog/ArrayType.java index a2915fb4b4..8edcfb5173 100644 --- a/fe/fe-common/src/main/java/org/apache/doris/catalog/ArrayType.java +++ b/fe/fe-common/src/main/java/org/apache/doris/catalog/ArrayType.java @@ -104,7 +104,7 @@ public class ArrayType extends Type { @Override public Type specializeTemplateType(Type specificType, Map specializedTypeMap, - boolean useSpecializedType) throws TypeException { + boolean useSpecializedType, boolean enableDecimal256) throws TypeException { ArrayType specificArrayType = null; if (specificType instanceof ArrayType) { specificArrayType = (ArrayType) specificType; @@ -116,7 +116,7 @@ public class ArrayType extends Type { if (itemType.hasTemplateType()) { newItemType = itemType.specializeTemplateType( specificArrayType != null ? specificArrayType.itemType : specificType, - specializedTypeMap, useSpecializedType); + specializedTypeMap, useSpecializedType, enableDecimal256); } return new ArrayType(newItemType); @@ -163,8 +163,10 @@ public class ArrayType extends Type { return Type.canCastTo(type.getItemType(), targetType.getItemType()); } - public static Type getAssignmentCompatibleType(ArrayType t1, ArrayType t2, boolean strict) { - Type itemCompatibleType = Type.getAssignmentCompatibleType(t1.getItemType(), t2.getItemType(), strict); + public static Type getAssignmentCompatibleType( + ArrayType t1, ArrayType t2, boolean strict, boolean enableDecimal256) { + Type itemCompatibleType = Type.getAssignmentCompatibleType(t1.getItemType(), t2.getItemType(), strict, + enableDecimal256); if (itemCompatibleType.isInvalid()) { return ScalarType.INVALID; diff --git a/fe/fe-common/src/main/java/org/apache/doris/catalog/MapType.java b/fe/fe-common/src/main/java/org/apache/doris/catalog/MapType.java index 06dba8c2fb..e6ab17c626 100644 --- a/fe/fe-common/src/main/java/org/apache/doris/catalog/MapType.java +++ b/fe/fe-common/src/main/java/org/apache/doris/catalog/MapType.java @@ -142,7 +142,7 @@ public class MapType extends Type { @Override public Type specializeTemplateType(Type specificType, Map specializedTypeMap, - boolean useSpecializedType) throws TypeException { + boolean useSpecializedType, boolean enableDecimal256) throws TypeException { MapType specificMapType = null; if (specificType instanceof MapType) { specificMapType = (MapType) specificType; @@ -154,13 +154,13 @@ public class MapType extends Type { if (keyType.hasTemplateType()) { newKeyType = keyType.specializeTemplateType( specificMapType != null ? specificMapType.keyType : specificType, - specializedTypeMap, useSpecializedType); + specializedTypeMap, useSpecializedType, enableDecimal256); } Type newValueType = valueType; if (valueType.hasTemplateType()) { newValueType = valueType.specializeTemplateType( specificMapType != null ? specificMapType.valueType : specificType, - specializedTypeMap, useSpecializedType); + specializedTypeMap, useSpecializedType, enableDecimal256); } Type newMapType = new MapType(newKeyType, newValueType); @@ -198,12 +198,14 @@ public class MapType extends Type { || targetType.getValueType().isStringType() && type.getValueType().isStringType()); } - public static Type getAssignmentCompatibleType(MapType t1, MapType t2, boolean strict) { - Type keyCompatibleType = Type.getAssignmentCompatibleType(t1.getKeyType(), t2.getKeyType(), strict); + public static Type getAssignmentCompatibleType(MapType t1, MapType t2, boolean strict, boolean enableDecimal256) { + Type keyCompatibleType = Type.getAssignmentCompatibleType(t1.getKeyType(), t2.getKeyType(), strict, + enableDecimal256); if (keyCompatibleType.isInvalid()) { return ScalarType.INVALID; } - Type valCompatibleType = Type.getAssignmentCompatibleType(t1.getValueType(), t2.getValueType(), strict); + Type valCompatibleType = Type.getAssignmentCompatibleType(t1.getValueType(), t2.getValueType(), strict, + enableDecimal256); if (valCompatibleType.isInvalid()) { return ScalarType.INVALID; } diff --git a/fe/fe-common/src/main/java/org/apache/doris/catalog/ScalarType.java b/fe/fe-common/src/main/java/org/apache/doris/catalog/ScalarType.java index 3bd7f7a7e0..492cb8e15b 100644 --- a/fe/fe-common/src/main/java/org/apache/doris/catalog/ScalarType.java +++ b/fe/fe-common/src/main/java/org/apache/doris/catalog/ScalarType.java @@ -1019,7 +1019,7 @@ public class ScalarType extends Type { * is INVALID_TYPE. */ public static ScalarType getAssignmentCompatibleType( - ScalarType t1, ScalarType t2, boolean strict) { + ScalarType t1, ScalarType t2, boolean strict, boolean enableDecimal256) { if (!t1.isValid() || !t2.isValid()) { return INVALID; } @@ -1119,7 +1119,11 @@ public class ScalarType extends Type { if (scale + integerPart <= ScalarType.MAX_DECIMAL128_PRECISION) { return ScalarType.createDecimalV3Type(scale + integerPart, scale); } else { - return Type.DOUBLE; + if (enableDecimal256) { + return ScalarType.createDecimalV3Type(scale + integerPart, scale); + } else { + return Type.DOUBLE; + } } } @@ -1177,8 +1181,8 @@ public class ScalarType extends Type { * If strict is true, only consider casts that result in no loss of precision. */ public static boolean isImplicitlyCastable( - ScalarType t1, ScalarType t2, boolean strict) { - return getAssignmentCompatibleType(t1, t2, strict).matchesType(t2); + ScalarType t1, ScalarType t2, boolean strict, boolean enableDecimal256) { + return getAssignmentCompatibleType(t1, t2, strict, enableDecimal256).matchesType(t2); } public static boolean canCastTo(ScalarType type, ScalarType targetType) { diff --git a/fe/fe-common/src/main/java/org/apache/doris/catalog/StructType.java b/fe/fe-common/src/main/java/org/apache/doris/catalog/StructType.java index 1d6be19d28..4f21286c63 100644 --- a/fe/fe-common/src/main/java/org/apache/doris/catalog/StructType.java +++ b/fe/fe-common/src/main/java/org/apache/doris/catalog/StructType.java @@ -111,7 +111,8 @@ public class StructType extends Type { return true; } - public static Type getAssignmentCompatibleType(StructType t1, StructType t2, boolean strict) { + public static Type getAssignmentCompatibleType( + StructType t1, StructType t2, boolean strict, boolean enableDecimal256) { ArrayList fieldsLeft = t1.getFields(); ArrayList fieldsRight = t2.getFields(); ArrayList fieldsRes = new ArrayList<>(); @@ -120,7 +121,7 @@ public class StructType extends Type { StructField leftField = fieldsLeft.get(i); StructField rightField = fieldsRight.get(i); Type itemCompatibleType = Type.getAssignmentCompatibleType(leftField.getType(), rightField.getType(), - strict); + strict, enableDecimal256); if (itemCompatibleType.isInvalid()) { return ScalarType.INVALID; } @@ -221,7 +222,7 @@ public class StructType extends Type { @Override public Type specializeTemplateType(Type specificType, Map specializedTypeMap, - boolean useSpecializedType) throws TypeException { + boolean useSpecializedType, boolean enableDecimal256) throws TypeException { StructType specificStructType = null; if (specificType instanceof StructType) { specificStructType = (StructType) specificType; @@ -234,7 +235,7 @@ public class StructType extends Type { if (fields.get(i).type.hasTemplateType()) { newTypes.add(fields.get(i).type.specializeTemplateType( specificStructType != null ? specificStructType.fields.get(i).type : specificType, - specializedTypeMap, useSpecializedType)); + specializedTypeMap, useSpecializedType, enableDecimal256)); } } diff --git a/fe/fe-common/src/main/java/org/apache/doris/catalog/TemplateType.java b/fe/fe-common/src/main/java/org/apache/doris/catalog/TemplateType.java index 6615918601..ba5ed62f9d 100644 --- a/fe/fe-common/src/main/java/org/apache/doris/catalog/TemplateType.java +++ b/fe/fe-common/src/main/java/org/apache/doris/catalog/TemplateType.java @@ -81,7 +81,7 @@ public class TemplateType extends Type { @Override public Type specializeTemplateType(Type specificType, Map specializedTypeMap, - boolean useSpecializedType) throws TypeException { + boolean useSpecializedType, boolean enableDecimal256) throws TypeException { if (specificType.hasTemplateType() && !specificType.isNull()) { throw new TypeException(specificType + " should not hasTemplateType"); } @@ -97,7 +97,7 @@ public class TemplateType extends Type { if (specializedType != null && !specificType.equals(specializedType) && !specificType.matchesType(specializedType) - && !Type.isImplicitlyCastable(specificType, specializedType, true) + && !Type.isImplicitlyCastable(specificType, specializedType, true, enableDecimal256) && !Type.canCastTo(specificType, specializedType)) { throw new TypeException( String.format("can not specialize template type %s to %s since it's already specialized as %s", diff --git a/fe/fe-common/src/main/java/org/apache/doris/catalog/Type.java b/fe/fe-common/src/main/java/org/apache/doris/catalog/Type.java index 8091858e24..091c274f3e 100644 --- a/fe/fe-common/src/main/java/org/apache/doris/catalog/Type.java +++ b/fe/fe-common/src/main/java/org/apache/doris/catalog/Type.java @@ -627,7 +627,7 @@ public abstract class Type { // return a new type without template type, by specialize template type in this type public Type specializeTemplateType(Type specificType, Map specializedTypeMap, - boolean useSpecializedType) throws TypeException { + boolean useSpecializedType, boolean enableDecimal256) throws TypeException { if (hasTemplateType()) { // throw exception by default, sub class should specialize tempalte type properly throw new TypeException("specializeTemplateType not implemented"); @@ -728,9 +728,9 @@ public abstract class Type { * If strict is true, only consider casts that result in no loss of precision. * TODO: Support casting of non-scalar types. */ - public static boolean isImplicitlyCastable(Type t1, Type t2, boolean strict) { + public static boolean isImplicitlyCastable(Type t1, Type t2, boolean strict, boolean enableDecimal256) { if (t1.isScalarType() && t2.isScalarType()) { - return ScalarType.isImplicitlyCastable((ScalarType) t1, (ScalarType) t2, strict); + return ScalarType.isImplicitlyCastable((ScalarType) t1, (ScalarType) t2, strict, enableDecimal256); } if (t1.isComplexType() || t2.isComplexType()) { if ((t1.isArrayType() && t2.isArrayType()) || (t1.isMapType() && t2.isMapType()) @@ -771,17 +771,17 @@ public abstract class Type { * no such type or if any of t1 and t2 is INVALID_TYPE. * TODO: Support non-scalar types. */ - public static Type getAssignmentCompatibleType(Type t1, Type t2, boolean strict) { + public static Type getAssignmentCompatibleType(Type t1, Type t2, boolean strict, boolean enableDecimal256) { if (t1.isScalarType() && t2.isScalarType()) { - return ScalarType.getAssignmentCompatibleType((ScalarType) t1, (ScalarType) t2, strict); + return ScalarType.getAssignmentCompatibleType((ScalarType) t1, (ScalarType) t2, strict, enableDecimal256); } if (t1.isArrayType() && t2.isArrayType()) { - return ArrayType.getAssignmentCompatibleType((ArrayType) t1, (ArrayType) t2, strict); + return ArrayType.getAssignmentCompatibleType((ArrayType) t1, (ArrayType) t2, strict, enableDecimal256); } else if (t1.isMapType() && t2.isMapType()) { - return MapType.getAssignmentCompatibleType((MapType) t1, (MapType) t2, strict); + return MapType.getAssignmentCompatibleType((MapType) t1, (MapType) t2, strict, enableDecimal256); } else if (t1.isStructType() && t2.isStructType()) { - return StructType.getAssignmentCompatibleType((StructType) t1, (StructType) t2, strict); + return StructType.getAssignmentCompatibleType((StructType) t1, (StructType) t2, strict, enableDecimal256); } else if (t1.isComplexType() && t2.isNull()) { return t1; } else if (t1.isNull() && t2.isComplexType()) { @@ -1977,7 +1977,7 @@ public abstract class Type { } } - public static Type getCmpType(Type t1, Type t2) { + public static Type getCmpType(Type t1, Type t2, boolean enableDecimal256) { if (t1.getPrimitiveType() == PrimitiveType.NULL_TYPE) { return t2; } @@ -2033,7 +2033,7 @@ public abstract class Type { } if (t1ResultType == PrimitiveType.BIGINT && t2ResultType == PrimitiveType.BIGINT) { - return getAssignmentCompatibleType(t1, t2, false); + return getAssignmentCompatibleType(t1, t2, false, enableDecimal256); } if (t1.getPrimitiveType().isDecimalV3Type() && t2.getPrimitiveType().isDecimalV3Type()) { int resultPrecision = Math.max(t1.getPrecision(), t2.getPrecision()); @@ -2049,11 +2049,16 @@ public abstract class Type { return ScalarType.createDecimalType(resultDecimalType, resultPrecision, Math.max( ((ScalarType) t1).getScalarScale(), ((ScalarType) t2).getScalarScale())); } else { - return Type.DOUBLE; + if (enableDecimal256) { + return ScalarType.createDecimalType(resultDecimalType, resultPrecision, Math.max( + ((ScalarType) t1).getScalarScale(), ((ScalarType) t2).getScalarScale())); + } else { + return Type.DOUBLE; + } } } if (t1ResultType.isDecimalV3Type() || t2ResultType.isDecimalV3Type()) { - return getAssignmentCompatibleType(t1, t2, false); + return getAssignmentCompatibleType(t1, t2, false, enableDecimal256); } if ((t1ResultType == PrimitiveType.BIGINT || t1ResultType == PrimitiveType.DECIMALV2) diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyticExpr.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyticExpr.java index 2271fc871a..37b4684f15 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyticExpr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyticExpr.java @@ -30,6 +30,7 @@ import org.apache.doris.catalog.Type; import org.apache.doris.common.AnalysisException; import org.apache.doris.common.TreeNode; import org.apache.doris.nereids.util.Utils; +import org.apache.doris.qe.SessionVariable; import org.apache.doris.thrift.TExprNode; import com.google.common.base.Joiner; @@ -361,7 +362,8 @@ public class AnalyticExpr extends Expr { Expr rangeExpr = boundary.getExpr(); if (!Type.isImplicitlyCastable( - rangeExpr.getType(), orderByElements.get(0).getExpr().getType(), false)) { + rangeExpr.getType(), orderByElements.get(0).getExpr().getType(), false, + SessionVariable.getEnableDecimal256())) { throw new AnalysisException( "The value expression of a PRECEDING/FOLLOWING clause of a RANGE window must " + "be implicitly convertible to the ORDER BY expression's type: " diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java index e93d622df5..99c436aeb1 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java @@ -45,6 +45,7 @@ import org.apache.doris.planner.AnalyticEvalNode; import org.apache.doris.planner.PlanNode; import org.apache.doris.planner.RuntimeFilter; import org.apache.doris.qe.ConnectContext; +import org.apache.doris.qe.SessionVariable; import org.apache.doris.rewrite.BetweenToCompoundRule; import org.apache.doris.rewrite.CompoundPredicateWriteRule; import org.apache.doris.rewrite.EliminateUnnecessaryFunctions; @@ -2155,7 +2156,8 @@ public class Analyzer { if (lastCompatibleType == null) { newCompatibleType = expr.getType(); } else { - newCompatibleType = Type.getAssignmentCompatibleType(lastCompatibleType, expr.getType(), false); + newCompatibleType = Type.getAssignmentCompatibleType( + lastCompatibleType, expr.getType(), false, SessionVariable.getEnableDecimal256()); } if (!newCompatibleType.isValid()) { throw new AnalysisException(String.format( @@ -2177,15 +2179,16 @@ public class Analyzer { Type compatibleType = exprs.get(0).getType(); for (int i = 1; i < exprs.size(); ++i) { exprs.get(i).analyze(this); + boolean enableDecimal256 = SessionVariable.getEnableDecimal256(); if (compatibleType.isDateV2() && exprs.get(i) instanceof StringLiteral && ((StringLiteral) exprs.get(i)).canConvertToDateType(compatibleType)) { // If string literal can be converted to dateV2, we use datev2 as the compatible type // instead of datetimev2. } else if (exprs.get(i).isConstantImpl()) { exprs.get(i).compactForLiteral(compatibleType); - compatibleType = Type.getCmpType(compatibleType, exprs.get(i).getType()); + compatibleType = Type.getCmpType(compatibleType, exprs.get(i).getType(), enableDecimal256); } else { - compatibleType = Type.getCmpType(compatibleType, exprs.get(i).getType()); + compatibleType = Type.getCmpType(compatibleType, exprs.get(i).getType(), enableDecimal256); } } if (compatibleType.equals(Type.VARCHAR)) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/ArithmeticExpr.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/ArithmeticExpr.java index cf74b9b487..cdd8a20dec 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ArithmeticExpr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ArithmeticExpr.java @@ -31,6 +31,7 @@ import org.apache.doris.common.AnalysisException; import org.apache.doris.common.Config; import org.apache.doris.common.io.Text; import org.apache.doris.qe.ConnectContext; +import org.apache.doris.qe.SessionVariable; import org.apache.doris.thrift.TExprNode; import org.apache.doris.thrift.TExprNodeType; import org.apache.doris.thrift.TExprOpcode; @@ -111,7 +112,8 @@ public class ArithmeticExpr extends Expr { for (int j = 0; j < Type.getNumericTypes().size(); j++) { Type t2 = Type.getNumericTypes().get(j); - Type retType = Type.getNextNumType(Type.getAssignmentCompatibleType(t1, t2, false)); + // For old planner, set enableDecimal256 to false to keep the original behaviour + Type retType = Type.getNextNumType(Type.getAssignmentCompatibleType(t1, t2, false, false)); NullableMode mode = retType.isDecimalV3() ? NullableMode.CUSTOM : NullableMode.DEPEND_ON_ARGUMENT; functionSet.addBuiltin(ScalarFunction.createBuiltinOperator( Operator.MULTIPLY.getName(), Lists.newArrayList(t1, t2), retType, mode)); @@ -197,13 +199,14 @@ public class ArithmeticExpr extends Expr { for (int j = 0; j < Type.getIntegerTypes().size(); j++) { Type t2 = Type.getIntegerTypes().get(j); + // For old planner, set enableDecimal256 to false to keep the original behaviour functionSet.addBuiltin(ScalarFunction.createBuiltinOperator( Operator.INT_DIVIDE.getName(), Lists.newArrayList(t1, t2), - Type.getAssignmentCompatibleType(t1, t2, false), + Type.getAssignmentCompatibleType(t1, t2, false, false), Function.NullableMode.ALWAYS_NULLABLE)); functionSet.addBuiltin(ScalarFunction.createBuiltinOperator( Operator.MOD.getName(), Lists.newArrayList(t1, t2), - Type.getAssignmentCompatibleType(t1, t2, false), + Type.getAssignmentCompatibleType(t1, t2, false, false), Function.NullableMode.ALWAYS_NULLABLE)); } } @@ -401,7 +404,7 @@ public class ArithmeticExpr extends Expr { t1 = Type.TINYINT; t2 = Type.TINYINT; } - commonType = Type.getAssignmentCompatibleType(t1, t2, false); + commonType = Type.getAssignmentCompatibleType(t1, t2, false, SessionVariable.getEnableDecimal256()); if (commonType.getPrimitiveType().ordinal() > PrimitiveType.LARGEINT.ordinal()) { commonType = Type.BIGINT; } diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/ArrayLiteral.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/ArrayLiteral.java index 37245ed524..d73c4036c9 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ArrayLiteral.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ArrayLiteral.java @@ -53,7 +53,7 @@ public class ArrayLiteral extends LiteralExpr { if (itemType == Type.NULL) { itemType = expr.getType(); } else { - itemType = Type.getAssignmentCompatibleType(itemType, expr.getType(), false); + itemType = Type.getAssignmentCompatibleType(itemType, expr.getType(), false, false); } if (expr.isNullable()) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/BinaryPredicate.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/BinaryPredicate.java index 3064065539..5996b29960 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/BinaryPredicate.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/BinaryPredicate.java @@ -33,6 +33,7 @@ import org.apache.doris.common.Pair; import org.apache.doris.common.Reference; import org.apache.doris.common.io.Text; import org.apache.doris.common.io.Writable; +import org.apache.doris.qe.SessionVariable; import org.apache.doris.thrift.TExprNode; import org.apache.doris.thrift.TExprNodeType; import org.apache.doris.thrift.TExprOpcode; @@ -447,7 +448,8 @@ public class BinaryPredicate extends Predicate implements Writable { return Type.STRING; } if (t1 == PrimitiveType.BIGINT && t2 == PrimitiveType.BIGINT) { - return Type.getAssignmentCompatibleType(getChild(0).getType(), getChild(1).getType(), false); + return Type.getAssignmentCompatibleType(getChild(0).getType(), getChild(1).getType(), false, + SessionVariable.getEnableDecimal256()); } if ((t1 == PrimitiveType.BIGINT && t2 == PrimitiveType.DECIMALV2) || (t2 == PrimitiveType.BIGINT && t1 == PrimitiveType.DECIMALV2) @@ -480,7 +482,8 @@ public class BinaryPredicate extends Predicate implements Writable { if ((t1.isDecimalV3Type() && !t2.isStringType() && !t2.isFloatingPointType()) || (t2.isDecimalV3Type() && !t1.isStringType() && !t1.isFloatingPointType())) { - return Type.getAssignmentCompatibleType(getChild(0).getType(), getChild(1).getType(), false); + return Type.getAssignmentCompatibleType(getChild(0).getType(), getChild(1).getType(), false, + SessionVariable.getEnableDecimal256()); } return Type.DOUBLE; diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DateLiteral.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/DateLiteral.java index 05dd3b7f90..4beaf52638 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DateLiteral.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DateLiteral.java @@ -27,6 +27,7 @@ import org.apache.doris.common.AnalysisException; import org.apache.doris.common.InvalidFormatException; import org.apache.doris.nereids.util.DateUtils; import org.apache.doris.qe.ConnectContext; +import org.apache.doris.qe.SessionVariable; import org.apache.doris.thrift.TDateLiteral; import org.apache.doris.thrift.TExprNode; import org.apache.doris.thrift.TExprNodeType; @@ -716,7 +717,7 @@ public class DateLiteral extends LiteralExpr { long value = getYear() * 1000 + getMonth() * 100 + getDay(); return new IntLiteral(value, Type.BIGINT); } else { - if (Type.isImplicitlyCastable(this.type, targetType, true)) { + if (Type.isImplicitlyCastable(this.type, targetType, true, SessionVariable.getEnableDecimal256())) { return new CastExpr(targetType, this); } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DecimalLiteral.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/DecimalLiteral.java index 0d781bff7b..0762f3191f 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DecimalLiteral.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DecimalLiteral.java @@ -213,6 +213,7 @@ public class DecimalLiteral extends LiteralExpr { buffer.putLong(value.unscaledValue().longValue()); break; case DECIMAL128: + case DECIMAL256: LargeIntLiteral tmp = new LargeIntLiteral(value.unscaledValue()); return tmp.getHashValue(type); default: diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/Expr.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/Expr.java index f0558e5333..5b7479ae2d 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/Expr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/Expr.java @@ -40,6 +40,7 @@ import org.apache.doris.common.TreeNode; import org.apache.doris.common.io.Writable; import org.apache.doris.nereids.util.Utils; import org.apache.doris.qe.ConnectContext; +import org.apache.doris.qe.SessionVariable; import org.apache.doris.rewrite.mvrewrite.MVExprEquivalent; import org.apache.doris.statistics.ExprStats; import org.apache.doris.thrift.TExpr; @@ -1059,7 +1060,7 @@ public abstract class Expr extends TreeNode implements ParseNode, Cloneabl } assignmentCompatibleType = assignmentCompatibleType.isInvalid() ? children.get(i).type : ScalarType.getAssignmentCompatibleType(assignmentCompatibleType, children.get(i).type, - true); + true, SessionVariable.getEnableDecimal256()); } return assignmentCompatibleType; } diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java index a9fa018342..6fbb35aac6 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java @@ -41,6 +41,7 @@ import org.apache.doris.common.ErrorReport; import org.apache.doris.mysql.privilege.PrivPredicate; import org.apache.doris.nereids.util.Utils; import org.apache.doris.qe.ConnectContext; +import org.apache.doris.qe.SessionVariable; import org.apache.doris.thrift.TExprNode; import org.apache.doris.thrift.TExprNodeType; @@ -1238,6 +1239,7 @@ public class FunctionCallExpr extends Expr { } private void analyzeArrayFunction(Analyzer analyzer) throws AnalysisException { + boolean enableDecimal256 = SessionVariable.getEnableDecimal256(); if (fnName.getFunction().equalsIgnoreCase("array_distinct") || fnName.getFunction().equalsIgnoreCase("array_max") || fnName.getFunction().equalsIgnoreCase("array_min") @@ -1254,7 +1256,8 @@ public class FunctionCallExpr extends Expr { Type[] childTypes = collectChildReturnTypes(); Type compatibleType = childTypes[0]; for (int i = 1; i < childTypes.length; ++i) { - compatibleType = Type.getAssignmentCompatibleType(compatibleType, childTypes[i], true); + compatibleType = Type.getAssignmentCompatibleType(compatibleType, childTypes[i], true, + enableDecimal256); if (compatibleType == Type.INVALID) { throw new AnalysisException(getFunctionNotFoundError(collectChildReturnTypes())); } @@ -1291,7 +1294,8 @@ public class FunctionCallExpr extends Expr { } Type compatibleType = ((ArrayType) childTypes[0]).getItemType(); for (int i = 1; i < childTypes.length; ++i) { - compatibleType = Type.getAssignmentCompatibleType(compatibleType, childTypes[i], true); + compatibleType = Type.getAssignmentCompatibleType(compatibleType, childTypes[i], true, + enableDecimal256); if (compatibleType == Type.INVALID) { throw new AnalysisException(getFunctionNotFoundError(collectChildReturnTypes())); } @@ -1391,6 +1395,7 @@ public class FunctionCallExpr extends Expr { analyzeArrayFunction(analyzer); + boolean enableDecimal256 = SessionVariable.getEnableDecimal256(); if (fnName.getFunction().equalsIgnoreCase("sum")) { if (this.children.isEmpty()) { throw new AnalysisException("The " + fnName + " function must has one input param"); @@ -1403,7 +1408,7 @@ public class FunctionCallExpr extends Expr { Type compatibleType = this.children.get(0).getType(); for (int i = 1; i < this.children.size(); ++i) { Type type = this.children.get(i).getType(); - compatibleType = Type.getAssignmentCompatibleType(compatibleType, type, true); + compatibleType = Type.getAssignmentCompatibleType(compatibleType, type, true, enableDecimal256); if (compatibleType.isInvalid()) { compatibleType = Type.VARCHAR; break; @@ -1495,7 +1500,8 @@ public class FunctionCallExpr extends Expr { Function.CompareMode.IS_NONSTRICT_SUPERTYPE_OF); } else if (fnName.getFunction().equalsIgnoreCase("if")) { Type[] childTypes = collectChildReturnTypes(); - Type assignmentCompatibleType = ScalarType.getAssignmentCompatibleType(childTypes[1], childTypes[2], true); + Type assignmentCompatibleType = ScalarType.getAssignmentCompatibleType(childTypes[1], childTypes[2], true, + enableDecimal256); if (assignmentCompatibleType.isDecimalV3()) { if (assignmentCompatibleType.isDecimalV3() && !childTypes[1].equals(assignmentCompatibleType)) { uncheckedCastChild(assignmentCompatibleType, 1); @@ -1521,7 +1527,8 @@ public class FunctionCallExpr extends Expr { } else if (fnName.getFunction().equalsIgnoreCase("ifnull") || fnName.getFunction().equalsIgnoreCase("nvl")) { Type[] childTypes = collectChildReturnTypes(); - Type assignmentCompatibleType = ScalarType.getAssignmentCompatibleType(childTypes[0], childTypes[1], true); + Type assignmentCompatibleType = ScalarType.getAssignmentCompatibleType(childTypes[0], childTypes[1], true, + enableDecimal256); if (assignmentCompatibleType != Type.INVALID) { if (assignmentCompatibleType.isDecimalV3()) { if (assignmentCompatibleType.isDecimalV3() && !childTypes[0].equals(assignmentCompatibleType)) { @@ -1548,7 +1555,7 @@ public class FunctionCallExpr extends Expr { Type assignmentCompatibleType = childTypes[0]; for (int i = 1; i < childTypes.length; i++) { assignmentCompatibleType = ScalarType - .getAssignmentCompatibleType(assignmentCompatibleType, childTypes[i], true); + .getAssignmentCompatibleType(assignmentCompatibleType, childTypes[i], true, enableDecimal256); } if (assignmentCompatibleType.isDecimalV3()) { for (int i = 0; i < childTypes.length; i++) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/LargeIntLiteral.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/LargeIntLiteral.java index 9d19179704..c284b963d5 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/LargeIntLiteral.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/LargeIntLiteral.java @@ -143,24 +143,30 @@ public class LargeIntLiteral extends LiteralExpr { // little endian for hash code @Override public ByteBuffer getHashValue(PrimitiveType type) { - ByteBuffer buffer = ByteBuffer.allocate(16); + int buffLen = 0; + if (type == PrimitiveType.DECIMAL256) { + buffLen = 32; + } else { + buffLen = 16; + } + ByteBuffer buffer = ByteBuffer.allocate(buffLen); buffer.order(ByteOrder.LITTLE_ENDIAN); byte[] byteArray = value.toByteArray(); int len = byteArray.length; int end = 0; - if (len > 16) { - end = len - 16; + if (len > buffLen) { + end = len - buffLen; } for (int i = len - 1; i >= end; --i) { buffer.put(byteArray[i]); } if (value.signum() >= 0) { - while (len++ < 16) { + while (len++ < buffLen) { buffer.put((byte) 0); } } else { - while (len++ < 16) { + while (len++ < buffLen) { buffer.put((byte) 0xFF); } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/MapLiteral.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/MapLiteral.java index ba9878977c..ead27d9e98 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/MapLiteral.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/MapLiteral.java @@ -20,6 +20,7 @@ package org.apache.doris.analysis; import org.apache.doris.catalog.MapType; import org.apache.doris.catalog.Type; import org.apache.doris.common.AnalysisException; +import org.apache.doris.qe.SessionVariable; import org.apache.doris.thrift.TExprNode; import org.apache.doris.thrift.TExprNodeType; import org.apache.doris.thrift.TTypeDesc; @@ -65,8 +66,9 @@ public class MapLiteral extends LiteralExpr { if (!MapType.MAP.supportSubType(exprs[idx].getType())) { throw new AnalysisException("Invalid key type in Map, not support " + exprs[idx].getType()); } - keyType = Type.getAssignmentCompatibleType(keyType, exprs[idx].getType(), true); - valueType = Type.getAssignmentCompatibleType(valueType, exprs[idx + 1].getType(), true); + boolean enableDecimal256 = SessionVariable.getEnableDecimal256(); + keyType = Type.getAssignmentCompatibleType(keyType, exprs[idx].getType(), true, enableDecimal256); + valueType = Type.getAssignmentCompatibleType(valueType, exprs[idx + 1].getType(), true, enableDecimal256); } if (keyType == Type.INVALID) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/TypeDef.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/TypeDef.java index 431e10ce2e..c7199b82b2 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/TypeDef.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/TypeDef.java @@ -29,7 +29,6 @@ import org.apache.doris.catalog.StructType; import org.apache.doris.catalog.Type; import org.apache.doris.common.AnalysisException; import org.apache.doris.common.Config; -import org.apache.doris.qe.ConnectContext; import org.apache.doris.qe.SessionVariable; import org.apache.doris.thrift.TColumnDesc; import org.apache.doris.thrift.TPrimitiveType; @@ -304,15 +303,7 @@ public class TypeDef implements ParseNode { break; } case DECIMAL256: { - boolean enableNereidsPlanner = false; - boolean enableDecimal256 = false; - ConnectContext connectContext = ConnectContext.get(); - if (connectContext != null) { - SessionVariable sessionVariable = connectContext.getSessionVariable(); - enableDecimal256 = sessionVariable.enableDecimal256(); - enableNereidsPlanner = sessionVariable.isEnableNereidsPlanner(); - } - if (enableNereidsPlanner && enableDecimal256) { + if (SessionVariable.getEnableDecimal256()) { int precision = scalarType.decimalPrecision(); int scale = scalarType.decimalScale(); if (precision < 1 || precision > ScalarType.MAX_DECIMAL256_PRECISION) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Function.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Function.java index 17d47bc4e3..2ee5485d7f 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Function.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Function.java @@ -28,6 +28,7 @@ import org.apache.doris.common.io.IOUtils; import org.apache.doris.common.io.Text; import org.apache.doris.common.io.Writable; import org.apache.doris.common.util.URI; +import org.apache.doris.qe.SessionVariable; import org.apache.doris.thrift.TFunction; import org.apache.doris.thrift.TFunctionBinaryType; @@ -361,14 +362,16 @@ public class Function implements Writable { return false; } for (int i = 0; i < this.argTypes.length; ++i) { - if (!Type.isImplicitlyCastable(other.argTypes[i], this.argTypes[i], true)) { + if (!Type.isImplicitlyCastable(other.argTypes[i], this.argTypes[i], true, + SessionVariable.getEnableDecimal256())) { return false; } } // Check trailing varargs. if (this.hasVarArgs) { for (int i = this.argTypes.length; i < other.argTypes.length; ++i) { - if (!Type.isImplicitlyCastable(other.argTypes[i], getVarArgsType(), true)) { + if (!Type.isImplicitlyCastable(other.argTypes[i], getVarArgsType(), true, + SessionVariable.getEnableDecimal256())) { return false; } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/FunctionSet.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/FunctionSet.java index 665e7b75b4..f22a6eeed9 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/FunctionSet.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/FunctionSet.java @@ -29,6 +29,7 @@ import org.apache.doris.analysis.MatchPredicate; import org.apache.doris.builtins.ScalarBuiltins; import org.apache.doris.catalog.Function.NullableMode; import org.apache.doris.qe.ConnectContext; +import org.apache.doris.qe.SessionVariable; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; @@ -387,17 +388,19 @@ public class FunctionSet { } Type[] args = specializedFunction.getArgs(); Map specializedTypeMap = Maps.newHashMap(); + boolean enableDecimal256 = SessionVariable.getEnableDecimal256(); for (int i = 0; i < args.length; i++) { if (args[i].hasTemplateType()) { hasTemplateType = true; - args[i] = args[i].specializeTemplateType(requestFunction.getArgs()[i], specializedTypeMap, false); + args[i] = args[i].specializeTemplateType(requestFunction.getArgs()[i], specializedTypeMap, false, + enableDecimal256); } } if (specializedFunction.getReturnType().hasTemplateType()) { hasTemplateType = true; specializedFunction.setReturnType( specializedFunction.getReturnType().specializeTemplateType( - requestFunction.getReturnType(), specializedTypeMap, true)); + requestFunction.getReturnType(), specializedTypeMap, true, enableDecimal256)); } if (LOG.isDebugEnabled()) { LOG.debug("specializedFunction signature: {}, return type: {}", diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/PartitionKey.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/PartitionKey.java index bf69a209e9..eee87f3d6b 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/PartitionKey.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/PartitionKey.java @@ -29,6 +29,7 @@ import org.apache.doris.common.AnalysisException; import org.apache.doris.common.io.Text; import org.apache.doris.common.io.Writable; import org.apache.doris.datasource.hive.HiveMetaStoreCache; +import org.apache.doris.qe.SessionVariable; import com.google.common.base.Joiner; import com.google.common.base.Preconditions; @@ -221,7 +222,9 @@ public class PartitionKey implements Comparable, Writable { if (key1 instanceof MaxLiteral || key2 instanceof MaxLiteral) { ret = key1.compareLiteral(key2); } else { - final Type destType = Type.getAssignmentCompatibleType(key1.getType(), key2.getType(), false); + boolean enableDecimal256 = SessionVariable.getEnableDecimal256(); + final Type destType = Type.getAssignmentCompatibleType(key1.getType(), key2.getType(), false, + enableDecimal256); try { LiteralExpr newKey = key1; if (key1.getType() != destType) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Multiply.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Multiply.java index c420e061a5..52c43fa856 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Multiply.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Multiply.java @@ -56,7 +56,7 @@ public class Multiply extends BinaryArithmetic implements CheckOverflowNullable boolean enableDecimal256 = false; ConnectContext connectContext = ConnectContext.get(); if (connectContext != null) { - enableDecimal256 = connectContext.getSessionVariable().enableDecimal256(); + enableDecimal256 = connectContext.getSessionVariable().isEnableDecimal256(); } if (enableDecimal256) { if (retPercision > DecimalV3Type.MAX_DECIMAL256_PRECISION) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/ComputePrecisionForSum.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/ComputePrecisionForSum.java index d78567e165..36150af992 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/ComputePrecisionForSum.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/ComputePrecisionForSum.java @@ -32,7 +32,7 @@ public interface ComputePrecisionForSum extends ComputePrecision { boolean enableDecimal256 = false; ConnectContext connectContext = ConnectContext.get(); if (connectContext != null) { - enableDecimal256 = connectContext.getSessionVariable().enableDecimal256(); + enableDecimal256 = connectContext.getSessionVariable().isEnableDecimal256(); } return signature.withArgumentType(0, decimalV3Type) .withReturnType(DecimalV3Type.createDecimalV3Type( diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/ImplicitlyCastableSignature.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/ImplicitlyCastableSignature.java index 490d1344b2..eb3c4c03f1 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/ImplicitlyCastableSignature.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/ImplicitlyCastableSignature.java @@ -24,6 +24,7 @@ import org.apache.doris.nereids.types.DataType; import org.apache.doris.nereids.types.NullType; import org.apache.doris.nereids.types.coercion.AnyDataType; import org.apache.doris.nereids.types.coercion.FollowToAnyDataType; +import org.apache.doris.qe.SessionVariable; import java.util.List; @@ -58,7 +59,8 @@ public interface ImplicitlyCastableSignature extends ComputeSignature { return false; } } - if (Type.isImplicitlyCastable(realType.toCatalogDataType(), signatureType.toCatalogDataType(), true)) { + if (Type.isImplicitlyCastable(realType.toCatalogDataType(), signatureType.toCatalogDataType(), true, + SessionVariable.getEnableDecimal256())) { return true; } } catch (Throwable t) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/Avg.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/Avg.java index 9586348486..db1d8d7eb7 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/Avg.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/Avg.java @@ -92,7 +92,7 @@ public class Avg extends NullableAggregateFunction boolean enableDecimal256 = false; ConnectContext connectContext = ConnectContext.get(); if (connectContext != null) { - enableDecimal256 = connectContext.getSessionVariable().enableDecimal256(); + enableDecimal256 = connectContext.getSessionVariable().isEnableDecimal256(); } DecimalV3Type decimalV3Type = DecimalV3Type.forType(argumentType); // DecimalV3 scale lower than DEFAULT_MIN_AVG_DECIMAL128_SCALE should do cast diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalSetOperation.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalSetOperation.java index 71c1f08745..9a5900908c 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalSetOperation.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalSetOperation.java @@ -37,6 +37,7 @@ import org.apache.doris.nereids.types.MapType; import org.apache.doris.nereids.types.StructField; import org.apache.doris.nereids.types.StructType; import org.apache.doris.nereids.util.TypeCoercionUtils; +import org.apache.doris.qe.SessionVariable; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; @@ -253,6 +254,7 @@ public abstract class LogicalSetOperation extends AbstractLogicalPlan implements return DataType.fromCatalogType(Type.getAssignmentCompatibleType( left.toCatalogDataType(), right.toCatalogDataType(), - false)); + false, + SessionVariable.getEnableDecimal256())); } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/DecimalV3Type.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/DecimalV3Type.java index 6d1e43383b..f87f95db4a 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/types/DecimalV3Type.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/types/DecimalV3Type.java @@ -110,7 +110,7 @@ public class DecimalV3Type extends FractionalType { boolean enableDecimal256 = false; ConnectContext connectContext = ConnectContext.get(); if (connectContext != null) { - enableDecimal256 = connectContext.getSessionVariable().enableDecimal256(); + enableDecimal256 = connectContext.getSessionVariable().isEnableDecimal256(); } if (precision > MAX_DECIMAL128_PRECISION && !enableDecimal256) { throw new NotSupportedException("Datatype DecimalV3 with precision " + precision @@ -133,7 +133,7 @@ public class DecimalV3Type extends FractionalType { boolean enableDecimal256 = false; ConnectContext connectContext = ConnectContext.get(); if (connectContext != null) { - enableDecimal256 = connectContext.getSessionVariable().enableDecimal256(); + enableDecimal256 = connectContext.getSessionVariable().isEnableDecimal256(); } if (enableDecimal256) { Preconditions.checkArgument(precision > 0 && precision <= MAX_DECIMAL256_PRECISION, @@ -169,7 +169,7 @@ public class DecimalV3Type extends FractionalType { boolean enableDecimal256 = false; ConnectContext connectContext = ConnectContext.get(); if (connectContext != null) { - enableDecimal256 = connectContext.getSessionVariable().enableDecimal256(); + enableDecimal256 = connectContext.getSessionVariable().isEnableDecimal256(); } if (range + scale > (enableDecimal256 ? MAX_DECIMAL256_PRECISION : MAX_DECIMAL128_PRECISION) && overflowToDouble) { @@ -247,7 +247,7 @@ public class DecimalV3Type extends FractionalType { boolean enableDecimal256 = false; ConnectContext connectContext = ConnectContext.get(); if (connectContext != null) { - enableDecimal256 = connectContext.getSessionVariable().enableDecimal256(); + enableDecimal256 = connectContext.getSessionVariable().isEnableDecimal256(); } if (enableDecimal256) { return 32; diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java index 9cb2b5edc8..3698057003 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java @@ -2840,7 +2840,16 @@ public class SessionVariable implements Serializable, Writable { return connectContext.getSessionVariable().enableAggState; } - public boolean enableDecimal256() { + public static boolean getEnableDecimal256() { + ConnectContext connectContext = ConnectContext.get(); + if (connectContext == null) { + return false; + } + SessionVariable sessionVariable = connectContext.getSessionVariable(); + return sessionVariable.isEnableNereidsPlanner() && sessionVariable.isEnableDecimal256(); + } + + public boolean isEnableDecimal256() { return enableDecimal256; } diff --git a/fe/fe-core/src/main/java/org/apache/doris/statistics/util/StatisticsUtil.java b/fe/fe-core/src/main/java/org/apache/doris/statistics/util/StatisticsUtil.java index d7bfd82655..86429f09e2 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/statistics/util/StatisticsUtil.java +++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/util/StatisticsUtil.java @@ -228,6 +228,7 @@ public class StatisticsUtil { case DECIMAL32: case DECIMAL64: case DECIMAL128: + case DECIMAL256: DecimalLiteral decimalLiteral = new DecimalLiteral(columnValue); decimalLiteral.checkPrecisionAndScale(scalarType.getScalarPrecision(), scalarType.getScalarScale()); return decimalLiteral; @@ -273,6 +274,7 @@ public class StatisticsUtil { case DECIMAL32: case DECIMAL64: case DECIMAL128: + case DECIMAL256: return Double.parseDouble(columnValue); case DATE: case DATEV2: diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/GenerateFunction.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/GenerateFunction.java index 038efc76e9..514062b679 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/GenerateFunction.java +++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/GenerateFunction.java @@ -1398,7 +1398,7 @@ public class GenerateFunction { + " Type assignmentCompatibleType = ScalarType.getAssignmentCompatibleType(\n" + " getArgumentType(1).toCatalogDataType(),\n" + " getArgumentType(2).toCatalogDataType(),\n" - + " true);\n" + + " true, false);\n" + " return DataType.fromCatalogType(assignmentCompatibleType);\n" + " });\n" + "\n"; diff --git a/regression-test/data/datatype_p0/decimalv3/test_arithmetic_expressions.out b/regression-test/data/datatype_p0/decimalv3/test_arithmetic_expressions.out index 72db6bf6f2..9361d86f2c 100644 --- a/regression-test/data/datatype_p0/decimalv3/test_arithmetic_expressions.out +++ b/regression-test/data/datatype_p0/decimalv3/test_arithmetic_expressions.out @@ -65,9 +65,101 @@ 3.000000 33333333333333333333333333333333.333333 33333333333333333333333333333333.333333 4.444444 2.222222 3.333333 +-- !decimal128_multiply_0 -- +9.876541234568 +99999999999999999999999999.999999999999 +99999999999999999999999999.999999999999 +99999999999999999999999999.999999999999 + +-- !decimal128_arith_union -- +3.333333000000 +9.876541234568 +99999999999999999999999999.999999999999 +99999999999999999999999999.999999999999 +99999999999999999999999999.999999999999 +33333333333333333333333333333333.333333000000 +49999999999999999999999999999999.999999000000 +99999999999999999999999999999999.999999000000 + +-- !decimal128_multiply_1 -- +32.921800823046255144 +99999999999999999999.999999999999999999 +99999999999999999999.999999999999999999 +99999999999999999999.999999999999999999 + +-- !decimal128_multiply_2 -- +99.999999999999999999999999999999999999 +99.999999999999999999999999999999999999 +99.999999999999999999999999999999999999 +99.999999999999999999999999999999999999 + +-- !decimal128_multiply_div -- +1.0000000000000001E58 +1.0000000000000001E58 +1.0E58 +97.54606675812198 + -- !decimal128_select_all_2 -- 999999.999 999999.999 999999.999 999999.999 999999.999 999999.999 999999.999 999999.999 999999.999 999999.999 999999.999 +-- !decimal128_mixed_calc_0 -- +2999999.997 + +-- !decimal128_mixed_calc_1 -- +2.999999994E12 + +-- !decimal128_mixed_calc_2 -- +3.0 + +-- !decimal128_mixed_calc_3 -- +1.0999999989E7 + +-- !decimal128_enable_decimal256_multiply_0 -- +9.876541234568 +99999999999999999999999999999999.999998000000 +99999999999999999999999999999999.999999000000 +99999999999999999999999999999999.999999000000 + +-- !decimal128_enable_decimal256_arith_union -- +3.333333000000 +9.876541234568 +33333333333333333333333333333333.333333000000 +49999999999999999999999999999999.999999000000 +99999999999999999999999999999999.999998000000 +99999999999999999999999999999999.999999000000 +99999999999999999999999999999999.999999000000 +99999999999999999999999999999999.999999000000 + +-- !decimal128_enable_decimal256_multiply_1 -- +32.921800823046255144 +9999999999999999999999999999999999999999999999999999999999.999999999999999999 +9999999999999999999999999999999999999999999999999999999999.999999999999999999 +9999999999999999999999999999999999999999999999999999999999.999999999999999999 + +-- !decimal128_enable_decimal256_multiply_2 -- +9999999999999999999999999999999999999999.999999999999999999999999999999999999 +9999999999999999999999999999999999999999.999999999999999999999999999999999999 +9999999999999999999999999999999999999999.999999999999999999999999999999999999 +1083.844969432329082604616506562346460736 + +-- !decimal128_enable_decimal256_multiply_div -- +1.0000000000000002E64 +1.0000000000000002E64 +1.0E64 +97.54606675812198 + +-- !decimal128_enable_decimal256_mixed_calc_0 -- +2999999.997 + +-- !decimal128_enable_decimal256_mixed_calc_1 -- +2999999994000.000003 + +-- !decimal128_enable_decimal256_mixed_calc_2 -- +3.0000000 + +-- !decimal128_enable_decimal256_mixed_calc_3 -- +10999999.989 + -- !decimal128_cast256_cast -- 3.333333 3.3333330000 33333333333333333333333333333333.333333 33333333333333333333333333333333.3333330000 @@ -150,3 +242,88 @@ -- !decimal128_cast256_mixed_calc_7 -- 1.0999999989E7 +-- !decimal256_arith_select_all -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !decimal256_arith_plus -- +3.3333333333333333E65 +5.000000000000001E65 +1.0000000000000001E66 + +-- !decimal256_arith_minus -- +3.3333333333333333E65 +5.000000000000001E65 +1.0000000000000001E66 + +-- !decimal256_arith_multiply -- +999999999999999999999999999999999999999999999999999999999.9999999999999999999 +999999999999999999999999999999999999999999999999999999999.9999999999999999999 +999999999999999999999999999999999999999999999999999999999.9999999999999999999 + +-- !decimal256_arith_div -- +1.111111111111111E65 +2.5000000000000003E65 +1.0000000000000001E66 + +-- !decimal256_arith_union -- +-999999999999999999999999999999999999999999999999999999999.9999999999999999999 +-999999999999999999999999999999999999999999999999999999999.9999999999999999999 +999999999999999999999999999999999999999999999999999999999.9999999999999999999 +999999999999999999999999999999999999999999999999999999999.9999999999999999999 +999999999999999999999999999999999999999999999999999999999.9999999999999999999 +999999999999999999999999999999999999999999999999999999999.9999999999999999999 + +-- !decimal256_multiply_1 -- +9999999999999999999999999999999999999999999999.999999999999999999999999999999 +9999999999999999999999999999999999999999999999.999999999999999999999999999999 +9999999999999999999999999999999999999999999999.999999999999999999999999999999 + +-- !decimal256_multiply_2 -- +9999999999999999.999999999999999999999999999999999999999999999999999999999999 +9999999999999999.999999999999999999999999999999999999999999999999999999999999 +9999999999999999.999999999999999999999999999999999999999999999999999999999999 + +-- !decimal256_multiply_div -- +1.0000000000000003E123 +1.0000000000000003E123 +1.0000000000000001E123 + +-- !decimal256_arith_multiply_const -- +2.0000000000 +4.0000000000 +6.0000000000 + +-- !decimal256_select_all_2 -- +999999.999 999999.999 999999.999 999999.999 999999.999 999999.999 999999.999 999999.999 999999.999 999999.999 999999.999 + +-- !decimal256_mixed_calc_0 -- +2999999.997 + +-- !decimal256_mixed_calc_1 -- +2.999999994E12 + +-- !decimal256_mixed_calc_2 -- +3.0 + +-- !decimal256_mixed_calc_3 -- +1.0999999989E7 + +-- !decimal256_arith_3 -- +1 999999999999999999999999999999999999999999999999999999999999999999999999999.9 999999999999999999999999999999999999999999999999999999999999999999999999999.9 +2 499999999999999999999999999999999999999999999999999999999999999999999999999.9 999999999999999999999999999999999999999999999999999999999999999999999999999.8 +3 333333333333333333333333333333333333333333333333333333333333333333333333333.3 999999999999999999999999999999999999999999999999999999999999999999999999999.9 + +-- !decimal256_div_v2_v3 -- +1 629.0287029333568 629.028702933357 +2 722.8102124296118 722.8102124296119 +3 724.2919760003956 724.2919760003956 +4 688.8901831550861 688.8901831550862 + +-- !decimal256_mod -- +92594283.129196000 1 0.129196000 0.129196000 +107684988.257976000 3 0.257976000 0.257976000 +76891560.464178000 5 0.464178000 0.464178000 +277170831.851350000 7 0.851350000 0.851350000 + diff --git a/regression-test/data/datatype_p0/decimalv3/test_decimal256_cast.out b/regression-test/data/datatype_p0/decimalv3/test_decimal256_cast.out new file mode 100644 index 0000000000..28cd6f1283 --- /dev/null +++ b/regression-test/data/datatype_p0/decimalv3/test_decimal256_cast.out @@ -0,0 +1,25 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !decimal256_cast0 -- +999999999999999999999999999999999999999999999999999999999999999999.9999999999 + +-- !decimal256_cast1 -- +-999999999999999999999999999999999999999999999999999999999999999999.9999999999 + +-- !decimal256_cast2 -- +999999999999999999999999999999999999999999999999999999999999999999.9999999999 + +-- !decimal256_cast3 -- +-999999999999999999999999999999999999999999999999999999999999999999.9999999999 + +-- !decimal256_cast4 -- +999999999999999999999999999999999999999999999999999999999999999999.9999999999 + +-- !decimal256_cast5 -- +-999999999999999999999999999999999999999999999999999999999999999999.9999999999 + +-- !decimal256_cast6 -- +999999999999999999999999999999999999999999999999999999999999999999.9999999999 + +-- !decimal256_cast7 -- +-999999999999999999999999999999999999999999999999999999999999999999.9999999999 + diff --git a/regression-test/data/datatype_p0/decimalv3/test_decimal256_index.out b/regression-test/data/datatype_p0/decimalv3/test_decimal256_index.out new file mode 100644 index 0000000000..6a961a6993 --- /dev/null +++ b/regression-test/data/datatype_p0/decimalv3/test_decimal256_index.out @@ -0,0 +1,259 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !decimal256_zonemap_0 -- +1.000000000 900000000000000000000000000000000000000000000000000000000000000001.9999999999 +2.000000000 900000000000000000000000000000000000000000000000000000000000000002.9999999999 +3.000000000 900000000000000000000000000000000000000000000000000000000000000003.9999999999 +4.000000000 900000000000000000000000000000000000000000000000000000000000000004.9999999999 +5.000000000 900000000000000000000000000000000000000000000000000000000000000005.9999999999 +6.000000000 900000000000000000000000000000000000000000000000000000000000000006.9999999999 +7.000000000 900000000000000000000000000000000000000000000000000000000000000007.9999999999 +8.000000000 900000000000000000000000000000000000000000000000000000000000000008.9999999999 +9.000000000 900000000000000000000000000000000000000000000000000000000000000009.9999999999 + +-- !sql_bitmap_index_select_all -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !sql_eq_1 -- +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !sql_eq_2 -- +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !sql_eq_3 -- +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !sql_neq_1 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !sql_neq_2 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !sql_neq_3 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !sql_gt_1 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !sql_gt_2 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !sql_gt_3 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !sql_ge_1 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !sql_ge_2 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !sql_ge_3 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !sql_lt_1 -- +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !sql_lt_2 -- + +-- !sql_lt_3 -- +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !sql_le_1 -- +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !sql_le_2 -- +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !sql_le_3 -- +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !sql_bf_eq_1 -- +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !sql_bf_eq_2 -- +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !sql_bf_eq_3 -- +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !sql_bf_neq_1 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !sql_bf_neq_2 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !sql_bf_neq_3 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !sql_bf_gt_1 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !sql_bf_gt_2 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !sql_bf_gt_3 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !sql_bf_ge_1 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !sql_bf_ge_2 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !sql_bf_ge_3 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !sql_bf_lt_1 -- +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !sql_bf_lt_2 -- + +-- !sql_bf_lt_3 -- +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !sql_bf_le_1 -- +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !sql_bf_le_2 -- +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !sql_bf_le_3 -- +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + diff --git a/regression-test/data/datatype_p0/decimalv3/test_decimal256_load.csv b/regression-test/data/datatype_p0/decimalv3/test_decimal256_load.csv new file mode 100644 index 0000000000..65a862f150 --- /dev/null +++ b/regression-test/data/datatype_p0/decimalv3/test_decimal256_load.csv @@ -0,0 +1,19 @@ +2, 499999999999999999999999999999999999999999999999999999999999999999.9999999999, 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +1, 999999999999999999999999999999999999999999999999999999999999999999.9999999999, 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1, 999999999999999999999999999999999999999999999999999999999999999999.9999999999, 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4, -999999999999999999999999999999999999999999999999999999999999999999.9999999999, 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +3, 333333333333333333333333333333333333333333333333333333333333333333.3333333333, 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4, -999999999999999999999999999999999999999999999999999999999999999999.9999999999, 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +3, 333333333333333333333333333333333333333333333333333333333333333333.3333333333, 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5, -333333333333333333333333333333333333333333333333333333333333333333.3333333333, 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5, -333333333333333333333333333333333333333333333333333333333333333333.3333333333, 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6, null, 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7, null, 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +0, 0, 0 +99999999999999999999999999999.999999999, 1, 1 +-99999999999999999999999999999.999999999, 1, 1 +9999999999999999999999999999999999999999999999999999999999999999999.999999999, 1, 1 +-9999999999999999999999999999999999999999999999999999999999999999999.999999999, 1, 1 +4999999999999999999999999999999999999999999999999999999999999999999.999999999, 1, 1 +-4999999999999999999999999999999999999999999999999999999999999999999.999999999, 1, 1 +null, null, null \ No newline at end of file diff --git a/regression-test/data/datatype_p0/decimalv3/test_decimal256_load.out b/regression-test/data/datatype_p0/decimalv3/test_decimal256_load.out new file mode 100644 index 0000000000..dcfa3fb023 --- /dev/null +++ b/regression-test/data/datatype_p0/decimalv3/test_decimal256_load.out @@ -0,0 +1,664 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !decimal256_insert_select_all0 -- +\N \N \N +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select -- +\N \N \N +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_eq0 -- +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_eq1 -- +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_eq2 -- +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_eq3 -- +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_eq4 -- +0E-9 0E-10 0E-11 + +-- !select_key_eq5 -- + +-- !select_key_neq0 -- +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_neq1 -- +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_neq2 -- +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_neq3 -- +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_neq4 -- +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_neq5 -- + +-- !select_key_gt0 -- + +-- !select_key_gt1 -- +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_gt2 -- +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_gt3 -- +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_gt4 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_gt5 -- + +-- !select_key_ge0 -- +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_ge1 -- +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_ge2 -- +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_ge3 -- +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_ge4 -- +0E-9 0E-10 0E-11 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_ge5 -- + +-- !select_key_lt0 -- +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_lt1 -- +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_lt2 -- +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_lt3 -- + +-- !select_key_lt4 -- +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_lt5 -- + +-- !select_key_le0 -- +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_le1 -- +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_le2 -- +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_le3 -- +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_le4 -- +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 + +-- !select_key_le5 -- + +-- !select_key_in0 -- +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_in1 -- +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_in2 -- +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_in3 -- +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_in4 -- +0E-9 0E-10 0E-11 + +-- !select_key_in5 -- +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_in6 -- + +-- !select_key_in7 -- +0E-9 0E-10 0E-11 + +-- !select_key_notin0 -- +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_notin1 -- +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_notin2 -- +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_notin3 -- +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_notin4 -- +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_notin5 -- +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_key_notin6 -- + +-- !select_key_notin7 -- + +-- !select_key_is_null -- +\N \N \N + +-- !select_key_is_not_null -- +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !sql_eq_1 -- +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !sql_neq_1 -- +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !sql_gt_1 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !sql_ge_1 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !sql_lt_1 -- +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !sql_le_1 -- +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !select_2 -- +\N \N \N +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !sql_insert_select_eq_1 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !sql_select_insert_default0 -- +\N \N \N +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 -99999.00000000000 +0E-9 0E-10 0E-11 +0E-9 999999999999999999999999999999999999999999999999999999999999999999.9999999999 0E-11 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999.00000000000 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + +-- !sql_select_insert_default1 -- +99999.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999.00000000000 + +-- !sql_select_insert_default2 -- +-99999.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 -99999.00000000000 + diff --git a/regression-test/data/datatype_p0/decimalv3/test_decimal256_outfile_csv.out b/regression-test/data/datatype_p0/decimalv3/test_decimal256_outfile_csv.out new file mode 100644 index 0000000000..6dd74d5daa --- /dev/null +++ b/regression-test/data/datatype_p0/decimalv3/test_decimal256_outfile_csv.out @@ -0,0 +1,22 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !sql_select_all -- +\N \N \N +-9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +-99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +0E-9 0E-10 0E-11 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +99999999999999999999999999999.999999999 1.0000000000 1.00000000000 +4999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 +9999999999999999999999999999999999999999999999999999999999999999999.999999999 1.0000000000 1.00000000000 + diff --git a/regression-test/data/datatype_p0/decimalv3/test_decimal256_predicate.out b/regression-test/data/datatype_p0/decimalv3/test_decimal256_predicate.out new file mode 100644 index 0000000000..16961bb57a --- /dev/null +++ b/regression-test/data/datatype_p0/decimalv3/test_decimal256_predicate.out @@ -0,0 +1,178 @@ +-- This file is automatically generated. You should know what you did if you want to edit this +-- !select256_1 -- +true + +-- !select256_2 -- +false + +-- !select256_3 -- +true + +-- !select256_4 -- +false + +-- !select256_5 -- +true + +-- !select256_6 -- +false + +-- !select256_7 -- +true + +-- !select256_8 -- +false + +-- !select256_9 -- +true + +-- !select256_10 -- +false + +-- !select256_11 -- +true + +-- !select256_12 -- +false + +-- !select256_fold_const_by_be1 -- +true + +-- !select256_fold_const_by_be2 -- +false + +-- !select256_fold_const_by_be3 -- +true + +-- !select256_fold_const_by_be4 -- +false + +-- !select256_fold_const_by_be5 -- +true + +-- !select256_fold_const_by_be6 -- +false + +-- !select256_fold_const_by_be7 -- +true + +-- !select256_fold_const_by_be8 -- +false + +-- !select256_fold_const_by_be9 -- +true + +-- !select256_fold_const_by_be10 -- +false + +-- !select256_fold_const_by_be11 -- +true + +-- !select256_fold_const_by_be12 -- +false + +-- !decimal256_select_all -- +1.000000 99999999999999999999999999999999.999999 99999999999999999999999999999999.999999 +2.000000 49999999999999999999999999999999.999999 49999999999999999999999999999999.999999 +3.000000 33333333333333333333333333333333.333333 33333333333333333333333333333333.333333 +4.444444 2.222222 3.333333 + +-- !decimal256_predicate_0 -- +1.000000 99999999999999999999999999999999.999999 99999999999999999999999999999999.999999 +2.000000 49999999999999999999999999999999.999999 49999999999999999999999999999999.999999 + +-- !decimal256_predicate_1 -- +1.000000 99999999999999999999999999999999.999999 99999999999999999999999999999999.999999 + +-- !decimal256_predicate_2 -- +3.000000 33333333333333333333333333333333.333333 33333333333333333333333333333333.333333 +4.444444 2.222222 3.333333 + +-- !decimal256_predicate_3 -- +3.000000 33333333333333333333333333333333.333333 33333333333333333333333333333333.333333 +4.444444 2.222222 3.333333 + +-- !decimal256_predicate_4 -- +1.000000 99999999999999999999999999999999.999999 99999999999999999999999999999999.999999 + +-- !decimal256_predicate_5 -- +2.000000 49999999999999999999999999999999.999999 49999999999999999999999999999999.999999 +3.000000 33333333333333333333333333333333.333333 33333333333333333333333333333333.333333 +4.444444 2.222222 3.333333 + +-- !decimal256_select_all2 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !decimal256_predicate_6 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !decimal256_predicate_7 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !decimal256_predicate_8 -- +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !decimal256_predicate_9 -- +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !decimal256_predicate_10 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !decimal256_predicate_11 -- +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !decimal256_predicate_12 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !decimal256_predicate_13 -- +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !decimal256_predicate_14 -- +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +4.000000000 -999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +5.000000000 -333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 +6.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +7.000000000 \N 99999999999999999999999999999999999999999999999999999999999999999.99999999999 + diff --git a/regression-test/data/datatype_p0/decimalv3/test_decimal256_zonemap_index.csv b/regression-test/data/datatype_p0/decimalv3/test_decimal256_zonemap_index.csv new file mode 100644 index 0000000000..f09b11131f --- /dev/null +++ b/regression-test/data/datatype_p0/decimalv3/test_decimal256_zonemap_index.csv @@ -0,0 +1,4096 @@ +1,900000000000000000000000000000000000000000000000000000000000000001.9999999999 +2,900000000000000000000000000000000000000000000000000000000000000002.9999999999 +3,900000000000000000000000000000000000000000000000000000000000000003.9999999999 +4,900000000000000000000000000000000000000000000000000000000000000004.9999999999 +5,900000000000000000000000000000000000000000000000000000000000000005.9999999999 +6,900000000000000000000000000000000000000000000000000000000000000006.9999999999 +7,900000000000000000000000000000000000000000000000000000000000000007.9999999999 +8,900000000000000000000000000000000000000000000000000000000000000008.9999999999 +9,900000000000000000000000000000000000000000000000000000000000000009.9999999999 +10,900000000000000000000000000000000000000000000000000000000000000010.9999999999 +11,900000000000000000000000000000000000000000000000000000000000000011.9999999999 +12,900000000000000000000000000000000000000000000000000000000000000012.9999999999 +13,900000000000000000000000000000000000000000000000000000000000000013.9999999999 +14,900000000000000000000000000000000000000000000000000000000000000014.9999999999 +15,900000000000000000000000000000000000000000000000000000000000000015.9999999999 +16,900000000000000000000000000000000000000000000000000000000000000016.9999999999 +17,900000000000000000000000000000000000000000000000000000000000000017.9999999999 +18,900000000000000000000000000000000000000000000000000000000000000018.9999999999 +19,900000000000000000000000000000000000000000000000000000000000000019.9999999999 +20,900000000000000000000000000000000000000000000000000000000000000020.9999999999 +21,900000000000000000000000000000000000000000000000000000000000000021.9999999999 +22,900000000000000000000000000000000000000000000000000000000000000022.9999999999 +23,900000000000000000000000000000000000000000000000000000000000000023.9999999999 +24,900000000000000000000000000000000000000000000000000000000000000024.9999999999 +25,900000000000000000000000000000000000000000000000000000000000000025.9999999999 +26,900000000000000000000000000000000000000000000000000000000000000026.9999999999 +27,900000000000000000000000000000000000000000000000000000000000000027.9999999999 +28,900000000000000000000000000000000000000000000000000000000000000028.9999999999 +29,900000000000000000000000000000000000000000000000000000000000000029.9999999999 +30,900000000000000000000000000000000000000000000000000000000000000030.9999999999 +31,900000000000000000000000000000000000000000000000000000000000000031.9999999999 +32,900000000000000000000000000000000000000000000000000000000000000032.9999999999 +33,900000000000000000000000000000000000000000000000000000000000000033.9999999999 +34,900000000000000000000000000000000000000000000000000000000000000034.9999999999 +35,900000000000000000000000000000000000000000000000000000000000000035.9999999999 +36,900000000000000000000000000000000000000000000000000000000000000036.9999999999 +37,900000000000000000000000000000000000000000000000000000000000000037.9999999999 +38,900000000000000000000000000000000000000000000000000000000000000038.9999999999 +39,900000000000000000000000000000000000000000000000000000000000000039.9999999999 +40,900000000000000000000000000000000000000000000000000000000000000040.9999999999 +41,900000000000000000000000000000000000000000000000000000000000000041.9999999999 +42,900000000000000000000000000000000000000000000000000000000000000042.9999999999 +43,900000000000000000000000000000000000000000000000000000000000000043.9999999999 +44,900000000000000000000000000000000000000000000000000000000000000044.9999999999 +45,900000000000000000000000000000000000000000000000000000000000000045.9999999999 +46,900000000000000000000000000000000000000000000000000000000000000046.9999999999 +47,900000000000000000000000000000000000000000000000000000000000000047.9999999999 +48,900000000000000000000000000000000000000000000000000000000000000048.9999999999 +49,900000000000000000000000000000000000000000000000000000000000000049.9999999999 +50,900000000000000000000000000000000000000000000000000000000000000050.9999999999 +51,900000000000000000000000000000000000000000000000000000000000000051.9999999999 +52,900000000000000000000000000000000000000000000000000000000000000052.9999999999 +53,900000000000000000000000000000000000000000000000000000000000000053.9999999999 +54,900000000000000000000000000000000000000000000000000000000000000054.9999999999 +55,900000000000000000000000000000000000000000000000000000000000000055.9999999999 +56,900000000000000000000000000000000000000000000000000000000000000056.9999999999 +57,900000000000000000000000000000000000000000000000000000000000000057.9999999999 +58,900000000000000000000000000000000000000000000000000000000000000058.9999999999 +59,900000000000000000000000000000000000000000000000000000000000000059.9999999999 +60,900000000000000000000000000000000000000000000000000000000000000060.9999999999 +61,900000000000000000000000000000000000000000000000000000000000000061.9999999999 +62,900000000000000000000000000000000000000000000000000000000000000062.9999999999 +63,900000000000000000000000000000000000000000000000000000000000000063.9999999999 +64,900000000000000000000000000000000000000000000000000000000000000064.9999999999 +65,900000000000000000000000000000000000000000000000000000000000000065.9999999999 +66,900000000000000000000000000000000000000000000000000000000000000066.9999999999 +67,900000000000000000000000000000000000000000000000000000000000000067.9999999999 +68,900000000000000000000000000000000000000000000000000000000000000068.9999999999 +69,900000000000000000000000000000000000000000000000000000000000000069.9999999999 +70,900000000000000000000000000000000000000000000000000000000000000070.9999999999 +71,900000000000000000000000000000000000000000000000000000000000000071.9999999999 +72,900000000000000000000000000000000000000000000000000000000000000072.9999999999 +73,900000000000000000000000000000000000000000000000000000000000000073.9999999999 +74,900000000000000000000000000000000000000000000000000000000000000074.9999999999 +75,900000000000000000000000000000000000000000000000000000000000000075.9999999999 +76,900000000000000000000000000000000000000000000000000000000000000076.9999999999 +77,900000000000000000000000000000000000000000000000000000000000000077.9999999999 +78,900000000000000000000000000000000000000000000000000000000000000078.9999999999 +79,900000000000000000000000000000000000000000000000000000000000000079.9999999999 +80,900000000000000000000000000000000000000000000000000000000000000080.9999999999 +81,900000000000000000000000000000000000000000000000000000000000000081.9999999999 +82,900000000000000000000000000000000000000000000000000000000000000082.9999999999 +83,900000000000000000000000000000000000000000000000000000000000000083.9999999999 +84,900000000000000000000000000000000000000000000000000000000000000084.9999999999 +85,900000000000000000000000000000000000000000000000000000000000000085.9999999999 +86,900000000000000000000000000000000000000000000000000000000000000086.9999999999 +87,900000000000000000000000000000000000000000000000000000000000000087.9999999999 +88,900000000000000000000000000000000000000000000000000000000000000088.9999999999 +89,900000000000000000000000000000000000000000000000000000000000000089.9999999999 +90,900000000000000000000000000000000000000000000000000000000000000090.9999999999 +91,900000000000000000000000000000000000000000000000000000000000000091.9999999999 +92,900000000000000000000000000000000000000000000000000000000000000092.9999999999 +93,900000000000000000000000000000000000000000000000000000000000000093.9999999999 +94,900000000000000000000000000000000000000000000000000000000000000094.9999999999 +95,900000000000000000000000000000000000000000000000000000000000000095.9999999999 +96,900000000000000000000000000000000000000000000000000000000000000096.9999999999 +97,900000000000000000000000000000000000000000000000000000000000000097.9999999999 +98,900000000000000000000000000000000000000000000000000000000000000098.9999999999 +99,900000000000000000000000000000000000000000000000000000000000000099.9999999999 +100,900000000000000000000000000000000000000000000000000000000000000100.9999999999 +101,900000000000000000000000000000000000000000000000000000000000000101.9999999999 +102,900000000000000000000000000000000000000000000000000000000000000102.9999999999 +103,900000000000000000000000000000000000000000000000000000000000000103.9999999999 +104,900000000000000000000000000000000000000000000000000000000000000104.9999999999 +105,900000000000000000000000000000000000000000000000000000000000000105.9999999999 +106,900000000000000000000000000000000000000000000000000000000000000106.9999999999 +107,900000000000000000000000000000000000000000000000000000000000000107.9999999999 +108,900000000000000000000000000000000000000000000000000000000000000108.9999999999 +109,900000000000000000000000000000000000000000000000000000000000000109.9999999999 +110,900000000000000000000000000000000000000000000000000000000000000110.9999999999 +111,900000000000000000000000000000000000000000000000000000000000000111.9999999999 +112,900000000000000000000000000000000000000000000000000000000000000112.9999999999 +113,900000000000000000000000000000000000000000000000000000000000000113.9999999999 +114,900000000000000000000000000000000000000000000000000000000000000114.9999999999 +115,900000000000000000000000000000000000000000000000000000000000000115.9999999999 +116,900000000000000000000000000000000000000000000000000000000000000116.9999999999 +117,900000000000000000000000000000000000000000000000000000000000000117.9999999999 +118,900000000000000000000000000000000000000000000000000000000000000118.9999999999 +119,900000000000000000000000000000000000000000000000000000000000000119.9999999999 +120,900000000000000000000000000000000000000000000000000000000000000120.9999999999 +121,900000000000000000000000000000000000000000000000000000000000000121.9999999999 +122,900000000000000000000000000000000000000000000000000000000000000122.9999999999 +123,900000000000000000000000000000000000000000000000000000000000000123.9999999999 +124,900000000000000000000000000000000000000000000000000000000000000124.9999999999 +125,900000000000000000000000000000000000000000000000000000000000000125.9999999999 +126,900000000000000000000000000000000000000000000000000000000000000126.9999999999 +127,900000000000000000000000000000000000000000000000000000000000000127.9999999999 +128,900000000000000000000000000000000000000000000000000000000000000128.9999999999 +129,900000000000000000000000000000000000000000000000000000000000000129.9999999999 +130,900000000000000000000000000000000000000000000000000000000000000130.9999999999 +131,900000000000000000000000000000000000000000000000000000000000000131.9999999999 +132,900000000000000000000000000000000000000000000000000000000000000132.9999999999 +133,900000000000000000000000000000000000000000000000000000000000000133.9999999999 +134,900000000000000000000000000000000000000000000000000000000000000134.9999999999 +135,900000000000000000000000000000000000000000000000000000000000000135.9999999999 +136,900000000000000000000000000000000000000000000000000000000000000136.9999999999 +137,900000000000000000000000000000000000000000000000000000000000000137.9999999999 +138,900000000000000000000000000000000000000000000000000000000000000138.9999999999 +139,900000000000000000000000000000000000000000000000000000000000000139.9999999999 +140,900000000000000000000000000000000000000000000000000000000000000140.9999999999 +141,900000000000000000000000000000000000000000000000000000000000000141.9999999999 +142,900000000000000000000000000000000000000000000000000000000000000142.9999999999 +143,900000000000000000000000000000000000000000000000000000000000000143.9999999999 +144,900000000000000000000000000000000000000000000000000000000000000144.9999999999 +145,900000000000000000000000000000000000000000000000000000000000000145.9999999999 +146,900000000000000000000000000000000000000000000000000000000000000146.9999999999 +147,900000000000000000000000000000000000000000000000000000000000000147.9999999999 +148,900000000000000000000000000000000000000000000000000000000000000148.9999999999 +149,900000000000000000000000000000000000000000000000000000000000000149.9999999999 +150,900000000000000000000000000000000000000000000000000000000000000150.9999999999 +151,900000000000000000000000000000000000000000000000000000000000000151.9999999999 +152,900000000000000000000000000000000000000000000000000000000000000152.9999999999 +153,900000000000000000000000000000000000000000000000000000000000000153.9999999999 +154,900000000000000000000000000000000000000000000000000000000000000154.9999999999 +155,900000000000000000000000000000000000000000000000000000000000000155.9999999999 +156,900000000000000000000000000000000000000000000000000000000000000156.9999999999 +157,900000000000000000000000000000000000000000000000000000000000000157.9999999999 +158,900000000000000000000000000000000000000000000000000000000000000158.9999999999 +159,900000000000000000000000000000000000000000000000000000000000000159.9999999999 +160,900000000000000000000000000000000000000000000000000000000000000160.9999999999 +161,900000000000000000000000000000000000000000000000000000000000000161.9999999999 +162,900000000000000000000000000000000000000000000000000000000000000162.9999999999 +163,900000000000000000000000000000000000000000000000000000000000000163.9999999999 +164,900000000000000000000000000000000000000000000000000000000000000164.9999999999 +165,900000000000000000000000000000000000000000000000000000000000000165.9999999999 +166,900000000000000000000000000000000000000000000000000000000000000166.9999999999 +167,900000000000000000000000000000000000000000000000000000000000000167.9999999999 +168,900000000000000000000000000000000000000000000000000000000000000168.9999999999 +169,900000000000000000000000000000000000000000000000000000000000000169.9999999999 +170,900000000000000000000000000000000000000000000000000000000000000170.9999999999 +171,900000000000000000000000000000000000000000000000000000000000000171.9999999999 +172,900000000000000000000000000000000000000000000000000000000000000172.9999999999 +173,900000000000000000000000000000000000000000000000000000000000000173.9999999999 +174,900000000000000000000000000000000000000000000000000000000000000174.9999999999 +175,900000000000000000000000000000000000000000000000000000000000000175.9999999999 +176,900000000000000000000000000000000000000000000000000000000000000176.9999999999 +177,900000000000000000000000000000000000000000000000000000000000000177.9999999999 +178,900000000000000000000000000000000000000000000000000000000000000178.9999999999 +179,900000000000000000000000000000000000000000000000000000000000000179.9999999999 +180,900000000000000000000000000000000000000000000000000000000000000180.9999999999 +181,900000000000000000000000000000000000000000000000000000000000000181.9999999999 +182,900000000000000000000000000000000000000000000000000000000000000182.9999999999 +183,900000000000000000000000000000000000000000000000000000000000000183.9999999999 +184,900000000000000000000000000000000000000000000000000000000000000184.9999999999 +185,900000000000000000000000000000000000000000000000000000000000000185.9999999999 +186,900000000000000000000000000000000000000000000000000000000000000186.9999999999 +187,900000000000000000000000000000000000000000000000000000000000000187.9999999999 +188,900000000000000000000000000000000000000000000000000000000000000188.9999999999 +189,900000000000000000000000000000000000000000000000000000000000000189.9999999999 +190,900000000000000000000000000000000000000000000000000000000000000190.9999999999 +191,900000000000000000000000000000000000000000000000000000000000000191.9999999999 +192,900000000000000000000000000000000000000000000000000000000000000192.9999999999 +193,900000000000000000000000000000000000000000000000000000000000000193.9999999999 +194,900000000000000000000000000000000000000000000000000000000000000194.9999999999 +195,900000000000000000000000000000000000000000000000000000000000000195.9999999999 +196,900000000000000000000000000000000000000000000000000000000000000196.9999999999 +197,900000000000000000000000000000000000000000000000000000000000000197.9999999999 +198,900000000000000000000000000000000000000000000000000000000000000198.9999999999 +199,900000000000000000000000000000000000000000000000000000000000000199.9999999999 +200,900000000000000000000000000000000000000000000000000000000000000200.9999999999 +201,900000000000000000000000000000000000000000000000000000000000000201.9999999999 +202,900000000000000000000000000000000000000000000000000000000000000202.9999999999 +203,900000000000000000000000000000000000000000000000000000000000000203.9999999999 +204,900000000000000000000000000000000000000000000000000000000000000204.9999999999 +205,900000000000000000000000000000000000000000000000000000000000000205.9999999999 +206,900000000000000000000000000000000000000000000000000000000000000206.9999999999 +207,900000000000000000000000000000000000000000000000000000000000000207.9999999999 +208,900000000000000000000000000000000000000000000000000000000000000208.9999999999 +209,900000000000000000000000000000000000000000000000000000000000000209.9999999999 +210,900000000000000000000000000000000000000000000000000000000000000210.9999999999 +211,900000000000000000000000000000000000000000000000000000000000000211.9999999999 +212,900000000000000000000000000000000000000000000000000000000000000212.9999999999 +213,900000000000000000000000000000000000000000000000000000000000000213.9999999999 +214,900000000000000000000000000000000000000000000000000000000000000214.9999999999 +215,900000000000000000000000000000000000000000000000000000000000000215.9999999999 +216,900000000000000000000000000000000000000000000000000000000000000216.9999999999 +217,900000000000000000000000000000000000000000000000000000000000000217.9999999999 +218,900000000000000000000000000000000000000000000000000000000000000218.9999999999 +219,900000000000000000000000000000000000000000000000000000000000000219.9999999999 +220,900000000000000000000000000000000000000000000000000000000000000220.9999999999 +221,900000000000000000000000000000000000000000000000000000000000000221.9999999999 +222,900000000000000000000000000000000000000000000000000000000000000222.9999999999 +223,900000000000000000000000000000000000000000000000000000000000000223.9999999999 +224,900000000000000000000000000000000000000000000000000000000000000224.9999999999 +225,900000000000000000000000000000000000000000000000000000000000000225.9999999999 +226,900000000000000000000000000000000000000000000000000000000000000226.9999999999 +227,900000000000000000000000000000000000000000000000000000000000000227.9999999999 +228,900000000000000000000000000000000000000000000000000000000000000228.9999999999 +229,900000000000000000000000000000000000000000000000000000000000000229.9999999999 +230,900000000000000000000000000000000000000000000000000000000000000230.9999999999 +231,900000000000000000000000000000000000000000000000000000000000000231.9999999999 +232,900000000000000000000000000000000000000000000000000000000000000232.9999999999 +233,900000000000000000000000000000000000000000000000000000000000000233.9999999999 +234,900000000000000000000000000000000000000000000000000000000000000234.9999999999 +235,900000000000000000000000000000000000000000000000000000000000000235.9999999999 +236,900000000000000000000000000000000000000000000000000000000000000236.9999999999 +237,900000000000000000000000000000000000000000000000000000000000000237.9999999999 +238,900000000000000000000000000000000000000000000000000000000000000238.9999999999 +239,900000000000000000000000000000000000000000000000000000000000000239.9999999999 +240,900000000000000000000000000000000000000000000000000000000000000240.9999999999 +241,900000000000000000000000000000000000000000000000000000000000000241.9999999999 +242,900000000000000000000000000000000000000000000000000000000000000242.9999999999 +243,900000000000000000000000000000000000000000000000000000000000000243.9999999999 +244,900000000000000000000000000000000000000000000000000000000000000244.9999999999 +245,900000000000000000000000000000000000000000000000000000000000000245.9999999999 +246,900000000000000000000000000000000000000000000000000000000000000246.9999999999 +247,900000000000000000000000000000000000000000000000000000000000000247.9999999999 +248,900000000000000000000000000000000000000000000000000000000000000248.9999999999 +249,900000000000000000000000000000000000000000000000000000000000000249.9999999999 +250,900000000000000000000000000000000000000000000000000000000000000250.9999999999 +251,900000000000000000000000000000000000000000000000000000000000000251.9999999999 +252,900000000000000000000000000000000000000000000000000000000000000252.9999999999 +253,900000000000000000000000000000000000000000000000000000000000000253.9999999999 +254,900000000000000000000000000000000000000000000000000000000000000254.9999999999 +255,900000000000000000000000000000000000000000000000000000000000000255.9999999999 +256,900000000000000000000000000000000000000000000000000000000000000256.9999999999 +257,900000000000000000000000000000000000000000000000000000000000000257.9999999999 +258,900000000000000000000000000000000000000000000000000000000000000258.9999999999 +259,900000000000000000000000000000000000000000000000000000000000000259.9999999999 +260,900000000000000000000000000000000000000000000000000000000000000260.9999999999 +261,900000000000000000000000000000000000000000000000000000000000000261.9999999999 +262,900000000000000000000000000000000000000000000000000000000000000262.9999999999 +263,900000000000000000000000000000000000000000000000000000000000000263.9999999999 +264,900000000000000000000000000000000000000000000000000000000000000264.9999999999 +265,900000000000000000000000000000000000000000000000000000000000000265.9999999999 +266,900000000000000000000000000000000000000000000000000000000000000266.9999999999 +267,900000000000000000000000000000000000000000000000000000000000000267.9999999999 +268,900000000000000000000000000000000000000000000000000000000000000268.9999999999 +269,900000000000000000000000000000000000000000000000000000000000000269.9999999999 +270,900000000000000000000000000000000000000000000000000000000000000270.9999999999 +271,900000000000000000000000000000000000000000000000000000000000000271.9999999999 +272,900000000000000000000000000000000000000000000000000000000000000272.9999999999 +273,900000000000000000000000000000000000000000000000000000000000000273.9999999999 +274,900000000000000000000000000000000000000000000000000000000000000274.9999999999 +275,900000000000000000000000000000000000000000000000000000000000000275.9999999999 +276,900000000000000000000000000000000000000000000000000000000000000276.9999999999 +277,900000000000000000000000000000000000000000000000000000000000000277.9999999999 +278,900000000000000000000000000000000000000000000000000000000000000278.9999999999 +279,900000000000000000000000000000000000000000000000000000000000000279.9999999999 +280,900000000000000000000000000000000000000000000000000000000000000280.9999999999 +281,900000000000000000000000000000000000000000000000000000000000000281.9999999999 +282,900000000000000000000000000000000000000000000000000000000000000282.9999999999 +283,900000000000000000000000000000000000000000000000000000000000000283.9999999999 +284,900000000000000000000000000000000000000000000000000000000000000284.9999999999 +285,900000000000000000000000000000000000000000000000000000000000000285.9999999999 +286,900000000000000000000000000000000000000000000000000000000000000286.9999999999 +287,900000000000000000000000000000000000000000000000000000000000000287.9999999999 +288,900000000000000000000000000000000000000000000000000000000000000288.9999999999 +289,900000000000000000000000000000000000000000000000000000000000000289.9999999999 +290,900000000000000000000000000000000000000000000000000000000000000290.9999999999 +291,900000000000000000000000000000000000000000000000000000000000000291.9999999999 +292,900000000000000000000000000000000000000000000000000000000000000292.9999999999 +293,900000000000000000000000000000000000000000000000000000000000000293.9999999999 +294,900000000000000000000000000000000000000000000000000000000000000294.9999999999 +295,900000000000000000000000000000000000000000000000000000000000000295.9999999999 +296,900000000000000000000000000000000000000000000000000000000000000296.9999999999 +297,900000000000000000000000000000000000000000000000000000000000000297.9999999999 +298,900000000000000000000000000000000000000000000000000000000000000298.9999999999 +299,900000000000000000000000000000000000000000000000000000000000000299.9999999999 +300,900000000000000000000000000000000000000000000000000000000000000300.9999999999 +301,900000000000000000000000000000000000000000000000000000000000000301.9999999999 +302,900000000000000000000000000000000000000000000000000000000000000302.9999999999 +303,900000000000000000000000000000000000000000000000000000000000000303.9999999999 +304,900000000000000000000000000000000000000000000000000000000000000304.9999999999 +305,900000000000000000000000000000000000000000000000000000000000000305.9999999999 +306,900000000000000000000000000000000000000000000000000000000000000306.9999999999 +307,900000000000000000000000000000000000000000000000000000000000000307.9999999999 +308,900000000000000000000000000000000000000000000000000000000000000308.9999999999 +309,900000000000000000000000000000000000000000000000000000000000000309.9999999999 +310,900000000000000000000000000000000000000000000000000000000000000310.9999999999 +311,900000000000000000000000000000000000000000000000000000000000000311.9999999999 +312,900000000000000000000000000000000000000000000000000000000000000312.9999999999 +313,900000000000000000000000000000000000000000000000000000000000000313.9999999999 +314,900000000000000000000000000000000000000000000000000000000000000314.9999999999 +315,900000000000000000000000000000000000000000000000000000000000000315.9999999999 +316,900000000000000000000000000000000000000000000000000000000000000316.9999999999 +317,900000000000000000000000000000000000000000000000000000000000000317.9999999999 +318,900000000000000000000000000000000000000000000000000000000000000318.9999999999 +319,900000000000000000000000000000000000000000000000000000000000000319.9999999999 +320,900000000000000000000000000000000000000000000000000000000000000320.9999999999 +321,900000000000000000000000000000000000000000000000000000000000000321.9999999999 +322,900000000000000000000000000000000000000000000000000000000000000322.9999999999 +323,900000000000000000000000000000000000000000000000000000000000000323.9999999999 +324,900000000000000000000000000000000000000000000000000000000000000324.9999999999 +325,900000000000000000000000000000000000000000000000000000000000000325.9999999999 +326,900000000000000000000000000000000000000000000000000000000000000326.9999999999 +327,900000000000000000000000000000000000000000000000000000000000000327.9999999999 +328,900000000000000000000000000000000000000000000000000000000000000328.9999999999 +329,900000000000000000000000000000000000000000000000000000000000000329.9999999999 +330,900000000000000000000000000000000000000000000000000000000000000330.9999999999 +331,900000000000000000000000000000000000000000000000000000000000000331.9999999999 +332,900000000000000000000000000000000000000000000000000000000000000332.9999999999 +333,900000000000000000000000000000000000000000000000000000000000000333.9999999999 +334,900000000000000000000000000000000000000000000000000000000000000334.9999999999 +335,900000000000000000000000000000000000000000000000000000000000000335.9999999999 +336,900000000000000000000000000000000000000000000000000000000000000336.9999999999 +337,900000000000000000000000000000000000000000000000000000000000000337.9999999999 +338,900000000000000000000000000000000000000000000000000000000000000338.9999999999 +339,900000000000000000000000000000000000000000000000000000000000000339.9999999999 +340,900000000000000000000000000000000000000000000000000000000000000340.9999999999 +341,900000000000000000000000000000000000000000000000000000000000000341.9999999999 +342,900000000000000000000000000000000000000000000000000000000000000342.9999999999 +343,900000000000000000000000000000000000000000000000000000000000000343.9999999999 +344,900000000000000000000000000000000000000000000000000000000000000344.9999999999 +345,900000000000000000000000000000000000000000000000000000000000000345.9999999999 +346,900000000000000000000000000000000000000000000000000000000000000346.9999999999 +347,900000000000000000000000000000000000000000000000000000000000000347.9999999999 +348,900000000000000000000000000000000000000000000000000000000000000348.9999999999 +349,900000000000000000000000000000000000000000000000000000000000000349.9999999999 +350,900000000000000000000000000000000000000000000000000000000000000350.9999999999 +351,900000000000000000000000000000000000000000000000000000000000000351.9999999999 +352,900000000000000000000000000000000000000000000000000000000000000352.9999999999 +353,900000000000000000000000000000000000000000000000000000000000000353.9999999999 +354,900000000000000000000000000000000000000000000000000000000000000354.9999999999 +355,900000000000000000000000000000000000000000000000000000000000000355.9999999999 +356,900000000000000000000000000000000000000000000000000000000000000356.9999999999 +357,900000000000000000000000000000000000000000000000000000000000000357.9999999999 +358,900000000000000000000000000000000000000000000000000000000000000358.9999999999 +359,900000000000000000000000000000000000000000000000000000000000000359.9999999999 +360,900000000000000000000000000000000000000000000000000000000000000360.9999999999 +361,900000000000000000000000000000000000000000000000000000000000000361.9999999999 +362,900000000000000000000000000000000000000000000000000000000000000362.9999999999 +363,900000000000000000000000000000000000000000000000000000000000000363.9999999999 +364,900000000000000000000000000000000000000000000000000000000000000364.9999999999 +365,900000000000000000000000000000000000000000000000000000000000000365.9999999999 +366,900000000000000000000000000000000000000000000000000000000000000366.9999999999 +367,900000000000000000000000000000000000000000000000000000000000000367.9999999999 +368,900000000000000000000000000000000000000000000000000000000000000368.9999999999 +369,900000000000000000000000000000000000000000000000000000000000000369.9999999999 +370,900000000000000000000000000000000000000000000000000000000000000370.9999999999 +371,900000000000000000000000000000000000000000000000000000000000000371.9999999999 +372,900000000000000000000000000000000000000000000000000000000000000372.9999999999 +373,900000000000000000000000000000000000000000000000000000000000000373.9999999999 +374,900000000000000000000000000000000000000000000000000000000000000374.9999999999 +375,900000000000000000000000000000000000000000000000000000000000000375.9999999999 +376,900000000000000000000000000000000000000000000000000000000000000376.9999999999 +377,900000000000000000000000000000000000000000000000000000000000000377.9999999999 +378,900000000000000000000000000000000000000000000000000000000000000378.9999999999 +379,900000000000000000000000000000000000000000000000000000000000000379.9999999999 +380,900000000000000000000000000000000000000000000000000000000000000380.9999999999 +381,900000000000000000000000000000000000000000000000000000000000000381.9999999999 +382,900000000000000000000000000000000000000000000000000000000000000382.9999999999 +383,900000000000000000000000000000000000000000000000000000000000000383.9999999999 +384,900000000000000000000000000000000000000000000000000000000000000384.9999999999 +385,900000000000000000000000000000000000000000000000000000000000000385.9999999999 +386,900000000000000000000000000000000000000000000000000000000000000386.9999999999 +387,900000000000000000000000000000000000000000000000000000000000000387.9999999999 +388,900000000000000000000000000000000000000000000000000000000000000388.9999999999 +389,900000000000000000000000000000000000000000000000000000000000000389.9999999999 +390,900000000000000000000000000000000000000000000000000000000000000390.9999999999 +391,900000000000000000000000000000000000000000000000000000000000000391.9999999999 +392,900000000000000000000000000000000000000000000000000000000000000392.9999999999 +393,900000000000000000000000000000000000000000000000000000000000000393.9999999999 +394,900000000000000000000000000000000000000000000000000000000000000394.9999999999 +395,900000000000000000000000000000000000000000000000000000000000000395.9999999999 +396,900000000000000000000000000000000000000000000000000000000000000396.9999999999 +397,900000000000000000000000000000000000000000000000000000000000000397.9999999999 +398,900000000000000000000000000000000000000000000000000000000000000398.9999999999 +399,900000000000000000000000000000000000000000000000000000000000000399.9999999999 +400,900000000000000000000000000000000000000000000000000000000000000400.9999999999 +401,900000000000000000000000000000000000000000000000000000000000000401.9999999999 +402,900000000000000000000000000000000000000000000000000000000000000402.9999999999 +403,900000000000000000000000000000000000000000000000000000000000000403.9999999999 +404,900000000000000000000000000000000000000000000000000000000000000404.9999999999 +405,900000000000000000000000000000000000000000000000000000000000000405.9999999999 +406,900000000000000000000000000000000000000000000000000000000000000406.9999999999 +407,900000000000000000000000000000000000000000000000000000000000000407.9999999999 +408,900000000000000000000000000000000000000000000000000000000000000408.9999999999 +409,900000000000000000000000000000000000000000000000000000000000000409.9999999999 +410,900000000000000000000000000000000000000000000000000000000000000410.9999999999 +411,900000000000000000000000000000000000000000000000000000000000000411.9999999999 +412,900000000000000000000000000000000000000000000000000000000000000412.9999999999 +413,900000000000000000000000000000000000000000000000000000000000000413.9999999999 +414,900000000000000000000000000000000000000000000000000000000000000414.9999999999 +415,900000000000000000000000000000000000000000000000000000000000000415.9999999999 +416,900000000000000000000000000000000000000000000000000000000000000416.9999999999 +417,900000000000000000000000000000000000000000000000000000000000000417.9999999999 +418,900000000000000000000000000000000000000000000000000000000000000418.9999999999 +419,900000000000000000000000000000000000000000000000000000000000000419.9999999999 +420,900000000000000000000000000000000000000000000000000000000000000420.9999999999 +421,900000000000000000000000000000000000000000000000000000000000000421.9999999999 +422,900000000000000000000000000000000000000000000000000000000000000422.9999999999 +423,900000000000000000000000000000000000000000000000000000000000000423.9999999999 +424,900000000000000000000000000000000000000000000000000000000000000424.9999999999 +425,900000000000000000000000000000000000000000000000000000000000000425.9999999999 +426,900000000000000000000000000000000000000000000000000000000000000426.9999999999 +427,900000000000000000000000000000000000000000000000000000000000000427.9999999999 +428,900000000000000000000000000000000000000000000000000000000000000428.9999999999 +429,900000000000000000000000000000000000000000000000000000000000000429.9999999999 +430,900000000000000000000000000000000000000000000000000000000000000430.9999999999 +431,900000000000000000000000000000000000000000000000000000000000000431.9999999999 +432,900000000000000000000000000000000000000000000000000000000000000432.9999999999 +433,900000000000000000000000000000000000000000000000000000000000000433.9999999999 +434,900000000000000000000000000000000000000000000000000000000000000434.9999999999 +435,900000000000000000000000000000000000000000000000000000000000000435.9999999999 +436,900000000000000000000000000000000000000000000000000000000000000436.9999999999 +437,900000000000000000000000000000000000000000000000000000000000000437.9999999999 +438,900000000000000000000000000000000000000000000000000000000000000438.9999999999 +439,900000000000000000000000000000000000000000000000000000000000000439.9999999999 +440,900000000000000000000000000000000000000000000000000000000000000440.9999999999 +441,900000000000000000000000000000000000000000000000000000000000000441.9999999999 +442,900000000000000000000000000000000000000000000000000000000000000442.9999999999 +443,900000000000000000000000000000000000000000000000000000000000000443.9999999999 +444,900000000000000000000000000000000000000000000000000000000000000444.9999999999 +445,900000000000000000000000000000000000000000000000000000000000000445.9999999999 +446,900000000000000000000000000000000000000000000000000000000000000446.9999999999 +447,900000000000000000000000000000000000000000000000000000000000000447.9999999999 +448,900000000000000000000000000000000000000000000000000000000000000448.9999999999 +449,900000000000000000000000000000000000000000000000000000000000000449.9999999999 +450,900000000000000000000000000000000000000000000000000000000000000450.9999999999 +451,900000000000000000000000000000000000000000000000000000000000000451.9999999999 +452,900000000000000000000000000000000000000000000000000000000000000452.9999999999 +453,900000000000000000000000000000000000000000000000000000000000000453.9999999999 +454,900000000000000000000000000000000000000000000000000000000000000454.9999999999 +455,900000000000000000000000000000000000000000000000000000000000000455.9999999999 +456,900000000000000000000000000000000000000000000000000000000000000456.9999999999 +457,900000000000000000000000000000000000000000000000000000000000000457.9999999999 +458,900000000000000000000000000000000000000000000000000000000000000458.9999999999 +459,900000000000000000000000000000000000000000000000000000000000000459.9999999999 +460,900000000000000000000000000000000000000000000000000000000000000460.9999999999 +461,900000000000000000000000000000000000000000000000000000000000000461.9999999999 +462,900000000000000000000000000000000000000000000000000000000000000462.9999999999 +463,900000000000000000000000000000000000000000000000000000000000000463.9999999999 +464,900000000000000000000000000000000000000000000000000000000000000464.9999999999 +465,900000000000000000000000000000000000000000000000000000000000000465.9999999999 +466,900000000000000000000000000000000000000000000000000000000000000466.9999999999 +467,900000000000000000000000000000000000000000000000000000000000000467.9999999999 +468,900000000000000000000000000000000000000000000000000000000000000468.9999999999 +469,900000000000000000000000000000000000000000000000000000000000000469.9999999999 +470,900000000000000000000000000000000000000000000000000000000000000470.9999999999 +471,900000000000000000000000000000000000000000000000000000000000000471.9999999999 +472,900000000000000000000000000000000000000000000000000000000000000472.9999999999 +473,900000000000000000000000000000000000000000000000000000000000000473.9999999999 +474,900000000000000000000000000000000000000000000000000000000000000474.9999999999 +475,900000000000000000000000000000000000000000000000000000000000000475.9999999999 +476,900000000000000000000000000000000000000000000000000000000000000476.9999999999 +477,900000000000000000000000000000000000000000000000000000000000000477.9999999999 +478,900000000000000000000000000000000000000000000000000000000000000478.9999999999 +479,900000000000000000000000000000000000000000000000000000000000000479.9999999999 +480,900000000000000000000000000000000000000000000000000000000000000480.9999999999 +481,900000000000000000000000000000000000000000000000000000000000000481.9999999999 +482,900000000000000000000000000000000000000000000000000000000000000482.9999999999 +483,900000000000000000000000000000000000000000000000000000000000000483.9999999999 +484,900000000000000000000000000000000000000000000000000000000000000484.9999999999 +485,900000000000000000000000000000000000000000000000000000000000000485.9999999999 +486,900000000000000000000000000000000000000000000000000000000000000486.9999999999 +487,900000000000000000000000000000000000000000000000000000000000000487.9999999999 +488,900000000000000000000000000000000000000000000000000000000000000488.9999999999 +489,900000000000000000000000000000000000000000000000000000000000000489.9999999999 +490,900000000000000000000000000000000000000000000000000000000000000490.9999999999 +491,900000000000000000000000000000000000000000000000000000000000000491.9999999999 +492,900000000000000000000000000000000000000000000000000000000000000492.9999999999 +493,900000000000000000000000000000000000000000000000000000000000000493.9999999999 +494,900000000000000000000000000000000000000000000000000000000000000494.9999999999 +495,900000000000000000000000000000000000000000000000000000000000000495.9999999999 +496,900000000000000000000000000000000000000000000000000000000000000496.9999999999 +497,900000000000000000000000000000000000000000000000000000000000000497.9999999999 +498,900000000000000000000000000000000000000000000000000000000000000498.9999999999 +499,900000000000000000000000000000000000000000000000000000000000000499.9999999999 +500,900000000000000000000000000000000000000000000000000000000000000500.9999999999 +501,900000000000000000000000000000000000000000000000000000000000000501.9999999999 +502,900000000000000000000000000000000000000000000000000000000000000502.9999999999 +503,900000000000000000000000000000000000000000000000000000000000000503.9999999999 +504,900000000000000000000000000000000000000000000000000000000000000504.9999999999 +505,900000000000000000000000000000000000000000000000000000000000000505.9999999999 +506,900000000000000000000000000000000000000000000000000000000000000506.9999999999 +507,900000000000000000000000000000000000000000000000000000000000000507.9999999999 +508,900000000000000000000000000000000000000000000000000000000000000508.9999999999 +509,900000000000000000000000000000000000000000000000000000000000000509.9999999999 +510,900000000000000000000000000000000000000000000000000000000000000510.9999999999 +511,900000000000000000000000000000000000000000000000000000000000000511.9999999999 +512,900000000000000000000000000000000000000000000000000000000000000512.9999999999 +513,900000000000000000000000000000000000000000000000000000000000000513.9999999999 +514,900000000000000000000000000000000000000000000000000000000000000514.9999999999 +515,900000000000000000000000000000000000000000000000000000000000000515.9999999999 +516,900000000000000000000000000000000000000000000000000000000000000516.9999999999 +517,900000000000000000000000000000000000000000000000000000000000000517.9999999999 +518,900000000000000000000000000000000000000000000000000000000000000518.9999999999 +519,900000000000000000000000000000000000000000000000000000000000000519.9999999999 +520,900000000000000000000000000000000000000000000000000000000000000520.9999999999 +521,900000000000000000000000000000000000000000000000000000000000000521.9999999999 +522,900000000000000000000000000000000000000000000000000000000000000522.9999999999 +523,900000000000000000000000000000000000000000000000000000000000000523.9999999999 +524,900000000000000000000000000000000000000000000000000000000000000524.9999999999 +525,900000000000000000000000000000000000000000000000000000000000000525.9999999999 +526,900000000000000000000000000000000000000000000000000000000000000526.9999999999 +527,900000000000000000000000000000000000000000000000000000000000000527.9999999999 +528,900000000000000000000000000000000000000000000000000000000000000528.9999999999 +529,900000000000000000000000000000000000000000000000000000000000000529.9999999999 +530,900000000000000000000000000000000000000000000000000000000000000530.9999999999 +531,900000000000000000000000000000000000000000000000000000000000000531.9999999999 +532,900000000000000000000000000000000000000000000000000000000000000532.9999999999 +533,900000000000000000000000000000000000000000000000000000000000000533.9999999999 +534,900000000000000000000000000000000000000000000000000000000000000534.9999999999 +535,900000000000000000000000000000000000000000000000000000000000000535.9999999999 +536,900000000000000000000000000000000000000000000000000000000000000536.9999999999 +537,900000000000000000000000000000000000000000000000000000000000000537.9999999999 +538,900000000000000000000000000000000000000000000000000000000000000538.9999999999 +539,900000000000000000000000000000000000000000000000000000000000000539.9999999999 +540,900000000000000000000000000000000000000000000000000000000000000540.9999999999 +541,900000000000000000000000000000000000000000000000000000000000000541.9999999999 +542,900000000000000000000000000000000000000000000000000000000000000542.9999999999 +543,900000000000000000000000000000000000000000000000000000000000000543.9999999999 +544,900000000000000000000000000000000000000000000000000000000000000544.9999999999 +545,900000000000000000000000000000000000000000000000000000000000000545.9999999999 +546,900000000000000000000000000000000000000000000000000000000000000546.9999999999 +547,900000000000000000000000000000000000000000000000000000000000000547.9999999999 +548,900000000000000000000000000000000000000000000000000000000000000548.9999999999 +549,900000000000000000000000000000000000000000000000000000000000000549.9999999999 +550,900000000000000000000000000000000000000000000000000000000000000550.9999999999 +551,900000000000000000000000000000000000000000000000000000000000000551.9999999999 +552,900000000000000000000000000000000000000000000000000000000000000552.9999999999 +553,900000000000000000000000000000000000000000000000000000000000000553.9999999999 +554,900000000000000000000000000000000000000000000000000000000000000554.9999999999 +555,900000000000000000000000000000000000000000000000000000000000000555.9999999999 +556,900000000000000000000000000000000000000000000000000000000000000556.9999999999 +557,900000000000000000000000000000000000000000000000000000000000000557.9999999999 +558,900000000000000000000000000000000000000000000000000000000000000558.9999999999 +559,900000000000000000000000000000000000000000000000000000000000000559.9999999999 +560,900000000000000000000000000000000000000000000000000000000000000560.9999999999 +561,900000000000000000000000000000000000000000000000000000000000000561.9999999999 +562,900000000000000000000000000000000000000000000000000000000000000562.9999999999 +563,900000000000000000000000000000000000000000000000000000000000000563.9999999999 +564,900000000000000000000000000000000000000000000000000000000000000564.9999999999 +565,900000000000000000000000000000000000000000000000000000000000000565.9999999999 +566,900000000000000000000000000000000000000000000000000000000000000566.9999999999 +567,900000000000000000000000000000000000000000000000000000000000000567.9999999999 +568,900000000000000000000000000000000000000000000000000000000000000568.9999999999 +569,900000000000000000000000000000000000000000000000000000000000000569.9999999999 +570,900000000000000000000000000000000000000000000000000000000000000570.9999999999 +571,900000000000000000000000000000000000000000000000000000000000000571.9999999999 +572,900000000000000000000000000000000000000000000000000000000000000572.9999999999 +573,900000000000000000000000000000000000000000000000000000000000000573.9999999999 +574,900000000000000000000000000000000000000000000000000000000000000574.9999999999 +575,900000000000000000000000000000000000000000000000000000000000000575.9999999999 +576,900000000000000000000000000000000000000000000000000000000000000576.9999999999 +577,900000000000000000000000000000000000000000000000000000000000000577.9999999999 +578,900000000000000000000000000000000000000000000000000000000000000578.9999999999 +579,900000000000000000000000000000000000000000000000000000000000000579.9999999999 +580,900000000000000000000000000000000000000000000000000000000000000580.9999999999 +581,900000000000000000000000000000000000000000000000000000000000000581.9999999999 +582,900000000000000000000000000000000000000000000000000000000000000582.9999999999 +583,900000000000000000000000000000000000000000000000000000000000000583.9999999999 +584,900000000000000000000000000000000000000000000000000000000000000584.9999999999 +585,900000000000000000000000000000000000000000000000000000000000000585.9999999999 +586,900000000000000000000000000000000000000000000000000000000000000586.9999999999 +587,900000000000000000000000000000000000000000000000000000000000000587.9999999999 +588,900000000000000000000000000000000000000000000000000000000000000588.9999999999 +589,900000000000000000000000000000000000000000000000000000000000000589.9999999999 +590,900000000000000000000000000000000000000000000000000000000000000590.9999999999 +591,900000000000000000000000000000000000000000000000000000000000000591.9999999999 +592,900000000000000000000000000000000000000000000000000000000000000592.9999999999 +593,900000000000000000000000000000000000000000000000000000000000000593.9999999999 +594,900000000000000000000000000000000000000000000000000000000000000594.9999999999 +595,900000000000000000000000000000000000000000000000000000000000000595.9999999999 +596,900000000000000000000000000000000000000000000000000000000000000596.9999999999 +597,900000000000000000000000000000000000000000000000000000000000000597.9999999999 +598,900000000000000000000000000000000000000000000000000000000000000598.9999999999 +599,900000000000000000000000000000000000000000000000000000000000000599.9999999999 +600,900000000000000000000000000000000000000000000000000000000000000600.9999999999 +601,900000000000000000000000000000000000000000000000000000000000000601.9999999999 +602,900000000000000000000000000000000000000000000000000000000000000602.9999999999 +603,900000000000000000000000000000000000000000000000000000000000000603.9999999999 +604,900000000000000000000000000000000000000000000000000000000000000604.9999999999 +605,900000000000000000000000000000000000000000000000000000000000000605.9999999999 +606,900000000000000000000000000000000000000000000000000000000000000606.9999999999 +607,900000000000000000000000000000000000000000000000000000000000000607.9999999999 +608,900000000000000000000000000000000000000000000000000000000000000608.9999999999 +609,900000000000000000000000000000000000000000000000000000000000000609.9999999999 +610,900000000000000000000000000000000000000000000000000000000000000610.9999999999 +611,900000000000000000000000000000000000000000000000000000000000000611.9999999999 +612,900000000000000000000000000000000000000000000000000000000000000612.9999999999 +613,900000000000000000000000000000000000000000000000000000000000000613.9999999999 +614,900000000000000000000000000000000000000000000000000000000000000614.9999999999 +615,900000000000000000000000000000000000000000000000000000000000000615.9999999999 +616,900000000000000000000000000000000000000000000000000000000000000616.9999999999 +617,900000000000000000000000000000000000000000000000000000000000000617.9999999999 +618,900000000000000000000000000000000000000000000000000000000000000618.9999999999 +619,900000000000000000000000000000000000000000000000000000000000000619.9999999999 +620,900000000000000000000000000000000000000000000000000000000000000620.9999999999 +621,900000000000000000000000000000000000000000000000000000000000000621.9999999999 +622,900000000000000000000000000000000000000000000000000000000000000622.9999999999 +623,900000000000000000000000000000000000000000000000000000000000000623.9999999999 +624,900000000000000000000000000000000000000000000000000000000000000624.9999999999 +625,900000000000000000000000000000000000000000000000000000000000000625.9999999999 +626,900000000000000000000000000000000000000000000000000000000000000626.9999999999 +627,900000000000000000000000000000000000000000000000000000000000000627.9999999999 +628,900000000000000000000000000000000000000000000000000000000000000628.9999999999 +629,900000000000000000000000000000000000000000000000000000000000000629.9999999999 +630,900000000000000000000000000000000000000000000000000000000000000630.9999999999 +631,900000000000000000000000000000000000000000000000000000000000000631.9999999999 +632,900000000000000000000000000000000000000000000000000000000000000632.9999999999 +633,900000000000000000000000000000000000000000000000000000000000000633.9999999999 +634,900000000000000000000000000000000000000000000000000000000000000634.9999999999 +635,900000000000000000000000000000000000000000000000000000000000000635.9999999999 +636,900000000000000000000000000000000000000000000000000000000000000636.9999999999 +637,900000000000000000000000000000000000000000000000000000000000000637.9999999999 +638,900000000000000000000000000000000000000000000000000000000000000638.9999999999 +639,900000000000000000000000000000000000000000000000000000000000000639.9999999999 +640,900000000000000000000000000000000000000000000000000000000000000640.9999999999 +641,900000000000000000000000000000000000000000000000000000000000000641.9999999999 +642,900000000000000000000000000000000000000000000000000000000000000642.9999999999 +643,900000000000000000000000000000000000000000000000000000000000000643.9999999999 +644,900000000000000000000000000000000000000000000000000000000000000644.9999999999 +645,900000000000000000000000000000000000000000000000000000000000000645.9999999999 +646,900000000000000000000000000000000000000000000000000000000000000646.9999999999 +647,900000000000000000000000000000000000000000000000000000000000000647.9999999999 +648,900000000000000000000000000000000000000000000000000000000000000648.9999999999 +649,900000000000000000000000000000000000000000000000000000000000000649.9999999999 +650,900000000000000000000000000000000000000000000000000000000000000650.9999999999 +651,900000000000000000000000000000000000000000000000000000000000000651.9999999999 +652,900000000000000000000000000000000000000000000000000000000000000652.9999999999 +653,900000000000000000000000000000000000000000000000000000000000000653.9999999999 +654,900000000000000000000000000000000000000000000000000000000000000654.9999999999 +655,900000000000000000000000000000000000000000000000000000000000000655.9999999999 +656,900000000000000000000000000000000000000000000000000000000000000656.9999999999 +657,900000000000000000000000000000000000000000000000000000000000000657.9999999999 +658,900000000000000000000000000000000000000000000000000000000000000658.9999999999 +659,900000000000000000000000000000000000000000000000000000000000000659.9999999999 +660,900000000000000000000000000000000000000000000000000000000000000660.9999999999 +661,900000000000000000000000000000000000000000000000000000000000000661.9999999999 +662,900000000000000000000000000000000000000000000000000000000000000662.9999999999 +663,900000000000000000000000000000000000000000000000000000000000000663.9999999999 +664,900000000000000000000000000000000000000000000000000000000000000664.9999999999 +665,900000000000000000000000000000000000000000000000000000000000000665.9999999999 +666,900000000000000000000000000000000000000000000000000000000000000666.9999999999 +667,900000000000000000000000000000000000000000000000000000000000000667.9999999999 +668,900000000000000000000000000000000000000000000000000000000000000668.9999999999 +669,900000000000000000000000000000000000000000000000000000000000000669.9999999999 +670,900000000000000000000000000000000000000000000000000000000000000670.9999999999 +671,900000000000000000000000000000000000000000000000000000000000000671.9999999999 +672,900000000000000000000000000000000000000000000000000000000000000672.9999999999 +673,900000000000000000000000000000000000000000000000000000000000000673.9999999999 +674,900000000000000000000000000000000000000000000000000000000000000674.9999999999 +675,900000000000000000000000000000000000000000000000000000000000000675.9999999999 +676,900000000000000000000000000000000000000000000000000000000000000676.9999999999 +677,900000000000000000000000000000000000000000000000000000000000000677.9999999999 +678,900000000000000000000000000000000000000000000000000000000000000678.9999999999 +679,900000000000000000000000000000000000000000000000000000000000000679.9999999999 +680,900000000000000000000000000000000000000000000000000000000000000680.9999999999 +681,900000000000000000000000000000000000000000000000000000000000000681.9999999999 +682,900000000000000000000000000000000000000000000000000000000000000682.9999999999 +683,900000000000000000000000000000000000000000000000000000000000000683.9999999999 +684,900000000000000000000000000000000000000000000000000000000000000684.9999999999 +685,900000000000000000000000000000000000000000000000000000000000000685.9999999999 +686,900000000000000000000000000000000000000000000000000000000000000686.9999999999 +687,900000000000000000000000000000000000000000000000000000000000000687.9999999999 +688,900000000000000000000000000000000000000000000000000000000000000688.9999999999 +689,900000000000000000000000000000000000000000000000000000000000000689.9999999999 +690,900000000000000000000000000000000000000000000000000000000000000690.9999999999 +691,900000000000000000000000000000000000000000000000000000000000000691.9999999999 +692,900000000000000000000000000000000000000000000000000000000000000692.9999999999 +693,900000000000000000000000000000000000000000000000000000000000000693.9999999999 +694,900000000000000000000000000000000000000000000000000000000000000694.9999999999 +695,900000000000000000000000000000000000000000000000000000000000000695.9999999999 +696,900000000000000000000000000000000000000000000000000000000000000696.9999999999 +697,900000000000000000000000000000000000000000000000000000000000000697.9999999999 +698,900000000000000000000000000000000000000000000000000000000000000698.9999999999 +699,900000000000000000000000000000000000000000000000000000000000000699.9999999999 +700,900000000000000000000000000000000000000000000000000000000000000700.9999999999 +701,900000000000000000000000000000000000000000000000000000000000000701.9999999999 +702,900000000000000000000000000000000000000000000000000000000000000702.9999999999 +703,900000000000000000000000000000000000000000000000000000000000000703.9999999999 +704,900000000000000000000000000000000000000000000000000000000000000704.9999999999 +705,900000000000000000000000000000000000000000000000000000000000000705.9999999999 +706,900000000000000000000000000000000000000000000000000000000000000706.9999999999 +707,900000000000000000000000000000000000000000000000000000000000000707.9999999999 +708,900000000000000000000000000000000000000000000000000000000000000708.9999999999 +709,900000000000000000000000000000000000000000000000000000000000000709.9999999999 +710,900000000000000000000000000000000000000000000000000000000000000710.9999999999 +711,900000000000000000000000000000000000000000000000000000000000000711.9999999999 +712,900000000000000000000000000000000000000000000000000000000000000712.9999999999 +713,900000000000000000000000000000000000000000000000000000000000000713.9999999999 +714,900000000000000000000000000000000000000000000000000000000000000714.9999999999 +715,900000000000000000000000000000000000000000000000000000000000000715.9999999999 +716,900000000000000000000000000000000000000000000000000000000000000716.9999999999 +717,900000000000000000000000000000000000000000000000000000000000000717.9999999999 +718,900000000000000000000000000000000000000000000000000000000000000718.9999999999 +719,900000000000000000000000000000000000000000000000000000000000000719.9999999999 +720,900000000000000000000000000000000000000000000000000000000000000720.9999999999 +721,900000000000000000000000000000000000000000000000000000000000000721.9999999999 +722,900000000000000000000000000000000000000000000000000000000000000722.9999999999 +723,900000000000000000000000000000000000000000000000000000000000000723.9999999999 +724,900000000000000000000000000000000000000000000000000000000000000724.9999999999 +725,900000000000000000000000000000000000000000000000000000000000000725.9999999999 +726,900000000000000000000000000000000000000000000000000000000000000726.9999999999 +727,900000000000000000000000000000000000000000000000000000000000000727.9999999999 +728,900000000000000000000000000000000000000000000000000000000000000728.9999999999 +729,900000000000000000000000000000000000000000000000000000000000000729.9999999999 +730,900000000000000000000000000000000000000000000000000000000000000730.9999999999 +731,900000000000000000000000000000000000000000000000000000000000000731.9999999999 +732,900000000000000000000000000000000000000000000000000000000000000732.9999999999 +733,900000000000000000000000000000000000000000000000000000000000000733.9999999999 +734,900000000000000000000000000000000000000000000000000000000000000734.9999999999 +735,900000000000000000000000000000000000000000000000000000000000000735.9999999999 +736,900000000000000000000000000000000000000000000000000000000000000736.9999999999 +737,900000000000000000000000000000000000000000000000000000000000000737.9999999999 +738,900000000000000000000000000000000000000000000000000000000000000738.9999999999 +739,900000000000000000000000000000000000000000000000000000000000000739.9999999999 +740,900000000000000000000000000000000000000000000000000000000000000740.9999999999 +741,900000000000000000000000000000000000000000000000000000000000000741.9999999999 +742,900000000000000000000000000000000000000000000000000000000000000742.9999999999 +743,900000000000000000000000000000000000000000000000000000000000000743.9999999999 +744,900000000000000000000000000000000000000000000000000000000000000744.9999999999 +745,900000000000000000000000000000000000000000000000000000000000000745.9999999999 +746,900000000000000000000000000000000000000000000000000000000000000746.9999999999 +747,900000000000000000000000000000000000000000000000000000000000000747.9999999999 +748,900000000000000000000000000000000000000000000000000000000000000748.9999999999 +749,900000000000000000000000000000000000000000000000000000000000000749.9999999999 +750,900000000000000000000000000000000000000000000000000000000000000750.9999999999 +751,900000000000000000000000000000000000000000000000000000000000000751.9999999999 +752,900000000000000000000000000000000000000000000000000000000000000752.9999999999 +753,900000000000000000000000000000000000000000000000000000000000000753.9999999999 +754,900000000000000000000000000000000000000000000000000000000000000754.9999999999 +755,900000000000000000000000000000000000000000000000000000000000000755.9999999999 +756,900000000000000000000000000000000000000000000000000000000000000756.9999999999 +757,900000000000000000000000000000000000000000000000000000000000000757.9999999999 +758,900000000000000000000000000000000000000000000000000000000000000758.9999999999 +759,900000000000000000000000000000000000000000000000000000000000000759.9999999999 +760,900000000000000000000000000000000000000000000000000000000000000760.9999999999 +761,900000000000000000000000000000000000000000000000000000000000000761.9999999999 +762,900000000000000000000000000000000000000000000000000000000000000762.9999999999 +763,900000000000000000000000000000000000000000000000000000000000000763.9999999999 +764,900000000000000000000000000000000000000000000000000000000000000764.9999999999 +765,900000000000000000000000000000000000000000000000000000000000000765.9999999999 +766,900000000000000000000000000000000000000000000000000000000000000766.9999999999 +767,900000000000000000000000000000000000000000000000000000000000000767.9999999999 +768,900000000000000000000000000000000000000000000000000000000000000768.9999999999 +769,900000000000000000000000000000000000000000000000000000000000000769.9999999999 +770,900000000000000000000000000000000000000000000000000000000000000770.9999999999 +771,900000000000000000000000000000000000000000000000000000000000000771.9999999999 +772,900000000000000000000000000000000000000000000000000000000000000772.9999999999 +773,900000000000000000000000000000000000000000000000000000000000000773.9999999999 +774,900000000000000000000000000000000000000000000000000000000000000774.9999999999 +775,900000000000000000000000000000000000000000000000000000000000000775.9999999999 +776,900000000000000000000000000000000000000000000000000000000000000776.9999999999 +777,900000000000000000000000000000000000000000000000000000000000000777.9999999999 +778,900000000000000000000000000000000000000000000000000000000000000778.9999999999 +779,900000000000000000000000000000000000000000000000000000000000000779.9999999999 +780,900000000000000000000000000000000000000000000000000000000000000780.9999999999 +781,900000000000000000000000000000000000000000000000000000000000000781.9999999999 +782,900000000000000000000000000000000000000000000000000000000000000782.9999999999 +783,900000000000000000000000000000000000000000000000000000000000000783.9999999999 +784,900000000000000000000000000000000000000000000000000000000000000784.9999999999 +785,900000000000000000000000000000000000000000000000000000000000000785.9999999999 +786,900000000000000000000000000000000000000000000000000000000000000786.9999999999 +787,900000000000000000000000000000000000000000000000000000000000000787.9999999999 +788,900000000000000000000000000000000000000000000000000000000000000788.9999999999 +789,900000000000000000000000000000000000000000000000000000000000000789.9999999999 +790,900000000000000000000000000000000000000000000000000000000000000790.9999999999 +791,900000000000000000000000000000000000000000000000000000000000000791.9999999999 +792,900000000000000000000000000000000000000000000000000000000000000792.9999999999 +793,900000000000000000000000000000000000000000000000000000000000000793.9999999999 +794,900000000000000000000000000000000000000000000000000000000000000794.9999999999 +795,900000000000000000000000000000000000000000000000000000000000000795.9999999999 +796,900000000000000000000000000000000000000000000000000000000000000796.9999999999 +797,900000000000000000000000000000000000000000000000000000000000000797.9999999999 +798,900000000000000000000000000000000000000000000000000000000000000798.9999999999 +799,900000000000000000000000000000000000000000000000000000000000000799.9999999999 +800,900000000000000000000000000000000000000000000000000000000000000800.9999999999 +801,900000000000000000000000000000000000000000000000000000000000000801.9999999999 +802,900000000000000000000000000000000000000000000000000000000000000802.9999999999 +803,900000000000000000000000000000000000000000000000000000000000000803.9999999999 +804,900000000000000000000000000000000000000000000000000000000000000804.9999999999 +805,900000000000000000000000000000000000000000000000000000000000000805.9999999999 +806,900000000000000000000000000000000000000000000000000000000000000806.9999999999 +807,900000000000000000000000000000000000000000000000000000000000000807.9999999999 +808,900000000000000000000000000000000000000000000000000000000000000808.9999999999 +809,900000000000000000000000000000000000000000000000000000000000000809.9999999999 +810,900000000000000000000000000000000000000000000000000000000000000810.9999999999 +811,900000000000000000000000000000000000000000000000000000000000000811.9999999999 +812,900000000000000000000000000000000000000000000000000000000000000812.9999999999 +813,900000000000000000000000000000000000000000000000000000000000000813.9999999999 +814,900000000000000000000000000000000000000000000000000000000000000814.9999999999 +815,900000000000000000000000000000000000000000000000000000000000000815.9999999999 +816,900000000000000000000000000000000000000000000000000000000000000816.9999999999 +817,900000000000000000000000000000000000000000000000000000000000000817.9999999999 +818,900000000000000000000000000000000000000000000000000000000000000818.9999999999 +819,900000000000000000000000000000000000000000000000000000000000000819.9999999999 +820,900000000000000000000000000000000000000000000000000000000000000820.9999999999 +821,900000000000000000000000000000000000000000000000000000000000000821.9999999999 +822,900000000000000000000000000000000000000000000000000000000000000822.9999999999 +823,900000000000000000000000000000000000000000000000000000000000000823.9999999999 +824,900000000000000000000000000000000000000000000000000000000000000824.9999999999 +825,900000000000000000000000000000000000000000000000000000000000000825.9999999999 +826,900000000000000000000000000000000000000000000000000000000000000826.9999999999 +827,900000000000000000000000000000000000000000000000000000000000000827.9999999999 +828,900000000000000000000000000000000000000000000000000000000000000828.9999999999 +829,900000000000000000000000000000000000000000000000000000000000000829.9999999999 +830,900000000000000000000000000000000000000000000000000000000000000830.9999999999 +831,900000000000000000000000000000000000000000000000000000000000000831.9999999999 +832,900000000000000000000000000000000000000000000000000000000000000832.9999999999 +833,900000000000000000000000000000000000000000000000000000000000000833.9999999999 +834,900000000000000000000000000000000000000000000000000000000000000834.9999999999 +835,900000000000000000000000000000000000000000000000000000000000000835.9999999999 +836,900000000000000000000000000000000000000000000000000000000000000836.9999999999 +837,900000000000000000000000000000000000000000000000000000000000000837.9999999999 +838,900000000000000000000000000000000000000000000000000000000000000838.9999999999 +839,900000000000000000000000000000000000000000000000000000000000000839.9999999999 +840,900000000000000000000000000000000000000000000000000000000000000840.9999999999 +841,900000000000000000000000000000000000000000000000000000000000000841.9999999999 +842,900000000000000000000000000000000000000000000000000000000000000842.9999999999 +843,900000000000000000000000000000000000000000000000000000000000000843.9999999999 +844,900000000000000000000000000000000000000000000000000000000000000844.9999999999 +845,900000000000000000000000000000000000000000000000000000000000000845.9999999999 +846,900000000000000000000000000000000000000000000000000000000000000846.9999999999 +847,900000000000000000000000000000000000000000000000000000000000000847.9999999999 +848,900000000000000000000000000000000000000000000000000000000000000848.9999999999 +849,900000000000000000000000000000000000000000000000000000000000000849.9999999999 +850,900000000000000000000000000000000000000000000000000000000000000850.9999999999 +851,900000000000000000000000000000000000000000000000000000000000000851.9999999999 +852,900000000000000000000000000000000000000000000000000000000000000852.9999999999 +853,900000000000000000000000000000000000000000000000000000000000000853.9999999999 +854,900000000000000000000000000000000000000000000000000000000000000854.9999999999 +855,900000000000000000000000000000000000000000000000000000000000000855.9999999999 +856,900000000000000000000000000000000000000000000000000000000000000856.9999999999 +857,900000000000000000000000000000000000000000000000000000000000000857.9999999999 +858,900000000000000000000000000000000000000000000000000000000000000858.9999999999 +859,900000000000000000000000000000000000000000000000000000000000000859.9999999999 +860,900000000000000000000000000000000000000000000000000000000000000860.9999999999 +861,900000000000000000000000000000000000000000000000000000000000000861.9999999999 +862,900000000000000000000000000000000000000000000000000000000000000862.9999999999 +863,900000000000000000000000000000000000000000000000000000000000000863.9999999999 +864,900000000000000000000000000000000000000000000000000000000000000864.9999999999 +865,900000000000000000000000000000000000000000000000000000000000000865.9999999999 +866,900000000000000000000000000000000000000000000000000000000000000866.9999999999 +867,900000000000000000000000000000000000000000000000000000000000000867.9999999999 +868,900000000000000000000000000000000000000000000000000000000000000868.9999999999 +869,900000000000000000000000000000000000000000000000000000000000000869.9999999999 +870,900000000000000000000000000000000000000000000000000000000000000870.9999999999 +871,900000000000000000000000000000000000000000000000000000000000000871.9999999999 +872,900000000000000000000000000000000000000000000000000000000000000872.9999999999 +873,900000000000000000000000000000000000000000000000000000000000000873.9999999999 +874,900000000000000000000000000000000000000000000000000000000000000874.9999999999 +875,900000000000000000000000000000000000000000000000000000000000000875.9999999999 +876,900000000000000000000000000000000000000000000000000000000000000876.9999999999 +877,900000000000000000000000000000000000000000000000000000000000000877.9999999999 +878,900000000000000000000000000000000000000000000000000000000000000878.9999999999 +879,900000000000000000000000000000000000000000000000000000000000000879.9999999999 +880,900000000000000000000000000000000000000000000000000000000000000880.9999999999 +881,900000000000000000000000000000000000000000000000000000000000000881.9999999999 +882,900000000000000000000000000000000000000000000000000000000000000882.9999999999 +883,900000000000000000000000000000000000000000000000000000000000000883.9999999999 +884,900000000000000000000000000000000000000000000000000000000000000884.9999999999 +885,900000000000000000000000000000000000000000000000000000000000000885.9999999999 +886,900000000000000000000000000000000000000000000000000000000000000886.9999999999 +887,900000000000000000000000000000000000000000000000000000000000000887.9999999999 +888,900000000000000000000000000000000000000000000000000000000000000888.9999999999 +889,900000000000000000000000000000000000000000000000000000000000000889.9999999999 +890,900000000000000000000000000000000000000000000000000000000000000890.9999999999 +891,900000000000000000000000000000000000000000000000000000000000000891.9999999999 +892,900000000000000000000000000000000000000000000000000000000000000892.9999999999 +893,900000000000000000000000000000000000000000000000000000000000000893.9999999999 +894,900000000000000000000000000000000000000000000000000000000000000894.9999999999 +895,900000000000000000000000000000000000000000000000000000000000000895.9999999999 +896,900000000000000000000000000000000000000000000000000000000000000896.9999999999 +897,900000000000000000000000000000000000000000000000000000000000000897.9999999999 +898,900000000000000000000000000000000000000000000000000000000000000898.9999999999 +899,900000000000000000000000000000000000000000000000000000000000000899.9999999999 +900,900000000000000000000000000000000000000000000000000000000000000900.9999999999 +901,900000000000000000000000000000000000000000000000000000000000000901.9999999999 +902,900000000000000000000000000000000000000000000000000000000000000902.9999999999 +903,900000000000000000000000000000000000000000000000000000000000000903.9999999999 +904,900000000000000000000000000000000000000000000000000000000000000904.9999999999 +905,900000000000000000000000000000000000000000000000000000000000000905.9999999999 +906,900000000000000000000000000000000000000000000000000000000000000906.9999999999 +907,900000000000000000000000000000000000000000000000000000000000000907.9999999999 +908,900000000000000000000000000000000000000000000000000000000000000908.9999999999 +909,900000000000000000000000000000000000000000000000000000000000000909.9999999999 +910,900000000000000000000000000000000000000000000000000000000000000910.9999999999 +911,900000000000000000000000000000000000000000000000000000000000000911.9999999999 +912,900000000000000000000000000000000000000000000000000000000000000912.9999999999 +913,900000000000000000000000000000000000000000000000000000000000000913.9999999999 +914,900000000000000000000000000000000000000000000000000000000000000914.9999999999 +915,900000000000000000000000000000000000000000000000000000000000000915.9999999999 +916,900000000000000000000000000000000000000000000000000000000000000916.9999999999 +917,900000000000000000000000000000000000000000000000000000000000000917.9999999999 +918,900000000000000000000000000000000000000000000000000000000000000918.9999999999 +919,900000000000000000000000000000000000000000000000000000000000000919.9999999999 +920,900000000000000000000000000000000000000000000000000000000000000920.9999999999 +921,900000000000000000000000000000000000000000000000000000000000000921.9999999999 +922,900000000000000000000000000000000000000000000000000000000000000922.9999999999 +923,900000000000000000000000000000000000000000000000000000000000000923.9999999999 +924,900000000000000000000000000000000000000000000000000000000000000924.9999999999 +925,900000000000000000000000000000000000000000000000000000000000000925.9999999999 +926,900000000000000000000000000000000000000000000000000000000000000926.9999999999 +927,900000000000000000000000000000000000000000000000000000000000000927.9999999999 +928,900000000000000000000000000000000000000000000000000000000000000928.9999999999 +929,900000000000000000000000000000000000000000000000000000000000000929.9999999999 +930,900000000000000000000000000000000000000000000000000000000000000930.9999999999 +931,900000000000000000000000000000000000000000000000000000000000000931.9999999999 +932,900000000000000000000000000000000000000000000000000000000000000932.9999999999 +933,900000000000000000000000000000000000000000000000000000000000000933.9999999999 +934,900000000000000000000000000000000000000000000000000000000000000934.9999999999 +935,900000000000000000000000000000000000000000000000000000000000000935.9999999999 +936,900000000000000000000000000000000000000000000000000000000000000936.9999999999 +937,900000000000000000000000000000000000000000000000000000000000000937.9999999999 +938,900000000000000000000000000000000000000000000000000000000000000938.9999999999 +939,900000000000000000000000000000000000000000000000000000000000000939.9999999999 +940,900000000000000000000000000000000000000000000000000000000000000940.9999999999 +941,900000000000000000000000000000000000000000000000000000000000000941.9999999999 +942,900000000000000000000000000000000000000000000000000000000000000942.9999999999 +943,900000000000000000000000000000000000000000000000000000000000000943.9999999999 +944,900000000000000000000000000000000000000000000000000000000000000944.9999999999 +945,900000000000000000000000000000000000000000000000000000000000000945.9999999999 +946,900000000000000000000000000000000000000000000000000000000000000946.9999999999 +947,900000000000000000000000000000000000000000000000000000000000000947.9999999999 +948,900000000000000000000000000000000000000000000000000000000000000948.9999999999 +949,900000000000000000000000000000000000000000000000000000000000000949.9999999999 +950,900000000000000000000000000000000000000000000000000000000000000950.9999999999 +951,900000000000000000000000000000000000000000000000000000000000000951.9999999999 +952,900000000000000000000000000000000000000000000000000000000000000952.9999999999 +953,900000000000000000000000000000000000000000000000000000000000000953.9999999999 +954,900000000000000000000000000000000000000000000000000000000000000954.9999999999 +955,900000000000000000000000000000000000000000000000000000000000000955.9999999999 +956,900000000000000000000000000000000000000000000000000000000000000956.9999999999 +957,900000000000000000000000000000000000000000000000000000000000000957.9999999999 +958,900000000000000000000000000000000000000000000000000000000000000958.9999999999 +959,900000000000000000000000000000000000000000000000000000000000000959.9999999999 +960,900000000000000000000000000000000000000000000000000000000000000960.9999999999 +961,900000000000000000000000000000000000000000000000000000000000000961.9999999999 +962,900000000000000000000000000000000000000000000000000000000000000962.9999999999 +963,900000000000000000000000000000000000000000000000000000000000000963.9999999999 +964,900000000000000000000000000000000000000000000000000000000000000964.9999999999 +965,900000000000000000000000000000000000000000000000000000000000000965.9999999999 +966,900000000000000000000000000000000000000000000000000000000000000966.9999999999 +967,900000000000000000000000000000000000000000000000000000000000000967.9999999999 +968,900000000000000000000000000000000000000000000000000000000000000968.9999999999 +969,900000000000000000000000000000000000000000000000000000000000000969.9999999999 +970,900000000000000000000000000000000000000000000000000000000000000970.9999999999 +971,900000000000000000000000000000000000000000000000000000000000000971.9999999999 +972,900000000000000000000000000000000000000000000000000000000000000972.9999999999 +973,900000000000000000000000000000000000000000000000000000000000000973.9999999999 +974,900000000000000000000000000000000000000000000000000000000000000974.9999999999 +975,900000000000000000000000000000000000000000000000000000000000000975.9999999999 +976,900000000000000000000000000000000000000000000000000000000000000976.9999999999 +977,900000000000000000000000000000000000000000000000000000000000000977.9999999999 +978,900000000000000000000000000000000000000000000000000000000000000978.9999999999 +979,900000000000000000000000000000000000000000000000000000000000000979.9999999999 +980,900000000000000000000000000000000000000000000000000000000000000980.9999999999 +981,900000000000000000000000000000000000000000000000000000000000000981.9999999999 +982,900000000000000000000000000000000000000000000000000000000000000982.9999999999 +983,900000000000000000000000000000000000000000000000000000000000000983.9999999999 +984,900000000000000000000000000000000000000000000000000000000000000984.9999999999 +985,900000000000000000000000000000000000000000000000000000000000000985.9999999999 +986,900000000000000000000000000000000000000000000000000000000000000986.9999999999 +987,900000000000000000000000000000000000000000000000000000000000000987.9999999999 +988,900000000000000000000000000000000000000000000000000000000000000988.9999999999 +989,900000000000000000000000000000000000000000000000000000000000000989.9999999999 +990,900000000000000000000000000000000000000000000000000000000000000990.9999999999 +991,900000000000000000000000000000000000000000000000000000000000000991.9999999999 +992,900000000000000000000000000000000000000000000000000000000000000992.9999999999 +993,900000000000000000000000000000000000000000000000000000000000000993.9999999999 +994,900000000000000000000000000000000000000000000000000000000000000994.9999999999 +995,900000000000000000000000000000000000000000000000000000000000000995.9999999999 +996,900000000000000000000000000000000000000000000000000000000000000996.9999999999 +997,900000000000000000000000000000000000000000000000000000000000000997.9999999999 +998,900000000000000000000000000000000000000000000000000000000000000998.9999999999 +999,900000000000000000000000000000000000000000000000000000000000000999.9999999999 +1000,900000000000000000000000000000000000000000000000000000000000001000.9999999999 +1001,900000000000000000000000000000000000000000000000000000000000001001.9999999999 +1002,900000000000000000000000000000000000000000000000000000000000001002.9999999999 +1003,900000000000000000000000000000000000000000000000000000000000001003.9999999999 +1004,900000000000000000000000000000000000000000000000000000000000001004.9999999999 +1005,900000000000000000000000000000000000000000000000000000000000001005.9999999999 +1006,900000000000000000000000000000000000000000000000000000000000001006.9999999999 +1007,900000000000000000000000000000000000000000000000000000000000001007.9999999999 +1008,900000000000000000000000000000000000000000000000000000000000001008.9999999999 +1009,900000000000000000000000000000000000000000000000000000000000001009.9999999999 +1010,900000000000000000000000000000000000000000000000000000000000001010.9999999999 +1011,900000000000000000000000000000000000000000000000000000000000001011.9999999999 +1012,900000000000000000000000000000000000000000000000000000000000001012.9999999999 +1013,900000000000000000000000000000000000000000000000000000000000001013.9999999999 +1014,900000000000000000000000000000000000000000000000000000000000001014.9999999999 +1015,900000000000000000000000000000000000000000000000000000000000001015.9999999999 +1016,900000000000000000000000000000000000000000000000000000000000001016.9999999999 +1017,900000000000000000000000000000000000000000000000000000000000001017.9999999999 +1018,900000000000000000000000000000000000000000000000000000000000001018.9999999999 +1019,900000000000000000000000000000000000000000000000000000000000001019.9999999999 +1020,900000000000000000000000000000000000000000000000000000000000001020.9999999999 +1021,900000000000000000000000000000000000000000000000000000000000001021.9999999999 +1022,900000000000000000000000000000000000000000000000000000000000001022.9999999999 +1023,900000000000000000000000000000000000000000000000000000000000001023.9999999999 +1024,900000000000000000000000000000000000000000000000000000000000001024.9999999999 +1025,900000000000000000000000000000000000000000000000000000000000001025.9999999999 +1026,900000000000000000000000000000000000000000000000000000000000001026.9999999999 +1027,900000000000000000000000000000000000000000000000000000000000001027.9999999999 +1028,900000000000000000000000000000000000000000000000000000000000001028.9999999999 +1029,900000000000000000000000000000000000000000000000000000000000001029.9999999999 +1030,900000000000000000000000000000000000000000000000000000000000001030.9999999999 +1031,900000000000000000000000000000000000000000000000000000000000001031.9999999999 +1032,900000000000000000000000000000000000000000000000000000000000001032.9999999999 +1033,900000000000000000000000000000000000000000000000000000000000001033.9999999999 +1034,900000000000000000000000000000000000000000000000000000000000001034.9999999999 +1035,900000000000000000000000000000000000000000000000000000000000001035.9999999999 +1036,900000000000000000000000000000000000000000000000000000000000001036.9999999999 +1037,900000000000000000000000000000000000000000000000000000000000001037.9999999999 +1038,900000000000000000000000000000000000000000000000000000000000001038.9999999999 +1039,900000000000000000000000000000000000000000000000000000000000001039.9999999999 +1040,900000000000000000000000000000000000000000000000000000000000001040.9999999999 +1041,900000000000000000000000000000000000000000000000000000000000001041.9999999999 +1042,900000000000000000000000000000000000000000000000000000000000001042.9999999999 +1043,900000000000000000000000000000000000000000000000000000000000001043.9999999999 +1044,900000000000000000000000000000000000000000000000000000000000001044.9999999999 +1045,900000000000000000000000000000000000000000000000000000000000001045.9999999999 +1046,900000000000000000000000000000000000000000000000000000000000001046.9999999999 +1047,900000000000000000000000000000000000000000000000000000000000001047.9999999999 +1048,900000000000000000000000000000000000000000000000000000000000001048.9999999999 +1049,900000000000000000000000000000000000000000000000000000000000001049.9999999999 +1050,900000000000000000000000000000000000000000000000000000000000001050.9999999999 +1051,900000000000000000000000000000000000000000000000000000000000001051.9999999999 +1052,900000000000000000000000000000000000000000000000000000000000001052.9999999999 +1053,900000000000000000000000000000000000000000000000000000000000001053.9999999999 +1054,900000000000000000000000000000000000000000000000000000000000001054.9999999999 +1055,900000000000000000000000000000000000000000000000000000000000001055.9999999999 +1056,900000000000000000000000000000000000000000000000000000000000001056.9999999999 +1057,900000000000000000000000000000000000000000000000000000000000001057.9999999999 +1058,900000000000000000000000000000000000000000000000000000000000001058.9999999999 +1059,900000000000000000000000000000000000000000000000000000000000001059.9999999999 +1060,900000000000000000000000000000000000000000000000000000000000001060.9999999999 +1061,900000000000000000000000000000000000000000000000000000000000001061.9999999999 +1062,900000000000000000000000000000000000000000000000000000000000001062.9999999999 +1063,900000000000000000000000000000000000000000000000000000000000001063.9999999999 +1064,900000000000000000000000000000000000000000000000000000000000001064.9999999999 +1065,900000000000000000000000000000000000000000000000000000000000001065.9999999999 +1066,900000000000000000000000000000000000000000000000000000000000001066.9999999999 +1067,900000000000000000000000000000000000000000000000000000000000001067.9999999999 +1068,900000000000000000000000000000000000000000000000000000000000001068.9999999999 +1069,900000000000000000000000000000000000000000000000000000000000001069.9999999999 +1070,900000000000000000000000000000000000000000000000000000000000001070.9999999999 +1071,900000000000000000000000000000000000000000000000000000000000001071.9999999999 +1072,900000000000000000000000000000000000000000000000000000000000001072.9999999999 +1073,900000000000000000000000000000000000000000000000000000000000001073.9999999999 +1074,900000000000000000000000000000000000000000000000000000000000001074.9999999999 +1075,900000000000000000000000000000000000000000000000000000000000001075.9999999999 +1076,900000000000000000000000000000000000000000000000000000000000001076.9999999999 +1077,900000000000000000000000000000000000000000000000000000000000001077.9999999999 +1078,900000000000000000000000000000000000000000000000000000000000001078.9999999999 +1079,900000000000000000000000000000000000000000000000000000000000001079.9999999999 +1080,900000000000000000000000000000000000000000000000000000000000001080.9999999999 +1081,900000000000000000000000000000000000000000000000000000000000001081.9999999999 +1082,900000000000000000000000000000000000000000000000000000000000001082.9999999999 +1083,900000000000000000000000000000000000000000000000000000000000001083.9999999999 +1084,900000000000000000000000000000000000000000000000000000000000001084.9999999999 +1085,900000000000000000000000000000000000000000000000000000000000001085.9999999999 +1086,900000000000000000000000000000000000000000000000000000000000001086.9999999999 +1087,900000000000000000000000000000000000000000000000000000000000001087.9999999999 +1088,900000000000000000000000000000000000000000000000000000000000001088.9999999999 +1089,900000000000000000000000000000000000000000000000000000000000001089.9999999999 +1090,900000000000000000000000000000000000000000000000000000000000001090.9999999999 +1091,900000000000000000000000000000000000000000000000000000000000001091.9999999999 +1092,900000000000000000000000000000000000000000000000000000000000001092.9999999999 +1093,900000000000000000000000000000000000000000000000000000000000001093.9999999999 +1094,900000000000000000000000000000000000000000000000000000000000001094.9999999999 +1095,900000000000000000000000000000000000000000000000000000000000001095.9999999999 +1096,900000000000000000000000000000000000000000000000000000000000001096.9999999999 +1097,900000000000000000000000000000000000000000000000000000000000001097.9999999999 +1098,900000000000000000000000000000000000000000000000000000000000001098.9999999999 +1099,900000000000000000000000000000000000000000000000000000000000001099.9999999999 +1100,900000000000000000000000000000000000000000000000000000000000001100.9999999999 +1101,900000000000000000000000000000000000000000000000000000000000001101.9999999999 +1102,900000000000000000000000000000000000000000000000000000000000001102.9999999999 +1103,900000000000000000000000000000000000000000000000000000000000001103.9999999999 +1104,900000000000000000000000000000000000000000000000000000000000001104.9999999999 +1105,900000000000000000000000000000000000000000000000000000000000001105.9999999999 +1106,900000000000000000000000000000000000000000000000000000000000001106.9999999999 +1107,900000000000000000000000000000000000000000000000000000000000001107.9999999999 +1108,900000000000000000000000000000000000000000000000000000000000001108.9999999999 +1109,900000000000000000000000000000000000000000000000000000000000001109.9999999999 +1110,900000000000000000000000000000000000000000000000000000000000001110.9999999999 +1111,900000000000000000000000000000000000000000000000000000000000001111.9999999999 +1112,900000000000000000000000000000000000000000000000000000000000001112.9999999999 +1113,900000000000000000000000000000000000000000000000000000000000001113.9999999999 +1114,900000000000000000000000000000000000000000000000000000000000001114.9999999999 +1115,900000000000000000000000000000000000000000000000000000000000001115.9999999999 +1116,900000000000000000000000000000000000000000000000000000000000001116.9999999999 +1117,900000000000000000000000000000000000000000000000000000000000001117.9999999999 +1118,900000000000000000000000000000000000000000000000000000000000001118.9999999999 +1119,900000000000000000000000000000000000000000000000000000000000001119.9999999999 +1120,900000000000000000000000000000000000000000000000000000000000001120.9999999999 +1121,900000000000000000000000000000000000000000000000000000000000001121.9999999999 +1122,900000000000000000000000000000000000000000000000000000000000001122.9999999999 +1123,900000000000000000000000000000000000000000000000000000000000001123.9999999999 +1124,900000000000000000000000000000000000000000000000000000000000001124.9999999999 +1125,900000000000000000000000000000000000000000000000000000000000001125.9999999999 +1126,900000000000000000000000000000000000000000000000000000000000001126.9999999999 +1127,900000000000000000000000000000000000000000000000000000000000001127.9999999999 +1128,900000000000000000000000000000000000000000000000000000000000001128.9999999999 +1129,900000000000000000000000000000000000000000000000000000000000001129.9999999999 +1130,900000000000000000000000000000000000000000000000000000000000001130.9999999999 +1131,900000000000000000000000000000000000000000000000000000000000001131.9999999999 +1132,900000000000000000000000000000000000000000000000000000000000001132.9999999999 +1133,900000000000000000000000000000000000000000000000000000000000001133.9999999999 +1134,900000000000000000000000000000000000000000000000000000000000001134.9999999999 +1135,900000000000000000000000000000000000000000000000000000000000001135.9999999999 +1136,900000000000000000000000000000000000000000000000000000000000001136.9999999999 +1137,900000000000000000000000000000000000000000000000000000000000001137.9999999999 +1138,900000000000000000000000000000000000000000000000000000000000001138.9999999999 +1139,900000000000000000000000000000000000000000000000000000000000001139.9999999999 +1140,900000000000000000000000000000000000000000000000000000000000001140.9999999999 +1141,900000000000000000000000000000000000000000000000000000000000001141.9999999999 +1142,900000000000000000000000000000000000000000000000000000000000001142.9999999999 +1143,900000000000000000000000000000000000000000000000000000000000001143.9999999999 +1144,900000000000000000000000000000000000000000000000000000000000001144.9999999999 +1145,900000000000000000000000000000000000000000000000000000000000001145.9999999999 +1146,900000000000000000000000000000000000000000000000000000000000001146.9999999999 +1147,900000000000000000000000000000000000000000000000000000000000001147.9999999999 +1148,900000000000000000000000000000000000000000000000000000000000001148.9999999999 +1149,900000000000000000000000000000000000000000000000000000000000001149.9999999999 +1150,900000000000000000000000000000000000000000000000000000000000001150.9999999999 +1151,900000000000000000000000000000000000000000000000000000000000001151.9999999999 +1152,900000000000000000000000000000000000000000000000000000000000001152.9999999999 +1153,900000000000000000000000000000000000000000000000000000000000001153.9999999999 +1154,900000000000000000000000000000000000000000000000000000000000001154.9999999999 +1155,900000000000000000000000000000000000000000000000000000000000001155.9999999999 +1156,900000000000000000000000000000000000000000000000000000000000001156.9999999999 +1157,900000000000000000000000000000000000000000000000000000000000001157.9999999999 +1158,900000000000000000000000000000000000000000000000000000000000001158.9999999999 +1159,900000000000000000000000000000000000000000000000000000000000001159.9999999999 +1160,900000000000000000000000000000000000000000000000000000000000001160.9999999999 +1161,900000000000000000000000000000000000000000000000000000000000001161.9999999999 +1162,900000000000000000000000000000000000000000000000000000000000001162.9999999999 +1163,900000000000000000000000000000000000000000000000000000000000001163.9999999999 +1164,900000000000000000000000000000000000000000000000000000000000001164.9999999999 +1165,900000000000000000000000000000000000000000000000000000000000001165.9999999999 +1166,900000000000000000000000000000000000000000000000000000000000001166.9999999999 +1167,900000000000000000000000000000000000000000000000000000000000001167.9999999999 +1168,900000000000000000000000000000000000000000000000000000000000001168.9999999999 +1169,900000000000000000000000000000000000000000000000000000000000001169.9999999999 +1170,900000000000000000000000000000000000000000000000000000000000001170.9999999999 +1171,900000000000000000000000000000000000000000000000000000000000001171.9999999999 +1172,900000000000000000000000000000000000000000000000000000000000001172.9999999999 +1173,900000000000000000000000000000000000000000000000000000000000001173.9999999999 +1174,900000000000000000000000000000000000000000000000000000000000001174.9999999999 +1175,900000000000000000000000000000000000000000000000000000000000001175.9999999999 +1176,900000000000000000000000000000000000000000000000000000000000001176.9999999999 +1177,900000000000000000000000000000000000000000000000000000000000001177.9999999999 +1178,900000000000000000000000000000000000000000000000000000000000001178.9999999999 +1179,900000000000000000000000000000000000000000000000000000000000001179.9999999999 +1180,900000000000000000000000000000000000000000000000000000000000001180.9999999999 +1181,900000000000000000000000000000000000000000000000000000000000001181.9999999999 +1182,900000000000000000000000000000000000000000000000000000000000001182.9999999999 +1183,900000000000000000000000000000000000000000000000000000000000001183.9999999999 +1184,900000000000000000000000000000000000000000000000000000000000001184.9999999999 +1185,900000000000000000000000000000000000000000000000000000000000001185.9999999999 +1186,900000000000000000000000000000000000000000000000000000000000001186.9999999999 +1187,900000000000000000000000000000000000000000000000000000000000001187.9999999999 +1188,900000000000000000000000000000000000000000000000000000000000001188.9999999999 +1189,900000000000000000000000000000000000000000000000000000000000001189.9999999999 +1190,900000000000000000000000000000000000000000000000000000000000001190.9999999999 +1191,900000000000000000000000000000000000000000000000000000000000001191.9999999999 +1192,900000000000000000000000000000000000000000000000000000000000001192.9999999999 +1193,900000000000000000000000000000000000000000000000000000000000001193.9999999999 +1194,900000000000000000000000000000000000000000000000000000000000001194.9999999999 +1195,900000000000000000000000000000000000000000000000000000000000001195.9999999999 +1196,900000000000000000000000000000000000000000000000000000000000001196.9999999999 +1197,900000000000000000000000000000000000000000000000000000000000001197.9999999999 +1198,900000000000000000000000000000000000000000000000000000000000001198.9999999999 +1199,900000000000000000000000000000000000000000000000000000000000001199.9999999999 +1200,900000000000000000000000000000000000000000000000000000000000001200.9999999999 +1201,900000000000000000000000000000000000000000000000000000000000001201.9999999999 +1202,900000000000000000000000000000000000000000000000000000000000001202.9999999999 +1203,900000000000000000000000000000000000000000000000000000000000001203.9999999999 +1204,900000000000000000000000000000000000000000000000000000000000001204.9999999999 +1205,900000000000000000000000000000000000000000000000000000000000001205.9999999999 +1206,900000000000000000000000000000000000000000000000000000000000001206.9999999999 +1207,900000000000000000000000000000000000000000000000000000000000001207.9999999999 +1208,900000000000000000000000000000000000000000000000000000000000001208.9999999999 +1209,900000000000000000000000000000000000000000000000000000000000001209.9999999999 +1210,900000000000000000000000000000000000000000000000000000000000001210.9999999999 +1211,900000000000000000000000000000000000000000000000000000000000001211.9999999999 +1212,900000000000000000000000000000000000000000000000000000000000001212.9999999999 +1213,900000000000000000000000000000000000000000000000000000000000001213.9999999999 +1214,900000000000000000000000000000000000000000000000000000000000001214.9999999999 +1215,900000000000000000000000000000000000000000000000000000000000001215.9999999999 +1216,900000000000000000000000000000000000000000000000000000000000001216.9999999999 +1217,900000000000000000000000000000000000000000000000000000000000001217.9999999999 +1218,900000000000000000000000000000000000000000000000000000000000001218.9999999999 +1219,900000000000000000000000000000000000000000000000000000000000001219.9999999999 +1220,900000000000000000000000000000000000000000000000000000000000001220.9999999999 +1221,900000000000000000000000000000000000000000000000000000000000001221.9999999999 +1222,900000000000000000000000000000000000000000000000000000000000001222.9999999999 +1223,900000000000000000000000000000000000000000000000000000000000001223.9999999999 +1224,900000000000000000000000000000000000000000000000000000000000001224.9999999999 +1225,900000000000000000000000000000000000000000000000000000000000001225.9999999999 +1226,900000000000000000000000000000000000000000000000000000000000001226.9999999999 +1227,900000000000000000000000000000000000000000000000000000000000001227.9999999999 +1228,900000000000000000000000000000000000000000000000000000000000001228.9999999999 +1229,900000000000000000000000000000000000000000000000000000000000001229.9999999999 +1230,900000000000000000000000000000000000000000000000000000000000001230.9999999999 +1231,900000000000000000000000000000000000000000000000000000000000001231.9999999999 +1232,900000000000000000000000000000000000000000000000000000000000001232.9999999999 +1233,900000000000000000000000000000000000000000000000000000000000001233.9999999999 +1234,900000000000000000000000000000000000000000000000000000000000001234.9999999999 +1235,900000000000000000000000000000000000000000000000000000000000001235.9999999999 +1236,900000000000000000000000000000000000000000000000000000000000001236.9999999999 +1237,900000000000000000000000000000000000000000000000000000000000001237.9999999999 +1238,900000000000000000000000000000000000000000000000000000000000001238.9999999999 +1239,900000000000000000000000000000000000000000000000000000000000001239.9999999999 +1240,900000000000000000000000000000000000000000000000000000000000001240.9999999999 +1241,900000000000000000000000000000000000000000000000000000000000001241.9999999999 +1242,900000000000000000000000000000000000000000000000000000000000001242.9999999999 +1243,900000000000000000000000000000000000000000000000000000000000001243.9999999999 +1244,900000000000000000000000000000000000000000000000000000000000001244.9999999999 +1245,900000000000000000000000000000000000000000000000000000000000001245.9999999999 +1246,900000000000000000000000000000000000000000000000000000000000001246.9999999999 +1247,900000000000000000000000000000000000000000000000000000000000001247.9999999999 +1248,900000000000000000000000000000000000000000000000000000000000001248.9999999999 +1249,900000000000000000000000000000000000000000000000000000000000001249.9999999999 +1250,900000000000000000000000000000000000000000000000000000000000001250.9999999999 +1251,900000000000000000000000000000000000000000000000000000000000001251.9999999999 +1252,900000000000000000000000000000000000000000000000000000000000001252.9999999999 +1253,900000000000000000000000000000000000000000000000000000000000001253.9999999999 +1254,900000000000000000000000000000000000000000000000000000000000001254.9999999999 +1255,900000000000000000000000000000000000000000000000000000000000001255.9999999999 +1256,900000000000000000000000000000000000000000000000000000000000001256.9999999999 +1257,900000000000000000000000000000000000000000000000000000000000001257.9999999999 +1258,900000000000000000000000000000000000000000000000000000000000001258.9999999999 +1259,900000000000000000000000000000000000000000000000000000000000001259.9999999999 +1260,900000000000000000000000000000000000000000000000000000000000001260.9999999999 +1261,900000000000000000000000000000000000000000000000000000000000001261.9999999999 +1262,900000000000000000000000000000000000000000000000000000000000001262.9999999999 +1263,900000000000000000000000000000000000000000000000000000000000001263.9999999999 +1264,900000000000000000000000000000000000000000000000000000000000001264.9999999999 +1265,900000000000000000000000000000000000000000000000000000000000001265.9999999999 +1266,900000000000000000000000000000000000000000000000000000000000001266.9999999999 +1267,900000000000000000000000000000000000000000000000000000000000001267.9999999999 +1268,900000000000000000000000000000000000000000000000000000000000001268.9999999999 +1269,900000000000000000000000000000000000000000000000000000000000001269.9999999999 +1270,900000000000000000000000000000000000000000000000000000000000001270.9999999999 +1271,900000000000000000000000000000000000000000000000000000000000001271.9999999999 +1272,900000000000000000000000000000000000000000000000000000000000001272.9999999999 +1273,900000000000000000000000000000000000000000000000000000000000001273.9999999999 +1274,900000000000000000000000000000000000000000000000000000000000001274.9999999999 +1275,900000000000000000000000000000000000000000000000000000000000001275.9999999999 +1276,900000000000000000000000000000000000000000000000000000000000001276.9999999999 +1277,900000000000000000000000000000000000000000000000000000000000001277.9999999999 +1278,900000000000000000000000000000000000000000000000000000000000001278.9999999999 +1279,900000000000000000000000000000000000000000000000000000000000001279.9999999999 +1280,900000000000000000000000000000000000000000000000000000000000001280.9999999999 +1281,900000000000000000000000000000000000000000000000000000000000001281.9999999999 +1282,900000000000000000000000000000000000000000000000000000000000001282.9999999999 +1283,900000000000000000000000000000000000000000000000000000000000001283.9999999999 +1284,900000000000000000000000000000000000000000000000000000000000001284.9999999999 +1285,900000000000000000000000000000000000000000000000000000000000001285.9999999999 +1286,900000000000000000000000000000000000000000000000000000000000001286.9999999999 +1287,900000000000000000000000000000000000000000000000000000000000001287.9999999999 +1288,900000000000000000000000000000000000000000000000000000000000001288.9999999999 +1289,900000000000000000000000000000000000000000000000000000000000001289.9999999999 +1290,900000000000000000000000000000000000000000000000000000000000001290.9999999999 +1291,900000000000000000000000000000000000000000000000000000000000001291.9999999999 +1292,900000000000000000000000000000000000000000000000000000000000001292.9999999999 +1293,900000000000000000000000000000000000000000000000000000000000001293.9999999999 +1294,900000000000000000000000000000000000000000000000000000000000001294.9999999999 +1295,900000000000000000000000000000000000000000000000000000000000001295.9999999999 +1296,900000000000000000000000000000000000000000000000000000000000001296.9999999999 +1297,900000000000000000000000000000000000000000000000000000000000001297.9999999999 +1298,900000000000000000000000000000000000000000000000000000000000001298.9999999999 +1299,900000000000000000000000000000000000000000000000000000000000001299.9999999999 +1300,900000000000000000000000000000000000000000000000000000000000001300.9999999999 +1301,900000000000000000000000000000000000000000000000000000000000001301.9999999999 +1302,900000000000000000000000000000000000000000000000000000000000001302.9999999999 +1303,900000000000000000000000000000000000000000000000000000000000001303.9999999999 +1304,900000000000000000000000000000000000000000000000000000000000001304.9999999999 +1305,900000000000000000000000000000000000000000000000000000000000001305.9999999999 +1306,900000000000000000000000000000000000000000000000000000000000001306.9999999999 +1307,900000000000000000000000000000000000000000000000000000000000001307.9999999999 +1308,900000000000000000000000000000000000000000000000000000000000001308.9999999999 +1309,900000000000000000000000000000000000000000000000000000000000001309.9999999999 +1310,900000000000000000000000000000000000000000000000000000000000001310.9999999999 +1311,900000000000000000000000000000000000000000000000000000000000001311.9999999999 +1312,900000000000000000000000000000000000000000000000000000000000001312.9999999999 +1313,900000000000000000000000000000000000000000000000000000000000001313.9999999999 +1314,900000000000000000000000000000000000000000000000000000000000001314.9999999999 +1315,900000000000000000000000000000000000000000000000000000000000001315.9999999999 +1316,900000000000000000000000000000000000000000000000000000000000001316.9999999999 +1317,900000000000000000000000000000000000000000000000000000000000001317.9999999999 +1318,900000000000000000000000000000000000000000000000000000000000001318.9999999999 +1319,900000000000000000000000000000000000000000000000000000000000001319.9999999999 +1320,900000000000000000000000000000000000000000000000000000000000001320.9999999999 +1321,900000000000000000000000000000000000000000000000000000000000001321.9999999999 +1322,900000000000000000000000000000000000000000000000000000000000001322.9999999999 +1323,900000000000000000000000000000000000000000000000000000000000001323.9999999999 +1324,900000000000000000000000000000000000000000000000000000000000001324.9999999999 +1325,900000000000000000000000000000000000000000000000000000000000001325.9999999999 +1326,900000000000000000000000000000000000000000000000000000000000001326.9999999999 +1327,900000000000000000000000000000000000000000000000000000000000001327.9999999999 +1328,900000000000000000000000000000000000000000000000000000000000001328.9999999999 +1329,900000000000000000000000000000000000000000000000000000000000001329.9999999999 +1330,900000000000000000000000000000000000000000000000000000000000001330.9999999999 +1331,900000000000000000000000000000000000000000000000000000000000001331.9999999999 +1332,900000000000000000000000000000000000000000000000000000000000001332.9999999999 +1333,900000000000000000000000000000000000000000000000000000000000001333.9999999999 +1334,900000000000000000000000000000000000000000000000000000000000001334.9999999999 +1335,900000000000000000000000000000000000000000000000000000000000001335.9999999999 +1336,900000000000000000000000000000000000000000000000000000000000001336.9999999999 +1337,900000000000000000000000000000000000000000000000000000000000001337.9999999999 +1338,900000000000000000000000000000000000000000000000000000000000001338.9999999999 +1339,900000000000000000000000000000000000000000000000000000000000001339.9999999999 +1340,900000000000000000000000000000000000000000000000000000000000001340.9999999999 +1341,900000000000000000000000000000000000000000000000000000000000001341.9999999999 +1342,900000000000000000000000000000000000000000000000000000000000001342.9999999999 +1343,900000000000000000000000000000000000000000000000000000000000001343.9999999999 +1344,900000000000000000000000000000000000000000000000000000000000001344.9999999999 +1345,900000000000000000000000000000000000000000000000000000000000001345.9999999999 +1346,900000000000000000000000000000000000000000000000000000000000001346.9999999999 +1347,900000000000000000000000000000000000000000000000000000000000001347.9999999999 +1348,900000000000000000000000000000000000000000000000000000000000001348.9999999999 +1349,900000000000000000000000000000000000000000000000000000000000001349.9999999999 +1350,900000000000000000000000000000000000000000000000000000000000001350.9999999999 +1351,900000000000000000000000000000000000000000000000000000000000001351.9999999999 +1352,900000000000000000000000000000000000000000000000000000000000001352.9999999999 +1353,900000000000000000000000000000000000000000000000000000000000001353.9999999999 +1354,900000000000000000000000000000000000000000000000000000000000001354.9999999999 +1355,900000000000000000000000000000000000000000000000000000000000001355.9999999999 +1356,900000000000000000000000000000000000000000000000000000000000001356.9999999999 +1357,900000000000000000000000000000000000000000000000000000000000001357.9999999999 +1358,900000000000000000000000000000000000000000000000000000000000001358.9999999999 +1359,900000000000000000000000000000000000000000000000000000000000001359.9999999999 +1360,900000000000000000000000000000000000000000000000000000000000001360.9999999999 +1361,900000000000000000000000000000000000000000000000000000000000001361.9999999999 +1362,900000000000000000000000000000000000000000000000000000000000001362.9999999999 +1363,900000000000000000000000000000000000000000000000000000000000001363.9999999999 +1364,900000000000000000000000000000000000000000000000000000000000001364.9999999999 +1365,900000000000000000000000000000000000000000000000000000000000001365.9999999999 +1366,900000000000000000000000000000000000000000000000000000000000001366.9999999999 +1367,900000000000000000000000000000000000000000000000000000000000001367.9999999999 +1368,900000000000000000000000000000000000000000000000000000000000001368.9999999999 +1369,900000000000000000000000000000000000000000000000000000000000001369.9999999999 +1370,900000000000000000000000000000000000000000000000000000000000001370.9999999999 +1371,900000000000000000000000000000000000000000000000000000000000001371.9999999999 +1372,900000000000000000000000000000000000000000000000000000000000001372.9999999999 +1373,900000000000000000000000000000000000000000000000000000000000001373.9999999999 +1374,900000000000000000000000000000000000000000000000000000000000001374.9999999999 +1375,900000000000000000000000000000000000000000000000000000000000001375.9999999999 +1376,900000000000000000000000000000000000000000000000000000000000001376.9999999999 +1377,900000000000000000000000000000000000000000000000000000000000001377.9999999999 +1378,900000000000000000000000000000000000000000000000000000000000001378.9999999999 +1379,900000000000000000000000000000000000000000000000000000000000001379.9999999999 +1380,900000000000000000000000000000000000000000000000000000000000001380.9999999999 +1381,900000000000000000000000000000000000000000000000000000000000001381.9999999999 +1382,900000000000000000000000000000000000000000000000000000000000001382.9999999999 +1383,900000000000000000000000000000000000000000000000000000000000001383.9999999999 +1384,900000000000000000000000000000000000000000000000000000000000001384.9999999999 +1385,900000000000000000000000000000000000000000000000000000000000001385.9999999999 +1386,900000000000000000000000000000000000000000000000000000000000001386.9999999999 +1387,900000000000000000000000000000000000000000000000000000000000001387.9999999999 +1388,900000000000000000000000000000000000000000000000000000000000001388.9999999999 +1389,900000000000000000000000000000000000000000000000000000000000001389.9999999999 +1390,900000000000000000000000000000000000000000000000000000000000001390.9999999999 +1391,900000000000000000000000000000000000000000000000000000000000001391.9999999999 +1392,900000000000000000000000000000000000000000000000000000000000001392.9999999999 +1393,900000000000000000000000000000000000000000000000000000000000001393.9999999999 +1394,900000000000000000000000000000000000000000000000000000000000001394.9999999999 +1395,900000000000000000000000000000000000000000000000000000000000001395.9999999999 +1396,900000000000000000000000000000000000000000000000000000000000001396.9999999999 +1397,900000000000000000000000000000000000000000000000000000000000001397.9999999999 +1398,900000000000000000000000000000000000000000000000000000000000001398.9999999999 +1399,900000000000000000000000000000000000000000000000000000000000001399.9999999999 +1400,900000000000000000000000000000000000000000000000000000000000001400.9999999999 +1401,900000000000000000000000000000000000000000000000000000000000001401.9999999999 +1402,900000000000000000000000000000000000000000000000000000000000001402.9999999999 +1403,900000000000000000000000000000000000000000000000000000000000001403.9999999999 +1404,900000000000000000000000000000000000000000000000000000000000001404.9999999999 +1405,900000000000000000000000000000000000000000000000000000000000001405.9999999999 +1406,900000000000000000000000000000000000000000000000000000000000001406.9999999999 +1407,900000000000000000000000000000000000000000000000000000000000001407.9999999999 +1408,900000000000000000000000000000000000000000000000000000000000001408.9999999999 +1409,900000000000000000000000000000000000000000000000000000000000001409.9999999999 +1410,900000000000000000000000000000000000000000000000000000000000001410.9999999999 +1411,900000000000000000000000000000000000000000000000000000000000001411.9999999999 +1412,900000000000000000000000000000000000000000000000000000000000001412.9999999999 +1413,900000000000000000000000000000000000000000000000000000000000001413.9999999999 +1414,900000000000000000000000000000000000000000000000000000000000001414.9999999999 +1415,900000000000000000000000000000000000000000000000000000000000001415.9999999999 +1416,900000000000000000000000000000000000000000000000000000000000001416.9999999999 +1417,900000000000000000000000000000000000000000000000000000000000001417.9999999999 +1418,900000000000000000000000000000000000000000000000000000000000001418.9999999999 +1419,900000000000000000000000000000000000000000000000000000000000001419.9999999999 +1420,900000000000000000000000000000000000000000000000000000000000001420.9999999999 +1421,900000000000000000000000000000000000000000000000000000000000001421.9999999999 +1422,900000000000000000000000000000000000000000000000000000000000001422.9999999999 +1423,900000000000000000000000000000000000000000000000000000000000001423.9999999999 +1424,900000000000000000000000000000000000000000000000000000000000001424.9999999999 +1425,900000000000000000000000000000000000000000000000000000000000001425.9999999999 +1426,900000000000000000000000000000000000000000000000000000000000001426.9999999999 +1427,900000000000000000000000000000000000000000000000000000000000001427.9999999999 +1428,900000000000000000000000000000000000000000000000000000000000001428.9999999999 +1429,900000000000000000000000000000000000000000000000000000000000001429.9999999999 +1430,900000000000000000000000000000000000000000000000000000000000001430.9999999999 +1431,900000000000000000000000000000000000000000000000000000000000001431.9999999999 +1432,900000000000000000000000000000000000000000000000000000000000001432.9999999999 +1433,900000000000000000000000000000000000000000000000000000000000001433.9999999999 +1434,900000000000000000000000000000000000000000000000000000000000001434.9999999999 +1435,900000000000000000000000000000000000000000000000000000000000001435.9999999999 +1436,900000000000000000000000000000000000000000000000000000000000001436.9999999999 +1437,900000000000000000000000000000000000000000000000000000000000001437.9999999999 +1438,900000000000000000000000000000000000000000000000000000000000001438.9999999999 +1439,900000000000000000000000000000000000000000000000000000000000001439.9999999999 +1440,900000000000000000000000000000000000000000000000000000000000001440.9999999999 +1441,900000000000000000000000000000000000000000000000000000000000001441.9999999999 +1442,900000000000000000000000000000000000000000000000000000000000001442.9999999999 +1443,900000000000000000000000000000000000000000000000000000000000001443.9999999999 +1444,900000000000000000000000000000000000000000000000000000000000001444.9999999999 +1445,900000000000000000000000000000000000000000000000000000000000001445.9999999999 +1446,900000000000000000000000000000000000000000000000000000000000001446.9999999999 +1447,900000000000000000000000000000000000000000000000000000000000001447.9999999999 +1448,900000000000000000000000000000000000000000000000000000000000001448.9999999999 +1449,900000000000000000000000000000000000000000000000000000000000001449.9999999999 +1450,900000000000000000000000000000000000000000000000000000000000001450.9999999999 +1451,900000000000000000000000000000000000000000000000000000000000001451.9999999999 +1452,900000000000000000000000000000000000000000000000000000000000001452.9999999999 +1453,900000000000000000000000000000000000000000000000000000000000001453.9999999999 +1454,900000000000000000000000000000000000000000000000000000000000001454.9999999999 +1455,900000000000000000000000000000000000000000000000000000000000001455.9999999999 +1456,900000000000000000000000000000000000000000000000000000000000001456.9999999999 +1457,900000000000000000000000000000000000000000000000000000000000001457.9999999999 +1458,900000000000000000000000000000000000000000000000000000000000001458.9999999999 +1459,900000000000000000000000000000000000000000000000000000000000001459.9999999999 +1460,900000000000000000000000000000000000000000000000000000000000001460.9999999999 +1461,900000000000000000000000000000000000000000000000000000000000001461.9999999999 +1462,900000000000000000000000000000000000000000000000000000000000001462.9999999999 +1463,900000000000000000000000000000000000000000000000000000000000001463.9999999999 +1464,900000000000000000000000000000000000000000000000000000000000001464.9999999999 +1465,900000000000000000000000000000000000000000000000000000000000001465.9999999999 +1466,900000000000000000000000000000000000000000000000000000000000001466.9999999999 +1467,900000000000000000000000000000000000000000000000000000000000001467.9999999999 +1468,900000000000000000000000000000000000000000000000000000000000001468.9999999999 +1469,900000000000000000000000000000000000000000000000000000000000001469.9999999999 +1470,900000000000000000000000000000000000000000000000000000000000001470.9999999999 +1471,900000000000000000000000000000000000000000000000000000000000001471.9999999999 +1472,900000000000000000000000000000000000000000000000000000000000001472.9999999999 +1473,900000000000000000000000000000000000000000000000000000000000001473.9999999999 +1474,900000000000000000000000000000000000000000000000000000000000001474.9999999999 +1475,900000000000000000000000000000000000000000000000000000000000001475.9999999999 +1476,900000000000000000000000000000000000000000000000000000000000001476.9999999999 +1477,900000000000000000000000000000000000000000000000000000000000001477.9999999999 +1478,900000000000000000000000000000000000000000000000000000000000001478.9999999999 +1479,900000000000000000000000000000000000000000000000000000000000001479.9999999999 +1480,900000000000000000000000000000000000000000000000000000000000001480.9999999999 +1481,900000000000000000000000000000000000000000000000000000000000001481.9999999999 +1482,900000000000000000000000000000000000000000000000000000000000001482.9999999999 +1483,900000000000000000000000000000000000000000000000000000000000001483.9999999999 +1484,900000000000000000000000000000000000000000000000000000000000001484.9999999999 +1485,900000000000000000000000000000000000000000000000000000000000001485.9999999999 +1486,900000000000000000000000000000000000000000000000000000000000001486.9999999999 +1487,900000000000000000000000000000000000000000000000000000000000001487.9999999999 +1488,900000000000000000000000000000000000000000000000000000000000001488.9999999999 +1489,900000000000000000000000000000000000000000000000000000000000001489.9999999999 +1490,900000000000000000000000000000000000000000000000000000000000001490.9999999999 +1491,900000000000000000000000000000000000000000000000000000000000001491.9999999999 +1492,900000000000000000000000000000000000000000000000000000000000001492.9999999999 +1493,900000000000000000000000000000000000000000000000000000000000001493.9999999999 +1494,900000000000000000000000000000000000000000000000000000000000001494.9999999999 +1495,900000000000000000000000000000000000000000000000000000000000001495.9999999999 +1496,900000000000000000000000000000000000000000000000000000000000001496.9999999999 +1497,900000000000000000000000000000000000000000000000000000000000001497.9999999999 +1498,900000000000000000000000000000000000000000000000000000000000001498.9999999999 +1499,900000000000000000000000000000000000000000000000000000000000001499.9999999999 +1500,900000000000000000000000000000000000000000000000000000000000001500.9999999999 +1501,900000000000000000000000000000000000000000000000000000000000001501.9999999999 +1502,900000000000000000000000000000000000000000000000000000000000001502.9999999999 +1503,900000000000000000000000000000000000000000000000000000000000001503.9999999999 +1504,900000000000000000000000000000000000000000000000000000000000001504.9999999999 +1505,900000000000000000000000000000000000000000000000000000000000001505.9999999999 +1506,900000000000000000000000000000000000000000000000000000000000001506.9999999999 +1507,900000000000000000000000000000000000000000000000000000000000001507.9999999999 +1508,900000000000000000000000000000000000000000000000000000000000001508.9999999999 +1509,900000000000000000000000000000000000000000000000000000000000001509.9999999999 +1510,900000000000000000000000000000000000000000000000000000000000001510.9999999999 +1511,900000000000000000000000000000000000000000000000000000000000001511.9999999999 +1512,900000000000000000000000000000000000000000000000000000000000001512.9999999999 +1513,900000000000000000000000000000000000000000000000000000000000001513.9999999999 +1514,900000000000000000000000000000000000000000000000000000000000001514.9999999999 +1515,900000000000000000000000000000000000000000000000000000000000001515.9999999999 +1516,900000000000000000000000000000000000000000000000000000000000001516.9999999999 +1517,900000000000000000000000000000000000000000000000000000000000001517.9999999999 +1518,900000000000000000000000000000000000000000000000000000000000001518.9999999999 +1519,900000000000000000000000000000000000000000000000000000000000001519.9999999999 +1520,900000000000000000000000000000000000000000000000000000000000001520.9999999999 +1521,900000000000000000000000000000000000000000000000000000000000001521.9999999999 +1522,900000000000000000000000000000000000000000000000000000000000001522.9999999999 +1523,900000000000000000000000000000000000000000000000000000000000001523.9999999999 +1524,900000000000000000000000000000000000000000000000000000000000001524.9999999999 +1525,900000000000000000000000000000000000000000000000000000000000001525.9999999999 +1526,900000000000000000000000000000000000000000000000000000000000001526.9999999999 +1527,900000000000000000000000000000000000000000000000000000000000001527.9999999999 +1528,900000000000000000000000000000000000000000000000000000000000001528.9999999999 +1529,900000000000000000000000000000000000000000000000000000000000001529.9999999999 +1530,900000000000000000000000000000000000000000000000000000000000001530.9999999999 +1531,900000000000000000000000000000000000000000000000000000000000001531.9999999999 +1532,900000000000000000000000000000000000000000000000000000000000001532.9999999999 +1533,900000000000000000000000000000000000000000000000000000000000001533.9999999999 +1534,900000000000000000000000000000000000000000000000000000000000001534.9999999999 +1535,900000000000000000000000000000000000000000000000000000000000001535.9999999999 +1536,900000000000000000000000000000000000000000000000000000000000001536.9999999999 +1537,900000000000000000000000000000000000000000000000000000000000001537.9999999999 +1538,900000000000000000000000000000000000000000000000000000000000001538.9999999999 +1539,900000000000000000000000000000000000000000000000000000000000001539.9999999999 +1540,900000000000000000000000000000000000000000000000000000000000001540.9999999999 +1541,900000000000000000000000000000000000000000000000000000000000001541.9999999999 +1542,900000000000000000000000000000000000000000000000000000000000001542.9999999999 +1543,900000000000000000000000000000000000000000000000000000000000001543.9999999999 +1544,900000000000000000000000000000000000000000000000000000000000001544.9999999999 +1545,900000000000000000000000000000000000000000000000000000000000001545.9999999999 +1546,900000000000000000000000000000000000000000000000000000000000001546.9999999999 +1547,900000000000000000000000000000000000000000000000000000000000001547.9999999999 +1548,900000000000000000000000000000000000000000000000000000000000001548.9999999999 +1549,900000000000000000000000000000000000000000000000000000000000001549.9999999999 +1550,900000000000000000000000000000000000000000000000000000000000001550.9999999999 +1551,900000000000000000000000000000000000000000000000000000000000001551.9999999999 +1552,900000000000000000000000000000000000000000000000000000000000001552.9999999999 +1553,900000000000000000000000000000000000000000000000000000000000001553.9999999999 +1554,900000000000000000000000000000000000000000000000000000000000001554.9999999999 +1555,900000000000000000000000000000000000000000000000000000000000001555.9999999999 +1556,900000000000000000000000000000000000000000000000000000000000001556.9999999999 +1557,900000000000000000000000000000000000000000000000000000000000001557.9999999999 +1558,900000000000000000000000000000000000000000000000000000000000001558.9999999999 +1559,900000000000000000000000000000000000000000000000000000000000001559.9999999999 +1560,900000000000000000000000000000000000000000000000000000000000001560.9999999999 +1561,900000000000000000000000000000000000000000000000000000000000001561.9999999999 +1562,900000000000000000000000000000000000000000000000000000000000001562.9999999999 +1563,900000000000000000000000000000000000000000000000000000000000001563.9999999999 +1564,900000000000000000000000000000000000000000000000000000000000001564.9999999999 +1565,900000000000000000000000000000000000000000000000000000000000001565.9999999999 +1566,900000000000000000000000000000000000000000000000000000000000001566.9999999999 +1567,900000000000000000000000000000000000000000000000000000000000001567.9999999999 +1568,900000000000000000000000000000000000000000000000000000000000001568.9999999999 +1569,900000000000000000000000000000000000000000000000000000000000001569.9999999999 +1570,900000000000000000000000000000000000000000000000000000000000001570.9999999999 +1571,900000000000000000000000000000000000000000000000000000000000001571.9999999999 +1572,900000000000000000000000000000000000000000000000000000000000001572.9999999999 +1573,900000000000000000000000000000000000000000000000000000000000001573.9999999999 +1574,900000000000000000000000000000000000000000000000000000000000001574.9999999999 +1575,900000000000000000000000000000000000000000000000000000000000001575.9999999999 +1576,900000000000000000000000000000000000000000000000000000000000001576.9999999999 +1577,900000000000000000000000000000000000000000000000000000000000001577.9999999999 +1578,900000000000000000000000000000000000000000000000000000000000001578.9999999999 +1579,900000000000000000000000000000000000000000000000000000000000001579.9999999999 +1580,900000000000000000000000000000000000000000000000000000000000001580.9999999999 +1581,900000000000000000000000000000000000000000000000000000000000001581.9999999999 +1582,900000000000000000000000000000000000000000000000000000000000001582.9999999999 +1583,900000000000000000000000000000000000000000000000000000000000001583.9999999999 +1584,900000000000000000000000000000000000000000000000000000000000001584.9999999999 +1585,900000000000000000000000000000000000000000000000000000000000001585.9999999999 +1586,900000000000000000000000000000000000000000000000000000000000001586.9999999999 +1587,900000000000000000000000000000000000000000000000000000000000001587.9999999999 +1588,900000000000000000000000000000000000000000000000000000000000001588.9999999999 +1589,900000000000000000000000000000000000000000000000000000000000001589.9999999999 +1590,900000000000000000000000000000000000000000000000000000000000001590.9999999999 +1591,900000000000000000000000000000000000000000000000000000000000001591.9999999999 +1592,900000000000000000000000000000000000000000000000000000000000001592.9999999999 +1593,900000000000000000000000000000000000000000000000000000000000001593.9999999999 +1594,900000000000000000000000000000000000000000000000000000000000001594.9999999999 +1595,900000000000000000000000000000000000000000000000000000000000001595.9999999999 +1596,900000000000000000000000000000000000000000000000000000000000001596.9999999999 +1597,900000000000000000000000000000000000000000000000000000000000001597.9999999999 +1598,900000000000000000000000000000000000000000000000000000000000001598.9999999999 +1599,900000000000000000000000000000000000000000000000000000000000001599.9999999999 +1600,900000000000000000000000000000000000000000000000000000000000001600.9999999999 +1601,900000000000000000000000000000000000000000000000000000000000001601.9999999999 +1602,900000000000000000000000000000000000000000000000000000000000001602.9999999999 +1603,900000000000000000000000000000000000000000000000000000000000001603.9999999999 +1604,900000000000000000000000000000000000000000000000000000000000001604.9999999999 +1605,900000000000000000000000000000000000000000000000000000000000001605.9999999999 +1606,900000000000000000000000000000000000000000000000000000000000001606.9999999999 +1607,900000000000000000000000000000000000000000000000000000000000001607.9999999999 +1608,900000000000000000000000000000000000000000000000000000000000001608.9999999999 +1609,900000000000000000000000000000000000000000000000000000000000001609.9999999999 +1610,900000000000000000000000000000000000000000000000000000000000001610.9999999999 +1611,900000000000000000000000000000000000000000000000000000000000001611.9999999999 +1612,900000000000000000000000000000000000000000000000000000000000001612.9999999999 +1613,900000000000000000000000000000000000000000000000000000000000001613.9999999999 +1614,900000000000000000000000000000000000000000000000000000000000001614.9999999999 +1615,900000000000000000000000000000000000000000000000000000000000001615.9999999999 +1616,900000000000000000000000000000000000000000000000000000000000001616.9999999999 +1617,900000000000000000000000000000000000000000000000000000000000001617.9999999999 +1618,900000000000000000000000000000000000000000000000000000000000001618.9999999999 +1619,900000000000000000000000000000000000000000000000000000000000001619.9999999999 +1620,900000000000000000000000000000000000000000000000000000000000001620.9999999999 +1621,900000000000000000000000000000000000000000000000000000000000001621.9999999999 +1622,900000000000000000000000000000000000000000000000000000000000001622.9999999999 +1623,900000000000000000000000000000000000000000000000000000000000001623.9999999999 +1624,900000000000000000000000000000000000000000000000000000000000001624.9999999999 +1625,900000000000000000000000000000000000000000000000000000000000001625.9999999999 +1626,900000000000000000000000000000000000000000000000000000000000001626.9999999999 +1627,900000000000000000000000000000000000000000000000000000000000001627.9999999999 +1628,900000000000000000000000000000000000000000000000000000000000001628.9999999999 +1629,900000000000000000000000000000000000000000000000000000000000001629.9999999999 +1630,900000000000000000000000000000000000000000000000000000000000001630.9999999999 +1631,900000000000000000000000000000000000000000000000000000000000001631.9999999999 +1632,900000000000000000000000000000000000000000000000000000000000001632.9999999999 +1633,900000000000000000000000000000000000000000000000000000000000001633.9999999999 +1634,900000000000000000000000000000000000000000000000000000000000001634.9999999999 +1635,900000000000000000000000000000000000000000000000000000000000001635.9999999999 +1636,900000000000000000000000000000000000000000000000000000000000001636.9999999999 +1637,900000000000000000000000000000000000000000000000000000000000001637.9999999999 +1638,900000000000000000000000000000000000000000000000000000000000001638.9999999999 +1639,900000000000000000000000000000000000000000000000000000000000001639.9999999999 +1640,900000000000000000000000000000000000000000000000000000000000001640.9999999999 +1641,900000000000000000000000000000000000000000000000000000000000001641.9999999999 +1642,900000000000000000000000000000000000000000000000000000000000001642.9999999999 +1643,900000000000000000000000000000000000000000000000000000000000001643.9999999999 +1644,900000000000000000000000000000000000000000000000000000000000001644.9999999999 +1645,900000000000000000000000000000000000000000000000000000000000001645.9999999999 +1646,900000000000000000000000000000000000000000000000000000000000001646.9999999999 +1647,900000000000000000000000000000000000000000000000000000000000001647.9999999999 +1648,900000000000000000000000000000000000000000000000000000000000001648.9999999999 +1649,900000000000000000000000000000000000000000000000000000000000001649.9999999999 +1650,900000000000000000000000000000000000000000000000000000000000001650.9999999999 +1651,900000000000000000000000000000000000000000000000000000000000001651.9999999999 +1652,900000000000000000000000000000000000000000000000000000000000001652.9999999999 +1653,900000000000000000000000000000000000000000000000000000000000001653.9999999999 +1654,900000000000000000000000000000000000000000000000000000000000001654.9999999999 +1655,900000000000000000000000000000000000000000000000000000000000001655.9999999999 +1656,900000000000000000000000000000000000000000000000000000000000001656.9999999999 +1657,900000000000000000000000000000000000000000000000000000000000001657.9999999999 +1658,900000000000000000000000000000000000000000000000000000000000001658.9999999999 +1659,900000000000000000000000000000000000000000000000000000000000001659.9999999999 +1660,900000000000000000000000000000000000000000000000000000000000001660.9999999999 +1661,900000000000000000000000000000000000000000000000000000000000001661.9999999999 +1662,900000000000000000000000000000000000000000000000000000000000001662.9999999999 +1663,900000000000000000000000000000000000000000000000000000000000001663.9999999999 +1664,900000000000000000000000000000000000000000000000000000000000001664.9999999999 +1665,900000000000000000000000000000000000000000000000000000000000001665.9999999999 +1666,900000000000000000000000000000000000000000000000000000000000001666.9999999999 +1667,900000000000000000000000000000000000000000000000000000000000001667.9999999999 +1668,900000000000000000000000000000000000000000000000000000000000001668.9999999999 +1669,900000000000000000000000000000000000000000000000000000000000001669.9999999999 +1670,900000000000000000000000000000000000000000000000000000000000001670.9999999999 +1671,900000000000000000000000000000000000000000000000000000000000001671.9999999999 +1672,900000000000000000000000000000000000000000000000000000000000001672.9999999999 +1673,900000000000000000000000000000000000000000000000000000000000001673.9999999999 +1674,900000000000000000000000000000000000000000000000000000000000001674.9999999999 +1675,900000000000000000000000000000000000000000000000000000000000001675.9999999999 +1676,900000000000000000000000000000000000000000000000000000000000001676.9999999999 +1677,900000000000000000000000000000000000000000000000000000000000001677.9999999999 +1678,900000000000000000000000000000000000000000000000000000000000001678.9999999999 +1679,900000000000000000000000000000000000000000000000000000000000001679.9999999999 +1680,900000000000000000000000000000000000000000000000000000000000001680.9999999999 +1681,900000000000000000000000000000000000000000000000000000000000001681.9999999999 +1682,900000000000000000000000000000000000000000000000000000000000001682.9999999999 +1683,900000000000000000000000000000000000000000000000000000000000001683.9999999999 +1684,900000000000000000000000000000000000000000000000000000000000001684.9999999999 +1685,900000000000000000000000000000000000000000000000000000000000001685.9999999999 +1686,900000000000000000000000000000000000000000000000000000000000001686.9999999999 +1687,900000000000000000000000000000000000000000000000000000000000001687.9999999999 +1688,900000000000000000000000000000000000000000000000000000000000001688.9999999999 +1689,900000000000000000000000000000000000000000000000000000000000001689.9999999999 +1690,900000000000000000000000000000000000000000000000000000000000001690.9999999999 +1691,900000000000000000000000000000000000000000000000000000000000001691.9999999999 +1692,900000000000000000000000000000000000000000000000000000000000001692.9999999999 +1693,900000000000000000000000000000000000000000000000000000000000001693.9999999999 +1694,900000000000000000000000000000000000000000000000000000000000001694.9999999999 +1695,900000000000000000000000000000000000000000000000000000000000001695.9999999999 +1696,900000000000000000000000000000000000000000000000000000000000001696.9999999999 +1697,900000000000000000000000000000000000000000000000000000000000001697.9999999999 +1698,900000000000000000000000000000000000000000000000000000000000001698.9999999999 +1699,900000000000000000000000000000000000000000000000000000000000001699.9999999999 +1700,900000000000000000000000000000000000000000000000000000000000001700.9999999999 +1701,900000000000000000000000000000000000000000000000000000000000001701.9999999999 +1702,900000000000000000000000000000000000000000000000000000000000001702.9999999999 +1703,900000000000000000000000000000000000000000000000000000000000001703.9999999999 +1704,900000000000000000000000000000000000000000000000000000000000001704.9999999999 +1705,900000000000000000000000000000000000000000000000000000000000001705.9999999999 +1706,900000000000000000000000000000000000000000000000000000000000001706.9999999999 +1707,900000000000000000000000000000000000000000000000000000000000001707.9999999999 +1708,900000000000000000000000000000000000000000000000000000000000001708.9999999999 +1709,900000000000000000000000000000000000000000000000000000000000001709.9999999999 +1710,900000000000000000000000000000000000000000000000000000000000001710.9999999999 +1711,900000000000000000000000000000000000000000000000000000000000001711.9999999999 +1712,900000000000000000000000000000000000000000000000000000000000001712.9999999999 +1713,900000000000000000000000000000000000000000000000000000000000001713.9999999999 +1714,900000000000000000000000000000000000000000000000000000000000001714.9999999999 +1715,900000000000000000000000000000000000000000000000000000000000001715.9999999999 +1716,900000000000000000000000000000000000000000000000000000000000001716.9999999999 +1717,900000000000000000000000000000000000000000000000000000000000001717.9999999999 +1718,900000000000000000000000000000000000000000000000000000000000001718.9999999999 +1719,900000000000000000000000000000000000000000000000000000000000001719.9999999999 +1720,900000000000000000000000000000000000000000000000000000000000001720.9999999999 +1721,900000000000000000000000000000000000000000000000000000000000001721.9999999999 +1722,900000000000000000000000000000000000000000000000000000000000001722.9999999999 +1723,900000000000000000000000000000000000000000000000000000000000001723.9999999999 +1724,900000000000000000000000000000000000000000000000000000000000001724.9999999999 +1725,900000000000000000000000000000000000000000000000000000000000001725.9999999999 +1726,900000000000000000000000000000000000000000000000000000000000001726.9999999999 +1727,900000000000000000000000000000000000000000000000000000000000001727.9999999999 +1728,900000000000000000000000000000000000000000000000000000000000001728.9999999999 +1729,900000000000000000000000000000000000000000000000000000000000001729.9999999999 +1730,900000000000000000000000000000000000000000000000000000000000001730.9999999999 +1731,900000000000000000000000000000000000000000000000000000000000001731.9999999999 +1732,900000000000000000000000000000000000000000000000000000000000001732.9999999999 +1733,900000000000000000000000000000000000000000000000000000000000001733.9999999999 +1734,900000000000000000000000000000000000000000000000000000000000001734.9999999999 +1735,900000000000000000000000000000000000000000000000000000000000001735.9999999999 +1736,900000000000000000000000000000000000000000000000000000000000001736.9999999999 +1737,900000000000000000000000000000000000000000000000000000000000001737.9999999999 +1738,900000000000000000000000000000000000000000000000000000000000001738.9999999999 +1739,900000000000000000000000000000000000000000000000000000000000001739.9999999999 +1740,900000000000000000000000000000000000000000000000000000000000001740.9999999999 +1741,900000000000000000000000000000000000000000000000000000000000001741.9999999999 +1742,900000000000000000000000000000000000000000000000000000000000001742.9999999999 +1743,900000000000000000000000000000000000000000000000000000000000001743.9999999999 +1744,900000000000000000000000000000000000000000000000000000000000001744.9999999999 +1745,900000000000000000000000000000000000000000000000000000000000001745.9999999999 +1746,900000000000000000000000000000000000000000000000000000000000001746.9999999999 +1747,900000000000000000000000000000000000000000000000000000000000001747.9999999999 +1748,900000000000000000000000000000000000000000000000000000000000001748.9999999999 +1749,900000000000000000000000000000000000000000000000000000000000001749.9999999999 +1750,900000000000000000000000000000000000000000000000000000000000001750.9999999999 +1751,900000000000000000000000000000000000000000000000000000000000001751.9999999999 +1752,900000000000000000000000000000000000000000000000000000000000001752.9999999999 +1753,900000000000000000000000000000000000000000000000000000000000001753.9999999999 +1754,900000000000000000000000000000000000000000000000000000000000001754.9999999999 +1755,900000000000000000000000000000000000000000000000000000000000001755.9999999999 +1756,900000000000000000000000000000000000000000000000000000000000001756.9999999999 +1757,900000000000000000000000000000000000000000000000000000000000001757.9999999999 +1758,900000000000000000000000000000000000000000000000000000000000001758.9999999999 +1759,900000000000000000000000000000000000000000000000000000000000001759.9999999999 +1760,900000000000000000000000000000000000000000000000000000000000001760.9999999999 +1761,900000000000000000000000000000000000000000000000000000000000001761.9999999999 +1762,900000000000000000000000000000000000000000000000000000000000001762.9999999999 +1763,900000000000000000000000000000000000000000000000000000000000001763.9999999999 +1764,900000000000000000000000000000000000000000000000000000000000001764.9999999999 +1765,900000000000000000000000000000000000000000000000000000000000001765.9999999999 +1766,900000000000000000000000000000000000000000000000000000000000001766.9999999999 +1767,900000000000000000000000000000000000000000000000000000000000001767.9999999999 +1768,900000000000000000000000000000000000000000000000000000000000001768.9999999999 +1769,900000000000000000000000000000000000000000000000000000000000001769.9999999999 +1770,900000000000000000000000000000000000000000000000000000000000001770.9999999999 +1771,900000000000000000000000000000000000000000000000000000000000001771.9999999999 +1772,900000000000000000000000000000000000000000000000000000000000001772.9999999999 +1773,900000000000000000000000000000000000000000000000000000000000001773.9999999999 +1774,900000000000000000000000000000000000000000000000000000000000001774.9999999999 +1775,900000000000000000000000000000000000000000000000000000000000001775.9999999999 +1776,900000000000000000000000000000000000000000000000000000000000001776.9999999999 +1777,900000000000000000000000000000000000000000000000000000000000001777.9999999999 +1778,900000000000000000000000000000000000000000000000000000000000001778.9999999999 +1779,900000000000000000000000000000000000000000000000000000000000001779.9999999999 +1780,900000000000000000000000000000000000000000000000000000000000001780.9999999999 +1781,900000000000000000000000000000000000000000000000000000000000001781.9999999999 +1782,900000000000000000000000000000000000000000000000000000000000001782.9999999999 +1783,900000000000000000000000000000000000000000000000000000000000001783.9999999999 +1784,900000000000000000000000000000000000000000000000000000000000001784.9999999999 +1785,900000000000000000000000000000000000000000000000000000000000001785.9999999999 +1786,900000000000000000000000000000000000000000000000000000000000001786.9999999999 +1787,900000000000000000000000000000000000000000000000000000000000001787.9999999999 +1788,900000000000000000000000000000000000000000000000000000000000001788.9999999999 +1789,900000000000000000000000000000000000000000000000000000000000001789.9999999999 +1790,900000000000000000000000000000000000000000000000000000000000001790.9999999999 +1791,900000000000000000000000000000000000000000000000000000000000001791.9999999999 +1792,900000000000000000000000000000000000000000000000000000000000001792.9999999999 +1793,900000000000000000000000000000000000000000000000000000000000001793.9999999999 +1794,900000000000000000000000000000000000000000000000000000000000001794.9999999999 +1795,900000000000000000000000000000000000000000000000000000000000001795.9999999999 +1796,900000000000000000000000000000000000000000000000000000000000001796.9999999999 +1797,900000000000000000000000000000000000000000000000000000000000001797.9999999999 +1798,900000000000000000000000000000000000000000000000000000000000001798.9999999999 +1799,900000000000000000000000000000000000000000000000000000000000001799.9999999999 +1800,900000000000000000000000000000000000000000000000000000000000001800.9999999999 +1801,900000000000000000000000000000000000000000000000000000000000001801.9999999999 +1802,900000000000000000000000000000000000000000000000000000000000001802.9999999999 +1803,900000000000000000000000000000000000000000000000000000000000001803.9999999999 +1804,900000000000000000000000000000000000000000000000000000000000001804.9999999999 +1805,900000000000000000000000000000000000000000000000000000000000001805.9999999999 +1806,900000000000000000000000000000000000000000000000000000000000001806.9999999999 +1807,900000000000000000000000000000000000000000000000000000000000001807.9999999999 +1808,900000000000000000000000000000000000000000000000000000000000001808.9999999999 +1809,900000000000000000000000000000000000000000000000000000000000001809.9999999999 +1810,900000000000000000000000000000000000000000000000000000000000001810.9999999999 +1811,900000000000000000000000000000000000000000000000000000000000001811.9999999999 +1812,900000000000000000000000000000000000000000000000000000000000001812.9999999999 +1813,900000000000000000000000000000000000000000000000000000000000001813.9999999999 +1814,900000000000000000000000000000000000000000000000000000000000001814.9999999999 +1815,900000000000000000000000000000000000000000000000000000000000001815.9999999999 +1816,900000000000000000000000000000000000000000000000000000000000001816.9999999999 +1817,900000000000000000000000000000000000000000000000000000000000001817.9999999999 +1818,900000000000000000000000000000000000000000000000000000000000001818.9999999999 +1819,900000000000000000000000000000000000000000000000000000000000001819.9999999999 +1820,900000000000000000000000000000000000000000000000000000000000001820.9999999999 +1821,900000000000000000000000000000000000000000000000000000000000001821.9999999999 +1822,900000000000000000000000000000000000000000000000000000000000001822.9999999999 +1823,900000000000000000000000000000000000000000000000000000000000001823.9999999999 +1824,900000000000000000000000000000000000000000000000000000000000001824.9999999999 +1825,900000000000000000000000000000000000000000000000000000000000001825.9999999999 +1826,900000000000000000000000000000000000000000000000000000000000001826.9999999999 +1827,900000000000000000000000000000000000000000000000000000000000001827.9999999999 +1828,900000000000000000000000000000000000000000000000000000000000001828.9999999999 +1829,900000000000000000000000000000000000000000000000000000000000001829.9999999999 +1830,900000000000000000000000000000000000000000000000000000000000001830.9999999999 +1831,900000000000000000000000000000000000000000000000000000000000001831.9999999999 +1832,900000000000000000000000000000000000000000000000000000000000001832.9999999999 +1833,900000000000000000000000000000000000000000000000000000000000001833.9999999999 +1834,900000000000000000000000000000000000000000000000000000000000001834.9999999999 +1835,900000000000000000000000000000000000000000000000000000000000001835.9999999999 +1836,900000000000000000000000000000000000000000000000000000000000001836.9999999999 +1837,900000000000000000000000000000000000000000000000000000000000001837.9999999999 +1838,900000000000000000000000000000000000000000000000000000000000001838.9999999999 +1839,900000000000000000000000000000000000000000000000000000000000001839.9999999999 +1840,900000000000000000000000000000000000000000000000000000000000001840.9999999999 +1841,900000000000000000000000000000000000000000000000000000000000001841.9999999999 +1842,900000000000000000000000000000000000000000000000000000000000001842.9999999999 +1843,900000000000000000000000000000000000000000000000000000000000001843.9999999999 +1844,900000000000000000000000000000000000000000000000000000000000001844.9999999999 +1845,900000000000000000000000000000000000000000000000000000000000001845.9999999999 +1846,900000000000000000000000000000000000000000000000000000000000001846.9999999999 +1847,900000000000000000000000000000000000000000000000000000000000001847.9999999999 +1848,900000000000000000000000000000000000000000000000000000000000001848.9999999999 +1849,900000000000000000000000000000000000000000000000000000000000001849.9999999999 +1850,900000000000000000000000000000000000000000000000000000000000001850.9999999999 +1851,900000000000000000000000000000000000000000000000000000000000001851.9999999999 +1852,900000000000000000000000000000000000000000000000000000000000001852.9999999999 +1853,900000000000000000000000000000000000000000000000000000000000001853.9999999999 +1854,900000000000000000000000000000000000000000000000000000000000001854.9999999999 +1855,900000000000000000000000000000000000000000000000000000000000001855.9999999999 +1856,900000000000000000000000000000000000000000000000000000000000001856.9999999999 +1857,900000000000000000000000000000000000000000000000000000000000001857.9999999999 +1858,900000000000000000000000000000000000000000000000000000000000001858.9999999999 +1859,900000000000000000000000000000000000000000000000000000000000001859.9999999999 +1860,900000000000000000000000000000000000000000000000000000000000001860.9999999999 +1861,900000000000000000000000000000000000000000000000000000000000001861.9999999999 +1862,900000000000000000000000000000000000000000000000000000000000001862.9999999999 +1863,900000000000000000000000000000000000000000000000000000000000001863.9999999999 +1864,900000000000000000000000000000000000000000000000000000000000001864.9999999999 +1865,900000000000000000000000000000000000000000000000000000000000001865.9999999999 +1866,900000000000000000000000000000000000000000000000000000000000001866.9999999999 +1867,900000000000000000000000000000000000000000000000000000000000001867.9999999999 +1868,900000000000000000000000000000000000000000000000000000000000001868.9999999999 +1869,900000000000000000000000000000000000000000000000000000000000001869.9999999999 +1870,900000000000000000000000000000000000000000000000000000000000001870.9999999999 +1871,900000000000000000000000000000000000000000000000000000000000001871.9999999999 +1872,900000000000000000000000000000000000000000000000000000000000001872.9999999999 +1873,900000000000000000000000000000000000000000000000000000000000001873.9999999999 +1874,900000000000000000000000000000000000000000000000000000000000001874.9999999999 +1875,900000000000000000000000000000000000000000000000000000000000001875.9999999999 +1876,900000000000000000000000000000000000000000000000000000000000001876.9999999999 +1877,900000000000000000000000000000000000000000000000000000000000001877.9999999999 +1878,900000000000000000000000000000000000000000000000000000000000001878.9999999999 +1879,900000000000000000000000000000000000000000000000000000000000001879.9999999999 +1880,900000000000000000000000000000000000000000000000000000000000001880.9999999999 +1881,900000000000000000000000000000000000000000000000000000000000001881.9999999999 +1882,900000000000000000000000000000000000000000000000000000000000001882.9999999999 +1883,900000000000000000000000000000000000000000000000000000000000001883.9999999999 +1884,900000000000000000000000000000000000000000000000000000000000001884.9999999999 +1885,900000000000000000000000000000000000000000000000000000000000001885.9999999999 +1886,900000000000000000000000000000000000000000000000000000000000001886.9999999999 +1887,900000000000000000000000000000000000000000000000000000000000001887.9999999999 +1888,900000000000000000000000000000000000000000000000000000000000001888.9999999999 +1889,900000000000000000000000000000000000000000000000000000000000001889.9999999999 +1890,900000000000000000000000000000000000000000000000000000000000001890.9999999999 +1891,900000000000000000000000000000000000000000000000000000000000001891.9999999999 +1892,900000000000000000000000000000000000000000000000000000000000001892.9999999999 +1893,900000000000000000000000000000000000000000000000000000000000001893.9999999999 +1894,900000000000000000000000000000000000000000000000000000000000001894.9999999999 +1895,900000000000000000000000000000000000000000000000000000000000001895.9999999999 +1896,900000000000000000000000000000000000000000000000000000000000001896.9999999999 +1897,900000000000000000000000000000000000000000000000000000000000001897.9999999999 +1898,900000000000000000000000000000000000000000000000000000000000001898.9999999999 +1899,900000000000000000000000000000000000000000000000000000000000001899.9999999999 +1900,900000000000000000000000000000000000000000000000000000000000001900.9999999999 +1901,900000000000000000000000000000000000000000000000000000000000001901.9999999999 +1902,900000000000000000000000000000000000000000000000000000000000001902.9999999999 +1903,900000000000000000000000000000000000000000000000000000000000001903.9999999999 +1904,900000000000000000000000000000000000000000000000000000000000001904.9999999999 +1905,900000000000000000000000000000000000000000000000000000000000001905.9999999999 +1906,900000000000000000000000000000000000000000000000000000000000001906.9999999999 +1907,900000000000000000000000000000000000000000000000000000000000001907.9999999999 +1908,900000000000000000000000000000000000000000000000000000000000001908.9999999999 +1909,900000000000000000000000000000000000000000000000000000000000001909.9999999999 +1910,900000000000000000000000000000000000000000000000000000000000001910.9999999999 +1911,900000000000000000000000000000000000000000000000000000000000001911.9999999999 +1912,900000000000000000000000000000000000000000000000000000000000001912.9999999999 +1913,900000000000000000000000000000000000000000000000000000000000001913.9999999999 +1914,900000000000000000000000000000000000000000000000000000000000001914.9999999999 +1915,900000000000000000000000000000000000000000000000000000000000001915.9999999999 +1916,900000000000000000000000000000000000000000000000000000000000001916.9999999999 +1917,900000000000000000000000000000000000000000000000000000000000001917.9999999999 +1918,900000000000000000000000000000000000000000000000000000000000001918.9999999999 +1919,900000000000000000000000000000000000000000000000000000000000001919.9999999999 +1920,900000000000000000000000000000000000000000000000000000000000001920.9999999999 +1921,900000000000000000000000000000000000000000000000000000000000001921.9999999999 +1922,900000000000000000000000000000000000000000000000000000000000001922.9999999999 +1923,900000000000000000000000000000000000000000000000000000000000001923.9999999999 +1924,900000000000000000000000000000000000000000000000000000000000001924.9999999999 +1925,900000000000000000000000000000000000000000000000000000000000001925.9999999999 +1926,900000000000000000000000000000000000000000000000000000000000001926.9999999999 +1927,900000000000000000000000000000000000000000000000000000000000001927.9999999999 +1928,900000000000000000000000000000000000000000000000000000000000001928.9999999999 +1929,900000000000000000000000000000000000000000000000000000000000001929.9999999999 +1930,900000000000000000000000000000000000000000000000000000000000001930.9999999999 +1931,900000000000000000000000000000000000000000000000000000000000001931.9999999999 +1932,900000000000000000000000000000000000000000000000000000000000001932.9999999999 +1933,900000000000000000000000000000000000000000000000000000000000001933.9999999999 +1934,900000000000000000000000000000000000000000000000000000000000001934.9999999999 +1935,900000000000000000000000000000000000000000000000000000000000001935.9999999999 +1936,900000000000000000000000000000000000000000000000000000000000001936.9999999999 +1937,900000000000000000000000000000000000000000000000000000000000001937.9999999999 +1938,900000000000000000000000000000000000000000000000000000000000001938.9999999999 +1939,900000000000000000000000000000000000000000000000000000000000001939.9999999999 +1940,900000000000000000000000000000000000000000000000000000000000001940.9999999999 +1941,900000000000000000000000000000000000000000000000000000000000001941.9999999999 +1942,900000000000000000000000000000000000000000000000000000000000001942.9999999999 +1943,900000000000000000000000000000000000000000000000000000000000001943.9999999999 +1944,900000000000000000000000000000000000000000000000000000000000001944.9999999999 +1945,900000000000000000000000000000000000000000000000000000000000001945.9999999999 +1946,900000000000000000000000000000000000000000000000000000000000001946.9999999999 +1947,900000000000000000000000000000000000000000000000000000000000001947.9999999999 +1948,900000000000000000000000000000000000000000000000000000000000001948.9999999999 +1949,900000000000000000000000000000000000000000000000000000000000001949.9999999999 +1950,900000000000000000000000000000000000000000000000000000000000001950.9999999999 +1951,900000000000000000000000000000000000000000000000000000000000001951.9999999999 +1952,900000000000000000000000000000000000000000000000000000000000001952.9999999999 +1953,900000000000000000000000000000000000000000000000000000000000001953.9999999999 +1954,900000000000000000000000000000000000000000000000000000000000001954.9999999999 +1955,900000000000000000000000000000000000000000000000000000000000001955.9999999999 +1956,900000000000000000000000000000000000000000000000000000000000001956.9999999999 +1957,900000000000000000000000000000000000000000000000000000000000001957.9999999999 +1958,900000000000000000000000000000000000000000000000000000000000001958.9999999999 +1959,900000000000000000000000000000000000000000000000000000000000001959.9999999999 +1960,900000000000000000000000000000000000000000000000000000000000001960.9999999999 +1961,900000000000000000000000000000000000000000000000000000000000001961.9999999999 +1962,900000000000000000000000000000000000000000000000000000000000001962.9999999999 +1963,900000000000000000000000000000000000000000000000000000000000001963.9999999999 +1964,900000000000000000000000000000000000000000000000000000000000001964.9999999999 +1965,900000000000000000000000000000000000000000000000000000000000001965.9999999999 +1966,900000000000000000000000000000000000000000000000000000000000001966.9999999999 +1967,900000000000000000000000000000000000000000000000000000000000001967.9999999999 +1968,900000000000000000000000000000000000000000000000000000000000001968.9999999999 +1969,900000000000000000000000000000000000000000000000000000000000001969.9999999999 +1970,900000000000000000000000000000000000000000000000000000000000001970.9999999999 +1971,900000000000000000000000000000000000000000000000000000000000001971.9999999999 +1972,900000000000000000000000000000000000000000000000000000000000001972.9999999999 +1973,900000000000000000000000000000000000000000000000000000000000001973.9999999999 +1974,900000000000000000000000000000000000000000000000000000000000001974.9999999999 +1975,900000000000000000000000000000000000000000000000000000000000001975.9999999999 +1976,900000000000000000000000000000000000000000000000000000000000001976.9999999999 +1977,900000000000000000000000000000000000000000000000000000000000001977.9999999999 +1978,900000000000000000000000000000000000000000000000000000000000001978.9999999999 +1979,900000000000000000000000000000000000000000000000000000000000001979.9999999999 +1980,900000000000000000000000000000000000000000000000000000000000001980.9999999999 +1981,900000000000000000000000000000000000000000000000000000000000001981.9999999999 +1982,900000000000000000000000000000000000000000000000000000000000001982.9999999999 +1983,900000000000000000000000000000000000000000000000000000000000001983.9999999999 +1984,900000000000000000000000000000000000000000000000000000000000001984.9999999999 +1985,900000000000000000000000000000000000000000000000000000000000001985.9999999999 +1986,900000000000000000000000000000000000000000000000000000000000001986.9999999999 +1987,900000000000000000000000000000000000000000000000000000000000001987.9999999999 +1988,900000000000000000000000000000000000000000000000000000000000001988.9999999999 +1989,900000000000000000000000000000000000000000000000000000000000001989.9999999999 +1990,900000000000000000000000000000000000000000000000000000000000001990.9999999999 +1991,900000000000000000000000000000000000000000000000000000000000001991.9999999999 +1992,900000000000000000000000000000000000000000000000000000000000001992.9999999999 +1993,900000000000000000000000000000000000000000000000000000000000001993.9999999999 +1994,900000000000000000000000000000000000000000000000000000000000001994.9999999999 +1995,900000000000000000000000000000000000000000000000000000000000001995.9999999999 +1996,900000000000000000000000000000000000000000000000000000000000001996.9999999999 +1997,900000000000000000000000000000000000000000000000000000000000001997.9999999999 +1998,900000000000000000000000000000000000000000000000000000000000001998.9999999999 +1999,900000000000000000000000000000000000000000000000000000000000001999.9999999999 +2000,900000000000000000000000000000000000000000000000000000000000002000.9999999999 +2001,900000000000000000000000000000000000000000000000000000000000002001.9999999999 +2002,900000000000000000000000000000000000000000000000000000000000002002.9999999999 +2003,900000000000000000000000000000000000000000000000000000000000002003.9999999999 +2004,900000000000000000000000000000000000000000000000000000000000002004.9999999999 +2005,900000000000000000000000000000000000000000000000000000000000002005.9999999999 +2006,900000000000000000000000000000000000000000000000000000000000002006.9999999999 +2007,900000000000000000000000000000000000000000000000000000000000002007.9999999999 +2008,900000000000000000000000000000000000000000000000000000000000002008.9999999999 +2009,900000000000000000000000000000000000000000000000000000000000002009.9999999999 +2010,900000000000000000000000000000000000000000000000000000000000002010.9999999999 +2011,900000000000000000000000000000000000000000000000000000000000002011.9999999999 +2012,900000000000000000000000000000000000000000000000000000000000002012.9999999999 +2013,900000000000000000000000000000000000000000000000000000000000002013.9999999999 +2014,900000000000000000000000000000000000000000000000000000000000002014.9999999999 +2015,900000000000000000000000000000000000000000000000000000000000002015.9999999999 +2016,900000000000000000000000000000000000000000000000000000000000002016.9999999999 +2017,900000000000000000000000000000000000000000000000000000000000002017.9999999999 +2018,900000000000000000000000000000000000000000000000000000000000002018.9999999999 +2019,900000000000000000000000000000000000000000000000000000000000002019.9999999999 +2020,900000000000000000000000000000000000000000000000000000000000002020.9999999999 +2021,900000000000000000000000000000000000000000000000000000000000002021.9999999999 +2022,900000000000000000000000000000000000000000000000000000000000002022.9999999999 +2023,900000000000000000000000000000000000000000000000000000000000002023.9999999999 +2024,900000000000000000000000000000000000000000000000000000000000002024.9999999999 +2025,900000000000000000000000000000000000000000000000000000000000002025.9999999999 +2026,900000000000000000000000000000000000000000000000000000000000002026.9999999999 +2027,900000000000000000000000000000000000000000000000000000000000002027.9999999999 +2028,900000000000000000000000000000000000000000000000000000000000002028.9999999999 +2029,900000000000000000000000000000000000000000000000000000000000002029.9999999999 +2030,900000000000000000000000000000000000000000000000000000000000002030.9999999999 +2031,900000000000000000000000000000000000000000000000000000000000002031.9999999999 +2032,900000000000000000000000000000000000000000000000000000000000002032.9999999999 +2033,900000000000000000000000000000000000000000000000000000000000002033.9999999999 +2034,900000000000000000000000000000000000000000000000000000000000002034.9999999999 +2035,900000000000000000000000000000000000000000000000000000000000002035.9999999999 +2036,900000000000000000000000000000000000000000000000000000000000002036.9999999999 +2037,900000000000000000000000000000000000000000000000000000000000002037.9999999999 +2038,900000000000000000000000000000000000000000000000000000000000002038.9999999999 +2039,900000000000000000000000000000000000000000000000000000000000002039.9999999999 +2040,900000000000000000000000000000000000000000000000000000000000002040.9999999999 +2041,900000000000000000000000000000000000000000000000000000000000002041.9999999999 +2042,900000000000000000000000000000000000000000000000000000000000002042.9999999999 +2043,900000000000000000000000000000000000000000000000000000000000002043.9999999999 +2044,900000000000000000000000000000000000000000000000000000000000002044.9999999999 +2045,900000000000000000000000000000000000000000000000000000000000002045.9999999999 +2046,900000000000000000000000000000000000000000000000000000000000002046.9999999999 +2047,900000000000000000000000000000000000000000000000000000000000002047.9999999999 +2048,900000000000000000000000000000000000000000000000000000000000002048.9999999999 +2049,900000000000000000000000000000000000000000000000000000000000002049.9999999999 +2050,900000000000000000000000000000000000000000000000000000000000002050.9999999999 +2051,900000000000000000000000000000000000000000000000000000000000002051.9999999999 +2052,900000000000000000000000000000000000000000000000000000000000002052.9999999999 +2053,900000000000000000000000000000000000000000000000000000000000002053.9999999999 +2054,900000000000000000000000000000000000000000000000000000000000002054.9999999999 +2055,900000000000000000000000000000000000000000000000000000000000002055.9999999999 +2056,900000000000000000000000000000000000000000000000000000000000002056.9999999999 +2057,900000000000000000000000000000000000000000000000000000000000002057.9999999999 +2058,900000000000000000000000000000000000000000000000000000000000002058.9999999999 +2059,900000000000000000000000000000000000000000000000000000000000002059.9999999999 +2060,900000000000000000000000000000000000000000000000000000000000002060.9999999999 +2061,900000000000000000000000000000000000000000000000000000000000002061.9999999999 +2062,900000000000000000000000000000000000000000000000000000000000002062.9999999999 +2063,900000000000000000000000000000000000000000000000000000000000002063.9999999999 +2064,900000000000000000000000000000000000000000000000000000000000002064.9999999999 +2065,900000000000000000000000000000000000000000000000000000000000002065.9999999999 +2066,900000000000000000000000000000000000000000000000000000000000002066.9999999999 +2067,900000000000000000000000000000000000000000000000000000000000002067.9999999999 +2068,900000000000000000000000000000000000000000000000000000000000002068.9999999999 +2069,900000000000000000000000000000000000000000000000000000000000002069.9999999999 +2070,900000000000000000000000000000000000000000000000000000000000002070.9999999999 +2071,900000000000000000000000000000000000000000000000000000000000002071.9999999999 +2072,900000000000000000000000000000000000000000000000000000000000002072.9999999999 +2073,900000000000000000000000000000000000000000000000000000000000002073.9999999999 +2074,900000000000000000000000000000000000000000000000000000000000002074.9999999999 +2075,900000000000000000000000000000000000000000000000000000000000002075.9999999999 +2076,900000000000000000000000000000000000000000000000000000000000002076.9999999999 +2077,900000000000000000000000000000000000000000000000000000000000002077.9999999999 +2078,900000000000000000000000000000000000000000000000000000000000002078.9999999999 +2079,900000000000000000000000000000000000000000000000000000000000002079.9999999999 +2080,900000000000000000000000000000000000000000000000000000000000002080.9999999999 +2081,900000000000000000000000000000000000000000000000000000000000002081.9999999999 +2082,900000000000000000000000000000000000000000000000000000000000002082.9999999999 +2083,900000000000000000000000000000000000000000000000000000000000002083.9999999999 +2084,900000000000000000000000000000000000000000000000000000000000002084.9999999999 +2085,900000000000000000000000000000000000000000000000000000000000002085.9999999999 +2086,900000000000000000000000000000000000000000000000000000000000002086.9999999999 +2087,900000000000000000000000000000000000000000000000000000000000002087.9999999999 +2088,900000000000000000000000000000000000000000000000000000000000002088.9999999999 +2089,900000000000000000000000000000000000000000000000000000000000002089.9999999999 +2090,900000000000000000000000000000000000000000000000000000000000002090.9999999999 +2091,900000000000000000000000000000000000000000000000000000000000002091.9999999999 +2092,900000000000000000000000000000000000000000000000000000000000002092.9999999999 +2093,900000000000000000000000000000000000000000000000000000000000002093.9999999999 +2094,900000000000000000000000000000000000000000000000000000000000002094.9999999999 +2095,900000000000000000000000000000000000000000000000000000000000002095.9999999999 +2096,900000000000000000000000000000000000000000000000000000000000002096.9999999999 +2097,900000000000000000000000000000000000000000000000000000000000002097.9999999999 +2098,900000000000000000000000000000000000000000000000000000000000002098.9999999999 +2099,900000000000000000000000000000000000000000000000000000000000002099.9999999999 +2100,900000000000000000000000000000000000000000000000000000000000002100.9999999999 +2101,900000000000000000000000000000000000000000000000000000000000002101.9999999999 +2102,900000000000000000000000000000000000000000000000000000000000002102.9999999999 +2103,900000000000000000000000000000000000000000000000000000000000002103.9999999999 +2104,900000000000000000000000000000000000000000000000000000000000002104.9999999999 +2105,900000000000000000000000000000000000000000000000000000000000002105.9999999999 +2106,900000000000000000000000000000000000000000000000000000000000002106.9999999999 +2107,900000000000000000000000000000000000000000000000000000000000002107.9999999999 +2108,900000000000000000000000000000000000000000000000000000000000002108.9999999999 +2109,900000000000000000000000000000000000000000000000000000000000002109.9999999999 +2110,900000000000000000000000000000000000000000000000000000000000002110.9999999999 +2111,900000000000000000000000000000000000000000000000000000000000002111.9999999999 +2112,900000000000000000000000000000000000000000000000000000000000002112.9999999999 +2113,900000000000000000000000000000000000000000000000000000000000002113.9999999999 +2114,900000000000000000000000000000000000000000000000000000000000002114.9999999999 +2115,900000000000000000000000000000000000000000000000000000000000002115.9999999999 +2116,900000000000000000000000000000000000000000000000000000000000002116.9999999999 +2117,900000000000000000000000000000000000000000000000000000000000002117.9999999999 +2118,900000000000000000000000000000000000000000000000000000000000002118.9999999999 +2119,900000000000000000000000000000000000000000000000000000000000002119.9999999999 +2120,900000000000000000000000000000000000000000000000000000000000002120.9999999999 +2121,900000000000000000000000000000000000000000000000000000000000002121.9999999999 +2122,900000000000000000000000000000000000000000000000000000000000002122.9999999999 +2123,900000000000000000000000000000000000000000000000000000000000002123.9999999999 +2124,900000000000000000000000000000000000000000000000000000000000002124.9999999999 +2125,900000000000000000000000000000000000000000000000000000000000002125.9999999999 +2126,900000000000000000000000000000000000000000000000000000000000002126.9999999999 +2127,900000000000000000000000000000000000000000000000000000000000002127.9999999999 +2128,900000000000000000000000000000000000000000000000000000000000002128.9999999999 +2129,900000000000000000000000000000000000000000000000000000000000002129.9999999999 +2130,900000000000000000000000000000000000000000000000000000000000002130.9999999999 +2131,900000000000000000000000000000000000000000000000000000000000002131.9999999999 +2132,900000000000000000000000000000000000000000000000000000000000002132.9999999999 +2133,900000000000000000000000000000000000000000000000000000000000002133.9999999999 +2134,900000000000000000000000000000000000000000000000000000000000002134.9999999999 +2135,900000000000000000000000000000000000000000000000000000000000002135.9999999999 +2136,900000000000000000000000000000000000000000000000000000000000002136.9999999999 +2137,900000000000000000000000000000000000000000000000000000000000002137.9999999999 +2138,900000000000000000000000000000000000000000000000000000000000002138.9999999999 +2139,900000000000000000000000000000000000000000000000000000000000002139.9999999999 +2140,900000000000000000000000000000000000000000000000000000000000002140.9999999999 +2141,900000000000000000000000000000000000000000000000000000000000002141.9999999999 +2142,900000000000000000000000000000000000000000000000000000000000002142.9999999999 +2143,900000000000000000000000000000000000000000000000000000000000002143.9999999999 +2144,900000000000000000000000000000000000000000000000000000000000002144.9999999999 +2145,900000000000000000000000000000000000000000000000000000000000002145.9999999999 +2146,900000000000000000000000000000000000000000000000000000000000002146.9999999999 +2147,900000000000000000000000000000000000000000000000000000000000002147.9999999999 +2148,900000000000000000000000000000000000000000000000000000000000002148.9999999999 +2149,900000000000000000000000000000000000000000000000000000000000002149.9999999999 +2150,900000000000000000000000000000000000000000000000000000000000002150.9999999999 +2151,900000000000000000000000000000000000000000000000000000000000002151.9999999999 +2152,900000000000000000000000000000000000000000000000000000000000002152.9999999999 +2153,900000000000000000000000000000000000000000000000000000000000002153.9999999999 +2154,900000000000000000000000000000000000000000000000000000000000002154.9999999999 +2155,900000000000000000000000000000000000000000000000000000000000002155.9999999999 +2156,900000000000000000000000000000000000000000000000000000000000002156.9999999999 +2157,900000000000000000000000000000000000000000000000000000000000002157.9999999999 +2158,900000000000000000000000000000000000000000000000000000000000002158.9999999999 +2159,900000000000000000000000000000000000000000000000000000000000002159.9999999999 +2160,900000000000000000000000000000000000000000000000000000000000002160.9999999999 +2161,900000000000000000000000000000000000000000000000000000000000002161.9999999999 +2162,900000000000000000000000000000000000000000000000000000000000002162.9999999999 +2163,900000000000000000000000000000000000000000000000000000000000002163.9999999999 +2164,900000000000000000000000000000000000000000000000000000000000002164.9999999999 +2165,900000000000000000000000000000000000000000000000000000000000002165.9999999999 +2166,900000000000000000000000000000000000000000000000000000000000002166.9999999999 +2167,900000000000000000000000000000000000000000000000000000000000002167.9999999999 +2168,900000000000000000000000000000000000000000000000000000000000002168.9999999999 +2169,900000000000000000000000000000000000000000000000000000000000002169.9999999999 +2170,900000000000000000000000000000000000000000000000000000000000002170.9999999999 +2171,900000000000000000000000000000000000000000000000000000000000002171.9999999999 +2172,900000000000000000000000000000000000000000000000000000000000002172.9999999999 +2173,900000000000000000000000000000000000000000000000000000000000002173.9999999999 +2174,900000000000000000000000000000000000000000000000000000000000002174.9999999999 +2175,900000000000000000000000000000000000000000000000000000000000002175.9999999999 +2176,900000000000000000000000000000000000000000000000000000000000002176.9999999999 +2177,900000000000000000000000000000000000000000000000000000000000002177.9999999999 +2178,900000000000000000000000000000000000000000000000000000000000002178.9999999999 +2179,900000000000000000000000000000000000000000000000000000000000002179.9999999999 +2180,900000000000000000000000000000000000000000000000000000000000002180.9999999999 +2181,900000000000000000000000000000000000000000000000000000000000002181.9999999999 +2182,900000000000000000000000000000000000000000000000000000000000002182.9999999999 +2183,900000000000000000000000000000000000000000000000000000000000002183.9999999999 +2184,900000000000000000000000000000000000000000000000000000000000002184.9999999999 +2185,900000000000000000000000000000000000000000000000000000000000002185.9999999999 +2186,900000000000000000000000000000000000000000000000000000000000002186.9999999999 +2187,900000000000000000000000000000000000000000000000000000000000002187.9999999999 +2188,900000000000000000000000000000000000000000000000000000000000002188.9999999999 +2189,900000000000000000000000000000000000000000000000000000000000002189.9999999999 +2190,900000000000000000000000000000000000000000000000000000000000002190.9999999999 +2191,900000000000000000000000000000000000000000000000000000000000002191.9999999999 +2192,900000000000000000000000000000000000000000000000000000000000002192.9999999999 +2193,900000000000000000000000000000000000000000000000000000000000002193.9999999999 +2194,900000000000000000000000000000000000000000000000000000000000002194.9999999999 +2195,900000000000000000000000000000000000000000000000000000000000002195.9999999999 +2196,900000000000000000000000000000000000000000000000000000000000002196.9999999999 +2197,900000000000000000000000000000000000000000000000000000000000002197.9999999999 +2198,900000000000000000000000000000000000000000000000000000000000002198.9999999999 +2199,900000000000000000000000000000000000000000000000000000000000002199.9999999999 +2200,900000000000000000000000000000000000000000000000000000000000002200.9999999999 +2201,900000000000000000000000000000000000000000000000000000000000002201.9999999999 +2202,900000000000000000000000000000000000000000000000000000000000002202.9999999999 +2203,900000000000000000000000000000000000000000000000000000000000002203.9999999999 +2204,900000000000000000000000000000000000000000000000000000000000002204.9999999999 +2205,900000000000000000000000000000000000000000000000000000000000002205.9999999999 +2206,900000000000000000000000000000000000000000000000000000000000002206.9999999999 +2207,900000000000000000000000000000000000000000000000000000000000002207.9999999999 +2208,900000000000000000000000000000000000000000000000000000000000002208.9999999999 +2209,900000000000000000000000000000000000000000000000000000000000002209.9999999999 +2210,900000000000000000000000000000000000000000000000000000000000002210.9999999999 +2211,900000000000000000000000000000000000000000000000000000000000002211.9999999999 +2212,900000000000000000000000000000000000000000000000000000000000002212.9999999999 +2213,900000000000000000000000000000000000000000000000000000000000002213.9999999999 +2214,900000000000000000000000000000000000000000000000000000000000002214.9999999999 +2215,900000000000000000000000000000000000000000000000000000000000002215.9999999999 +2216,900000000000000000000000000000000000000000000000000000000000002216.9999999999 +2217,900000000000000000000000000000000000000000000000000000000000002217.9999999999 +2218,900000000000000000000000000000000000000000000000000000000000002218.9999999999 +2219,900000000000000000000000000000000000000000000000000000000000002219.9999999999 +2220,900000000000000000000000000000000000000000000000000000000000002220.9999999999 +2221,900000000000000000000000000000000000000000000000000000000000002221.9999999999 +2222,900000000000000000000000000000000000000000000000000000000000002222.9999999999 +2223,900000000000000000000000000000000000000000000000000000000000002223.9999999999 +2224,900000000000000000000000000000000000000000000000000000000000002224.9999999999 +2225,900000000000000000000000000000000000000000000000000000000000002225.9999999999 +2226,900000000000000000000000000000000000000000000000000000000000002226.9999999999 +2227,900000000000000000000000000000000000000000000000000000000000002227.9999999999 +2228,900000000000000000000000000000000000000000000000000000000000002228.9999999999 +2229,900000000000000000000000000000000000000000000000000000000000002229.9999999999 +2230,900000000000000000000000000000000000000000000000000000000000002230.9999999999 +2231,900000000000000000000000000000000000000000000000000000000000002231.9999999999 +2232,900000000000000000000000000000000000000000000000000000000000002232.9999999999 +2233,900000000000000000000000000000000000000000000000000000000000002233.9999999999 +2234,900000000000000000000000000000000000000000000000000000000000002234.9999999999 +2235,900000000000000000000000000000000000000000000000000000000000002235.9999999999 +2236,900000000000000000000000000000000000000000000000000000000000002236.9999999999 +2237,900000000000000000000000000000000000000000000000000000000000002237.9999999999 +2238,900000000000000000000000000000000000000000000000000000000000002238.9999999999 +2239,900000000000000000000000000000000000000000000000000000000000002239.9999999999 +2240,900000000000000000000000000000000000000000000000000000000000002240.9999999999 +2241,900000000000000000000000000000000000000000000000000000000000002241.9999999999 +2242,900000000000000000000000000000000000000000000000000000000000002242.9999999999 +2243,900000000000000000000000000000000000000000000000000000000000002243.9999999999 +2244,900000000000000000000000000000000000000000000000000000000000002244.9999999999 +2245,900000000000000000000000000000000000000000000000000000000000002245.9999999999 +2246,900000000000000000000000000000000000000000000000000000000000002246.9999999999 +2247,900000000000000000000000000000000000000000000000000000000000002247.9999999999 +2248,900000000000000000000000000000000000000000000000000000000000002248.9999999999 +2249,900000000000000000000000000000000000000000000000000000000000002249.9999999999 +2250,900000000000000000000000000000000000000000000000000000000000002250.9999999999 +2251,900000000000000000000000000000000000000000000000000000000000002251.9999999999 +2252,900000000000000000000000000000000000000000000000000000000000002252.9999999999 +2253,900000000000000000000000000000000000000000000000000000000000002253.9999999999 +2254,900000000000000000000000000000000000000000000000000000000000002254.9999999999 +2255,900000000000000000000000000000000000000000000000000000000000002255.9999999999 +2256,900000000000000000000000000000000000000000000000000000000000002256.9999999999 +2257,900000000000000000000000000000000000000000000000000000000000002257.9999999999 +2258,900000000000000000000000000000000000000000000000000000000000002258.9999999999 +2259,900000000000000000000000000000000000000000000000000000000000002259.9999999999 +2260,900000000000000000000000000000000000000000000000000000000000002260.9999999999 +2261,900000000000000000000000000000000000000000000000000000000000002261.9999999999 +2262,900000000000000000000000000000000000000000000000000000000000002262.9999999999 +2263,900000000000000000000000000000000000000000000000000000000000002263.9999999999 +2264,900000000000000000000000000000000000000000000000000000000000002264.9999999999 +2265,900000000000000000000000000000000000000000000000000000000000002265.9999999999 +2266,900000000000000000000000000000000000000000000000000000000000002266.9999999999 +2267,900000000000000000000000000000000000000000000000000000000000002267.9999999999 +2268,900000000000000000000000000000000000000000000000000000000000002268.9999999999 +2269,900000000000000000000000000000000000000000000000000000000000002269.9999999999 +2270,900000000000000000000000000000000000000000000000000000000000002270.9999999999 +2271,900000000000000000000000000000000000000000000000000000000000002271.9999999999 +2272,900000000000000000000000000000000000000000000000000000000000002272.9999999999 +2273,900000000000000000000000000000000000000000000000000000000000002273.9999999999 +2274,900000000000000000000000000000000000000000000000000000000000002274.9999999999 +2275,900000000000000000000000000000000000000000000000000000000000002275.9999999999 +2276,900000000000000000000000000000000000000000000000000000000000002276.9999999999 +2277,900000000000000000000000000000000000000000000000000000000000002277.9999999999 +2278,900000000000000000000000000000000000000000000000000000000000002278.9999999999 +2279,900000000000000000000000000000000000000000000000000000000000002279.9999999999 +2280,900000000000000000000000000000000000000000000000000000000000002280.9999999999 +2281,900000000000000000000000000000000000000000000000000000000000002281.9999999999 +2282,900000000000000000000000000000000000000000000000000000000000002282.9999999999 +2283,900000000000000000000000000000000000000000000000000000000000002283.9999999999 +2284,900000000000000000000000000000000000000000000000000000000000002284.9999999999 +2285,900000000000000000000000000000000000000000000000000000000000002285.9999999999 +2286,900000000000000000000000000000000000000000000000000000000000002286.9999999999 +2287,900000000000000000000000000000000000000000000000000000000000002287.9999999999 +2288,900000000000000000000000000000000000000000000000000000000000002288.9999999999 +2289,900000000000000000000000000000000000000000000000000000000000002289.9999999999 +2290,900000000000000000000000000000000000000000000000000000000000002290.9999999999 +2291,900000000000000000000000000000000000000000000000000000000000002291.9999999999 +2292,900000000000000000000000000000000000000000000000000000000000002292.9999999999 +2293,900000000000000000000000000000000000000000000000000000000000002293.9999999999 +2294,900000000000000000000000000000000000000000000000000000000000002294.9999999999 +2295,900000000000000000000000000000000000000000000000000000000000002295.9999999999 +2296,900000000000000000000000000000000000000000000000000000000000002296.9999999999 +2297,900000000000000000000000000000000000000000000000000000000000002297.9999999999 +2298,900000000000000000000000000000000000000000000000000000000000002298.9999999999 +2299,900000000000000000000000000000000000000000000000000000000000002299.9999999999 +2300,900000000000000000000000000000000000000000000000000000000000002300.9999999999 +2301,900000000000000000000000000000000000000000000000000000000000002301.9999999999 +2302,900000000000000000000000000000000000000000000000000000000000002302.9999999999 +2303,900000000000000000000000000000000000000000000000000000000000002303.9999999999 +2304,900000000000000000000000000000000000000000000000000000000000002304.9999999999 +2305,900000000000000000000000000000000000000000000000000000000000002305.9999999999 +2306,900000000000000000000000000000000000000000000000000000000000002306.9999999999 +2307,900000000000000000000000000000000000000000000000000000000000002307.9999999999 +2308,900000000000000000000000000000000000000000000000000000000000002308.9999999999 +2309,900000000000000000000000000000000000000000000000000000000000002309.9999999999 +2310,900000000000000000000000000000000000000000000000000000000000002310.9999999999 +2311,900000000000000000000000000000000000000000000000000000000000002311.9999999999 +2312,900000000000000000000000000000000000000000000000000000000000002312.9999999999 +2313,900000000000000000000000000000000000000000000000000000000000002313.9999999999 +2314,900000000000000000000000000000000000000000000000000000000000002314.9999999999 +2315,900000000000000000000000000000000000000000000000000000000000002315.9999999999 +2316,900000000000000000000000000000000000000000000000000000000000002316.9999999999 +2317,900000000000000000000000000000000000000000000000000000000000002317.9999999999 +2318,900000000000000000000000000000000000000000000000000000000000002318.9999999999 +2319,900000000000000000000000000000000000000000000000000000000000002319.9999999999 +2320,900000000000000000000000000000000000000000000000000000000000002320.9999999999 +2321,900000000000000000000000000000000000000000000000000000000000002321.9999999999 +2322,900000000000000000000000000000000000000000000000000000000000002322.9999999999 +2323,900000000000000000000000000000000000000000000000000000000000002323.9999999999 +2324,900000000000000000000000000000000000000000000000000000000000002324.9999999999 +2325,900000000000000000000000000000000000000000000000000000000000002325.9999999999 +2326,900000000000000000000000000000000000000000000000000000000000002326.9999999999 +2327,900000000000000000000000000000000000000000000000000000000000002327.9999999999 +2328,900000000000000000000000000000000000000000000000000000000000002328.9999999999 +2329,900000000000000000000000000000000000000000000000000000000000002329.9999999999 +2330,900000000000000000000000000000000000000000000000000000000000002330.9999999999 +2331,900000000000000000000000000000000000000000000000000000000000002331.9999999999 +2332,900000000000000000000000000000000000000000000000000000000000002332.9999999999 +2333,900000000000000000000000000000000000000000000000000000000000002333.9999999999 +2334,900000000000000000000000000000000000000000000000000000000000002334.9999999999 +2335,900000000000000000000000000000000000000000000000000000000000002335.9999999999 +2336,900000000000000000000000000000000000000000000000000000000000002336.9999999999 +2337,900000000000000000000000000000000000000000000000000000000000002337.9999999999 +2338,900000000000000000000000000000000000000000000000000000000000002338.9999999999 +2339,900000000000000000000000000000000000000000000000000000000000002339.9999999999 +2340,900000000000000000000000000000000000000000000000000000000000002340.9999999999 +2341,900000000000000000000000000000000000000000000000000000000000002341.9999999999 +2342,900000000000000000000000000000000000000000000000000000000000002342.9999999999 +2343,900000000000000000000000000000000000000000000000000000000000002343.9999999999 +2344,900000000000000000000000000000000000000000000000000000000000002344.9999999999 +2345,900000000000000000000000000000000000000000000000000000000000002345.9999999999 +2346,900000000000000000000000000000000000000000000000000000000000002346.9999999999 +2347,900000000000000000000000000000000000000000000000000000000000002347.9999999999 +2348,900000000000000000000000000000000000000000000000000000000000002348.9999999999 +2349,900000000000000000000000000000000000000000000000000000000000002349.9999999999 +2350,900000000000000000000000000000000000000000000000000000000000002350.9999999999 +2351,900000000000000000000000000000000000000000000000000000000000002351.9999999999 +2352,900000000000000000000000000000000000000000000000000000000000002352.9999999999 +2353,900000000000000000000000000000000000000000000000000000000000002353.9999999999 +2354,900000000000000000000000000000000000000000000000000000000000002354.9999999999 +2355,900000000000000000000000000000000000000000000000000000000000002355.9999999999 +2356,900000000000000000000000000000000000000000000000000000000000002356.9999999999 +2357,900000000000000000000000000000000000000000000000000000000000002357.9999999999 +2358,900000000000000000000000000000000000000000000000000000000000002358.9999999999 +2359,900000000000000000000000000000000000000000000000000000000000002359.9999999999 +2360,900000000000000000000000000000000000000000000000000000000000002360.9999999999 +2361,900000000000000000000000000000000000000000000000000000000000002361.9999999999 +2362,900000000000000000000000000000000000000000000000000000000000002362.9999999999 +2363,900000000000000000000000000000000000000000000000000000000000002363.9999999999 +2364,900000000000000000000000000000000000000000000000000000000000002364.9999999999 +2365,900000000000000000000000000000000000000000000000000000000000002365.9999999999 +2366,900000000000000000000000000000000000000000000000000000000000002366.9999999999 +2367,900000000000000000000000000000000000000000000000000000000000002367.9999999999 +2368,900000000000000000000000000000000000000000000000000000000000002368.9999999999 +2369,900000000000000000000000000000000000000000000000000000000000002369.9999999999 +2370,900000000000000000000000000000000000000000000000000000000000002370.9999999999 +2371,900000000000000000000000000000000000000000000000000000000000002371.9999999999 +2372,900000000000000000000000000000000000000000000000000000000000002372.9999999999 +2373,900000000000000000000000000000000000000000000000000000000000002373.9999999999 +2374,900000000000000000000000000000000000000000000000000000000000002374.9999999999 +2375,900000000000000000000000000000000000000000000000000000000000002375.9999999999 +2376,900000000000000000000000000000000000000000000000000000000000002376.9999999999 +2377,900000000000000000000000000000000000000000000000000000000000002377.9999999999 +2378,900000000000000000000000000000000000000000000000000000000000002378.9999999999 +2379,900000000000000000000000000000000000000000000000000000000000002379.9999999999 +2380,900000000000000000000000000000000000000000000000000000000000002380.9999999999 +2381,900000000000000000000000000000000000000000000000000000000000002381.9999999999 +2382,900000000000000000000000000000000000000000000000000000000000002382.9999999999 +2383,900000000000000000000000000000000000000000000000000000000000002383.9999999999 +2384,900000000000000000000000000000000000000000000000000000000000002384.9999999999 +2385,900000000000000000000000000000000000000000000000000000000000002385.9999999999 +2386,900000000000000000000000000000000000000000000000000000000000002386.9999999999 +2387,900000000000000000000000000000000000000000000000000000000000002387.9999999999 +2388,900000000000000000000000000000000000000000000000000000000000002388.9999999999 +2389,900000000000000000000000000000000000000000000000000000000000002389.9999999999 +2390,900000000000000000000000000000000000000000000000000000000000002390.9999999999 +2391,900000000000000000000000000000000000000000000000000000000000002391.9999999999 +2392,900000000000000000000000000000000000000000000000000000000000002392.9999999999 +2393,900000000000000000000000000000000000000000000000000000000000002393.9999999999 +2394,900000000000000000000000000000000000000000000000000000000000002394.9999999999 +2395,900000000000000000000000000000000000000000000000000000000000002395.9999999999 +2396,900000000000000000000000000000000000000000000000000000000000002396.9999999999 +2397,900000000000000000000000000000000000000000000000000000000000002397.9999999999 +2398,900000000000000000000000000000000000000000000000000000000000002398.9999999999 +2399,900000000000000000000000000000000000000000000000000000000000002399.9999999999 +2400,900000000000000000000000000000000000000000000000000000000000002400.9999999999 +2401,900000000000000000000000000000000000000000000000000000000000002401.9999999999 +2402,900000000000000000000000000000000000000000000000000000000000002402.9999999999 +2403,900000000000000000000000000000000000000000000000000000000000002403.9999999999 +2404,900000000000000000000000000000000000000000000000000000000000002404.9999999999 +2405,900000000000000000000000000000000000000000000000000000000000002405.9999999999 +2406,900000000000000000000000000000000000000000000000000000000000002406.9999999999 +2407,900000000000000000000000000000000000000000000000000000000000002407.9999999999 +2408,900000000000000000000000000000000000000000000000000000000000002408.9999999999 +2409,900000000000000000000000000000000000000000000000000000000000002409.9999999999 +2410,900000000000000000000000000000000000000000000000000000000000002410.9999999999 +2411,900000000000000000000000000000000000000000000000000000000000002411.9999999999 +2412,900000000000000000000000000000000000000000000000000000000000002412.9999999999 +2413,900000000000000000000000000000000000000000000000000000000000002413.9999999999 +2414,900000000000000000000000000000000000000000000000000000000000002414.9999999999 +2415,900000000000000000000000000000000000000000000000000000000000002415.9999999999 +2416,900000000000000000000000000000000000000000000000000000000000002416.9999999999 +2417,900000000000000000000000000000000000000000000000000000000000002417.9999999999 +2418,900000000000000000000000000000000000000000000000000000000000002418.9999999999 +2419,900000000000000000000000000000000000000000000000000000000000002419.9999999999 +2420,900000000000000000000000000000000000000000000000000000000000002420.9999999999 +2421,900000000000000000000000000000000000000000000000000000000000002421.9999999999 +2422,900000000000000000000000000000000000000000000000000000000000002422.9999999999 +2423,900000000000000000000000000000000000000000000000000000000000002423.9999999999 +2424,900000000000000000000000000000000000000000000000000000000000002424.9999999999 +2425,900000000000000000000000000000000000000000000000000000000000002425.9999999999 +2426,900000000000000000000000000000000000000000000000000000000000002426.9999999999 +2427,900000000000000000000000000000000000000000000000000000000000002427.9999999999 +2428,900000000000000000000000000000000000000000000000000000000000002428.9999999999 +2429,900000000000000000000000000000000000000000000000000000000000002429.9999999999 +2430,900000000000000000000000000000000000000000000000000000000000002430.9999999999 +2431,900000000000000000000000000000000000000000000000000000000000002431.9999999999 +2432,900000000000000000000000000000000000000000000000000000000000002432.9999999999 +2433,900000000000000000000000000000000000000000000000000000000000002433.9999999999 +2434,900000000000000000000000000000000000000000000000000000000000002434.9999999999 +2435,900000000000000000000000000000000000000000000000000000000000002435.9999999999 +2436,900000000000000000000000000000000000000000000000000000000000002436.9999999999 +2437,900000000000000000000000000000000000000000000000000000000000002437.9999999999 +2438,900000000000000000000000000000000000000000000000000000000000002438.9999999999 +2439,900000000000000000000000000000000000000000000000000000000000002439.9999999999 +2440,900000000000000000000000000000000000000000000000000000000000002440.9999999999 +2441,900000000000000000000000000000000000000000000000000000000000002441.9999999999 +2442,900000000000000000000000000000000000000000000000000000000000002442.9999999999 +2443,900000000000000000000000000000000000000000000000000000000000002443.9999999999 +2444,900000000000000000000000000000000000000000000000000000000000002444.9999999999 +2445,900000000000000000000000000000000000000000000000000000000000002445.9999999999 +2446,900000000000000000000000000000000000000000000000000000000000002446.9999999999 +2447,900000000000000000000000000000000000000000000000000000000000002447.9999999999 +2448,900000000000000000000000000000000000000000000000000000000000002448.9999999999 +2449,900000000000000000000000000000000000000000000000000000000000002449.9999999999 +2450,900000000000000000000000000000000000000000000000000000000000002450.9999999999 +2451,900000000000000000000000000000000000000000000000000000000000002451.9999999999 +2452,900000000000000000000000000000000000000000000000000000000000002452.9999999999 +2453,900000000000000000000000000000000000000000000000000000000000002453.9999999999 +2454,900000000000000000000000000000000000000000000000000000000000002454.9999999999 +2455,900000000000000000000000000000000000000000000000000000000000002455.9999999999 +2456,900000000000000000000000000000000000000000000000000000000000002456.9999999999 +2457,900000000000000000000000000000000000000000000000000000000000002457.9999999999 +2458,900000000000000000000000000000000000000000000000000000000000002458.9999999999 +2459,900000000000000000000000000000000000000000000000000000000000002459.9999999999 +2460,900000000000000000000000000000000000000000000000000000000000002460.9999999999 +2461,900000000000000000000000000000000000000000000000000000000000002461.9999999999 +2462,900000000000000000000000000000000000000000000000000000000000002462.9999999999 +2463,900000000000000000000000000000000000000000000000000000000000002463.9999999999 +2464,900000000000000000000000000000000000000000000000000000000000002464.9999999999 +2465,900000000000000000000000000000000000000000000000000000000000002465.9999999999 +2466,900000000000000000000000000000000000000000000000000000000000002466.9999999999 +2467,900000000000000000000000000000000000000000000000000000000000002467.9999999999 +2468,900000000000000000000000000000000000000000000000000000000000002468.9999999999 +2469,900000000000000000000000000000000000000000000000000000000000002469.9999999999 +2470,900000000000000000000000000000000000000000000000000000000000002470.9999999999 +2471,900000000000000000000000000000000000000000000000000000000000002471.9999999999 +2472,900000000000000000000000000000000000000000000000000000000000002472.9999999999 +2473,900000000000000000000000000000000000000000000000000000000000002473.9999999999 +2474,900000000000000000000000000000000000000000000000000000000000002474.9999999999 +2475,900000000000000000000000000000000000000000000000000000000000002475.9999999999 +2476,900000000000000000000000000000000000000000000000000000000000002476.9999999999 +2477,900000000000000000000000000000000000000000000000000000000000002477.9999999999 +2478,900000000000000000000000000000000000000000000000000000000000002478.9999999999 +2479,900000000000000000000000000000000000000000000000000000000000002479.9999999999 +2480,900000000000000000000000000000000000000000000000000000000000002480.9999999999 +2481,900000000000000000000000000000000000000000000000000000000000002481.9999999999 +2482,900000000000000000000000000000000000000000000000000000000000002482.9999999999 +2483,900000000000000000000000000000000000000000000000000000000000002483.9999999999 +2484,900000000000000000000000000000000000000000000000000000000000002484.9999999999 +2485,900000000000000000000000000000000000000000000000000000000000002485.9999999999 +2486,900000000000000000000000000000000000000000000000000000000000002486.9999999999 +2487,900000000000000000000000000000000000000000000000000000000000002487.9999999999 +2488,900000000000000000000000000000000000000000000000000000000000002488.9999999999 +2489,900000000000000000000000000000000000000000000000000000000000002489.9999999999 +2490,900000000000000000000000000000000000000000000000000000000000002490.9999999999 +2491,900000000000000000000000000000000000000000000000000000000000002491.9999999999 +2492,900000000000000000000000000000000000000000000000000000000000002492.9999999999 +2493,900000000000000000000000000000000000000000000000000000000000002493.9999999999 +2494,900000000000000000000000000000000000000000000000000000000000002494.9999999999 +2495,900000000000000000000000000000000000000000000000000000000000002495.9999999999 +2496,900000000000000000000000000000000000000000000000000000000000002496.9999999999 +2497,900000000000000000000000000000000000000000000000000000000000002497.9999999999 +2498,900000000000000000000000000000000000000000000000000000000000002498.9999999999 +2499,900000000000000000000000000000000000000000000000000000000000002499.9999999999 +2500,900000000000000000000000000000000000000000000000000000000000002500.9999999999 +2501,900000000000000000000000000000000000000000000000000000000000002501.9999999999 +2502,900000000000000000000000000000000000000000000000000000000000002502.9999999999 +2503,900000000000000000000000000000000000000000000000000000000000002503.9999999999 +2504,900000000000000000000000000000000000000000000000000000000000002504.9999999999 +2505,900000000000000000000000000000000000000000000000000000000000002505.9999999999 +2506,900000000000000000000000000000000000000000000000000000000000002506.9999999999 +2507,900000000000000000000000000000000000000000000000000000000000002507.9999999999 +2508,900000000000000000000000000000000000000000000000000000000000002508.9999999999 +2509,900000000000000000000000000000000000000000000000000000000000002509.9999999999 +2510,900000000000000000000000000000000000000000000000000000000000002510.9999999999 +2511,900000000000000000000000000000000000000000000000000000000000002511.9999999999 +2512,900000000000000000000000000000000000000000000000000000000000002512.9999999999 +2513,900000000000000000000000000000000000000000000000000000000000002513.9999999999 +2514,900000000000000000000000000000000000000000000000000000000000002514.9999999999 +2515,900000000000000000000000000000000000000000000000000000000000002515.9999999999 +2516,900000000000000000000000000000000000000000000000000000000000002516.9999999999 +2517,900000000000000000000000000000000000000000000000000000000000002517.9999999999 +2518,900000000000000000000000000000000000000000000000000000000000002518.9999999999 +2519,900000000000000000000000000000000000000000000000000000000000002519.9999999999 +2520,900000000000000000000000000000000000000000000000000000000000002520.9999999999 +2521,900000000000000000000000000000000000000000000000000000000000002521.9999999999 +2522,900000000000000000000000000000000000000000000000000000000000002522.9999999999 +2523,900000000000000000000000000000000000000000000000000000000000002523.9999999999 +2524,900000000000000000000000000000000000000000000000000000000000002524.9999999999 +2525,900000000000000000000000000000000000000000000000000000000000002525.9999999999 +2526,900000000000000000000000000000000000000000000000000000000000002526.9999999999 +2527,900000000000000000000000000000000000000000000000000000000000002527.9999999999 +2528,900000000000000000000000000000000000000000000000000000000000002528.9999999999 +2529,900000000000000000000000000000000000000000000000000000000000002529.9999999999 +2530,900000000000000000000000000000000000000000000000000000000000002530.9999999999 +2531,900000000000000000000000000000000000000000000000000000000000002531.9999999999 +2532,900000000000000000000000000000000000000000000000000000000000002532.9999999999 +2533,900000000000000000000000000000000000000000000000000000000000002533.9999999999 +2534,900000000000000000000000000000000000000000000000000000000000002534.9999999999 +2535,900000000000000000000000000000000000000000000000000000000000002535.9999999999 +2536,900000000000000000000000000000000000000000000000000000000000002536.9999999999 +2537,900000000000000000000000000000000000000000000000000000000000002537.9999999999 +2538,900000000000000000000000000000000000000000000000000000000000002538.9999999999 +2539,900000000000000000000000000000000000000000000000000000000000002539.9999999999 +2540,900000000000000000000000000000000000000000000000000000000000002540.9999999999 +2541,900000000000000000000000000000000000000000000000000000000000002541.9999999999 +2542,900000000000000000000000000000000000000000000000000000000000002542.9999999999 +2543,900000000000000000000000000000000000000000000000000000000000002543.9999999999 +2544,900000000000000000000000000000000000000000000000000000000000002544.9999999999 +2545,900000000000000000000000000000000000000000000000000000000000002545.9999999999 +2546,900000000000000000000000000000000000000000000000000000000000002546.9999999999 +2547,900000000000000000000000000000000000000000000000000000000000002547.9999999999 +2548,900000000000000000000000000000000000000000000000000000000000002548.9999999999 +2549,900000000000000000000000000000000000000000000000000000000000002549.9999999999 +2550,900000000000000000000000000000000000000000000000000000000000002550.9999999999 +2551,900000000000000000000000000000000000000000000000000000000000002551.9999999999 +2552,900000000000000000000000000000000000000000000000000000000000002552.9999999999 +2553,900000000000000000000000000000000000000000000000000000000000002553.9999999999 +2554,900000000000000000000000000000000000000000000000000000000000002554.9999999999 +2555,900000000000000000000000000000000000000000000000000000000000002555.9999999999 +2556,900000000000000000000000000000000000000000000000000000000000002556.9999999999 +2557,900000000000000000000000000000000000000000000000000000000000002557.9999999999 +2558,900000000000000000000000000000000000000000000000000000000000002558.9999999999 +2559,900000000000000000000000000000000000000000000000000000000000002559.9999999999 +2560,900000000000000000000000000000000000000000000000000000000000002560.9999999999 +2561,900000000000000000000000000000000000000000000000000000000000002561.9999999999 +2562,900000000000000000000000000000000000000000000000000000000000002562.9999999999 +2563,900000000000000000000000000000000000000000000000000000000000002563.9999999999 +2564,900000000000000000000000000000000000000000000000000000000000002564.9999999999 +2565,900000000000000000000000000000000000000000000000000000000000002565.9999999999 +2566,900000000000000000000000000000000000000000000000000000000000002566.9999999999 +2567,900000000000000000000000000000000000000000000000000000000000002567.9999999999 +2568,900000000000000000000000000000000000000000000000000000000000002568.9999999999 +2569,900000000000000000000000000000000000000000000000000000000000002569.9999999999 +2570,900000000000000000000000000000000000000000000000000000000000002570.9999999999 +2571,900000000000000000000000000000000000000000000000000000000000002571.9999999999 +2572,900000000000000000000000000000000000000000000000000000000000002572.9999999999 +2573,900000000000000000000000000000000000000000000000000000000000002573.9999999999 +2574,900000000000000000000000000000000000000000000000000000000000002574.9999999999 +2575,900000000000000000000000000000000000000000000000000000000000002575.9999999999 +2576,900000000000000000000000000000000000000000000000000000000000002576.9999999999 +2577,900000000000000000000000000000000000000000000000000000000000002577.9999999999 +2578,900000000000000000000000000000000000000000000000000000000000002578.9999999999 +2579,900000000000000000000000000000000000000000000000000000000000002579.9999999999 +2580,900000000000000000000000000000000000000000000000000000000000002580.9999999999 +2581,900000000000000000000000000000000000000000000000000000000000002581.9999999999 +2582,900000000000000000000000000000000000000000000000000000000000002582.9999999999 +2583,900000000000000000000000000000000000000000000000000000000000002583.9999999999 +2584,900000000000000000000000000000000000000000000000000000000000002584.9999999999 +2585,900000000000000000000000000000000000000000000000000000000000002585.9999999999 +2586,900000000000000000000000000000000000000000000000000000000000002586.9999999999 +2587,900000000000000000000000000000000000000000000000000000000000002587.9999999999 +2588,900000000000000000000000000000000000000000000000000000000000002588.9999999999 +2589,900000000000000000000000000000000000000000000000000000000000002589.9999999999 +2590,900000000000000000000000000000000000000000000000000000000000002590.9999999999 +2591,900000000000000000000000000000000000000000000000000000000000002591.9999999999 +2592,900000000000000000000000000000000000000000000000000000000000002592.9999999999 +2593,900000000000000000000000000000000000000000000000000000000000002593.9999999999 +2594,900000000000000000000000000000000000000000000000000000000000002594.9999999999 +2595,900000000000000000000000000000000000000000000000000000000000002595.9999999999 +2596,900000000000000000000000000000000000000000000000000000000000002596.9999999999 +2597,900000000000000000000000000000000000000000000000000000000000002597.9999999999 +2598,900000000000000000000000000000000000000000000000000000000000002598.9999999999 +2599,900000000000000000000000000000000000000000000000000000000000002599.9999999999 +2600,900000000000000000000000000000000000000000000000000000000000002600.9999999999 +2601,900000000000000000000000000000000000000000000000000000000000002601.9999999999 +2602,900000000000000000000000000000000000000000000000000000000000002602.9999999999 +2603,900000000000000000000000000000000000000000000000000000000000002603.9999999999 +2604,900000000000000000000000000000000000000000000000000000000000002604.9999999999 +2605,900000000000000000000000000000000000000000000000000000000000002605.9999999999 +2606,900000000000000000000000000000000000000000000000000000000000002606.9999999999 +2607,900000000000000000000000000000000000000000000000000000000000002607.9999999999 +2608,900000000000000000000000000000000000000000000000000000000000002608.9999999999 +2609,900000000000000000000000000000000000000000000000000000000000002609.9999999999 +2610,900000000000000000000000000000000000000000000000000000000000002610.9999999999 +2611,900000000000000000000000000000000000000000000000000000000000002611.9999999999 +2612,900000000000000000000000000000000000000000000000000000000000002612.9999999999 +2613,900000000000000000000000000000000000000000000000000000000000002613.9999999999 +2614,900000000000000000000000000000000000000000000000000000000000002614.9999999999 +2615,900000000000000000000000000000000000000000000000000000000000002615.9999999999 +2616,900000000000000000000000000000000000000000000000000000000000002616.9999999999 +2617,900000000000000000000000000000000000000000000000000000000000002617.9999999999 +2618,900000000000000000000000000000000000000000000000000000000000002618.9999999999 +2619,900000000000000000000000000000000000000000000000000000000000002619.9999999999 +2620,900000000000000000000000000000000000000000000000000000000000002620.9999999999 +2621,900000000000000000000000000000000000000000000000000000000000002621.9999999999 +2622,900000000000000000000000000000000000000000000000000000000000002622.9999999999 +2623,900000000000000000000000000000000000000000000000000000000000002623.9999999999 +2624,900000000000000000000000000000000000000000000000000000000000002624.9999999999 +2625,900000000000000000000000000000000000000000000000000000000000002625.9999999999 +2626,900000000000000000000000000000000000000000000000000000000000002626.9999999999 +2627,900000000000000000000000000000000000000000000000000000000000002627.9999999999 +2628,900000000000000000000000000000000000000000000000000000000000002628.9999999999 +2629,900000000000000000000000000000000000000000000000000000000000002629.9999999999 +2630,900000000000000000000000000000000000000000000000000000000000002630.9999999999 +2631,900000000000000000000000000000000000000000000000000000000000002631.9999999999 +2632,900000000000000000000000000000000000000000000000000000000000002632.9999999999 +2633,900000000000000000000000000000000000000000000000000000000000002633.9999999999 +2634,900000000000000000000000000000000000000000000000000000000000002634.9999999999 +2635,900000000000000000000000000000000000000000000000000000000000002635.9999999999 +2636,900000000000000000000000000000000000000000000000000000000000002636.9999999999 +2637,900000000000000000000000000000000000000000000000000000000000002637.9999999999 +2638,900000000000000000000000000000000000000000000000000000000000002638.9999999999 +2639,900000000000000000000000000000000000000000000000000000000000002639.9999999999 +2640,900000000000000000000000000000000000000000000000000000000000002640.9999999999 +2641,900000000000000000000000000000000000000000000000000000000000002641.9999999999 +2642,900000000000000000000000000000000000000000000000000000000000002642.9999999999 +2643,900000000000000000000000000000000000000000000000000000000000002643.9999999999 +2644,900000000000000000000000000000000000000000000000000000000000002644.9999999999 +2645,900000000000000000000000000000000000000000000000000000000000002645.9999999999 +2646,900000000000000000000000000000000000000000000000000000000000002646.9999999999 +2647,900000000000000000000000000000000000000000000000000000000000002647.9999999999 +2648,900000000000000000000000000000000000000000000000000000000000002648.9999999999 +2649,900000000000000000000000000000000000000000000000000000000000002649.9999999999 +2650,900000000000000000000000000000000000000000000000000000000000002650.9999999999 +2651,900000000000000000000000000000000000000000000000000000000000002651.9999999999 +2652,900000000000000000000000000000000000000000000000000000000000002652.9999999999 +2653,900000000000000000000000000000000000000000000000000000000000002653.9999999999 +2654,900000000000000000000000000000000000000000000000000000000000002654.9999999999 +2655,900000000000000000000000000000000000000000000000000000000000002655.9999999999 +2656,900000000000000000000000000000000000000000000000000000000000002656.9999999999 +2657,900000000000000000000000000000000000000000000000000000000000002657.9999999999 +2658,900000000000000000000000000000000000000000000000000000000000002658.9999999999 +2659,900000000000000000000000000000000000000000000000000000000000002659.9999999999 +2660,900000000000000000000000000000000000000000000000000000000000002660.9999999999 +2661,900000000000000000000000000000000000000000000000000000000000002661.9999999999 +2662,900000000000000000000000000000000000000000000000000000000000002662.9999999999 +2663,900000000000000000000000000000000000000000000000000000000000002663.9999999999 +2664,900000000000000000000000000000000000000000000000000000000000002664.9999999999 +2665,900000000000000000000000000000000000000000000000000000000000002665.9999999999 +2666,900000000000000000000000000000000000000000000000000000000000002666.9999999999 +2667,900000000000000000000000000000000000000000000000000000000000002667.9999999999 +2668,900000000000000000000000000000000000000000000000000000000000002668.9999999999 +2669,900000000000000000000000000000000000000000000000000000000000002669.9999999999 +2670,900000000000000000000000000000000000000000000000000000000000002670.9999999999 +2671,900000000000000000000000000000000000000000000000000000000000002671.9999999999 +2672,900000000000000000000000000000000000000000000000000000000000002672.9999999999 +2673,900000000000000000000000000000000000000000000000000000000000002673.9999999999 +2674,900000000000000000000000000000000000000000000000000000000000002674.9999999999 +2675,900000000000000000000000000000000000000000000000000000000000002675.9999999999 +2676,900000000000000000000000000000000000000000000000000000000000002676.9999999999 +2677,900000000000000000000000000000000000000000000000000000000000002677.9999999999 +2678,900000000000000000000000000000000000000000000000000000000000002678.9999999999 +2679,900000000000000000000000000000000000000000000000000000000000002679.9999999999 +2680,900000000000000000000000000000000000000000000000000000000000002680.9999999999 +2681,900000000000000000000000000000000000000000000000000000000000002681.9999999999 +2682,900000000000000000000000000000000000000000000000000000000000002682.9999999999 +2683,900000000000000000000000000000000000000000000000000000000000002683.9999999999 +2684,900000000000000000000000000000000000000000000000000000000000002684.9999999999 +2685,900000000000000000000000000000000000000000000000000000000000002685.9999999999 +2686,900000000000000000000000000000000000000000000000000000000000002686.9999999999 +2687,900000000000000000000000000000000000000000000000000000000000002687.9999999999 +2688,900000000000000000000000000000000000000000000000000000000000002688.9999999999 +2689,900000000000000000000000000000000000000000000000000000000000002689.9999999999 +2690,900000000000000000000000000000000000000000000000000000000000002690.9999999999 +2691,900000000000000000000000000000000000000000000000000000000000002691.9999999999 +2692,900000000000000000000000000000000000000000000000000000000000002692.9999999999 +2693,900000000000000000000000000000000000000000000000000000000000002693.9999999999 +2694,900000000000000000000000000000000000000000000000000000000000002694.9999999999 +2695,900000000000000000000000000000000000000000000000000000000000002695.9999999999 +2696,900000000000000000000000000000000000000000000000000000000000002696.9999999999 +2697,900000000000000000000000000000000000000000000000000000000000002697.9999999999 +2698,900000000000000000000000000000000000000000000000000000000000002698.9999999999 +2699,900000000000000000000000000000000000000000000000000000000000002699.9999999999 +2700,900000000000000000000000000000000000000000000000000000000000002700.9999999999 +2701,900000000000000000000000000000000000000000000000000000000000002701.9999999999 +2702,900000000000000000000000000000000000000000000000000000000000002702.9999999999 +2703,900000000000000000000000000000000000000000000000000000000000002703.9999999999 +2704,900000000000000000000000000000000000000000000000000000000000002704.9999999999 +2705,900000000000000000000000000000000000000000000000000000000000002705.9999999999 +2706,900000000000000000000000000000000000000000000000000000000000002706.9999999999 +2707,900000000000000000000000000000000000000000000000000000000000002707.9999999999 +2708,900000000000000000000000000000000000000000000000000000000000002708.9999999999 +2709,900000000000000000000000000000000000000000000000000000000000002709.9999999999 +2710,900000000000000000000000000000000000000000000000000000000000002710.9999999999 +2711,900000000000000000000000000000000000000000000000000000000000002711.9999999999 +2712,900000000000000000000000000000000000000000000000000000000000002712.9999999999 +2713,900000000000000000000000000000000000000000000000000000000000002713.9999999999 +2714,900000000000000000000000000000000000000000000000000000000000002714.9999999999 +2715,900000000000000000000000000000000000000000000000000000000000002715.9999999999 +2716,900000000000000000000000000000000000000000000000000000000000002716.9999999999 +2717,900000000000000000000000000000000000000000000000000000000000002717.9999999999 +2718,900000000000000000000000000000000000000000000000000000000000002718.9999999999 +2719,900000000000000000000000000000000000000000000000000000000000002719.9999999999 +2720,900000000000000000000000000000000000000000000000000000000000002720.9999999999 +2721,900000000000000000000000000000000000000000000000000000000000002721.9999999999 +2722,900000000000000000000000000000000000000000000000000000000000002722.9999999999 +2723,900000000000000000000000000000000000000000000000000000000000002723.9999999999 +2724,900000000000000000000000000000000000000000000000000000000000002724.9999999999 +2725,900000000000000000000000000000000000000000000000000000000000002725.9999999999 +2726,900000000000000000000000000000000000000000000000000000000000002726.9999999999 +2727,900000000000000000000000000000000000000000000000000000000000002727.9999999999 +2728,900000000000000000000000000000000000000000000000000000000000002728.9999999999 +2729,900000000000000000000000000000000000000000000000000000000000002729.9999999999 +2730,900000000000000000000000000000000000000000000000000000000000002730.9999999999 +2731,900000000000000000000000000000000000000000000000000000000000002731.9999999999 +2732,900000000000000000000000000000000000000000000000000000000000002732.9999999999 +2733,900000000000000000000000000000000000000000000000000000000000002733.9999999999 +2734,900000000000000000000000000000000000000000000000000000000000002734.9999999999 +2735,900000000000000000000000000000000000000000000000000000000000002735.9999999999 +2736,900000000000000000000000000000000000000000000000000000000000002736.9999999999 +2737,900000000000000000000000000000000000000000000000000000000000002737.9999999999 +2738,900000000000000000000000000000000000000000000000000000000000002738.9999999999 +2739,900000000000000000000000000000000000000000000000000000000000002739.9999999999 +2740,900000000000000000000000000000000000000000000000000000000000002740.9999999999 +2741,900000000000000000000000000000000000000000000000000000000000002741.9999999999 +2742,900000000000000000000000000000000000000000000000000000000000002742.9999999999 +2743,900000000000000000000000000000000000000000000000000000000000002743.9999999999 +2744,900000000000000000000000000000000000000000000000000000000000002744.9999999999 +2745,900000000000000000000000000000000000000000000000000000000000002745.9999999999 +2746,900000000000000000000000000000000000000000000000000000000000002746.9999999999 +2747,900000000000000000000000000000000000000000000000000000000000002747.9999999999 +2748,900000000000000000000000000000000000000000000000000000000000002748.9999999999 +2749,900000000000000000000000000000000000000000000000000000000000002749.9999999999 +2750,900000000000000000000000000000000000000000000000000000000000002750.9999999999 +2751,900000000000000000000000000000000000000000000000000000000000002751.9999999999 +2752,900000000000000000000000000000000000000000000000000000000000002752.9999999999 +2753,900000000000000000000000000000000000000000000000000000000000002753.9999999999 +2754,900000000000000000000000000000000000000000000000000000000000002754.9999999999 +2755,900000000000000000000000000000000000000000000000000000000000002755.9999999999 +2756,900000000000000000000000000000000000000000000000000000000000002756.9999999999 +2757,900000000000000000000000000000000000000000000000000000000000002757.9999999999 +2758,900000000000000000000000000000000000000000000000000000000000002758.9999999999 +2759,900000000000000000000000000000000000000000000000000000000000002759.9999999999 +2760,900000000000000000000000000000000000000000000000000000000000002760.9999999999 +2761,900000000000000000000000000000000000000000000000000000000000002761.9999999999 +2762,900000000000000000000000000000000000000000000000000000000000002762.9999999999 +2763,900000000000000000000000000000000000000000000000000000000000002763.9999999999 +2764,900000000000000000000000000000000000000000000000000000000000002764.9999999999 +2765,900000000000000000000000000000000000000000000000000000000000002765.9999999999 +2766,900000000000000000000000000000000000000000000000000000000000002766.9999999999 +2767,900000000000000000000000000000000000000000000000000000000000002767.9999999999 +2768,900000000000000000000000000000000000000000000000000000000000002768.9999999999 +2769,900000000000000000000000000000000000000000000000000000000000002769.9999999999 +2770,900000000000000000000000000000000000000000000000000000000000002770.9999999999 +2771,900000000000000000000000000000000000000000000000000000000000002771.9999999999 +2772,900000000000000000000000000000000000000000000000000000000000002772.9999999999 +2773,900000000000000000000000000000000000000000000000000000000000002773.9999999999 +2774,900000000000000000000000000000000000000000000000000000000000002774.9999999999 +2775,900000000000000000000000000000000000000000000000000000000000002775.9999999999 +2776,900000000000000000000000000000000000000000000000000000000000002776.9999999999 +2777,900000000000000000000000000000000000000000000000000000000000002777.9999999999 +2778,900000000000000000000000000000000000000000000000000000000000002778.9999999999 +2779,900000000000000000000000000000000000000000000000000000000000002779.9999999999 +2780,900000000000000000000000000000000000000000000000000000000000002780.9999999999 +2781,900000000000000000000000000000000000000000000000000000000000002781.9999999999 +2782,900000000000000000000000000000000000000000000000000000000000002782.9999999999 +2783,900000000000000000000000000000000000000000000000000000000000002783.9999999999 +2784,900000000000000000000000000000000000000000000000000000000000002784.9999999999 +2785,900000000000000000000000000000000000000000000000000000000000002785.9999999999 +2786,900000000000000000000000000000000000000000000000000000000000002786.9999999999 +2787,900000000000000000000000000000000000000000000000000000000000002787.9999999999 +2788,900000000000000000000000000000000000000000000000000000000000002788.9999999999 +2789,900000000000000000000000000000000000000000000000000000000000002789.9999999999 +2790,900000000000000000000000000000000000000000000000000000000000002790.9999999999 +2791,900000000000000000000000000000000000000000000000000000000000002791.9999999999 +2792,900000000000000000000000000000000000000000000000000000000000002792.9999999999 +2793,900000000000000000000000000000000000000000000000000000000000002793.9999999999 +2794,900000000000000000000000000000000000000000000000000000000000002794.9999999999 +2795,900000000000000000000000000000000000000000000000000000000000002795.9999999999 +2796,900000000000000000000000000000000000000000000000000000000000002796.9999999999 +2797,900000000000000000000000000000000000000000000000000000000000002797.9999999999 +2798,900000000000000000000000000000000000000000000000000000000000002798.9999999999 +2799,900000000000000000000000000000000000000000000000000000000000002799.9999999999 +2800,900000000000000000000000000000000000000000000000000000000000002800.9999999999 +2801,900000000000000000000000000000000000000000000000000000000000002801.9999999999 +2802,900000000000000000000000000000000000000000000000000000000000002802.9999999999 +2803,900000000000000000000000000000000000000000000000000000000000002803.9999999999 +2804,900000000000000000000000000000000000000000000000000000000000002804.9999999999 +2805,900000000000000000000000000000000000000000000000000000000000002805.9999999999 +2806,900000000000000000000000000000000000000000000000000000000000002806.9999999999 +2807,900000000000000000000000000000000000000000000000000000000000002807.9999999999 +2808,900000000000000000000000000000000000000000000000000000000000002808.9999999999 +2809,900000000000000000000000000000000000000000000000000000000000002809.9999999999 +2810,900000000000000000000000000000000000000000000000000000000000002810.9999999999 +2811,900000000000000000000000000000000000000000000000000000000000002811.9999999999 +2812,900000000000000000000000000000000000000000000000000000000000002812.9999999999 +2813,900000000000000000000000000000000000000000000000000000000000002813.9999999999 +2814,900000000000000000000000000000000000000000000000000000000000002814.9999999999 +2815,900000000000000000000000000000000000000000000000000000000000002815.9999999999 +2816,900000000000000000000000000000000000000000000000000000000000002816.9999999999 +2817,900000000000000000000000000000000000000000000000000000000000002817.9999999999 +2818,900000000000000000000000000000000000000000000000000000000000002818.9999999999 +2819,900000000000000000000000000000000000000000000000000000000000002819.9999999999 +2820,900000000000000000000000000000000000000000000000000000000000002820.9999999999 +2821,900000000000000000000000000000000000000000000000000000000000002821.9999999999 +2822,900000000000000000000000000000000000000000000000000000000000002822.9999999999 +2823,900000000000000000000000000000000000000000000000000000000000002823.9999999999 +2824,900000000000000000000000000000000000000000000000000000000000002824.9999999999 +2825,900000000000000000000000000000000000000000000000000000000000002825.9999999999 +2826,900000000000000000000000000000000000000000000000000000000000002826.9999999999 +2827,900000000000000000000000000000000000000000000000000000000000002827.9999999999 +2828,900000000000000000000000000000000000000000000000000000000000002828.9999999999 +2829,900000000000000000000000000000000000000000000000000000000000002829.9999999999 +2830,900000000000000000000000000000000000000000000000000000000000002830.9999999999 +2831,900000000000000000000000000000000000000000000000000000000000002831.9999999999 +2832,900000000000000000000000000000000000000000000000000000000000002832.9999999999 +2833,900000000000000000000000000000000000000000000000000000000000002833.9999999999 +2834,900000000000000000000000000000000000000000000000000000000000002834.9999999999 +2835,900000000000000000000000000000000000000000000000000000000000002835.9999999999 +2836,900000000000000000000000000000000000000000000000000000000000002836.9999999999 +2837,900000000000000000000000000000000000000000000000000000000000002837.9999999999 +2838,900000000000000000000000000000000000000000000000000000000000002838.9999999999 +2839,900000000000000000000000000000000000000000000000000000000000002839.9999999999 +2840,900000000000000000000000000000000000000000000000000000000000002840.9999999999 +2841,900000000000000000000000000000000000000000000000000000000000002841.9999999999 +2842,900000000000000000000000000000000000000000000000000000000000002842.9999999999 +2843,900000000000000000000000000000000000000000000000000000000000002843.9999999999 +2844,900000000000000000000000000000000000000000000000000000000000002844.9999999999 +2845,900000000000000000000000000000000000000000000000000000000000002845.9999999999 +2846,900000000000000000000000000000000000000000000000000000000000002846.9999999999 +2847,900000000000000000000000000000000000000000000000000000000000002847.9999999999 +2848,900000000000000000000000000000000000000000000000000000000000002848.9999999999 +2849,900000000000000000000000000000000000000000000000000000000000002849.9999999999 +2850,900000000000000000000000000000000000000000000000000000000000002850.9999999999 +2851,900000000000000000000000000000000000000000000000000000000000002851.9999999999 +2852,900000000000000000000000000000000000000000000000000000000000002852.9999999999 +2853,900000000000000000000000000000000000000000000000000000000000002853.9999999999 +2854,900000000000000000000000000000000000000000000000000000000000002854.9999999999 +2855,900000000000000000000000000000000000000000000000000000000000002855.9999999999 +2856,900000000000000000000000000000000000000000000000000000000000002856.9999999999 +2857,900000000000000000000000000000000000000000000000000000000000002857.9999999999 +2858,900000000000000000000000000000000000000000000000000000000000002858.9999999999 +2859,900000000000000000000000000000000000000000000000000000000000002859.9999999999 +2860,900000000000000000000000000000000000000000000000000000000000002860.9999999999 +2861,900000000000000000000000000000000000000000000000000000000000002861.9999999999 +2862,900000000000000000000000000000000000000000000000000000000000002862.9999999999 +2863,900000000000000000000000000000000000000000000000000000000000002863.9999999999 +2864,900000000000000000000000000000000000000000000000000000000000002864.9999999999 +2865,900000000000000000000000000000000000000000000000000000000000002865.9999999999 +2866,900000000000000000000000000000000000000000000000000000000000002866.9999999999 +2867,900000000000000000000000000000000000000000000000000000000000002867.9999999999 +2868,900000000000000000000000000000000000000000000000000000000000002868.9999999999 +2869,900000000000000000000000000000000000000000000000000000000000002869.9999999999 +2870,900000000000000000000000000000000000000000000000000000000000002870.9999999999 +2871,900000000000000000000000000000000000000000000000000000000000002871.9999999999 +2872,900000000000000000000000000000000000000000000000000000000000002872.9999999999 +2873,900000000000000000000000000000000000000000000000000000000000002873.9999999999 +2874,900000000000000000000000000000000000000000000000000000000000002874.9999999999 +2875,900000000000000000000000000000000000000000000000000000000000002875.9999999999 +2876,900000000000000000000000000000000000000000000000000000000000002876.9999999999 +2877,900000000000000000000000000000000000000000000000000000000000002877.9999999999 +2878,900000000000000000000000000000000000000000000000000000000000002878.9999999999 +2879,900000000000000000000000000000000000000000000000000000000000002879.9999999999 +2880,900000000000000000000000000000000000000000000000000000000000002880.9999999999 +2881,900000000000000000000000000000000000000000000000000000000000002881.9999999999 +2882,900000000000000000000000000000000000000000000000000000000000002882.9999999999 +2883,900000000000000000000000000000000000000000000000000000000000002883.9999999999 +2884,900000000000000000000000000000000000000000000000000000000000002884.9999999999 +2885,900000000000000000000000000000000000000000000000000000000000002885.9999999999 +2886,900000000000000000000000000000000000000000000000000000000000002886.9999999999 +2887,900000000000000000000000000000000000000000000000000000000000002887.9999999999 +2888,900000000000000000000000000000000000000000000000000000000000002888.9999999999 +2889,900000000000000000000000000000000000000000000000000000000000002889.9999999999 +2890,900000000000000000000000000000000000000000000000000000000000002890.9999999999 +2891,900000000000000000000000000000000000000000000000000000000000002891.9999999999 +2892,900000000000000000000000000000000000000000000000000000000000002892.9999999999 +2893,900000000000000000000000000000000000000000000000000000000000002893.9999999999 +2894,900000000000000000000000000000000000000000000000000000000000002894.9999999999 +2895,900000000000000000000000000000000000000000000000000000000000002895.9999999999 +2896,900000000000000000000000000000000000000000000000000000000000002896.9999999999 +2897,900000000000000000000000000000000000000000000000000000000000002897.9999999999 +2898,900000000000000000000000000000000000000000000000000000000000002898.9999999999 +2899,900000000000000000000000000000000000000000000000000000000000002899.9999999999 +2900,900000000000000000000000000000000000000000000000000000000000002900.9999999999 +2901,900000000000000000000000000000000000000000000000000000000000002901.9999999999 +2902,900000000000000000000000000000000000000000000000000000000000002902.9999999999 +2903,900000000000000000000000000000000000000000000000000000000000002903.9999999999 +2904,900000000000000000000000000000000000000000000000000000000000002904.9999999999 +2905,900000000000000000000000000000000000000000000000000000000000002905.9999999999 +2906,900000000000000000000000000000000000000000000000000000000000002906.9999999999 +2907,900000000000000000000000000000000000000000000000000000000000002907.9999999999 +2908,900000000000000000000000000000000000000000000000000000000000002908.9999999999 +2909,900000000000000000000000000000000000000000000000000000000000002909.9999999999 +2910,900000000000000000000000000000000000000000000000000000000000002910.9999999999 +2911,900000000000000000000000000000000000000000000000000000000000002911.9999999999 +2912,900000000000000000000000000000000000000000000000000000000000002912.9999999999 +2913,900000000000000000000000000000000000000000000000000000000000002913.9999999999 +2914,900000000000000000000000000000000000000000000000000000000000002914.9999999999 +2915,900000000000000000000000000000000000000000000000000000000000002915.9999999999 +2916,900000000000000000000000000000000000000000000000000000000000002916.9999999999 +2917,900000000000000000000000000000000000000000000000000000000000002917.9999999999 +2918,900000000000000000000000000000000000000000000000000000000000002918.9999999999 +2919,900000000000000000000000000000000000000000000000000000000000002919.9999999999 +2920,900000000000000000000000000000000000000000000000000000000000002920.9999999999 +2921,900000000000000000000000000000000000000000000000000000000000002921.9999999999 +2922,900000000000000000000000000000000000000000000000000000000000002922.9999999999 +2923,900000000000000000000000000000000000000000000000000000000000002923.9999999999 +2924,900000000000000000000000000000000000000000000000000000000000002924.9999999999 +2925,900000000000000000000000000000000000000000000000000000000000002925.9999999999 +2926,900000000000000000000000000000000000000000000000000000000000002926.9999999999 +2927,900000000000000000000000000000000000000000000000000000000000002927.9999999999 +2928,900000000000000000000000000000000000000000000000000000000000002928.9999999999 +2929,900000000000000000000000000000000000000000000000000000000000002929.9999999999 +2930,900000000000000000000000000000000000000000000000000000000000002930.9999999999 +2931,900000000000000000000000000000000000000000000000000000000000002931.9999999999 +2932,900000000000000000000000000000000000000000000000000000000000002932.9999999999 +2933,900000000000000000000000000000000000000000000000000000000000002933.9999999999 +2934,900000000000000000000000000000000000000000000000000000000000002934.9999999999 +2935,900000000000000000000000000000000000000000000000000000000000002935.9999999999 +2936,900000000000000000000000000000000000000000000000000000000000002936.9999999999 +2937,900000000000000000000000000000000000000000000000000000000000002937.9999999999 +2938,900000000000000000000000000000000000000000000000000000000000002938.9999999999 +2939,900000000000000000000000000000000000000000000000000000000000002939.9999999999 +2940,900000000000000000000000000000000000000000000000000000000000002940.9999999999 +2941,900000000000000000000000000000000000000000000000000000000000002941.9999999999 +2942,900000000000000000000000000000000000000000000000000000000000002942.9999999999 +2943,900000000000000000000000000000000000000000000000000000000000002943.9999999999 +2944,900000000000000000000000000000000000000000000000000000000000002944.9999999999 +2945,900000000000000000000000000000000000000000000000000000000000002945.9999999999 +2946,900000000000000000000000000000000000000000000000000000000000002946.9999999999 +2947,900000000000000000000000000000000000000000000000000000000000002947.9999999999 +2948,900000000000000000000000000000000000000000000000000000000000002948.9999999999 +2949,900000000000000000000000000000000000000000000000000000000000002949.9999999999 +2950,900000000000000000000000000000000000000000000000000000000000002950.9999999999 +2951,900000000000000000000000000000000000000000000000000000000000002951.9999999999 +2952,900000000000000000000000000000000000000000000000000000000000002952.9999999999 +2953,900000000000000000000000000000000000000000000000000000000000002953.9999999999 +2954,900000000000000000000000000000000000000000000000000000000000002954.9999999999 +2955,900000000000000000000000000000000000000000000000000000000000002955.9999999999 +2956,900000000000000000000000000000000000000000000000000000000000002956.9999999999 +2957,900000000000000000000000000000000000000000000000000000000000002957.9999999999 +2958,900000000000000000000000000000000000000000000000000000000000002958.9999999999 +2959,900000000000000000000000000000000000000000000000000000000000002959.9999999999 +2960,900000000000000000000000000000000000000000000000000000000000002960.9999999999 +2961,900000000000000000000000000000000000000000000000000000000000002961.9999999999 +2962,900000000000000000000000000000000000000000000000000000000000002962.9999999999 +2963,900000000000000000000000000000000000000000000000000000000000002963.9999999999 +2964,900000000000000000000000000000000000000000000000000000000000002964.9999999999 +2965,900000000000000000000000000000000000000000000000000000000000002965.9999999999 +2966,900000000000000000000000000000000000000000000000000000000000002966.9999999999 +2967,900000000000000000000000000000000000000000000000000000000000002967.9999999999 +2968,900000000000000000000000000000000000000000000000000000000000002968.9999999999 +2969,900000000000000000000000000000000000000000000000000000000000002969.9999999999 +2970,900000000000000000000000000000000000000000000000000000000000002970.9999999999 +2971,900000000000000000000000000000000000000000000000000000000000002971.9999999999 +2972,900000000000000000000000000000000000000000000000000000000000002972.9999999999 +2973,900000000000000000000000000000000000000000000000000000000000002973.9999999999 +2974,900000000000000000000000000000000000000000000000000000000000002974.9999999999 +2975,900000000000000000000000000000000000000000000000000000000000002975.9999999999 +2976,900000000000000000000000000000000000000000000000000000000000002976.9999999999 +2977,900000000000000000000000000000000000000000000000000000000000002977.9999999999 +2978,900000000000000000000000000000000000000000000000000000000000002978.9999999999 +2979,900000000000000000000000000000000000000000000000000000000000002979.9999999999 +2980,900000000000000000000000000000000000000000000000000000000000002980.9999999999 +2981,900000000000000000000000000000000000000000000000000000000000002981.9999999999 +2982,900000000000000000000000000000000000000000000000000000000000002982.9999999999 +2983,900000000000000000000000000000000000000000000000000000000000002983.9999999999 +2984,900000000000000000000000000000000000000000000000000000000000002984.9999999999 +2985,900000000000000000000000000000000000000000000000000000000000002985.9999999999 +2986,900000000000000000000000000000000000000000000000000000000000002986.9999999999 +2987,900000000000000000000000000000000000000000000000000000000000002987.9999999999 +2988,900000000000000000000000000000000000000000000000000000000000002988.9999999999 +2989,900000000000000000000000000000000000000000000000000000000000002989.9999999999 +2990,900000000000000000000000000000000000000000000000000000000000002990.9999999999 +2991,900000000000000000000000000000000000000000000000000000000000002991.9999999999 +2992,900000000000000000000000000000000000000000000000000000000000002992.9999999999 +2993,900000000000000000000000000000000000000000000000000000000000002993.9999999999 +2994,900000000000000000000000000000000000000000000000000000000000002994.9999999999 +2995,900000000000000000000000000000000000000000000000000000000000002995.9999999999 +2996,900000000000000000000000000000000000000000000000000000000000002996.9999999999 +2997,900000000000000000000000000000000000000000000000000000000000002997.9999999999 +2998,900000000000000000000000000000000000000000000000000000000000002998.9999999999 +2999,900000000000000000000000000000000000000000000000000000000000002999.9999999999 +3000,900000000000000000000000000000000000000000000000000000000000003000.9999999999 +3001,900000000000000000000000000000000000000000000000000000000000003001.9999999999 +3002,900000000000000000000000000000000000000000000000000000000000003002.9999999999 +3003,900000000000000000000000000000000000000000000000000000000000003003.9999999999 +3004,900000000000000000000000000000000000000000000000000000000000003004.9999999999 +3005,900000000000000000000000000000000000000000000000000000000000003005.9999999999 +3006,900000000000000000000000000000000000000000000000000000000000003006.9999999999 +3007,900000000000000000000000000000000000000000000000000000000000003007.9999999999 +3008,900000000000000000000000000000000000000000000000000000000000003008.9999999999 +3009,900000000000000000000000000000000000000000000000000000000000003009.9999999999 +3010,900000000000000000000000000000000000000000000000000000000000003010.9999999999 +3011,900000000000000000000000000000000000000000000000000000000000003011.9999999999 +3012,900000000000000000000000000000000000000000000000000000000000003012.9999999999 +3013,900000000000000000000000000000000000000000000000000000000000003013.9999999999 +3014,900000000000000000000000000000000000000000000000000000000000003014.9999999999 +3015,900000000000000000000000000000000000000000000000000000000000003015.9999999999 +3016,900000000000000000000000000000000000000000000000000000000000003016.9999999999 +3017,900000000000000000000000000000000000000000000000000000000000003017.9999999999 +3018,900000000000000000000000000000000000000000000000000000000000003018.9999999999 +3019,900000000000000000000000000000000000000000000000000000000000003019.9999999999 +3020,900000000000000000000000000000000000000000000000000000000000003020.9999999999 +3021,900000000000000000000000000000000000000000000000000000000000003021.9999999999 +3022,900000000000000000000000000000000000000000000000000000000000003022.9999999999 +3023,900000000000000000000000000000000000000000000000000000000000003023.9999999999 +3024,900000000000000000000000000000000000000000000000000000000000003024.9999999999 +3025,900000000000000000000000000000000000000000000000000000000000003025.9999999999 +3026,900000000000000000000000000000000000000000000000000000000000003026.9999999999 +3027,900000000000000000000000000000000000000000000000000000000000003027.9999999999 +3028,900000000000000000000000000000000000000000000000000000000000003028.9999999999 +3029,900000000000000000000000000000000000000000000000000000000000003029.9999999999 +3030,900000000000000000000000000000000000000000000000000000000000003030.9999999999 +3031,900000000000000000000000000000000000000000000000000000000000003031.9999999999 +3032,900000000000000000000000000000000000000000000000000000000000003032.9999999999 +3033,900000000000000000000000000000000000000000000000000000000000003033.9999999999 +3034,900000000000000000000000000000000000000000000000000000000000003034.9999999999 +3035,900000000000000000000000000000000000000000000000000000000000003035.9999999999 +3036,900000000000000000000000000000000000000000000000000000000000003036.9999999999 +3037,900000000000000000000000000000000000000000000000000000000000003037.9999999999 +3038,900000000000000000000000000000000000000000000000000000000000003038.9999999999 +3039,900000000000000000000000000000000000000000000000000000000000003039.9999999999 +3040,900000000000000000000000000000000000000000000000000000000000003040.9999999999 +3041,900000000000000000000000000000000000000000000000000000000000003041.9999999999 +3042,900000000000000000000000000000000000000000000000000000000000003042.9999999999 +3043,900000000000000000000000000000000000000000000000000000000000003043.9999999999 +3044,900000000000000000000000000000000000000000000000000000000000003044.9999999999 +3045,900000000000000000000000000000000000000000000000000000000000003045.9999999999 +3046,900000000000000000000000000000000000000000000000000000000000003046.9999999999 +3047,900000000000000000000000000000000000000000000000000000000000003047.9999999999 +3048,900000000000000000000000000000000000000000000000000000000000003048.9999999999 +3049,900000000000000000000000000000000000000000000000000000000000003049.9999999999 +3050,900000000000000000000000000000000000000000000000000000000000003050.9999999999 +3051,900000000000000000000000000000000000000000000000000000000000003051.9999999999 +3052,900000000000000000000000000000000000000000000000000000000000003052.9999999999 +3053,900000000000000000000000000000000000000000000000000000000000003053.9999999999 +3054,900000000000000000000000000000000000000000000000000000000000003054.9999999999 +3055,900000000000000000000000000000000000000000000000000000000000003055.9999999999 +3056,900000000000000000000000000000000000000000000000000000000000003056.9999999999 +3057,900000000000000000000000000000000000000000000000000000000000003057.9999999999 +3058,900000000000000000000000000000000000000000000000000000000000003058.9999999999 +3059,900000000000000000000000000000000000000000000000000000000000003059.9999999999 +3060,900000000000000000000000000000000000000000000000000000000000003060.9999999999 +3061,900000000000000000000000000000000000000000000000000000000000003061.9999999999 +3062,900000000000000000000000000000000000000000000000000000000000003062.9999999999 +3063,900000000000000000000000000000000000000000000000000000000000003063.9999999999 +3064,900000000000000000000000000000000000000000000000000000000000003064.9999999999 +3065,900000000000000000000000000000000000000000000000000000000000003065.9999999999 +3066,900000000000000000000000000000000000000000000000000000000000003066.9999999999 +3067,900000000000000000000000000000000000000000000000000000000000003067.9999999999 +3068,900000000000000000000000000000000000000000000000000000000000003068.9999999999 +3069,900000000000000000000000000000000000000000000000000000000000003069.9999999999 +3070,900000000000000000000000000000000000000000000000000000000000003070.9999999999 +3071,900000000000000000000000000000000000000000000000000000000000003071.9999999999 +3072,900000000000000000000000000000000000000000000000000000000000003072.9999999999 +3073,900000000000000000000000000000000000000000000000000000000000003073.9999999999 +3074,900000000000000000000000000000000000000000000000000000000000003074.9999999999 +3075,900000000000000000000000000000000000000000000000000000000000003075.9999999999 +3076,900000000000000000000000000000000000000000000000000000000000003076.9999999999 +3077,900000000000000000000000000000000000000000000000000000000000003077.9999999999 +3078,900000000000000000000000000000000000000000000000000000000000003078.9999999999 +3079,900000000000000000000000000000000000000000000000000000000000003079.9999999999 +3080,900000000000000000000000000000000000000000000000000000000000003080.9999999999 +3081,900000000000000000000000000000000000000000000000000000000000003081.9999999999 +3082,900000000000000000000000000000000000000000000000000000000000003082.9999999999 +3083,900000000000000000000000000000000000000000000000000000000000003083.9999999999 +3084,900000000000000000000000000000000000000000000000000000000000003084.9999999999 +3085,900000000000000000000000000000000000000000000000000000000000003085.9999999999 +3086,900000000000000000000000000000000000000000000000000000000000003086.9999999999 +3087,900000000000000000000000000000000000000000000000000000000000003087.9999999999 +3088,900000000000000000000000000000000000000000000000000000000000003088.9999999999 +3089,900000000000000000000000000000000000000000000000000000000000003089.9999999999 +3090,900000000000000000000000000000000000000000000000000000000000003090.9999999999 +3091,900000000000000000000000000000000000000000000000000000000000003091.9999999999 +3092,900000000000000000000000000000000000000000000000000000000000003092.9999999999 +3093,900000000000000000000000000000000000000000000000000000000000003093.9999999999 +3094,900000000000000000000000000000000000000000000000000000000000003094.9999999999 +3095,900000000000000000000000000000000000000000000000000000000000003095.9999999999 +3096,900000000000000000000000000000000000000000000000000000000000003096.9999999999 +3097,900000000000000000000000000000000000000000000000000000000000003097.9999999999 +3098,900000000000000000000000000000000000000000000000000000000000003098.9999999999 +3099,900000000000000000000000000000000000000000000000000000000000003099.9999999999 +3100,900000000000000000000000000000000000000000000000000000000000003100.9999999999 +3101,900000000000000000000000000000000000000000000000000000000000003101.9999999999 +3102,900000000000000000000000000000000000000000000000000000000000003102.9999999999 +3103,900000000000000000000000000000000000000000000000000000000000003103.9999999999 +3104,900000000000000000000000000000000000000000000000000000000000003104.9999999999 +3105,900000000000000000000000000000000000000000000000000000000000003105.9999999999 +3106,900000000000000000000000000000000000000000000000000000000000003106.9999999999 +3107,900000000000000000000000000000000000000000000000000000000000003107.9999999999 +3108,900000000000000000000000000000000000000000000000000000000000003108.9999999999 +3109,900000000000000000000000000000000000000000000000000000000000003109.9999999999 +3110,900000000000000000000000000000000000000000000000000000000000003110.9999999999 +3111,900000000000000000000000000000000000000000000000000000000000003111.9999999999 +3112,900000000000000000000000000000000000000000000000000000000000003112.9999999999 +3113,900000000000000000000000000000000000000000000000000000000000003113.9999999999 +3114,900000000000000000000000000000000000000000000000000000000000003114.9999999999 +3115,900000000000000000000000000000000000000000000000000000000000003115.9999999999 +3116,900000000000000000000000000000000000000000000000000000000000003116.9999999999 +3117,900000000000000000000000000000000000000000000000000000000000003117.9999999999 +3118,900000000000000000000000000000000000000000000000000000000000003118.9999999999 +3119,900000000000000000000000000000000000000000000000000000000000003119.9999999999 +3120,900000000000000000000000000000000000000000000000000000000000003120.9999999999 +3121,900000000000000000000000000000000000000000000000000000000000003121.9999999999 +3122,900000000000000000000000000000000000000000000000000000000000003122.9999999999 +3123,900000000000000000000000000000000000000000000000000000000000003123.9999999999 +3124,900000000000000000000000000000000000000000000000000000000000003124.9999999999 +3125,900000000000000000000000000000000000000000000000000000000000003125.9999999999 +3126,900000000000000000000000000000000000000000000000000000000000003126.9999999999 +3127,900000000000000000000000000000000000000000000000000000000000003127.9999999999 +3128,900000000000000000000000000000000000000000000000000000000000003128.9999999999 +3129,900000000000000000000000000000000000000000000000000000000000003129.9999999999 +3130,900000000000000000000000000000000000000000000000000000000000003130.9999999999 +3131,900000000000000000000000000000000000000000000000000000000000003131.9999999999 +3132,900000000000000000000000000000000000000000000000000000000000003132.9999999999 +3133,900000000000000000000000000000000000000000000000000000000000003133.9999999999 +3134,900000000000000000000000000000000000000000000000000000000000003134.9999999999 +3135,900000000000000000000000000000000000000000000000000000000000003135.9999999999 +3136,900000000000000000000000000000000000000000000000000000000000003136.9999999999 +3137,900000000000000000000000000000000000000000000000000000000000003137.9999999999 +3138,900000000000000000000000000000000000000000000000000000000000003138.9999999999 +3139,900000000000000000000000000000000000000000000000000000000000003139.9999999999 +3140,900000000000000000000000000000000000000000000000000000000000003140.9999999999 +3141,900000000000000000000000000000000000000000000000000000000000003141.9999999999 +3142,900000000000000000000000000000000000000000000000000000000000003142.9999999999 +3143,900000000000000000000000000000000000000000000000000000000000003143.9999999999 +3144,900000000000000000000000000000000000000000000000000000000000003144.9999999999 +3145,900000000000000000000000000000000000000000000000000000000000003145.9999999999 +3146,900000000000000000000000000000000000000000000000000000000000003146.9999999999 +3147,900000000000000000000000000000000000000000000000000000000000003147.9999999999 +3148,900000000000000000000000000000000000000000000000000000000000003148.9999999999 +3149,900000000000000000000000000000000000000000000000000000000000003149.9999999999 +3150,900000000000000000000000000000000000000000000000000000000000003150.9999999999 +3151,900000000000000000000000000000000000000000000000000000000000003151.9999999999 +3152,900000000000000000000000000000000000000000000000000000000000003152.9999999999 +3153,900000000000000000000000000000000000000000000000000000000000003153.9999999999 +3154,900000000000000000000000000000000000000000000000000000000000003154.9999999999 +3155,900000000000000000000000000000000000000000000000000000000000003155.9999999999 +3156,900000000000000000000000000000000000000000000000000000000000003156.9999999999 +3157,900000000000000000000000000000000000000000000000000000000000003157.9999999999 +3158,900000000000000000000000000000000000000000000000000000000000003158.9999999999 +3159,900000000000000000000000000000000000000000000000000000000000003159.9999999999 +3160,900000000000000000000000000000000000000000000000000000000000003160.9999999999 +3161,900000000000000000000000000000000000000000000000000000000000003161.9999999999 +3162,900000000000000000000000000000000000000000000000000000000000003162.9999999999 +3163,900000000000000000000000000000000000000000000000000000000000003163.9999999999 +3164,900000000000000000000000000000000000000000000000000000000000003164.9999999999 +3165,900000000000000000000000000000000000000000000000000000000000003165.9999999999 +3166,900000000000000000000000000000000000000000000000000000000000003166.9999999999 +3167,900000000000000000000000000000000000000000000000000000000000003167.9999999999 +3168,900000000000000000000000000000000000000000000000000000000000003168.9999999999 +3169,900000000000000000000000000000000000000000000000000000000000003169.9999999999 +3170,900000000000000000000000000000000000000000000000000000000000003170.9999999999 +3171,900000000000000000000000000000000000000000000000000000000000003171.9999999999 +3172,900000000000000000000000000000000000000000000000000000000000003172.9999999999 +3173,900000000000000000000000000000000000000000000000000000000000003173.9999999999 +3174,900000000000000000000000000000000000000000000000000000000000003174.9999999999 +3175,900000000000000000000000000000000000000000000000000000000000003175.9999999999 +3176,900000000000000000000000000000000000000000000000000000000000003176.9999999999 +3177,900000000000000000000000000000000000000000000000000000000000003177.9999999999 +3178,900000000000000000000000000000000000000000000000000000000000003178.9999999999 +3179,900000000000000000000000000000000000000000000000000000000000003179.9999999999 +3180,900000000000000000000000000000000000000000000000000000000000003180.9999999999 +3181,900000000000000000000000000000000000000000000000000000000000003181.9999999999 +3182,900000000000000000000000000000000000000000000000000000000000003182.9999999999 +3183,900000000000000000000000000000000000000000000000000000000000003183.9999999999 +3184,900000000000000000000000000000000000000000000000000000000000003184.9999999999 +3185,900000000000000000000000000000000000000000000000000000000000003185.9999999999 +3186,900000000000000000000000000000000000000000000000000000000000003186.9999999999 +3187,900000000000000000000000000000000000000000000000000000000000003187.9999999999 +3188,900000000000000000000000000000000000000000000000000000000000003188.9999999999 +3189,900000000000000000000000000000000000000000000000000000000000003189.9999999999 +3190,900000000000000000000000000000000000000000000000000000000000003190.9999999999 +3191,900000000000000000000000000000000000000000000000000000000000003191.9999999999 +3192,900000000000000000000000000000000000000000000000000000000000003192.9999999999 +3193,900000000000000000000000000000000000000000000000000000000000003193.9999999999 +3194,900000000000000000000000000000000000000000000000000000000000003194.9999999999 +3195,900000000000000000000000000000000000000000000000000000000000003195.9999999999 +3196,900000000000000000000000000000000000000000000000000000000000003196.9999999999 +3197,900000000000000000000000000000000000000000000000000000000000003197.9999999999 +3198,900000000000000000000000000000000000000000000000000000000000003198.9999999999 +3199,900000000000000000000000000000000000000000000000000000000000003199.9999999999 +3200,900000000000000000000000000000000000000000000000000000000000003200.9999999999 +3201,900000000000000000000000000000000000000000000000000000000000003201.9999999999 +3202,900000000000000000000000000000000000000000000000000000000000003202.9999999999 +3203,900000000000000000000000000000000000000000000000000000000000003203.9999999999 +3204,900000000000000000000000000000000000000000000000000000000000003204.9999999999 +3205,900000000000000000000000000000000000000000000000000000000000003205.9999999999 +3206,900000000000000000000000000000000000000000000000000000000000003206.9999999999 +3207,900000000000000000000000000000000000000000000000000000000000003207.9999999999 +3208,900000000000000000000000000000000000000000000000000000000000003208.9999999999 +3209,900000000000000000000000000000000000000000000000000000000000003209.9999999999 +3210,900000000000000000000000000000000000000000000000000000000000003210.9999999999 +3211,900000000000000000000000000000000000000000000000000000000000003211.9999999999 +3212,900000000000000000000000000000000000000000000000000000000000003212.9999999999 +3213,900000000000000000000000000000000000000000000000000000000000003213.9999999999 +3214,900000000000000000000000000000000000000000000000000000000000003214.9999999999 +3215,900000000000000000000000000000000000000000000000000000000000003215.9999999999 +3216,900000000000000000000000000000000000000000000000000000000000003216.9999999999 +3217,900000000000000000000000000000000000000000000000000000000000003217.9999999999 +3218,900000000000000000000000000000000000000000000000000000000000003218.9999999999 +3219,900000000000000000000000000000000000000000000000000000000000003219.9999999999 +3220,900000000000000000000000000000000000000000000000000000000000003220.9999999999 +3221,900000000000000000000000000000000000000000000000000000000000003221.9999999999 +3222,900000000000000000000000000000000000000000000000000000000000003222.9999999999 +3223,900000000000000000000000000000000000000000000000000000000000003223.9999999999 +3224,900000000000000000000000000000000000000000000000000000000000003224.9999999999 +3225,900000000000000000000000000000000000000000000000000000000000003225.9999999999 +3226,900000000000000000000000000000000000000000000000000000000000003226.9999999999 +3227,900000000000000000000000000000000000000000000000000000000000003227.9999999999 +3228,900000000000000000000000000000000000000000000000000000000000003228.9999999999 +3229,900000000000000000000000000000000000000000000000000000000000003229.9999999999 +3230,900000000000000000000000000000000000000000000000000000000000003230.9999999999 +3231,900000000000000000000000000000000000000000000000000000000000003231.9999999999 +3232,900000000000000000000000000000000000000000000000000000000000003232.9999999999 +3233,900000000000000000000000000000000000000000000000000000000000003233.9999999999 +3234,900000000000000000000000000000000000000000000000000000000000003234.9999999999 +3235,900000000000000000000000000000000000000000000000000000000000003235.9999999999 +3236,900000000000000000000000000000000000000000000000000000000000003236.9999999999 +3237,900000000000000000000000000000000000000000000000000000000000003237.9999999999 +3238,900000000000000000000000000000000000000000000000000000000000003238.9999999999 +3239,900000000000000000000000000000000000000000000000000000000000003239.9999999999 +3240,900000000000000000000000000000000000000000000000000000000000003240.9999999999 +3241,900000000000000000000000000000000000000000000000000000000000003241.9999999999 +3242,900000000000000000000000000000000000000000000000000000000000003242.9999999999 +3243,900000000000000000000000000000000000000000000000000000000000003243.9999999999 +3244,900000000000000000000000000000000000000000000000000000000000003244.9999999999 +3245,900000000000000000000000000000000000000000000000000000000000003245.9999999999 +3246,900000000000000000000000000000000000000000000000000000000000003246.9999999999 +3247,900000000000000000000000000000000000000000000000000000000000003247.9999999999 +3248,900000000000000000000000000000000000000000000000000000000000003248.9999999999 +3249,900000000000000000000000000000000000000000000000000000000000003249.9999999999 +3250,900000000000000000000000000000000000000000000000000000000000003250.9999999999 +3251,900000000000000000000000000000000000000000000000000000000000003251.9999999999 +3252,900000000000000000000000000000000000000000000000000000000000003252.9999999999 +3253,900000000000000000000000000000000000000000000000000000000000003253.9999999999 +3254,900000000000000000000000000000000000000000000000000000000000003254.9999999999 +3255,900000000000000000000000000000000000000000000000000000000000003255.9999999999 +3256,900000000000000000000000000000000000000000000000000000000000003256.9999999999 +3257,900000000000000000000000000000000000000000000000000000000000003257.9999999999 +3258,900000000000000000000000000000000000000000000000000000000000003258.9999999999 +3259,900000000000000000000000000000000000000000000000000000000000003259.9999999999 +3260,900000000000000000000000000000000000000000000000000000000000003260.9999999999 +3261,900000000000000000000000000000000000000000000000000000000000003261.9999999999 +3262,900000000000000000000000000000000000000000000000000000000000003262.9999999999 +3263,900000000000000000000000000000000000000000000000000000000000003263.9999999999 +3264,900000000000000000000000000000000000000000000000000000000000003264.9999999999 +3265,900000000000000000000000000000000000000000000000000000000000003265.9999999999 +3266,900000000000000000000000000000000000000000000000000000000000003266.9999999999 +3267,900000000000000000000000000000000000000000000000000000000000003267.9999999999 +3268,900000000000000000000000000000000000000000000000000000000000003268.9999999999 +3269,900000000000000000000000000000000000000000000000000000000000003269.9999999999 +3270,900000000000000000000000000000000000000000000000000000000000003270.9999999999 +3271,900000000000000000000000000000000000000000000000000000000000003271.9999999999 +3272,900000000000000000000000000000000000000000000000000000000000003272.9999999999 +3273,900000000000000000000000000000000000000000000000000000000000003273.9999999999 +3274,900000000000000000000000000000000000000000000000000000000000003274.9999999999 +3275,900000000000000000000000000000000000000000000000000000000000003275.9999999999 +3276,900000000000000000000000000000000000000000000000000000000000003276.9999999999 +3277,900000000000000000000000000000000000000000000000000000000000003277.9999999999 +3278,900000000000000000000000000000000000000000000000000000000000003278.9999999999 +3279,900000000000000000000000000000000000000000000000000000000000003279.9999999999 +3280,900000000000000000000000000000000000000000000000000000000000003280.9999999999 +3281,900000000000000000000000000000000000000000000000000000000000003281.9999999999 +3282,900000000000000000000000000000000000000000000000000000000000003282.9999999999 +3283,900000000000000000000000000000000000000000000000000000000000003283.9999999999 +3284,900000000000000000000000000000000000000000000000000000000000003284.9999999999 +3285,900000000000000000000000000000000000000000000000000000000000003285.9999999999 +3286,900000000000000000000000000000000000000000000000000000000000003286.9999999999 +3287,900000000000000000000000000000000000000000000000000000000000003287.9999999999 +3288,900000000000000000000000000000000000000000000000000000000000003288.9999999999 +3289,900000000000000000000000000000000000000000000000000000000000003289.9999999999 +3290,900000000000000000000000000000000000000000000000000000000000003290.9999999999 +3291,900000000000000000000000000000000000000000000000000000000000003291.9999999999 +3292,900000000000000000000000000000000000000000000000000000000000003292.9999999999 +3293,900000000000000000000000000000000000000000000000000000000000003293.9999999999 +3294,900000000000000000000000000000000000000000000000000000000000003294.9999999999 +3295,900000000000000000000000000000000000000000000000000000000000003295.9999999999 +3296,900000000000000000000000000000000000000000000000000000000000003296.9999999999 +3297,900000000000000000000000000000000000000000000000000000000000003297.9999999999 +3298,900000000000000000000000000000000000000000000000000000000000003298.9999999999 +3299,900000000000000000000000000000000000000000000000000000000000003299.9999999999 +3300,900000000000000000000000000000000000000000000000000000000000003300.9999999999 +3301,900000000000000000000000000000000000000000000000000000000000003301.9999999999 +3302,900000000000000000000000000000000000000000000000000000000000003302.9999999999 +3303,900000000000000000000000000000000000000000000000000000000000003303.9999999999 +3304,900000000000000000000000000000000000000000000000000000000000003304.9999999999 +3305,900000000000000000000000000000000000000000000000000000000000003305.9999999999 +3306,900000000000000000000000000000000000000000000000000000000000003306.9999999999 +3307,900000000000000000000000000000000000000000000000000000000000003307.9999999999 +3308,900000000000000000000000000000000000000000000000000000000000003308.9999999999 +3309,900000000000000000000000000000000000000000000000000000000000003309.9999999999 +3310,900000000000000000000000000000000000000000000000000000000000003310.9999999999 +3311,900000000000000000000000000000000000000000000000000000000000003311.9999999999 +3312,900000000000000000000000000000000000000000000000000000000000003312.9999999999 +3313,900000000000000000000000000000000000000000000000000000000000003313.9999999999 +3314,900000000000000000000000000000000000000000000000000000000000003314.9999999999 +3315,900000000000000000000000000000000000000000000000000000000000003315.9999999999 +3316,900000000000000000000000000000000000000000000000000000000000003316.9999999999 +3317,900000000000000000000000000000000000000000000000000000000000003317.9999999999 +3318,900000000000000000000000000000000000000000000000000000000000003318.9999999999 +3319,900000000000000000000000000000000000000000000000000000000000003319.9999999999 +3320,900000000000000000000000000000000000000000000000000000000000003320.9999999999 +3321,900000000000000000000000000000000000000000000000000000000000003321.9999999999 +3322,900000000000000000000000000000000000000000000000000000000000003322.9999999999 +3323,900000000000000000000000000000000000000000000000000000000000003323.9999999999 +3324,900000000000000000000000000000000000000000000000000000000000003324.9999999999 +3325,900000000000000000000000000000000000000000000000000000000000003325.9999999999 +3326,900000000000000000000000000000000000000000000000000000000000003326.9999999999 +3327,900000000000000000000000000000000000000000000000000000000000003327.9999999999 +3328,900000000000000000000000000000000000000000000000000000000000003328.9999999999 +3329,900000000000000000000000000000000000000000000000000000000000003329.9999999999 +3330,900000000000000000000000000000000000000000000000000000000000003330.9999999999 +3331,900000000000000000000000000000000000000000000000000000000000003331.9999999999 +3332,900000000000000000000000000000000000000000000000000000000000003332.9999999999 +3333,900000000000000000000000000000000000000000000000000000000000003333.9999999999 +3334,900000000000000000000000000000000000000000000000000000000000003334.9999999999 +3335,900000000000000000000000000000000000000000000000000000000000003335.9999999999 +3336,900000000000000000000000000000000000000000000000000000000000003336.9999999999 +3337,900000000000000000000000000000000000000000000000000000000000003337.9999999999 +3338,900000000000000000000000000000000000000000000000000000000000003338.9999999999 +3339,900000000000000000000000000000000000000000000000000000000000003339.9999999999 +3340,900000000000000000000000000000000000000000000000000000000000003340.9999999999 +3341,900000000000000000000000000000000000000000000000000000000000003341.9999999999 +3342,900000000000000000000000000000000000000000000000000000000000003342.9999999999 +3343,900000000000000000000000000000000000000000000000000000000000003343.9999999999 +3344,900000000000000000000000000000000000000000000000000000000000003344.9999999999 +3345,900000000000000000000000000000000000000000000000000000000000003345.9999999999 +3346,900000000000000000000000000000000000000000000000000000000000003346.9999999999 +3347,900000000000000000000000000000000000000000000000000000000000003347.9999999999 +3348,900000000000000000000000000000000000000000000000000000000000003348.9999999999 +3349,900000000000000000000000000000000000000000000000000000000000003349.9999999999 +3350,900000000000000000000000000000000000000000000000000000000000003350.9999999999 +3351,900000000000000000000000000000000000000000000000000000000000003351.9999999999 +3352,900000000000000000000000000000000000000000000000000000000000003352.9999999999 +3353,900000000000000000000000000000000000000000000000000000000000003353.9999999999 +3354,900000000000000000000000000000000000000000000000000000000000003354.9999999999 +3355,900000000000000000000000000000000000000000000000000000000000003355.9999999999 +3356,900000000000000000000000000000000000000000000000000000000000003356.9999999999 +3357,900000000000000000000000000000000000000000000000000000000000003357.9999999999 +3358,900000000000000000000000000000000000000000000000000000000000003358.9999999999 +3359,900000000000000000000000000000000000000000000000000000000000003359.9999999999 +3360,900000000000000000000000000000000000000000000000000000000000003360.9999999999 +3361,900000000000000000000000000000000000000000000000000000000000003361.9999999999 +3362,900000000000000000000000000000000000000000000000000000000000003362.9999999999 +3363,900000000000000000000000000000000000000000000000000000000000003363.9999999999 +3364,900000000000000000000000000000000000000000000000000000000000003364.9999999999 +3365,900000000000000000000000000000000000000000000000000000000000003365.9999999999 +3366,900000000000000000000000000000000000000000000000000000000000003366.9999999999 +3367,900000000000000000000000000000000000000000000000000000000000003367.9999999999 +3368,900000000000000000000000000000000000000000000000000000000000003368.9999999999 +3369,900000000000000000000000000000000000000000000000000000000000003369.9999999999 +3370,900000000000000000000000000000000000000000000000000000000000003370.9999999999 +3371,900000000000000000000000000000000000000000000000000000000000003371.9999999999 +3372,900000000000000000000000000000000000000000000000000000000000003372.9999999999 +3373,900000000000000000000000000000000000000000000000000000000000003373.9999999999 +3374,900000000000000000000000000000000000000000000000000000000000003374.9999999999 +3375,900000000000000000000000000000000000000000000000000000000000003375.9999999999 +3376,900000000000000000000000000000000000000000000000000000000000003376.9999999999 +3377,900000000000000000000000000000000000000000000000000000000000003377.9999999999 +3378,900000000000000000000000000000000000000000000000000000000000003378.9999999999 +3379,900000000000000000000000000000000000000000000000000000000000003379.9999999999 +3380,900000000000000000000000000000000000000000000000000000000000003380.9999999999 +3381,900000000000000000000000000000000000000000000000000000000000003381.9999999999 +3382,900000000000000000000000000000000000000000000000000000000000003382.9999999999 +3383,900000000000000000000000000000000000000000000000000000000000003383.9999999999 +3384,900000000000000000000000000000000000000000000000000000000000003384.9999999999 +3385,900000000000000000000000000000000000000000000000000000000000003385.9999999999 +3386,900000000000000000000000000000000000000000000000000000000000003386.9999999999 +3387,900000000000000000000000000000000000000000000000000000000000003387.9999999999 +3388,900000000000000000000000000000000000000000000000000000000000003388.9999999999 +3389,900000000000000000000000000000000000000000000000000000000000003389.9999999999 +3390,900000000000000000000000000000000000000000000000000000000000003390.9999999999 +3391,900000000000000000000000000000000000000000000000000000000000003391.9999999999 +3392,900000000000000000000000000000000000000000000000000000000000003392.9999999999 +3393,900000000000000000000000000000000000000000000000000000000000003393.9999999999 +3394,900000000000000000000000000000000000000000000000000000000000003394.9999999999 +3395,900000000000000000000000000000000000000000000000000000000000003395.9999999999 +3396,900000000000000000000000000000000000000000000000000000000000003396.9999999999 +3397,900000000000000000000000000000000000000000000000000000000000003397.9999999999 +3398,900000000000000000000000000000000000000000000000000000000000003398.9999999999 +3399,900000000000000000000000000000000000000000000000000000000000003399.9999999999 +3400,900000000000000000000000000000000000000000000000000000000000003400.9999999999 +3401,900000000000000000000000000000000000000000000000000000000000003401.9999999999 +3402,900000000000000000000000000000000000000000000000000000000000003402.9999999999 +3403,900000000000000000000000000000000000000000000000000000000000003403.9999999999 +3404,900000000000000000000000000000000000000000000000000000000000003404.9999999999 +3405,900000000000000000000000000000000000000000000000000000000000003405.9999999999 +3406,900000000000000000000000000000000000000000000000000000000000003406.9999999999 +3407,900000000000000000000000000000000000000000000000000000000000003407.9999999999 +3408,900000000000000000000000000000000000000000000000000000000000003408.9999999999 +3409,900000000000000000000000000000000000000000000000000000000000003409.9999999999 +3410,900000000000000000000000000000000000000000000000000000000000003410.9999999999 +3411,900000000000000000000000000000000000000000000000000000000000003411.9999999999 +3412,900000000000000000000000000000000000000000000000000000000000003412.9999999999 +3413,900000000000000000000000000000000000000000000000000000000000003413.9999999999 +3414,900000000000000000000000000000000000000000000000000000000000003414.9999999999 +3415,900000000000000000000000000000000000000000000000000000000000003415.9999999999 +3416,900000000000000000000000000000000000000000000000000000000000003416.9999999999 +3417,900000000000000000000000000000000000000000000000000000000000003417.9999999999 +3418,900000000000000000000000000000000000000000000000000000000000003418.9999999999 +3419,900000000000000000000000000000000000000000000000000000000000003419.9999999999 +3420,900000000000000000000000000000000000000000000000000000000000003420.9999999999 +3421,900000000000000000000000000000000000000000000000000000000000003421.9999999999 +3422,900000000000000000000000000000000000000000000000000000000000003422.9999999999 +3423,900000000000000000000000000000000000000000000000000000000000003423.9999999999 +3424,900000000000000000000000000000000000000000000000000000000000003424.9999999999 +3425,900000000000000000000000000000000000000000000000000000000000003425.9999999999 +3426,900000000000000000000000000000000000000000000000000000000000003426.9999999999 +3427,900000000000000000000000000000000000000000000000000000000000003427.9999999999 +3428,900000000000000000000000000000000000000000000000000000000000003428.9999999999 +3429,900000000000000000000000000000000000000000000000000000000000003429.9999999999 +3430,900000000000000000000000000000000000000000000000000000000000003430.9999999999 +3431,900000000000000000000000000000000000000000000000000000000000003431.9999999999 +3432,900000000000000000000000000000000000000000000000000000000000003432.9999999999 +3433,900000000000000000000000000000000000000000000000000000000000003433.9999999999 +3434,900000000000000000000000000000000000000000000000000000000000003434.9999999999 +3435,900000000000000000000000000000000000000000000000000000000000003435.9999999999 +3436,900000000000000000000000000000000000000000000000000000000000003436.9999999999 +3437,900000000000000000000000000000000000000000000000000000000000003437.9999999999 +3438,900000000000000000000000000000000000000000000000000000000000003438.9999999999 +3439,900000000000000000000000000000000000000000000000000000000000003439.9999999999 +3440,900000000000000000000000000000000000000000000000000000000000003440.9999999999 +3441,900000000000000000000000000000000000000000000000000000000000003441.9999999999 +3442,900000000000000000000000000000000000000000000000000000000000003442.9999999999 +3443,900000000000000000000000000000000000000000000000000000000000003443.9999999999 +3444,900000000000000000000000000000000000000000000000000000000000003444.9999999999 +3445,900000000000000000000000000000000000000000000000000000000000003445.9999999999 +3446,900000000000000000000000000000000000000000000000000000000000003446.9999999999 +3447,900000000000000000000000000000000000000000000000000000000000003447.9999999999 +3448,900000000000000000000000000000000000000000000000000000000000003448.9999999999 +3449,900000000000000000000000000000000000000000000000000000000000003449.9999999999 +3450,900000000000000000000000000000000000000000000000000000000000003450.9999999999 +3451,900000000000000000000000000000000000000000000000000000000000003451.9999999999 +3452,900000000000000000000000000000000000000000000000000000000000003452.9999999999 +3453,900000000000000000000000000000000000000000000000000000000000003453.9999999999 +3454,900000000000000000000000000000000000000000000000000000000000003454.9999999999 +3455,900000000000000000000000000000000000000000000000000000000000003455.9999999999 +3456,900000000000000000000000000000000000000000000000000000000000003456.9999999999 +3457,900000000000000000000000000000000000000000000000000000000000003457.9999999999 +3458,900000000000000000000000000000000000000000000000000000000000003458.9999999999 +3459,900000000000000000000000000000000000000000000000000000000000003459.9999999999 +3460,900000000000000000000000000000000000000000000000000000000000003460.9999999999 +3461,900000000000000000000000000000000000000000000000000000000000003461.9999999999 +3462,900000000000000000000000000000000000000000000000000000000000003462.9999999999 +3463,900000000000000000000000000000000000000000000000000000000000003463.9999999999 +3464,900000000000000000000000000000000000000000000000000000000000003464.9999999999 +3465,900000000000000000000000000000000000000000000000000000000000003465.9999999999 +3466,900000000000000000000000000000000000000000000000000000000000003466.9999999999 +3467,900000000000000000000000000000000000000000000000000000000000003467.9999999999 +3468,900000000000000000000000000000000000000000000000000000000000003468.9999999999 +3469,900000000000000000000000000000000000000000000000000000000000003469.9999999999 +3470,900000000000000000000000000000000000000000000000000000000000003470.9999999999 +3471,900000000000000000000000000000000000000000000000000000000000003471.9999999999 +3472,900000000000000000000000000000000000000000000000000000000000003472.9999999999 +3473,900000000000000000000000000000000000000000000000000000000000003473.9999999999 +3474,900000000000000000000000000000000000000000000000000000000000003474.9999999999 +3475,900000000000000000000000000000000000000000000000000000000000003475.9999999999 +3476,900000000000000000000000000000000000000000000000000000000000003476.9999999999 +3477,900000000000000000000000000000000000000000000000000000000000003477.9999999999 +3478,900000000000000000000000000000000000000000000000000000000000003478.9999999999 +3479,900000000000000000000000000000000000000000000000000000000000003479.9999999999 +3480,900000000000000000000000000000000000000000000000000000000000003480.9999999999 +3481,900000000000000000000000000000000000000000000000000000000000003481.9999999999 +3482,900000000000000000000000000000000000000000000000000000000000003482.9999999999 +3483,900000000000000000000000000000000000000000000000000000000000003483.9999999999 +3484,900000000000000000000000000000000000000000000000000000000000003484.9999999999 +3485,900000000000000000000000000000000000000000000000000000000000003485.9999999999 +3486,900000000000000000000000000000000000000000000000000000000000003486.9999999999 +3487,900000000000000000000000000000000000000000000000000000000000003487.9999999999 +3488,900000000000000000000000000000000000000000000000000000000000003488.9999999999 +3489,900000000000000000000000000000000000000000000000000000000000003489.9999999999 +3490,900000000000000000000000000000000000000000000000000000000000003490.9999999999 +3491,900000000000000000000000000000000000000000000000000000000000003491.9999999999 +3492,900000000000000000000000000000000000000000000000000000000000003492.9999999999 +3493,900000000000000000000000000000000000000000000000000000000000003493.9999999999 +3494,900000000000000000000000000000000000000000000000000000000000003494.9999999999 +3495,900000000000000000000000000000000000000000000000000000000000003495.9999999999 +3496,900000000000000000000000000000000000000000000000000000000000003496.9999999999 +3497,900000000000000000000000000000000000000000000000000000000000003497.9999999999 +3498,900000000000000000000000000000000000000000000000000000000000003498.9999999999 +3499,900000000000000000000000000000000000000000000000000000000000003499.9999999999 +3500,900000000000000000000000000000000000000000000000000000000000003500.9999999999 +3501,900000000000000000000000000000000000000000000000000000000000003501.9999999999 +3502,900000000000000000000000000000000000000000000000000000000000003502.9999999999 +3503,900000000000000000000000000000000000000000000000000000000000003503.9999999999 +3504,900000000000000000000000000000000000000000000000000000000000003504.9999999999 +3505,900000000000000000000000000000000000000000000000000000000000003505.9999999999 +3506,900000000000000000000000000000000000000000000000000000000000003506.9999999999 +3507,900000000000000000000000000000000000000000000000000000000000003507.9999999999 +3508,900000000000000000000000000000000000000000000000000000000000003508.9999999999 +3509,900000000000000000000000000000000000000000000000000000000000003509.9999999999 +3510,900000000000000000000000000000000000000000000000000000000000003510.9999999999 +3511,900000000000000000000000000000000000000000000000000000000000003511.9999999999 +3512,900000000000000000000000000000000000000000000000000000000000003512.9999999999 +3513,900000000000000000000000000000000000000000000000000000000000003513.9999999999 +3514,900000000000000000000000000000000000000000000000000000000000003514.9999999999 +3515,900000000000000000000000000000000000000000000000000000000000003515.9999999999 +3516,900000000000000000000000000000000000000000000000000000000000003516.9999999999 +3517,900000000000000000000000000000000000000000000000000000000000003517.9999999999 +3518,900000000000000000000000000000000000000000000000000000000000003518.9999999999 +3519,900000000000000000000000000000000000000000000000000000000000003519.9999999999 +3520,900000000000000000000000000000000000000000000000000000000000003520.9999999999 +3521,900000000000000000000000000000000000000000000000000000000000003521.9999999999 +3522,900000000000000000000000000000000000000000000000000000000000003522.9999999999 +3523,900000000000000000000000000000000000000000000000000000000000003523.9999999999 +3524,900000000000000000000000000000000000000000000000000000000000003524.9999999999 +3525,900000000000000000000000000000000000000000000000000000000000003525.9999999999 +3526,900000000000000000000000000000000000000000000000000000000000003526.9999999999 +3527,900000000000000000000000000000000000000000000000000000000000003527.9999999999 +3528,900000000000000000000000000000000000000000000000000000000000003528.9999999999 +3529,900000000000000000000000000000000000000000000000000000000000003529.9999999999 +3530,900000000000000000000000000000000000000000000000000000000000003530.9999999999 +3531,900000000000000000000000000000000000000000000000000000000000003531.9999999999 +3532,900000000000000000000000000000000000000000000000000000000000003532.9999999999 +3533,900000000000000000000000000000000000000000000000000000000000003533.9999999999 +3534,900000000000000000000000000000000000000000000000000000000000003534.9999999999 +3535,900000000000000000000000000000000000000000000000000000000000003535.9999999999 +3536,900000000000000000000000000000000000000000000000000000000000003536.9999999999 +3537,900000000000000000000000000000000000000000000000000000000000003537.9999999999 +3538,900000000000000000000000000000000000000000000000000000000000003538.9999999999 +3539,900000000000000000000000000000000000000000000000000000000000003539.9999999999 +3540,900000000000000000000000000000000000000000000000000000000000003540.9999999999 +3541,900000000000000000000000000000000000000000000000000000000000003541.9999999999 +3542,900000000000000000000000000000000000000000000000000000000000003542.9999999999 +3543,900000000000000000000000000000000000000000000000000000000000003543.9999999999 +3544,900000000000000000000000000000000000000000000000000000000000003544.9999999999 +3545,900000000000000000000000000000000000000000000000000000000000003545.9999999999 +3546,900000000000000000000000000000000000000000000000000000000000003546.9999999999 +3547,900000000000000000000000000000000000000000000000000000000000003547.9999999999 +3548,900000000000000000000000000000000000000000000000000000000000003548.9999999999 +3549,900000000000000000000000000000000000000000000000000000000000003549.9999999999 +3550,900000000000000000000000000000000000000000000000000000000000003550.9999999999 +3551,900000000000000000000000000000000000000000000000000000000000003551.9999999999 +3552,900000000000000000000000000000000000000000000000000000000000003552.9999999999 +3553,900000000000000000000000000000000000000000000000000000000000003553.9999999999 +3554,900000000000000000000000000000000000000000000000000000000000003554.9999999999 +3555,900000000000000000000000000000000000000000000000000000000000003555.9999999999 +3556,900000000000000000000000000000000000000000000000000000000000003556.9999999999 +3557,900000000000000000000000000000000000000000000000000000000000003557.9999999999 +3558,900000000000000000000000000000000000000000000000000000000000003558.9999999999 +3559,900000000000000000000000000000000000000000000000000000000000003559.9999999999 +3560,900000000000000000000000000000000000000000000000000000000000003560.9999999999 +3561,900000000000000000000000000000000000000000000000000000000000003561.9999999999 +3562,900000000000000000000000000000000000000000000000000000000000003562.9999999999 +3563,900000000000000000000000000000000000000000000000000000000000003563.9999999999 +3564,900000000000000000000000000000000000000000000000000000000000003564.9999999999 +3565,900000000000000000000000000000000000000000000000000000000000003565.9999999999 +3566,900000000000000000000000000000000000000000000000000000000000003566.9999999999 +3567,900000000000000000000000000000000000000000000000000000000000003567.9999999999 +3568,900000000000000000000000000000000000000000000000000000000000003568.9999999999 +3569,900000000000000000000000000000000000000000000000000000000000003569.9999999999 +3570,900000000000000000000000000000000000000000000000000000000000003570.9999999999 +3571,900000000000000000000000000000000000000000000000000000000000003571.9999999999 +3572,900000000000000000000000000000000000000000000000000000000000003572.9999999999 +3573,900000000000000000000000000000000000000000000000000000000000003573.9999999999 +3574,900000000000000000000000000000000000000000000000000000000000003574.9999999999 +3575,900000000000000000000000000000000000000000000000000000000000003575.9999999999 +3576,900000000000000000000000000000000000000000000000000000000000003576.9999999999 +3577,900000000000000000000000000000000000000000000000000000000000003577.9999999999 +3578,900000000000000000000000000000000000000000000000000000000000003578.9999999999 +3579,900000000000000000000000000000000000000000000000000000000000003579.9999999999 +3580,900000000000000000000000000000000000000000000000000000000000003580.9999999999 +3581,900000000000000000000000000000000000000000000000000000000000003581.9999999999 +3582,900000000000000000000000000000000000000000000000000000000000003582.9999999999 +3583,900000000000000000000000000000000000000000000000000000000000003583.9999999999 +3584,900000000000000000000000000000000000000000000000000000000000003584.9999999999 +3585,900000000000000000000000000000000000000000000000000000000000003585.9999999999 +3586,900000000000000000000000000000000000000000000000000000000000003586.9999999999 +3587,900000000000000000000000000000000000000000000000000000000000003587.9999999999 +3588,900000000000000000000000000000000000000000000000000000000000003588.9999999999 +3589,900000000000000000000000000000000000000000000000000000000000003589.9999999999 +3590,900000000000000000000000000000000000000000000000000000000000003590.9999999999 +3591,900000000000000000000000000000000000000000000000000000000000003591.9999999999 +3592,900000000000000000000000000000000000000000000000000000000000003592.9999999999 +3593,900000000000000000000000000000000000000000000000000000000000003593.9999999999 +3594,900000000000000000000000000000000000000000000000000000000000003594.9999999999 +3595,900000000000000000000000000000000000000000000000000000000000003595.9999999999 +3596,900000000000000000000000000000000000000000000000000000000000003596.9999999999 +3597,900000000000000000000000000000000000000000000000000000000000003597.9999999999 +3598,900000000000000000000000000000000000000000000000000000000000003598.9999999999 +3599,900000000000000000000000000000000000000000000000000000000000003599.9999999999 +3600,900000000000000000000000000000000000000000000000000000000000003600.9999999999 +3601,900000000000000000000000000000000000000000000000000000000000003601.9999999999 +3602,900000000000000000000000000000000000000000000000000000000000003602.9999999999 +3603,900000000000000000000000000000000000000000000000000000000000003603.9999999999 +3604,900000000000000000000000000000000000000000000000000000000000003604.9999999999 +3605,900000000000000000000000000000000000000000000000000000000000003605.9999999999 +3606,900000000000000000000000000000000000000000000000000000000000003606.9999999999 +3607,900000000000000000000000000000000000000000000000000000000000003607.9999999999 +3608,900000000000000000000000000000000000000000000000000000000000003608.9999999999 +3609,900000000000000000000000000000000000000000000000000000000000003609.9999999999 +3610,900000000000000000000000000000000000000000000000000000000000003610.9999999999 +3611,900000000000000000000000000000000000000000000000000000000000003611.9999999999 +3612,900000000000000000000000000000000000000000000000000000000000003612.9999999999 +3613,900000000000000000000000000000000000000000000000000000000000003613.9999999999 +3614,900000000000000000000000000000000000000000000000000000000000003614.9999999999 +3615,900000000000000000000000000000000000000000000000000000000000003615.9999999999 +3616,900000000000000000000000000000000000000000000000000000000000003616.9999999999 +3617,900000000000000000000000000000000000000000000000000000000000003617.9999999999 +3618,900000000000000000000000000000000000000000000000000000000000003618.9999999999 +3619,900000000000000000000000000000000000000000000000000000000000003619.9999999999 +3620,900000000000000000000000000000000000000000000000000000000000003620.9999999999 +3621,900000000000000000000000000000000000000000000000000000000000003621.9999999999 +3622,900000000000000000000000000000000000000000000000000000000000003622.9999999999 +3623,900000000000000000000000000000000000000000000000000000000000003623.9999999999 +3624,900000000000000000000000000000000000000000000000000000000000003624.9999999999 +3625,900000000000000000000000000000000000000000000000000000000000003625.9999999999 +3626,900000000000000000000000000000000000000000000000000000000000003626.9999999999 +3627,900000000000000000000000000000000000000000000000000000000000003627.9999999999 +3628,900000000000000000000000000000000000000000000000000000000000003628.9999999999 +3629,900000000000000000000000000000000000000000000000000000000000003629.9999999999 +3630,900000000000000000000000000000000000000000000000000000000000003630.9999999999 +3631,900000000000000000000000000000000000000000000000000000000000003631.9999999999 +3632,900000000000000000000000000000000000000000000000000000000000003632.9999999999 +3633,900000000000000000000000000000000000000000000000000000000000003633.9999999999 +3634,900000000000000000000000000000000000000000000000000000000000003634.9999999999 +3635,900000000000000000000000000000000000000000000000000000000000003635.9999999999 +3636,900000000000000000000000000000000000000000000000000000000000003636.9999999999 +3637,900000000000000000000000000000000000000000000000000000000000003637.9999999999 +3638,900000000000000000000000000000000000000000000000000000000000003638.9999999999 +3639,900000000000000000000000000000000000000000000000000000000000003639.9999999999 +3640,900000000000000000000000000000000000000000000000000000000000003640.9999999999 +3641,900000000000000000000000000000000000000000000000000000000000003641.9999999999 +3642,900000000000000000000000000000000000000000000000000000000000003642.9999999999 +3643,900000000000000000000000000000000000000000000000000000000000003643.9999999999 +3644,900000000000000000000000000000000000000000000000000000000000003644.9999999999 +3645,900000000000000000000000000000000000000000000000000000000000003645.9999999999 +3646,900000000000000000000000000000000000000000000000000000000000003646.9999999999 +3647,900000000000000000000000000000000000000000000000000000000000003647.9999999999 +3648,900000000000000000000000000000000000000000000000000000000000003648.9999999999 +3649,900000000000000000000000000000000000000000000000000000000000003649.9999999999 +3650,900000000000000000000000000000000000000000000000000000000000003650.9999999999 +3651,900000000000000000000000000000000000000000000000000000000000003651.9999999999 +3652,900000000000000000000000000000000000000000000000000000000000003652.9999999999 +3653,900000000000000000000000000000000000000000000000000000000000003653.9999999999 +3654,900000000000000000000000000000000000000000000000000000000000003654.9999999999 +3655,900000000000000000000000000000000000000000000000000000000000003655.9999999999 +3656,900000000000000000000000000000000000000000000000000000000000003656.9999999999 +3657,900000000000000000000000000000000000000000000000000000000000003657.9999999999 +3658,900000000000000000000000000000000000000000000000000000000000003658.9999999999 +3659,900000000000000000000000000000000000000000000000000000000000003659.9999999999 +3660,900000000000000000000000000000000000000000000000000000000000003660.9999999999 +3661,900000000000000000000000000000000000000000000000000000000000003661.9999999999 +3662,900000000000000000000000000000000000000000000000000000000000003662.9999999999 +3663,900000000000000000000000000000000000000000000000000000000000003663.9999999999 +3664,900000000000000000000000000000000000000000000000000000000000003664.9999999999 +3665,900000000000000000000000000000000000000000000000000000000000003665.9999999999 +3666,900000000000000000000000000000000000000000000000000000000000003666.9999999999 +3667,900000000000000000000000000000000000000000000000000000000000003667.9999999999 +3668,900000000000000000000000000000000000000000000000000000000000003668.9999999999 +3669,900000000000000000000000000000000000000000000000000000000000003669.9999999999 +3670,900000000000000000000000000000000000000000000000000000000000003670.9999999999 +3671,900000000000000000000000000000000000000000000000000000000000003671.9999999999 +3672,900000000000000000000000000000000000000000000000000000000000003672.9999999999 +3673,900000000000000000000000000000000000000000000000000000000000003673.9999999999 +3674,900000000000000000000000000000000000000000000000000000000000003674.9999999999 +3675,900000000000000000000000000000000000000000000000000000000000003675.9999999999 +3676,900000000000000000000000000000000000000000000000000000000000003676.9999999999 +3677,900000000000000000000000000000000000000000000000000000000000003677.9999999999 +3678,900000000000000000000000000000000000000000000000000000000000003678.9999999999 +3679,900000000000000000000000000000000000000000000000000000000000003679.9999999999 +3680,900000000000000000000000000000000000000000000000000000000000003680.9999999999 +3681,900000000000000000000000000000000000000000000000000000000000003681.9999999999 +3682,900000000000000000000000000000000000000000000000000000000000003682.9999999999 +3683,900000000000000000000000000000000000000000000000000000000000003683.9999999999 +3684,900000000000000000000000000000000000000000000000000000000000003684.9999999999 +3685,900000000000000000000000000000000000000000000000000000000000003685.9999999999 +3686,900000000000000000000000000000000000000000000000000000000000003686.9999999999 +3687,900000000000000000000000000000000000000000000000000000000000003687.9999999999 +3688,900000000000000000000000000000000000000000000000000000000000003688.9999999999 +3689,900000000000000000000000000000000000000000000000000000000000003689.9999999999 +3690,900000000000000000000000000000000000000000000000000000000000003690.9999999999 +3691,900000000000000000000000000000000000000000000000000000000000003691.9999999999 +3692,900000000000000000000000000000000000000000000000000000000000003692.9999999999 +3693,900000000000000000000000000000000000000000000000000000000000003693.9999999999 +3694,900000000000000000000000000000000000000000000000000000000000003694.9999999999 +3695,900000000000000000000000000000000000000000000000000000000000003695.9999999999 +3696,900000000000000000000000000000000000000000000000000000000000003696.9999999999 +3697,900000000000000000000000000000000000000000000000000000000000003697.9999999999 +3698,900000000000000000000000000000000000000000000000000000000000003698.9999999999 +3699,900000000000000000000000000000000000000000000000000000000000003699.9999999999 +3700,900000000000000000000000000000000000000000000000000000000000003700.9999999999 +3701,900000000000000000000000000000000000000000000000000000000000003701.9999999999 +3702,900000000000000000000000000000000000000000000000000000000000003702.9999999999 +3703,900000000000000000000000000000000000000000000000000000000000003703.9999999999 +3704,900000000000000000000000000000000000000000000000000000000000003704.9999999999 +3705,900000000000000000000000000000000000000000000000000000000000003705.9999999999 +3706,900000000000000000000000000000000000000000000000000000000000003706.9999999999 +3707,900000000000000000000000000000000000000000000000000000000000003707.9999999999 +3708,900000000000000000000000000000000000000000000000000000000000003708.9999999999 +3709,900000000000000000000000000000000000000000000000000000000000003709.9999999999 +3710,900000000000000000000000000000000000000000000000000000000000003710.9999999999 +3711,900000000000000000000000000000000000000000000000000000000000003711.9999999999 +3712,900000000000000000000000000000000000000000000000000000000000003712.9999999999 +3713,900000000000000000000000000000000000000000000000000000000000003713.9999999999 +3714,900000000000000000000000000000000000000000000000000000000000003714.9999999999 +3715,900000000000000000000000000000000000000000000000000000000000003715.9999999999 +3716,900000000000000000000000000000000000000000000000000000000000003716.9999999999 +3717,900000000000000000000000000000000000000000000000000000000000003717.9999999999 +3718,900000000000000000000000000000000000000000000000000000000000003718.9999999999 +3719,900000000000000000000000000000000000000000000000000000000000003719.9999999999 +3720,900000000000000000000000000000000000000000000000000000000000003720.9999999999 +3721,900000000000000000000000000000000000000000000000000000000000003721.9999999999 +3722,900000000000000000000000000000000000000000000000000000000000003722.9999999999 +3723,900000000000000000000000000000000000000000000000000000000000003723.9999999999 +3724,900000000000000000000000000000000000000000000000000000000000003724.9999999999 +3725,900000000000000000000000000000000000000000000000000000000000003725.9999999999 +3726,900000000000000000000000000000000000000000000000000000000000003726.9999999999 +3727,900000000000000000000000000000000000000000000000000000000000003727.9999999999 +3728,900000000000000000000000000000000000000000000000000000000000003728.9999999999 +3729,900000000000000000000000000000000000000000000000000000000000003729.9999999999 +3730,900000000000000000000000000000000000000000000000000000000000003730.9999999999 +3731,900000000000000000000000000000000000000000000000000000000000003731.9999999999 +3732,900000000000000000000000000000000000000000000000000000000000003732.9999999999 +3733,900000000000000000000000000000000000000000000000000000000000003733.9999999999 +3734,900000000000000000000000000000000000000000000000000000000000003734.9999999999 +3735,900000000000000000000000000000000000000000000000000000000000003735.9999999999 +3736,900000000000000000000000000000000000000000000000000000000000003736.9999999999 +3737,900000000000000000000000000000000000000000000000000000000000003737.9999999999 +3738,900000000000000000000000000000000000000000000000000000000000003738.9999999999 +3739,900000000000000000000000000000000000000000000000000000000000003739.9999999999 +3740,900000000000000000000000000000000000000000000000000000000000003740.9999999999 +3741,900000000000000000000000000000000000000000000000000000000000003741.9999999999 +3742,900000000000000000000000000000000000000000000000000000000000003742.9999999999 +3743,900000000000000000000000000000000000000000000000000000000000003743.9999999999 +3744,900000000000000000000000000000000000000000000000000000000000003744.9999999999 +3745,900000000000000000000000000000000000000000000000000000000000003745.9999999999 +3746,900000000000000000000000000000000000000000000000000000000000003746.9999999999 +3747,900000000000000000000000000000000000000000000000000000000000003747.9999999999 +3748,900000000000000000000000000000000000000000000000000000000000003748.9999999999 +3749,900000000000000000000000000000000000000000000000000000000000003749.9999999999 +3750,900000000000000000000000000000000000000000000000000000000000003750.9999999999 +3751,900000000000000000000000000000000000000000000000000000000000003751.9999999999 +3752,900000000000000000000000000000000000000000000000000000000000003752.9999999999 +3753,900000000000000000000000000000000000000000000000000000000000003753.9999999999 +3754,900000000000000000000000000000000000000000000000000000000000003754.9999999999 +3755,900000000000000000000000000000000000000000000000000000000000003755.9999999999 +3756,900000000000000000000000000000000000000000000000000000000000003756.9999999999 +3757,900000000000000000000000000000000000000000000000000000000000003757.9999999999 +3758,900000000000000000000000000000000000000000000000000000000000003758.9999999999 +3759,900000000000000000000000000000000000000000000000000000000000003759.9999999999 +3760,900000000000000000000000000000000000000000000000000000000000003760.9999999999 +3761,900000000000000000000000000000000000000000000000000000000000003761.9999999999 +3762,900000000000000000000000000000000000000000000000000000000000003762.9999999999 +3763,900000000000000000000000000000000000000000000000000000000000003763.9999999999 +3764,900000000000000000000000000000000000000000000000000000000000003764.9999999999 +3765,900000000000000000000000000000000000000000000000000000000000003765.9999999999 +3766,900000000000000000000000000000000000000000000000000000000000003766.9999999999 +3767,900000000000000000000000000000000000000000000000000000000000003767.9999999999 +3768,900000000000000000000000000000000000000000000000000000000000003768.9999999999 +3769,900000000000000000000000000000000000000000000000000000000000003769.9999999999 +3770,900000000000000000000000000000000000000000000000000000000000003770.9999999999 +3771,900000000000000000000000000000000000000000000000000000000000003771.9999999999 +3772,900000000000000000000000000000000000000000000000000000000000003772.9999999999 +3773,900000000000000000000000000000000000000000000000000000000000003773.9999999999 +3774,900000000000000000000000000000000000000000000000000000000000003774.9999999999 +3775,900000000000000000000000000000000000000000000000000000000000003775.9999999999 +3776,900000000000000000000000000000000000000000000000000000000000003776.9999999999 +3777,900000000000000000000000000000000000000000000000000000000000003777.9999999999 +3778,900000000000000000000000000000000000000000000000000000000000003778.9999999999 +3779,900000000000000000000000000000000000000000000000000000000000003779.9999999999 +3780,900000000000000000000000000000000000000000000000000000000000003780.9999999999 +3781,900000000000000000000000000000000000000000000000000000000000003781.9999999999 +3782,900000000000000000000000000000000000000000000000000000000000003782.9999999999 +3783,900000000000000000000000000000000000000000000000000000000000003783.9999999999 +3784,900000000000000000000000000000000000000000000000000000000000003784.9999999999 +3785,900000000000000000000000000000000000000000000000000000000000003785.9999999999 +3786,900000000000000000000000000000000000000000000000000000000000003786.9999999999 +3787,900000000000000000000000000000000000000000000000000000000000003787.9999999999 +3788,900000000000000000000000000000000000000000000000000000000000003788.9999999999 +3789,900000000000000000000000000000000000000000000000000000000000003789.9999999999 +3790,900000000000000000000000000000000000000000000000000000000000003790.9999999999 +3791,900000000000000000000000000000000000000000000000000000000000003791.9999999999 +3792,900000000000000000000000000000000000000000000000000000000000003792.9999999999 +3793,900000000000000000000000000000000000000000000000000000000000003793.9999999999 +3794,900000000000000000000000000000000000000000000000000000000000003794.9999999999 +3795,900000000000000000000000000000000000000000000000000000000000003795.9999999999 +3796,900000000000000000000000000000000000000000000000000000000000003796.9999999999 +3797,900000000000000000000000000000000000000000000000000000000000003797.9999999999 +3798,900000000000000000000000000000000000000000000000000000000000003798.9999999999 +3799,900000000000000000000000000000000000000000000000000000000000003799.9999999999 +3800,900000000000000000000000000000000000000000000000000000000000003800.9999999999 +3801,900000000000000000000000000000000000000000000000000000000000003801.9999999999 +3802,900000000000000000000000000000000000000000000000000000000000003802.9999999999 +3803,900000000000000000000000000000000000000000000000000000000000003803.9999999999 +3804,900000000000000000000000000000000000000000000000000000000000003804.9999999999 +3805,900000000000000000000000000000000000000000000000000000000000003805.9999999999 +3806,900000000000000000000000000000000000000000000000000000000000003806.9999999999 +3807,900000000000000000000000000000000000000000000000000000000000003807.9999999999 +3808,900000000000000000000000000000000000000000000000000000000000003808.9999999999 +3809,900000000000000000000000000000000000000000000000000000000000003809.9999999999 +3810,900000000000000000000000000000000000000000000000000000000000003810.9999999999 +3811,900000000000000000000000000000000000000000000000000000000000003811.9999999999 +3812,900000000000000000000000000000000000000000000000000000000000003812.9999999999 +3813,900000000000000000000000000000000000000000000000000000000000003813.9999999999 +3814,900000000000000000000000000000000000000000000000000000000000003814.9999999999 +3815,900000000000000000000000000000000000000000000000000000000000003815.9999999999 +3816,900000000000000000000000000000000000000000000000000000000000003816.9999999999 +3817,900000000000000000000000000000000000000000000000000000000000003817.9999999999 +3818,900000000000000000000000000000000000000000000000000000000000003818.9999999999 +3819,900000000000000000000000000000000000000000000000000000000000003819.9999999999 +3820,900000000000000000000000000000000000000000000000000000000000003820.9999999999 +3821,900000000000000000000000000000000000000000000000000000000000003821.9999999999 +3822,900000000000000000000000000000000000000000000000000000000000003822.9999999999 +3823,900000000000000000000000000000000000000000000000000000000000003823.9999999999 +3824,900000000000000000000000000000000000000000000000000000000000003824.9999999999 +3825,900000000000000000000000000000000000000000000000000000000000003825.9999999999 +3826,900000000000000000000000000000000000000000000000000000000000003826.9999999999 +3827,900000000000000000000000000000000000000000000000000000000000003827.9999999999 +3828,900000000000000000000000000000000000000000000000000000000000003828.9999999999 +3829,900000000000000000000000000000000000000000000000000000000000003829.9999999999 +3830,900000000000000000000000000000000000000000000000000000000000003830.9999999999 +3831,900000000000000000000000000000000000000000000000000000000000003831.9999999999 +3832,900000000000000000000000000000000000000000000000000000000000003832.9999999999 +3833,900000000000000000000000000000000000000000000000000000000000003833.9999999999 +3834,900000000000000000000000000000000000000000000000000000000000003834.9999999999 +3835,900000000000000000000000000000000000000000000000000000000000003835.9999999999 +3836,900000000000000000000000000000000000000000000000000000000000003836.9999999999 +3837,900000000000000000000000000000000000000000000000000000000000003837.9999999999 +3838,900000000000000000000000000000000000000000000000000000000000003838.9999999999 +3839,900000000000000000000000000000000000000000000000000000000000003839.9999999999 +3840,900000000000000000000000000000000000000000000000000000000000003840.9999999999 +3841,900000000000000000000000000000000000000000000000000000000000003841.9999999999 +3842,900000000000000000000000000000000000000000000000000000000000003842.9999999999 +3843,900000000000000000000000000000000000000000000000000000000000003843.9999999999 +3844,900000000000000000000000000000000000000000000000000000000000003844.9999999999 +3845,900000000000000000000000000000000000000000000000000000000000003845.9999999999 +3846,900000000000000000000000000000000000000000000000000000000000003846.9999999999 +3847,900000000000000000000000000000000000000000000000000000000000003847.9999999999 +3848,900000000000000000000000000000000000000000000000000000000000003848.9999999999 +3849,900000000000000000000000000000000000000000000000000000000000003849.9999999999 +3850,900000000000000000000000000000000000000000000000000000000000003850.9999999999 +3851,900000000000000000000000000000000000000000000000000000000000003851.9999999999 +3852,900000000000000000000000000000000000000000000000000000000000003852.9999999999 +3853,900000000000000000000000000000000000000000000000000000000000003853.9999999999 +3854,900000000000000000000000000000000000000000000000000000000000003854.9999999999 +3855,900000000000000000000000000000000000000000000000000000000000003855.9999999999 +3856,900000000000000000000000000000000000000000000000000000000000003856.9999999999 +3857,900000000000000000000000000000000000000000000000000000000000003857.9999999999 +3858,900000000000000000000000000000000000000000000000000000000000003858.9999999999 +3859,900000000000000000000000000000000000000000000000000000000000003859.9999999999 +3860,900000000000000000000000000000000000000000000000000000000000003860.9999999999 +3861,900000000000000000000000000000000000000000000000000000000000003861.9999999999 +3862,900000000000000000000000000000000000000000000000000000000000003862.9999999999 +3863,900000000000000000000000000000000000000000000000000000000000003863.9999999999 +3864,900000000000000000000000000000000000000000000000000000000000003864.9999999999 +3865,900000000000000000000000000000000000000000000000000000000000003865.9999999999 +3866,900000000000000000000000000000000000000000000000000000000000003866.9999999999 +3867,900000000000000000000000000000000000000000000000000000000000003867.9999999999 +3868,900000000000000000000000000000000000000000000000000000000000003868.9999999999 +3869,900000000000000000000000000000000000000000000000000000000000003869.9999999999 +3870,900000000000000000000000000000000000000000000000000000000000003870.9999999999 +3871,900000000000000000000000000000000000000000000000000000000000003871.9999999999 +3872,900000000000000000000000000000000000000000000000000000000000003872.9999999999 +3873,900000000000000000000000000000000000000000000000000000000000003873.9999999999 +3874,900000000000000000000000000000000000000000000000000000000000003874.9999999999 +3875,900000000000000000000000000000000000000000000000000000000000003875.9999999999 +3876,900000000000000000000000000000000000000000000000000000000000003876.9999999999 +3877,900000000000000000000000000000000000000000000000000000000000003877.9999999999 +3878,900000000000000000000000000000000000000000000000000000000000003878.9999999999 +3879,900000000000000000000000000000000000000000000000000000000000003879.9999999999 +3880,900000000000000000000000000000000000000000000000000000000000003880.9999999999 +3881,900000000000000000000000000000000000000000000000000000000000003881.9999999999 +3882,900000000000000000000000000000000000000000000000000000000000003882.9999999999 +3883,900000000000000000000000000000000000000000000000000000000000003883.9999999999 +3884,900000000000000000000000000000000000000000000000000000000000003884.9999999999 +3885,900000000000000000000000000000000000000000000000000000000000003885.9999999999 +3886,900000000000000000000000000000000000000000000000000000000000003886.9999999999 +3887,900000000000000000000000000000000000000000000000000000000000003887.9999999999 +3888,900000000000000000000000000000000000000000000000000000000000003888.9999999999 +3889,900000000000000000000000000000000000000000000000000000000000003889.9999999999 +3890,900000000000000000000000000000000000000000000000000000000000003890.9999999999 +3891,900000000000000000000000000000000000000000000000000000000000003891.9999999999 +3892,900000000000000000000000000000000000000000000000000000000000003892.9999999999 +3893,900000000000000000000000000000000000000000000000000000000000003893.9999999999 +3894,900000000000000000000000000000000000000000000000000000000000003894.9999999999 +3895,900000000000000000000000000000000000000000000000000000000000003895.9999999999 +3896,900000000000000000000000000000000000000000000000000000000000003896.9999999999 +3897,900000000000000000000000000000000000000000000000000000000000003897.9999999999 +3898,900000000000000000000000000000000000000000000000000000000000003898.9999999999 +3899,900000000000000000000000000000000000000000000000000000000000003899.9999999999 +3900,900000000000000000000000000000000000000000000000000000000000003900.9999999999 +3901,900000000000000000000000000000000000000000000000000000000000003901.9999999999 +3902,900000000000000000000000000000000000000000000000000000000000003902.9999999999 +3903,900000000000000000000000000000000000000000000000000000000000003903.9999999999 +3904,900000000000000000000000000000000000000000000000000000000000003904.9999999999 +3905,900000000000000000000000000000000000000000000000000000000000003905.9999999999 +3906,900000000000000000000000000000000000000000000000000000000000003906.9999999999 +3907,900000000000000000000000000000000000000000000000000000000000003907.9999999999 +3908,900000000000000000000000000000000000000000000000000000000000003908.9999999999 +3909,900000000000000000000000000000000000000000000000000000000000003909.9999999999 +3910,900000000000000000000000000000000000000000000000000000000000003910.9999999999 +3911,900000000000000000000000000000000000000000000000000000000000003911.9999999999 +3912,900000000000000000000000000000000000000000000000000000000000003912.9999999999 +3913,900000000000000000000000000000000000000000000000000000000000003913.9999999999 +3914,900000000000000000000000000000000000000000000000000000000000003914.9999999999 +3915,900000000000000000000000000000000000000000000000000000000000003915.9999999999 +3916,900000000000000000000000000000000000000000000000000000000000003916.9999999999 +3917,900000000000000000000000000000000000000000000000000000000000003917.9999999999 +3918,900000000000000000000000000000000000000000000000000000000000003918.9999999999 +3919,900000000000000000000000000000000000000000000000000000000000003919.9999999999 +3920,900000000000000000000000000000000000000000000000000000000000003920.9999999999 +3921,900000000000000000000000000000000000000000000000000000000000003921.9999999999 +3922,900000000000000000000000000000000000000000000000000000000000003922.9999999999 +3923,900000000000000000000000000000000000000000000000000000000000003923.9999999999 +3924,900000000000000000000000000000000000000000000000000000000000003924.9999999999 +3925,900000000000000000000000000000000000000000000000000000000000003925.9999999999 +3926,900000000000000000000000000000000000000000000000000000000000003926.9999999999 +3927,900000000000000000000000000000000000000000000000000000000000003927.9999999999 +3928,900000000000000000000000000000000000000000000000000000000000003928.9999999999 +3929,900000000000000000000000000000000000000000000000000000000000003929.9999999999 +3930,900000000000000000000000000000000000000000000000000000000000003930.9999999999 +3931,900000000000000000000000000000000000000000000000000000000000003931.9999999999 +3932,900000000000000000000000000000000000000000000000000000000000003932.9999999999 +3933,900000000000000000000000000000000000000000000000000000000000003933.9999999999 +3934,900000000000000000000000000000000000000000000000000000000000003934.9999999999 +3935,900000000000000000000000000000000000000000000000000000000000003935.9999999999 +3936,900000000000000000000000000000000000000000000000000000000000003936.9999999999 +3937,900000000000000000000000000000000000000000000000000000000000003937.9999999999 +3938,900000000000000000000000000000000000000000000000000000000000003938.9999999999 +3939,900000000000000000000000000000000000000000000000000000000000003939.9999999999 +3940,900000000000000000000000000000000000000000000000000000000000003940.9999999999 +3941,900000000000000000000000000000000000000000000000000000000000003941.9999999999 +3942,900000000000000000000000000000000000000000000000000000000000003942.9999999999 +3943,900000000000000000000000000000000000000000000000000000000000003943.9999999999 +3944,900000000000000000000000000000000000000000000000000000000000003944.9999999999 +3945,900000000000000000000000000000000000000000000000000000000000003945.9999999999 +3946,900000000000000000000000000000000000000000000000000000000000003946.9999999999 +3947,900000000000000000000000000000000000000000000000000000000000003947.9999999999 +3948,900000000000000000000000000000000000000000000000000000000000003948.9999999999 +3949,900000000000000000000000000000000000000000000000000000000000003949.9999999999 +3950,900000000000000000000000000000000000000000000000000000000000003950.9999999999 +3951,900000000000000000000000000000000000000000000000000000000000003951.9999999999 +3952,900000000000000000000000000000000000000000000000000000000000003952.9999999999 +3953,900000000000000000000000000000000000000000000000000000000000003953.9999999999 +3954,900000000000000000000000000000000000000000000000000000000000003954.9999999999 +3955,900000000000000000000000000000000000000000000000000000000000003955.9999999999 +3956,900000000000000000000000000000000000000000000000000000000000003956.9999999999 +3957,900000000000000000000000000000000000000000000000000000000000003957.9999999999 +3958,900000000000000000000000000000000000000000000000000000000000003958.9999999999 +3959,900000000000000000000000000000000000000000000000000000000000003959.9999999999 +3960,900000000000000000000000000000000000000000000000000000000000003960.9999999999 +3961,900000000000000000000000000000000000000000000000000000000000003961.9999999999 +3962,900000000000000000000000000000000000000000000000000000000000003962.9999999999 +3963,900000000000000000000000000000000000000000000000000000000000003963.9999999999 +3964,900000000000000000000000000000000000000000000000000000000000003964.9999999999 +3965,900000000000000000000000000000000000000000000000000000000000003965.9999999999 +3966,900000000000000000000000000000000000000000000000000000000000003966.9999999999 +3967,900000000000000000000000000000000000000000000000000000000000003967.9999999999 +3968,900000000000000000000000000000000000000000000000000000000000003968.9999999999 +3969,900000000000000000000000000000000000000000000000000000000000003969.9999999999 +3970,900000000000000000000000000000000000000000000000000000000000003970.9999999999 +3971,900000000000000000000000000000000000000000000000000000000000003971.9999999999 +3972,900000000000000000000000000000000000000000000000000000000000003972.9999999999 +3973,900000000000000000000000000000000000000000000000000000000000003973.9999999999 +3974,900000000000000000000000000000000000000000000000000000000000003974.9999999999 +3975,900000000000000000000000000000000000000000000000000000000000003975.9999999999 +3976,900000000000000000000000000000000000000000000000000000000000003976.9999999999 +3977,900000000000000000000000000000000000000000000000000000000000003977.9999999999 +3978,900000000000000000000000000000000000000000000000000000000000003978.9999999999 +3979,900000000000000000000000000000000000000000000000000000000000003979.9999999999 +3980,900000000000000000000000000000000000000000000000000000000000003980.9999999999 +3981,900000000000000000000000000000000000000000000000000000000000003981.9999999999 +3982,900000000000000000000000000000000000000000000000000000000000003982.9999999999 +3983,900000000000000000000000000000000000000000000000000000000000003983.9999999999 +3984,900000000000000000000000000000000000000000000000000000000000003984.9999999999 +3985,900000000000000000000000000000000000000000000000000000000000003985.9999999999 +3986,900000000000000000000000000000000000000000000000000000000000003986.9999999999 +3987,900000000000000000000000000000000000000000000000000000000000003987.9999999999 +3988,900000000000000000000000000000000000000000000000000000000000003988.9999999999 +3989,900000000000000000000000000000000000000000000000000000000000003989.9999999999 +3990,900000000000000000000000000000000000000000000000000000000000003990.9999999999 +3991,900000000000000000000000000000000000000000000000000000000000003991.9999999999 +3992,900000000000000000000000000000000000000000000000000000000000003992.9999999999 +3993,900000000000000000000000000000000000000000000000000000000000003993.9999999999 +3994,900000000000000000000000000000000000000000000000000000000000003994.9999999999 +3995,900000000000000000000000000000000000000000000000000000000000003995.9999999999 +3996,900000000000000000000000000000000000000000000000000000000000003996.9999999999 +3997,900000000000000000000000000000000000000000000000000000000000003997.9999999999 +3998,900000000000000000000000000000000000000000000000000000000000003998.9999999999 +3999,900000000000000000000000000000000000000000000000000000000000003999.9999999999 +4000,900000000000000000000000000000000000000000000000000000000000004000.9999999999 +4001,900000000000000000000000000000000000000000000000000000000000004001.9999999999 +4002,900000000000000000000000000000000000000000000000000000000000004002.9999999999 +4003,900000000000000000000000000000000000000000000000000000000000004003.9999999999 +4004,900000000000000000000000000000000000000000000000000000000000004004.9999999999 +4005,900000000000000000000000000000000000000000000000000000000000004005.9999999999 +4006,900000000000000000000000000000000000000000000000000000000000004006.9999999999 +4007,900000000000000000000000000000000000000000000000000000000000004007.9999999999 +4008,900000000000000000000000000000000000000000000000000000000000004008.9999999999 +4009,900000000000000000000000000000000000000000000000000000000000004009.9999999999 +4010,900000000000000000000000000000000000000000000000000000000000004010.9999999999 +4011,900000000000000000000000000000000000000000000000000000000000004011.9999999999 +4012,900000000000000000000000000000000000000000000000000000000000004012.9999999999 +4013,900000000000000000000000000000000000000000000000000000000000004013.9999999999 +4014,900000000000000000000000000000000000000000000000000000000000004014.9999999999 +4015,900000000000000000000000000000000000000000000000000000000000004015.9999999999 +4016,900000000000000000000000000000000000000000000000000000000000004016.9999999999 +4017,900000000000000000000000000000000000000000000000000000000000004017.9999999999 +4018,900000000000000000000000000000000000000000000000000000000000004018.9999999999 +4019,900000000000000000000000000000000000000000000000000000000000004019.9999999999 +4020,900000000000000000000000000000000000000000000000000000000000004020.9999999999 +4021,900000000000000000000000000000000000000000000000000000000000004021.9999999999 +4022,900000000000000000000000000000000000000000000000000000000000004022.9999999999 +4023,900000000000000000000000000000000000000000000000000000000000004023.9999999999 +4024,900000000000000000000000000000000000000000000000000000000000004024.9999999999 +4025,900000000000000000000000000000000000000000000000000000000000004025.9999999999 +4026,900000000000000000000000000000000000000000000000000000000000004026.9999999999 +4027,900000000000000000000000000000000000000000000000000000000000004027.9999999999 +4028,900000000000000000000000000000000000000000000000000000000000004028.9999999999 +4029,900000000000000000000000000000000000000000000000000000000000004029.9999999999 +4030,900000000000000000000000000000000000000000000000000000000000004030.9999999999 +4031,900000000000000000000000000000000000000000000000000000000000004031.9999999999 +4032,900000000000000000000000000000000000000000000000000000000000004032.9999999999 +4033,900000000000000000000000000000000000000000000000000000000000004033.9999999999 +4034,900000000000000000000000000000000000000000000000000000000000004034.9999999999 +4035,900000000000000000000000000000000000000000000000000000000000004035.9999999999 +4036,900000000000000000000000000000000000000000000000000000000000004036.9999999999 +4037,900000000000000000000000000000000000000000000000000000000000004037.9999999999 +4038,900000000000000000000000000000000000000000000000000000000000004038.9999999999 +4039,900000000000000000000000000000000000000000000000000000000000004039.9999999999 +4040,900000000000000000000000000000000000000000000000000000000000004040.9999999999 +4041,900000000000000000000000000000000000000000000000000000000000004041.9999999999 +4042,900000000000000000000000000000000000000000000000000000000000004042.9999999999 +4043,900000000000000000000000000000000000000000000000000000000000004043.9999999999 +4044,900000000000000000000000000000000000000000000000000000000000004044.9999999999 +4045,900000000000000000000000000000000000000000000000000000000000004045.9999999999 +4046,900000000000000000000000000000000000000000000000000000000000004046.9999999999 +4047,900000000000000000000000000000000000000000000000000000000000004047.9999999999 +4048,900000000000000000000000000000000000000000000000000000000000004048.9999999999 +4049,900000000000000000000000000000000000000000000000000000000000004049.9999999999 +4050,900000000000000000000000000000000000000000000000000000000000004050.9999999999 +4051,900000000000000000000000000000000000000000000000000000000000004051.9999999999 +4052,900000000000000000000000000000000000000000000000000000000000004052.9999999999 +4053,900000000000000000000000000000000000000000000000000000000000004053.9999999999 +4054,900000000000000000000000000000000000000000000000000000000000004054.9999999999 +4055,900000000000000000000000000000000000000000000000000000000000004055.9999999999 +4056,900000000000000000000000000000000000000000000000000000000000004056.9999999999 +4057,900000000000000000000000000000000000000000000000000000000000004057.9999999999 +4058,900000000000000000000000000000000000000000000000000000000000004058.9999999999 +4059,900000000000000000000000000000000000000000000000000000000000004059.9999999999 +4060,900000000000000000000000000000000000000000000000000000000000004060.9999999999 +4061,900000000000000000000000000000000000000000000000000000000000004061.9999999999 +4062,900000000000000000000000000000000000000000000000000000000000004062.9999999999 +4063,900000000000000000000000000000000000000000000000000000000000004063.9999999999 +4064,900000000000000000000000000000000000000000000000000000000000004064.9999999999 +4065,900000000000000000000000000000000000000000000000000000000000004065.9999999999 +4066,900000000000000000000000000000000000000000000000000000000000004066.9999999999 +4067,900000000000000000000000000000000000000000000000000000000000004067.9999999999 +4068,900000000000000000000000000000000000000000000000000000000000004068.9999999999 +4069,900000000000000000000000000000000000000000000000000000000000004069.9999999999 +4070,900000000000000000000000000000000000000000000000000000000000004070.9999999999 +4071,900000000000000000000000000000000000000000000000000000000000004071.9999999999 +4072,900000000000000000000000000000000000000000000000000000000000004072.9999999999 +4073,900000000000000000000000000000000000000000000000000000000000004073.9999999999 +4074,900000000000000000000000000000000000000000000000000000000000004074.9999999999 +4075,900000000000000000000000000000000000000000000000000000000000004075.9999999999 +4076,900000000000000000000000000000000000000000000000000000000000004076.9999999999 +4077,900000000000000000000000000000000000000000000000000000000000004077.9999999999 +4078,900000000000000000000000000000000000000000000000000000000000004078.9999999999 +4079,900000000000000000000000000000000000000000000000000000000000004079.9999999999 +4080,900000000000000000000000000000000000000000000000000000000000004080.9999999999 +4081,900000000000000000000000000000000000000000000000000000000000004081.9999999999 +4082,900000000000000000000000000000000000000000000000000000000000004082.9999999999 +4083,900000000000000000000000000000000000000000000000000000000000004083.9999999999 +4084,900000000000000000000000000000000000000000000000000000000000004084.9999999999 +4085,900000000000000000000000000000000000000000000000000000000000004085.9999999999 +4086,900000000000000000000000000000000000000000000000000000000000004086.9999999999 +4087,900000000000000000000000000000000000000000000000000000000000004087.9999999999 +4088,900000000000000000000000000000000000000000000000000000000000004088.9999999999 +4089,900000000000000000000000000000000000000000000000000000000000004089.9999999999 +4090,900000000000000000000000000000000000000000000000000000000000004090.9999999999 +4091,900000000000000000000000000000000000000000000000000000000000004091.9999999999 +4092,900000000000000000000000000000000000000000000000000000000000004092.9999999999 +4093,900000000000000000000000000000000000000000000000000000000000004093.9999999999 +4094,900000000000000000000000000000000000000000000000000000000000004094.9999999999 +4095,900000000000000000000000000000000000000000000000000000000000004095.9999999999 +4096,900000000000000000000000000000000000000000000000000000000000004096.9999999999 diff --git a/regression-test/data/datatype_p0/decimalv3/test_predicate.out b/regression-test/data/datatype_p0/decimalv3/test_predicate.out index ab074a78d7..1456180d7a 100644 --- a/regression-test/data/datatype_p0/decimalv3/test_predicate.out +++ b/regression-test/data/datatype_p0/decimalv3/test_predicate.out @@ -88,3 +88,37 @@ false 3.000000 33333333333333333333333333333333.333333 33333333333333333333333333333333.333333 4.444444 2.222222 3.333333 +-- !decimal256_select_all2 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !decimal256_predicate_6 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !decimal256_predicate_7 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !decimal256_predicate_8 -- +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !decimal256_predicate_9 -- +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !decimal256_predicate_10 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 + +-- !decimal256_predicate_11 -- +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !decimal256_predicate_12 -- +1.000000000 999999999999999999999999999999999999999999999999999999999999999999.9999999999 99999999999999999999999999999999999999999999999999999999999999999.99999999999 +3.000000000 333333333333333333333333333333333333333333333333333333333333333333.3333333333 33333333333333333333333333333333333333333333333333333333333333333.33333333333 + +-- !decimal256_predicate_13 -- +2.000000000 499999999999999999999999999999999999999999999999999999999999999999.9999999999 49999999999999999999999999999999999999999999999999999999999999999.99999999999 + diff --git a/regression-test/suites/datatype_p0/decimalv3/test_arithmetic_expressions.groovy b/regression-test/suites/datatype_p0/decimalv3/test_arithmetic_expressions.groovy index cfac94774f..d6784e3dbd 100644 --- a/regression-test/suites/datatype_p0/decimalv3/test_arithmetic_expressions.groovy +++ b/regression-test/suites/datatype_p0/decimalv3/test_arithmetic_expressions.groovy @@ -137,6 +137,7 @@ suite("test_arithmetic_expressions") { (2, 499999999999.999999, 499999999999.999999), (3, 333333333333.333333, 333333333333.333333), (4, 4, 4);""" + sql "sync" // TODO: fix decimal cast // sql "select k3, CAST(k3 AS DECIMALV3(18, 10)) from test_arithmetic_expressions_64;" /* @@ -166,20 +167,20 @@ mysql [test]>select k3, CAST(k3 AS DECIMALV3(18, 10)) from test_arithmetic_expre "replication_allocation" = "tag.location.default: 1" ); """ - sql """insert into test_arithmetic_expressions_128_1 values(1, 99999999999999999999999999999999.999999, 99999999999999999999999999999999.999999), + sql """insert into test_arithmetic_expressions_128_1 values + (1, 99999999999999999999999999999999.999999, 99999999999999999999999999999999.999999), (2, 49999999999999999999999999999999.999999, 49999999999999999999999999999999.999999), (3, 33333333333333333333333333333333.333333, 33333333333333333333333333333333.333333), (4.444444, 2.222222, 3.333333);""" + sql "sync" qt_decimal128_select_all "select * from test_arithmetic_expressions_128_1 order by k1, k2;" - // fix cast // qt_decimal128_cast "select k3, CAST(k3 AS DECIMALV3(38, 10)) from test_arithmetic_expressions_128_1 order by 1, 2;" - /* + // int128 multiply overflow qt_decimal128_multiply_0 "select k1 * k2 a from test_arithmetic_expressions_128_1 order by 1;" qt_decimal128_arith_union "select * from (select k1 * k2 from test_arithmetic_expressions_128_1 union all select k3 from test_arithmetic_expressions_128_1) a order by 1" qt_decimal128_multiply_1 "select k1 * k2 * k3 a from test_arithmetic_expressions_128_1 order by 1;" qt_decimal128_multiply_2 "select k1 * k2 * k3 * k1 * k2 * k3 from test_arithmetic_expressions_128_1 order by k1" qt_decimal128_multiply_div "select k1 * k2 / k3 * k1 * k2 * k3 from test_arithmetic_expressions_128_1 order by k1" - */ sql "DROP TABLE IF EXISTS `test_arithmetic_expressions_128_2`"; sql """ @@ -201,16 +202,27 @@ mysql [test]>select k3, CAST(k3 AS DECIMALV3(18, 10)) from test_arithmetic_expre sql """ insert into test_arithmetic_expressions_128_2 values(999999.999,999999.999,999999.999,999999.999,999999.999,999999.999,999999.999,999999.999,999999.999,999999.999,999999.999); """ + sql "sync" qt_decimal128_select_all_2 "select * from test_arithmetic_expressions_128_2 order by a" - /* qt_decimal128_mixed_calc_0 "select a + b + c from test_arithmetic_expressions_128_2;" qt_decimal128_mixed_calc_1 "select (a + b + c) * d from test_arithmetic_expressions_128_2;" qt_decimal128_mixed_calc_2 "select (a + b + c) / d from test_arithmetic_expressions_128_2;" qt_decimal128_mixed_calc_3 "select a + b + c + d + e + f + g + h + i + j + k from test_arithmetic_expressions_128_2;" - */ sql "set enable_nereids_planner = true;" sql "set enable_decimal256 = true;" + + qt_decimal128_enable_decimal256_multiply_0 "select k1 * k2 a from test_arithmetic_expressions_128_1 order by 1;" + qt_decimal128_enable_decimal256_arith_union "select * from (select k1 * k2 from test_arithmetic_expressions_128_1 union all select k3 from test_arithmetic_expressions_128_1) a order by 1" + qt_decimal128_enable_decimal256_multiply_1 "select k1 * k2 * k3 from test_arithmetic_expressions_128_1 order by 1;" + qt_decimal128_enable_decimal256_multiply_2 "select k1 * k2 * k3 * k1 * k2 * k3 from test_arithmetic_expressions_128_1 order by k1" + qt_decimal128_enable_decimal256_multiply_div "select k1 * k2 / k3 * k1 * k2 * k3 from test_arithmetic_expressions_128_1 order by k1" + + qt_decimal128_enable_decimal256_mixed_calc_0 "select a + b + c from test_arithmetic_expressions_128_2;" + qt_decimal128_enable_decimal256_mixed_calc_1 "select (a + b + c) * d from test_arithmetic_expressions_128_2;" + qt_decimal128_enable_decimal256_mixed_calc_2 "select (a + b + c) / d from test_arithmetic_expressions_128_2;" + qt_decimal128_enable_decimal256_mixed_calc_3 "select a + b + c + d + e + f + g + h + i + j + k from test_arithmetic_expressions_128_2;" + qt_decimal128_cast256_cast "select k3, CAST(k3 AS DECIMALV3(76, 10)) from test_arithmetic_expressions_128_1 order by 1, 2;" qt_decimal128_cast256_calc_0 "select cast(k1 as decimalv3(76, 6)) + k2 a from test_arithmetic_expressions_128_1 order by 1;" qt_decimal128_cast256_calc_1 "select cast(k2 as decimalv3(76, 6)) - k1 a from test_arithmetic_expressions_128_1 order by 1;" @@ -258,7 +270,6 @@ mysql [test]>select k3, CAST(k3 AS DECIMALV3(38, 10)) from test_arithmetic_expre | -5151654377011498561003149524047726679019988040430007836382.4035124889496445184 | +---------------------------------------------------------------------------------+ */ - /* sql "DROP TABLE IF EXISTS `test_arithmetic_expressions_256_1`" sql """ CREATE TABLE IF NOT EXISTS `test_arithmetic_expressions_256_1` ( @@ -266,15 +277,18 @@ mysql [test]>select k3, CAST(k3 AS DECIMALV3(38, 10)) from test_arithmetic_expre `k2` decimalv3(76, 10) NULL COMMENT "", `k3` decimalv3(76, 11) NULL COMMENT "" ) ENGINE=OLAP - DISTRIBUTED BY HASH(`k1`, `k2`, `k3`) BUCKETS 8 + DUPLICATE KEY(`k1`) + DISTRIBUTED BY HASH(`k1`) BUCKETS 8 PROPERTIES ( "replication_allocation" = "tag.location.default: 1" ); """ - sql """insert into test_arithmetic_expressions_256_1 values(1, 999999999999999999999999999999999999999999999999999999999999999999.9999999999, 99999999999999999999999999999999999999999999999999999999999999999.99999999999), + sql """insert into test_arithmetic_expressions_256_1 values + (1, 999999999999999999999999999999999999999999999999999999999999999999.9999999999, 99999999999999999999999999999999999999999999999999999999999999999.99999999999), (2, 499999999999999999999999999999999999999999999999999999999999999999.9999999999, 49999999999999999999999999999999999999999999999999999999999999999.99999999999), (3, 333333333333333333333333333333333333333333333333333333333333333333.3333333333, 33333333333333333333333333333333333333333333333333333333333333333.33333333333);""" + sql "sync" qt_decimal256_arith_select_all "select * from test_arithmetic_expressions_256_1 order by k1, k2, k3;" qt_decimal256_arith_plus "select k1 + k2 from test_arithmetic_expressions_256_1 order by 1;" qt_decimal256_arith_minus "select k2 - k1 from test_arithmetic_expressions_256_1 order by 1;" @@ -308,6 +322,7 @@ mysql [test]>select k3, CAST(k3 AS DECIMALV3(38, 10)) from test_arithmetic_expre sql """ insert into test_arithmetic_expressions_256_2 values(999999.999,999999.999,999999.999,999999.999,999999.999,999999.999,999999.999,999999.999,999999.999,999999.999,999999.999); """ + sql "sync" qt_decimal256_select_all_2 "select * from test_arithmetic_expressions_256_2 order by a" qt_decimal256_mixed_calc_0 "select a + b + c from test_arithmetic_expressions_256_2;" @@ -330,6 +345,7 @@ mysql [test]>select k3, CAST(k3 AS DECIMALV3(38, 10)) from test_arithmetic_expre sql """insert into test_arithmetic_expressions_256_3 values(1, 999999999999999999999999999999999999999999999999999999999999999999999999999.9, 99999999999999999999999999999999999999999999999999999999999999999999999999.99), (2, 499999999999999999999999999999999999999999999999999999999999999999999999999.9, 49999999999999999999999999999999999999999999999999999999999999999999999999.99), (3, 333333333333333333333333333333333333333333333333333333333333333333333333333.3, 33333333333333333333333333333333333333333333333333333333333333333333333333.33);""" + sql "sync" qt_decimal256_arith_3 "select k1, k2, k1 * k2 a from test_arithmetic_expressions_256_3 order by k1, k2;" sql "DROP TABLE IF EXISTS `test_arithmetic_expressions_256_4`" @@ -348,6 +364,7 @@ mysql [test]>select k3, CAST(k3 AS DECIMALV3(38, 10)) from test_arithmetic_expre sql """ insert into test_arithmetic_expressions_256_4 values (2,107684988.257976000,107684988.257976000,148981.0000000000); """ sql """ insert into test_arithmetic_expressions_256_4 values (3,76891560.464178000,76891560.464178000,106161.0000000000); """ sql """ insert into test_arithmetic_expressions_256_4 values (4,277170831.851350000,277170831.851350000,402344.0000000000); """ + sql "sync" qt_decimal256_div_v2_v3 """ select id, fz/fm as dec,fzv3/fm as decv3 from test_arithmetic_expressions_256_4 ORDER BY id; """ @@ -367,8 +384,8 @@ mysql [test]>select k3, CAST(k3 AS DECIMALV3(38, 10)) from test_arithmetic_expre sql """ insert into test_arithmetic_expressions_256_5 values (2,107684988.257976000,3,3); """ sql """ insert into test_arithmetic_expressions_256_5 values (3,76891560.464178000,5,5); """ sql """ insert into test_arithmetic_expressions_256_5 values (4,277170831.851350000,7,7); """ + sql "sync" qt_decimal256_mod """ select v1, v2, v1 % v2, v1 % v3 from test_arithmetic_expressions_256_5 ORDER BY id; """ - */ } diff --git a/regression-test/suites/datatype_p0/decimalv3/test_decimal256_cast.groovy b/regression-test/suites/datatype_p0/decimalv3/test_decimal256_cast.groovy new file mode 100644 index 0000000000..c20c10e288 --- /dev/null +++ b/regression-test/suites/datatype_p0/decimalv3/test_decimal256_cast.groovy @@ -0,0 +1,40 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +suite("test_decimal256_cast") { + sql "set enable_nereids_planner = true;" + sql "set enable_decimal256 = true;" + + qt_decimal256_cast0 """SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ + cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10));""" + qt_decimal256_cast1 """SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ + cast(-999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10));""" + qt_decimal256_cast2 """SELECT /*+ SET_VAR(enable_fold_constant_by_be = true) */ + cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10));""" + qt_decimal256_cast3 """SELECT /*+ SET_VAR(enable_fold_constant_by_be = true) */ + cast(-999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10));""" + + qt_decimal256_cast4 """SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ + cast("999999999999999999999999999999999999999999999999999999999999999999.9999999999" as decimalv3(76,10));""" + qt_decimal256_cast5 """SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ + cast("-999999999999999999999999999999999999999999999999999999999999999999.9999999999" as decimalv3(76,10));""" + qt_decimal256_cast6 """SELECT /*+ SET_VAR(enable_fold_constant_by_be = true) */ + cast("999999999999999999999999999999999999999999999999999999999999999999.9999999999" as decimalv3(76,10));""" + qt_decimal256_cast7 """SELECT /*+ SET_VAR(enable_fold_constant_by_be = true) */ + cast("-999999999999999999999999999999999999999999999999999999999999999999.9999999999" as decimalv3(76,10));""" + +} \ No newline at end of file diff --git a/regression-test/suites/datatype_p0/decimalv3/test_decimal256_index.groovy b/regression-test/suites/datatype_p0/decimalv3/test_decimal256_index.groovy new file mode 100644 index 0000000000..8f31323436 --- /dev/null +++ b/regression-test/suites/datatype_p0/decimalv3/test_decimal256_index.groovy @@ -0,0 +1,277 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +suite("test_decimal256_index") { + sql "set enable_nereids_planner = true;" + sql "set enable_decimal256 = true;" + + def delta_time = 100 + def wait_for_latest_op_on_table_finish = { table_name, OpTimeout -> + for(int t = delta_time; t <= OpTimeout; t += delta_time){ + alter_res = sql """SHOW ALTER TABLE COLUMN WHERE TableName = "${table_name}" ORDER BY CreateTime DESC LIMIT 1;""" + alter_res = alter_res.toString() + if(alter_res.contains("FINISHED")) { + sleep(3000) // wait change table state to normal + logger.info(table_name + " latest alter job finished, detail: " + alter_res) + break + } + useTime = t + sleep(delta_time) + } + assertTrue(useTime <= OpTimeout, "wait_for_latest_op_on_table_finish timeout") + } + + // test zonemap index + sql "DROP TABLE IF EXISTS `test_decimal256_zonemap_index`" + sql """ + CREATE TABLE IF NOT EXISTS `test_decimal256_zonemap_index` ( + `k1` decimalv3(76, 9) NULL COMMENT "", + `k2` decimalv3(76, 10) NULL COMMENT "" + ) ENGINE=OLAP + DUPLICATE KEY(`k1`) + DISTRIBUTED BY HASH(`k1`) BUCKETS 1 + PROPERTIES ( + "replication_allocation" = "tag.location.default: 1" + ); + """ + streamLoad { + // you can skip db declaration, because a default db has already been + // specified in ${DORIS_HOME}/conf/regression-conf.groovy + // db 'regression_test' + table "test_decimal256_zonemap_index" + + // default label is UUID: + // set 'label' UUID.randomUUID().toString() + + // default column_separator is specify in doris fe config, usually is '\t'. + // this line change to ',' + set 'column_separator', ',' + + // relate to ${DORIS_HOME}/regression-test/data/demo/streamload_input.csv. + // also, you can stream load a http stream, e.g. http://xxx/some.csv + file """test_decimal256_zonemap_index.csv""" + + time 10000 // limit inflight 10s + + // stream load action will check result, include Success status, and NumberTotalRows == NumberLoadedRows + + // if declared a check callback, the default check condition will ignore. + // So you must check all condition + check { result, exception, startTime, endTime -> + if (exception != null) { + throw exception + } + log.info("Stream load result: ${result}".toString()) + def json = parseJson(result) + assertEquals("success", json.Status.toLowerCase()) + assertEquals(4096, json.NumberTotalRows) + assertEquals(json.NumberTotalRows, json.NumberLoadedRows) + assertTrue(json.LoadBytes > 0) + } + } + // RowsStatsFiltered in profile + qt_decimal256_zonemap_0 "select * from test_decimal256_zonemap_index where k2 < 900000000000000000000000000000000000000000000000000000000000000010.9999999999 order by k1, k2;" + + sql "DROP TABLE IF EXISTS `test_decimal256_bitmap_index`" + sql """ + CREATE TABLE IF NOT EXISTS `test_decimal256_bitmap_index` ( + `k1` decimalv3(76, 9) NULL COMMENT "", + `k2` decimalv3(76, 10) NULL COMMENT "", + `k3` decimalv3(76, 11) NULL COMMENT "" + ) ENGINE=OLAP + DUPLICATE KEY(`k1`) + DISTRIBUTED BY HASH(`k1`) BUCKETS 8 + PROPERTIES ( + "replication_allocation" = "tag.location.default: 1" + ); + """ + + sql """insert into test_decimal256_bitmap_index values + (1, 999999999999999999999999999999999999999999999999999999999999999999.9999999999, 99999999999999999999999999999999999999999999999999999999999999999.99999999999), + (1, 999999999999999999999999999999999999999999999999999999999999999999.9999999999, 99999999999999999999999999999999999999999999999999999999999999999.99999999999), + (2, 499999999999999999999999999999999999999999999999999999999999999999.9999999999, 49999999999999999999999999999999999999999999999999999999999999999.99999999999), + (3, 333333333333333333333333333333333333333333333333333333333333333333.3333333333, 33333333333333333333333333333333333333333333333333333333333333333.33333333333), + (3, 333333333333333333333333333333333333333333333333333333333333333333.3333333333, 33333333333333333333333333333333333333333333333333333333333333333.33333333333), + (4, -999999999999999999999999999999999999999999999999999999999999999999.9999999999, 99999999999999999999999999999999999999999999999999999999999999999.99999999999), + (4, -999999999999999999999999999999999999999999999999999999999999999999.9999999999, 99999999999999999999999999999999999999999999999999999999999999999.99999999999), + (5, -333333333333333333333333333333333333333333333333333333333333333333.3333333333, 33333333333333333333333333333333333333333333333333333333333333333.33333333333), + (5, -333333333333333333333333333333333333333333333333333333333333333333.3333333333, 33333333333333333333333333333333333333333333333333333333333333333.33333333333), + (6, null, 99999999999999999999999999999999999999999999999999999999999999999.99999999999), + (7, null, 99999999999999999999999999999999999999999999999999999999999999999.99999999999); + """ + sql "sync" + + sql """CREATE INDEX k2_bitmap_index ON test_decimal256_bitmap_index(k2) USING BITMAP;""" + wait_for_latest_op_on_table_finish("test_decimal256_bitmap_index", 3000); + + qt_sql_bitmap_index_select_all """ + select * from test_decimal256_bitmap_index order by 1,2,3; + """ + // profile item RowsBitmapIndexFiltered + qt_sql_eq_1 """ + select * from test_decimal256_bitmap_index where k2 = 499999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + qt_sql_eq_2 """ + select * from test_decimal256_bitmap_index where k2 = -999999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + qt_sql_eq_3 """ + select * from test_decimal256_bitmap_index where k2 = -333333333333333333333333333333333333333333333333333333333333333333.3333333333 order by 1, 2, 3; + """ + + qt_sql_neq_1 """ + select * from test_decimal256_bitmap_index where k2 != 499999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + qt_sql_neq_2 """ + select * from test_decimal256_bitmap_index where k2 != -999999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + qt_sql_neq_3 """ + select * from test_decimal256_bitmap_index where k2 != -333333333333333333333333333333333333333333333333333333333333333333.3333333333 order by 1, 2, 3; + """ + + qt_sql_gt_1 """ + select * from test_decimal256_bitmap_index where k2 > 499999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + qt_sql_gt_2 """ + select * from test_decimal256_bitmap_index where k2 > -999999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + qt_sql_gt_3 """ + select * from test_decimal256_bitmap_index where k2 > -333333333333333333333333333333333333333333333333333333333333333333.3333333333 order by 1, 2, 3; + """ + + qt_sql_ge_1 """ + select * from test_decimal256_bitmap_index where k2 >= 499999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + qt_sql_ge_2 """ + select * from test_decimal256_bitmap_index where k2 >= -999999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + qt_sql_ge_3 """ + select * from test_decimal256_bitmap_index where k2 >= -333333333333333333333333333333333333333333333333333333333333333333.3333333333 order by 1, 2, 3; + """ + + qt_sql_lt_1 """ + select * from test_decimal256_bitmap_index where k2 < 499999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + qt_sql_lt_2 """ + select * from test_decimal256_bitmap_index where k2 < -999999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + qt_sql_lt_3 """ + select * from test_decimal256_bitmap_index where k2 < -333333333333333333333333333333333333333333333333333333333333333333.3333333333 order by 1, 2, 3; + """ + + qt_sql_le_1 """ + select * from test_decimal256_bitmap_index where k2 <= 499999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + qt_sql_le_2 """ + select * from test_decimal256_bitmap_index where k2 <= -999999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + qt_sql_le_3 """ + select * from test_decimal256_bitmap_index where k2 <= -333333333333333333333333333333333333333333333333333333333333333333.3333333333 order by 1, 2, 3; + """ + + // bloom filter index + sql "DROP TABLE IF EXISTS `test_decimal256_bf_index`" + sql """ + CREATE TABLE IF NOT EXISTS `test_decimal256_bf_index` ( + `k1` decimalv3(76, 9) NULL COMMENT "", + `k2` decimalv3(76, 10) NULL COMMENT "", + `k3` decimalv3(76, 11) NULL COMMENT "" + ) ENGINE=OLAP + DUPLICATE KEY(`k1`) + DISTRIBUTED BY HASH(`k1`) BUCKETS 8 + PROPERTIES ( + "replication_allocation" = "tag.location.default: 1", + "bloom_filter_columns" = "k2" + ); + """ + + sql """insert into test_decimal256_bf_index values + (1, 999999999999999999999999999999999999999999999999999999999999999999.9999999999, 99999999999999999999999999999999999999999999999999999999999999999.99999999999), + (1, 999999999999999999999999999999999999999999999999999999999999999999.9999999999, 99999999999999999999999999999999999999999999999999999999999999999.99999999999), + (2, 499999999999999999999999999999999999999999999999999999999999999999.9999999999, 49999999999999999999999999999999999999999999999999999999999999999.99999999999), + (3, 333333333333333333333333333333333333333333333333333333333333333333.3333333333, 33333333333333333333333333333333333333333333333333333333333333333.33333333333), + (3, 333333333333333333333333333333333333333333333333333333333333333333.3333333333, 33333333333333333333333333333333333333333333333333333333333333333.33333333333), + (4, -999999999999999999999999999999999999999999999999999999999999999999.9999999999, 99999999999999999999999999999999999999999999999999999999999999999.99999999999), + (4, -999999999999999999999999999999999999999999999999999999999999999999.9999999999, 99999999999999999999999999999999999999999999999999999999999999999.99999999999), + (5, -333333333333333333333333333333333333333333333333333333333333333333.3333333333, 33333333333333333333333333333333333333333333333333333333333333333.33333333333), + (5, -333333333333333333333333333333333333333333333333333333333333333333.3333333333, 33333333333333333333333333333333333333333333333333333333333333333.33333333333), + (6, null, 99999999999999999999999999999999999999999999999999999999999999999.99999999999), + (7, null, 99999999999999999999999999999999999999999999999999999999999999999.99999999999); + """ + sql "sync" + + // profile item RowsBloomFilterFiltered + qt_sql_bf_eq_1 """ + select * from test_decimal256_bf_index where k2 = 499999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + qt_sql_bf_eq_2 """ + select * from test_decimal256_bf_index where k2 = -999999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + qt_sql_bf_eq_3 """ + select * from test_decimal256_bf_index where k2 = -333333333333333333333333333333333333333333333333333333333333333333.3333333333 order by 1, 2, 3; + """ + + qt_sql_bf_neq_1 """ + select * from test_decimal256_bf_index where k2 != 499999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + qt_sql_bf_neq_2 """ + select * from test_decimal256_bf_index where k2 != -999999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + qt_sql_bf_neq_3 """ + select * from test_decimal256_bf_index where k2 != -333333333333333333333333333333333333333333333333333333333333333333.3333333333 order by 1, 2, 3; + """ + + qt_sql_bf_gt_1 """ + select * from test_decimal256_bf_index where k2 > 499999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + qt_sql_bf_gt_2 """ + select * from test_decimal256_bf_index where k2 > -999999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + qt_sql_bf_gt_3 """ + select * from test_decimal256_bf_index where k2 > -333333333333333333333333333333333333333333333333333333333333333333.3333333333 order by 1, 2, 3; + """ + + qt_sql_bf_ge_1 """ + select * from test_decimal256_bf_index where k2 >= 499999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + qt_sql_bf_ge_2 """ + select * from test_decimal256_bf_index where k2 >= -999999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + qt_sql_bf_ge_3 """ + select * from test_decimal256_bf_index where k2 >= -333333333333333333333333333333333333333333333333333333333333333333.3333333333 order by 1, 2, 3; + """ + + qt_sql_bf_lt_1 """ + select * from test_decimal256_bf_index where k2 < 499999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + qt_sql_bf_lt_2 """ + select * from test_decimal256_bf_index where k2 < -999999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + qt_sql_bf_lt_3 """ + select * from test_decimal256_bf_index where k2 < -333333333333333333333333333333333333333333333333333333333333333333.3333333333 order by 1, 2, 3; + """ + + qt_sql_bf_le_1 """ + select * from test_decimal256_bf_index where k2 <= 499999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + qt_sql_bf_le_2 """ + select * from test_decimal256_bf_index where k2 <= -999999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + qt_sql_bf_le_3 """ + select * from test_decimal256_bf_index where k2 <= -333333333333333333333333333333333333333333333333333333333333333333.3333333333 order by 1, 2, 3; + """ + +} \ No newline at end of file diff --git a/regression-test/suites/datatype_p0/decimalv3/test_decimal256_load.groovy b/regression-test/suites/datatype_p0/decimalv3/test_decimal256_load.groovy new file mode 100644 index 0000000000..d2f141d902 --- /dev/null +++ b/regression-test/suites/datatype_p0/decimalv3/test_decimal256_load.groovy @@ -0,0 +1,345 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +suite("test_decimal256_load") { + sql "set enable_nereids_planner = true;" + sql "set enable_decimal256 = true;" + + // test insert + sql "DROP TABLE IF EXISTS `test_decimal256_insert`" + sql """ + CREATE TABLE IF NOT EXISTS `test_decimal256_insert` ( + `k1` decimalv3(76, 9) NULL COMMENT "", + `k2` decimalv3(76, 10) NULL COMMENT "", + `k3` decimalv3(76, 11) NULL COMMENT "" + ) ENGINE=OLAP + DUPLICATE KEY(`k1`) + DISTRIBUTED BY HASH(`k1`) BUCKETS 8 + PROPERTIES ( + "replication_allocation" = "tag.location.default: 1" + ); + """ + sql """ + insert into test_decimal256_insert values + (2, 499999999999999999999999999999999999999999999999999999999999999999.9999999999, 49999999999999999999999999999999999999999999999999999999999999999.99999999999), + (1, 999999999999999999999999999999999999999999999999999999999999999999.9999999999, 99999999999999999999999999999999999999999999999999999999999999999.99999999999), + (1, 999999999999999999999999999999999999999999999999999999999999999999.9999999999, 99999999999999999999999999999999999999999999999999999999999999999.99999999999), + (4, -999999999999999999999999999999999999999999999999999999999999999999.9999999999, 99999999999999999999999999999999999999999999999999999999999999999.99999999999), + (3, 333333333333333333333333333333333333333333333333333333333333333333.3333333333, 33333333333333333333333333333333333333333333333333333333333333333.33333333333), + (4, -999999999999999999999999999999999999999999999999999999999999999999.9999999999, 99999999999999999999999999999999999999999999999999999999999999999.99999999999), + (3, 333333333333333333333333333333333333333333333333333333333333333333.3333333333, 33333333333333333333333333333333333333333333333333333333333333333.33333333333), + (5, -333333333333333333333333333333333333333333333333333333333333333333.3333333333, 33333333333333333333333333333333333333333333333333333333333333333.33333333333), + (5, -333333333333333333333333333333333333333333333333333333333333333333.3333333333, 33333333333333333333333333333333333333333333333333333333333333333.33333333333), + (6, null, 99999999999999999999999999999999999999999999999999999999999999999.99999999999), + (7, null, 99999999999999999999999999999999999999999999999999999999999999999.99999999999), + (0, 0, 0), + (99999999999999999999999999999.999999999, 1, 1), + (-99999999999999999999999999999.999999999, 1, 1), + (9999999999999999999999999999999999999999999999999999999999999999999.999999999, 1, 1), + (-9999999999999999999999999999999999999999999999999999999999999999999.999999999, 1, 1), + (4999999999999999999999999999999999999999999999999999999999999999999.999999999, 1, 1), + (-4999999999999999999999999999999999999999999999999999999999999999999.999999999, 1, 1), + (null, null, null); + """ + sql "sync" + qt_decimal256_insert_select_all0 "select * from test_decimal256_insert order by 1,2,3;" + + // test stream load + sql "DROP TABLE IF EXISTS `test_decimal256_load`" + sql """ + CREATE TABLE IF NOT EXISTS `test_decimal256_load` ( + `k1` decimalv3(76, 9) NULL COMMENT "", + `k2` decimalv3(76, 10) NULL default '999999999999999999999999999999999999999999999999999999999999999999.9999999999' COMMENT "", + `k3` decimalv3(76, 11) NULL COMMENT "" + ) ENGINE=OLAP + DUPLICATE KEY(`k1`) + DISTRIBUTED BY HASH(`k1`) BUCKETS 8 + PROPERTIES ( + "replication_allocation" = "tag.location.default: 1" + ); + """ + streamLoad { + // you can skip db declaration, because a default db has already been + // specified in ${DORIS_HOME}/conf/regression-conf.groovy + // db 'regression_test' + table "test_decimal256_load" + + // default label is UUID: + // set 'label' UUID.randomUUID().toString() + + // default column_separator is specify in doris fe config, usually is '\t'. + // this line change to ',' + set 'column_separator', ',' + + // relate to ${DORIS_HOME}/regression-test/data/demo/streamload_input.csv. + // also, you can stream load a http stream, e.g. http://xxx/some.csv + file """test_decimal256_load.csv""" + + time 10000 // limit inflight 10s + + // stream load action will check result, include Success status, and NumberTotalRows == NumberLoadedRows + + // if declared a check callback, the default check condition will ignore. + // So you must check all condition + check { result, exception, startTime, endTime -> + if (exception != null) { + throw exception + } + log.info("Stream load result: ${result}".toString()) + def json = parseJson(result) + assertEquals("success", json.Status.toLowerCase()) + assertEquals(19, json.NumberTotalRows) + assertEquals(json.NumberTotalRows, json.NumberLoadedRows) + assertTrue(json.LoadBytes > 0) + } + } + qt_select "select * from test_decimal256_load order by 1,2,3;" + + qt_select_key_eq0 """ + select * from test_decimal256_load where k1 = 9999999999999999999999999999999999999999999999999999999999999999999.999999999 order by 1, 2, 3; + """ + qt_select_key_eq1 """ + select * from test_decimal256_load where k1 = 4999999999999999999999999999999999999999999999999999999999999999999.999999999 order by 1, 2, 3; + """ + qt_select_key_eq2 """ + select * from test_decimal256_load where k1 = -4999999999999999999999999999999999999999999999999999999999999999999.999999999 order by 1, 2, 3; + """ + qt_select_key_eq3 """ + select * from test_decimal256_load where k1 = -9999999999999999999999999999999999999999999999999999999999999999999.999999999 order by 1, 2, 3; + """ + qt_select_key_eq4 """ + select * from test_decimal256_load where k1 = 0 order by 1, 2, 3; + """ + qt_select_key_eq5 """ + select * from test_decimal256_load where k1 = null order by 1, 2, 3; + """ + + qt_select_key_neq0 """ + select * from test_decimal256_load where k1 != 9999999999999999999999999999999999999999999999999999999999999999999.999999999 order by 1, 2, 3; + """ + qt_select_key_neq1 """ + select * from test_decimal256_load where k1 != 4999999999999999999999999999999999999999999999999999999999999999999.999999999 order by 1, 2, 3; + """ + qt_select_key_neq2 """ + select * from test_decimal256_load where k1 != -4999999999999999999999999999999999999999999999999999999999999999999.999999999 order by 1, 2, 3; + """ + qt_select_key_neq3 """ + select * from test_decimal256_load where k1 != -9999999999999999999999999999999999999999999999999999999999999999999.999999999 order by 1, 2, 3; + """ + qt_select_key_neq4 """ + select * from test_decimal256_load where k1 != 0 order by 1, 2, 3; + """ + qt_select_key_neq5 """ + select * from test_decimal256_load where k1 != null order by 1, 2, 3; + """ + + qt_select_key_gt0 """ + select * from test_decimal256_load where k1 > 9999999999999999999999999999999999999999999999999999999999999999999.999999999 order by 1, 2, 3; + """ + qt_select_key_gt1 """ + select * from test_decimal256_load where k1 > 4999999999999999999999999999999999999999999999999999999999999999999.999999999 order by 1, 2, 3; + """ + qt_select_key_gt2 """ + select * from test_decimal256_load where k1 > -4999999999999999999999999999999999999999999999999999999999999999999.999999999 order by 1, 2, 3; + """ + qt_select_key_gt3 """ + select * from test_decimal256_load where k1 > -9999999999999999999999999999999999999999999999999999999999999999999.999999999 order by 1, 2, 3; + """ + qt_select_key_gt4 """ + select * from test_decimal256_load where k1 > 0 order by 1, 2, 3; + """ + qt_select_key_gt5 """ + select * from test_decimal256_load where k1 > null order by 1, 2, 3; + """ + + qt_select_key_ge0 """ + select * from test_decimal256_load where k1 >= 9999999999999999999999999999999999999999999999999999999999999999999.999999999 order by 1, 2, 3; + """ + qt_select_key_ge1 """ + select * from test_decimal256_load where k1 >= 4999999999999999999999999999999999999999999999999999999999999999999.999999999 order by 1, 2, 3; + """ + qt_select_key_ge2 """ + select * from test_decimal256_load where k1 >= -4999999999999999999999999999999999999999999999999999999999999999999.999999999 order by 1, 2, 3; + """ + qt_select_key_ge3 """ + select * from test_decimal256_load where k1 >= -9999999999999999999999999999999999999999999999999999999999999999999.999999999 order by 1, 2, 3; + """ + qt_select_key_ge4 """ + select * from test_decimal256_load where k1 >= 0 order by 1, 2, 3; + """ + qt_select_key_ge5 """ + select * from test_decimal256_load where k1 >= null order by 1, 2, 3; + """ + + qt_select_key_lt0 """ + select * from test_decimal256_load where k1 < 9999999999999999999999999999999999999999999999999999999999999999999.999999999 order by 1, 2, 3; + """ + qt_select_key_lt1 """ + select * from test_decimal256_load where k1 < 4999999999999999999999999999999999999999999999999999999999999999999.999999999 order by 1, 2, 3; + """ + qt_select_key_lt2 """ + select * from test_decimal256_load where k1 < -4999999999999999999999999999999999999999999999999999999999999999999.999999999 order by 1, 2, 3; + """ + qt_select_key_lt3 """ + select * from test_decimal256_load where k1 < -9999999999999999999999999999999999999999999999999999999999999999999.999999999 order by 1, 2, 3; + """ + qt_select_key_lt4 """ + select * from test_decimal256_load where k1 < 0 order by 1, 2, 3; + """ + qt_select_key_lt5 """ + select * from test_decimal256_load where k1 < null order by 1, 2, 3; + """ + + qt_select_key_le0 """ + select * from test_decimal256_load where k1 <= 9999999999999999999999999999999999999999999999999999999999999999999.999999999 order by 1, 2, 3; + """ + qt_select_key_le1 """ + select * from test_decimal256_load where k1 <= 4999999999999999999999999999999999999999999999999999999999999999999.999999999 order by 1, 2, 3; + """ + qt_select_key_le2 """ + select * from test_decimal256_load where k1 <= -4999999999999999999999999999999999999999999999999999999999999999999.999999999 order by 1, 2, 3; + """ + qt_select_key_le3 """ + select * from test_decimal256_load where k1 <= -9999999999999999999999999999999999999999999999999999999999999999999.999999999 order by 1, 2, 3; + """ + qt_select_key_le4 """ + select * from test_decimal256_load where k1 <= 0 order by 1, 2, 3; + """ + qt_select_key_le5 """ + select * from test_decimal256_load where k1 <= null order by 1, 2, 3; + """ + + qt_select_key_in0 """ + select * from test_decimal256_load where k1 in (9999999999999999999999999999999999999999999999999999999999999999999.999999999) order by 1, 2, 3; + """ + qt_select_key_in1 """ + select * from test_decimal256_load where k1 in (-9999999999999999999999999999999999999999999999999999999999999999999.999999999) order by 1, 2, 3; + """ + qt_select_key_in2 """ + select * from test_decimal256_load where k1 in(4999999999999999999999999999999999999999999999999999999999999999999.999999999) order by 1, 2, 3; + """ + qt_select_key_in3 """ + select * from test_decimal256_load where k1 in(-4999999999999999999999999999999999999999999999999999999999999999999.999999999) order by 1, 2, 3; + """ + qt_select_key_in4 """ + select * from test_decimal256_load where k1 in(0) order by 1, 2, 3; + """ + qt_select_key_in5 """ + select * from test_decimal256_load where k1 in ( + 9999999999999999999999999999999999999999999999999999999999999999999.999999999, + -9999999999999999999999999999999999999999999999999999999999999999999.999999999, + 4999999999999999999999999999999999999999999999999999999999999999999.999999999, + -4999999999999999999999999999999999999999999999999999999999999999999.999999999, + 0 + ) order by 1, 2, 3; + """ + qt_select_key_in6 """ + select * from test_decimal256_load where k1 in(null) order by 1, 2, 3; + """ + qt_select_key_in7 """ + select * from test_decimal256_load where k1 in(0, null) order by 1, 2, 3; + """ + + qt_select_key_notin0 """ + select * from test_decimal256_load where k1 not in (9999999999999999999999999999999999999999999999999999999999999999999.999999999) order by 1, 2, 3; + """ + qt_select_key_notin1 """ + select * from test_decimal256_load where k1 not in (-9999999999999999999999999999999999999999999999999999999999999999999.999999999) order by 1, 2, 3; + """ + qt_select_key_notin2 """ + select * from test_decimal256_load where k1 not in(4999999999999999999999999999999999999999999999999999999999999999999.999999999) order by 1, 2, 3; + """ + qt_select_key_notin3 """ + select * from test_decimal256_load where k1 not in(-4999999999999999999999999999999999999999999999999999999999999999999.999999999) order by 1, 2, 3; + """ + qt_select_key_notin4 """ + select * from test_decimal256_load where k1 not in(0) order by 1, 2, 3; + """ + qt_select_key_notin5 """ + select * from test_decimal256_load where k1 not in ( + 9999999999999999999999999999999999999999999999999999999999999999999.999999999, + -9999999999999999999999999999999999999999999999999999999999999999999.999999999, + 4999999999999999999999999999999999999999999999999999999999999999999.999999999, + -4999999999999999999999999999999999999999999999999999999999999999999.999999999, + 0 + ) order by 1, 2, 3; + """ + qt_select_key_notin6 """ + select * from test_decimal256_load where k1 not in(null) order by 1, 2, 3; + """ + qt_select_key_notin7 """ + select * from test_decimal256_load where k1 not in(0, null) order by 1, 2, 3; + """ + + qt_select_key_is_null """ + select * from test_decimal256_load where k1 is null order by 1, 2, 3; + """ + qt_select_key_is_not_null """ + select * from test_decimal256_load where k1 is not null order by 1, 2, 3; + """ + + qt_sql_eq_1 """ + select * from test_decimal256_load where k2 = 499999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + + qt_sql_neq_1 """ + select * from test_decimal256_load where k2 != 499999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + + qt_sql_gt_1 """ + select * from test_decimal256_load where k2 > 499999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + + qt_sql_ge_1 """ + select * from test_decimal256_load where k2 >= 499999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + + qt_sql_lt_1 """ + select * from test_decimal256_load where k2 < 499999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + + qt_sql_le_1 """ + select * from test_decimal256_load where k2 <= 499999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + + sql "DROP TABLE IF EXISTS `test_decimal256_load2`" + sql """ + CREATE TABLE IF NOT EXISTS `test_decimal256_load2` ( + `k1` decimalv3(76, 9) NULL COMMENT "", + `k2` decimalv3(76, 10) NULL COMMENT "", + `k3` decimalv3(76, 11) NULL COMMENT "" + ) ENGINE=OLAP + DUPLICATE KEY(`k1`) + DISTRIBUTED BY HASH(`k1`) BUCKETS 8 + PROPERTIES ( + "replication_allocation" = "tag.location.default: 1" + ); + """ + sql "insert into test_decimal256_load2 select * from test_decimal256_load;" + sql "sync" + qt_select_2 "select * from test_decimal256_load2 order by 1,2,3;" + qt_sql_insert_select_eq_1 """ + select * from test_decimal256_load2 where k2 = 999999999999999999999999999999999999999999999999999999999999999999.9999999999 order by 1, 2, 3; + """ + + // test default value + sql "insert into test_decimal256_load(k1,k3) values (0, 0), (99999, 99999), (-99999, -99999);" + sql "sync" + qt_sql_select_insert_default0 "select * from test_decimal256_load order by k1,k2,k3;" + qt_sql_select_insert_default1 "select * from test_decimal256_load where k1 = 99999;" + qt_sql_select_insert_default2 "select * from test_decimal256_load where k1 = -99999;" +} \ No newline at end of file diff --git a/regression-test/suites/datatype_p0/decimalv3/test_decimal256_outfile_csv.groovy b/regression-test/suites/datatype_p0/decimalv3/test_decimal256_outfile_csv.groovy new file mode 100644 index 0000000000..54bbb5ca3f --- /dev/null +++ b/regression-test/suites/datatype_p0/decimalv3/test_decimal256_outfile_csv.groovy @@ -0,0 +1,135 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +import org.codehaus.groovy.runtime.IOGroovyMethods + +import java.nio.charset.StandardCharsets +import java.nio.file.Files +import java.nio.file.Paths + +suite("test_decimal256_outfile_csv") { + StringBuilder strBuilder = new StringBuilder() + strBuilder.append("curl --location-trusted -u " + context.config.jdbcUser + ":" + context.config.jdbcPassword) + strBuilder.append(" http://" + context.config.feHttpAddress + "/rest/v1/config/fe") + + String command = strBuilder.toString() + def process = command.toString().execute() + def code = process.waitFor() + def err = IOGroovyMethods.getText(new BufferedReader(new InputStreamReader(process.getErrorStream()))); + def out = process.getText() + logger.info("Request FE Config: code=" + code + ", out=" + out + ", err=" + err) + assertEquals(code, 0) + def response = parseJson(out.trim()) + assertEquals(response.code, 0) + assertEquals(response.msg, "success") + def configJson = response.data.rows + boolean enableOutfileToLocal = false + for (Object conf: configJson) { + assert conf instanceof Map + if (((Map) conf).get("Name").toLowerCase() == "enable_outfile_to_local") { + enableOutfileToLocal = ((Map) conf).get("Value").toLowerCase() == "true" + } + } + if (!enableOutfileToLocal) { + logger.warn("Please set enable_outfile_to_local to true to run test_outfile") + return + } + + sql "set enable_nereids_planner = true;" + sql "set enable_decimal256 = true;" + + sql "DROP TABLE IF EXISTS `test_decimal256_outfile_csv`" + sql """ + CREATE TABLE IF NOT EXISTS `test_decimal256_outfile_csv` ( + `k1` decimalv3(76, 9) NULL COMMENT "", + `k2` decimalv3(76, 10) NULL default '999999999999999999999999999999999999999999999999999999999999999999.9999999999' COMMENT "", + `k3` decimalv3(76, 11) NULL COMMENT "" + ) ENGINE=OLAP + DUPLICATE KEY(`k1`) + DISTRIBUTED BY HASH(`k1`) BUCKETS 8 + PROPERTIES ( + "replication_allocation" = "tag.location.default: 1" + ); + """ + streamLoad { + // you can skip db declaration, because a default db has already been + // specified in ${DORIS_HOME}/conf/regression-conf.groovy + // db 'regression_test' + table "test_decimal256_outfile_csv" + + // default label is UUID: + // set 'label' UUID.randomUUID().toString() + + // default column_separator is specify in doris fe config, usually is '\t'. + // this line change to ',' + set 'column_separator', ',' + + // relate to ${DORIS_HOME}/regression-test/data/demo/streamload_input.csv. + // also, you can stream load a http stream, e.g. http://xxx/some.csv + file """test_decimal256_load.csv""" + + time 10000 // limit inflight 10s + + // stream load action will check result, include Success status, and NumberTotalRows == NumberLoadedRows + + // if declared a check callback, the default check condition will ignore. + // So you must check all condition + check { result, exception, startTime, endTime -> + if (exception != null) { + throw exception + } + log.info("Stream load result: ${result}".toString()) + def json = parseJson(result) + assertEquals("success", json.Status.toLowerCase()) + assertEquals(19, json.NumberTotalRows) + assertEquals(json.NumberTotalRows, json.NumberLoadedRows) + assertTrue(json.LoadBytes > 0) + } + } + sql "sync" + qt_sql_select_all """ + SELECT * FROM test_decimal256_outfile_csv t order by 1,2,3; + """ + + def uuid = UUID.randomUUID().toString() + def outFilePath = """/tmp/test_decimal256_outfile_csv_${uuid}""" + try { + logger.info("outfile: " + outFilePath) + // check outfile + File path = new File(outFilePath) + if (!path.exists()) { + assert path.mkdirs() + } else { + throw new IllegalStateException("""${outFilePath} already exists! """) + } + sql """ + SELECT * FROM test_decimal256_outfile_csv t order by 1,2,3 INTO OUTFILE "file://${outFilePath}/" properties("column_separator" = ","); + """ + File[] files = path.listFiles() + assert files.length == 1 + List outLines = Files.readAllLines(Paths.get(files[0].getAbsolutePath()), StandardCharsets.UTF_8); + assert outLines.size() == 19 + } finally { + File path = new File(outFilePath) + if (path.exists()) { + for (File f: path.listFiles()) { + f.delete(); + } + path.delete(); + } + } +} \ No newline at end of file diff --git a/regression-test/suites/datatype_p0/decimalv3/test_decimal256_predicate.groovy b/regression-test/suites/datatype_p0/decimalv3/test_decimal256_predicate.groovy new file mode 100644 index 0000000000..9664d50068 --- /dev/null +++ b/regression-test/suites/datatype_p0/decimalv3/test_decimal256_predicate.groovy @@ -0,0 +1,128 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +suite("test_decimal256_predicate") { + sql "set enable_nereids_planner = true;" + sql "set enable_decimal256 = true;" + + qt_select256_1 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10)) > cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" + qt_select256_2 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10)) > cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" + qt_select256_3 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10)) >= cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" + qt_select256_4 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999997 as decimalv3(76,10)) >= cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" + + qt_select256_5 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10)) < cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10))" + qt_select256_6 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10)) < cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" + qt_select256_7 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10)) <= cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" + qt_select256_8 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10)) <= cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" + + qt_select256_9 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10)) = cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10))" + qt_select256_10 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10)) = cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" + + qt_select256_11 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10)) != cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" + qt_select256_12 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10)) != cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10))" + + qt_select256_fold_const_by_be1 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = true) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10)) > cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" + qt_select256_fold_const_by_be2 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = true) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10)) > cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" + qt_select256_fold_const_by_be3 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = true) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10)) >= cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" + qt_select256_fold_const_by_be4 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = true) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999997 as decimalv3(76,10)) >= cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" + + qt_select256_fold_const_by_be5 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = true) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10)) < cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10))" + qt_select256_fold_const_by_be6 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = true) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10)) < cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" + qt_select256_fold_const_by_be7 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = true) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10)) <= cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" + qt_select256_fold_const_by_be8 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = true) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10)) <= cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" + + qt_select256_fold_const_by_be9 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = true) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10)) = cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10))" + qt_select256_fold_const_by_be10 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = true) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10)) = cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" + + qt_select256_fold_const_by_be11 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = true) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10)) != cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" + qt_select256_fold_const_by_be12 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = true) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10)) != cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10))" + + + sql "DROP TABLE IF EXISTS `test_predicate_128_1`"; + sql """ + CREATE TABLE IF NOT EXISTS `test_predicate_128_1` ( + `k1` decimalv3(38, 6) NULL COMMENT "", + `k2` decimalv3(38, 6) NULL COMMENT "", + `k3` decimalv3(38, 6) NULL COMMENT "" + ) ENGINE=OLAP + COMMENT "OLAP" + DISTRIBUTED BY HASH(`k1`, `k2`, `k3`) BUCKETS 1 + PROPERTIES ( + "replication_allocation" = "tag.location.default: 1" + ); + """ + sql """insert into test_predicate_128_1 values + (1, 99999999999999999999999999999999.999999, 99999999999999999999999999999999.999999), + (2, 49999999999999999999999999999999.999999, 49999999999999999999999999999999.999999), + (3, 33333333333333333333333333333333.333333, 33333333333333333333333333333333.333333), + (4.444444, 2.222222, 3.333333);""" + sql "sync" + qt_decimal256_select_all "select * from test_predicate_128_1 order by k1, k2;" + qt_decimal256_predicate_0 "select * from test_predicate_128_1 where cast(k2 as decimalv3(76, 6)) > (cast(33333333333333333333333333333333.333333 as decimalv3(76,7))) order by k1, k2;" + qt_decimal256_predicate_1 "select * from test_predicate_128_1 where cast(k2 as decimalv3(76, 6)) >= (cast(999999999999999999999999999999990.999999 as decimalv3(76,6)) / 10) order by k1, k2;" + + qt_decimal256_predicate_2 "select * from test_predicate_128_1 where cast(k2 as decimalv3(76, 6)) < (cast(49999999999999999999999999999999.999999 as decimalv3(76,7))) order by k1, k2;" + qt_decimal256_predicate_3 "select * from test_predicate_128_1 where cast(k2 as decimalv3(76, 6)) <= (cast(33333333333333333333333333333333.333333 as decimalv3(76,7))) order by k1, k2;" + + qt_decimal256_predicate_4 "select * from test_predicate_128_1 where cast(k2 as decimalv3(76, 6)) = (cast(99999999999999999999999999999999.999999 as decimalv3(76,7))) order by k1, k2;" + qt_decimal256_predicate_5 "select * from test_predicate_128_1 where cast(k2 as decimalv3(76, 6)) != (cast(99999999999999999999999999999999.999999 as decimalv3(76,7))) order by k1, k2;" + + sql "DROP TABLE IF EXISTS `test_predicate_256_1`" + sql """ + CREATE TABLE IF NOT EXISTS `test_predicate_256_1` ( + `k1` decimalv3(76, 9) NULL COMMENT "", + `k2` decimalv3(76, 10) NULL COMMENT "", + `k3` decimalv3(76, 11) NULL COMMENT "" + ) ENGINE=OLAP + DUPLICATE KEY(`k1`) + DISTRIBUTED BY HASH(`k1`) BUCKETS 1 + PROPERTIES ( + "replication_allocation" = "tag.location.default: 1" + ); + """ + + sql """insert into test_predicate_256_1 values + (1, 999999999999999999999999999999999999999999999999999999999999999999.9999999999, 99999999999999999999999999999999999999999999999999999999999999999.99999999999), + (1, 999999999999999999999999999999999999999999999999999999999999999999.9999999999, 99999999999999999999999999999999999999999999999999999999999999999.99999999999), + (2, 499999999999999999999999999999999999999999999999999999999999999999.9999999999, 49999999999999999999999999999999999999999999999999999999999999999.99999999999), + (3, 333333333333333333333333333333333333333333333333333333333333333333.3333333333, 33333333333333333333333333333333333333333333333333333333333333333.33333333333), + (3, 333333333333333333333333333333333333333333333333333333333333333333.3333333333, 33333333333333333333333333333333333333333333333333333333333333333.33333333333), + (4, -999999999999999999999999999999999999999999999999999999999999999999.9999999999, 99999999999999999999999999999999999999999999999999999999999999999.99999999999), + (4, -999999999999999999999999999999999999999999999999999999999999999999.9999999999, 99999999999999999999999999999999999999999999999999999999999999999.99999999999), + (5, -333333333333333333333333333333333333333333333333333333333333333333.3333333333, 33333333333333333333333333333333333333333333333333333333333333333.33333333333), + (5, -333333333333333333333333333333333333333333333333333333333333333333.3333333333, 33333333333333333333333333333333333333333333333333333333333333333.33333333333), + (6, null, 99999999999999999999999999999999999999999999999999999999999999999.99999999999), + (7, null, 99999999999999999999999999999999999999999999999999999999999999999.99999999999); + """ + sql "sync" + qt_decimal256_select_all2 "select * from test_predicate_256_1 order by k1, k2;" + qt_decimal256_predicate_6 "select * from test_predicate_256_1 where k2 > 333333333333333333333333333333333333333333333333333333333333333333.3333333333 order by k1, k2;" + qt_decimal256_predicate_7 "select * from test_predicate_256_1 where k2 >= 499999999999999999999999999999999999999999999999999999999999999999.9999999999 order by k1, k2;" + + qt_decimal256_predicate_8 "select * from test_predicate_256_1 where k2 < 499999999999999999999999999999999999999999999999999999999999999999.9999999999 order by k1, k2;" + qt_decimal256_predicate_9 "select * from test_predicate_256_1 where k2 <= 499999999999999999999999999999999999999999999999999999999999999999.9999999999 order by k1, k2;" + + qt_decimal256_predicate_10 "select * from test_predicate_256_1 where k2 = 999999999999999999999999999999999999999999999999999999999999999999.9999999999 order by k1, k2;" + qt_decimal256_predicate_11 "select * from test_predicate_256_1 where k2 != 999999999999999999999999999999999999999999999999999999999999999999.9999999999 order by k1, k2;" + + qt_decimal256_predicate_12 "select * from test_predicate_256_1 where k2 in(1, 333333333333333333333333333333333333333333333333333333333333333333.3333333333, 999999999999999999999999999999999999999999999999999999999999999999.9999999999) order by k1, k2;" + qt_decimal256_predicate_13 "select * from test_predicate_256_1 where k2 not in(2, 333333333333333333333333333333333333333333333333333333333333333333.3333333333, 999999999999999999999999999999999999999999999999999999999999999999.9999999999) order by k1, k2;" + + // test delete + sql "delete from test_predicate_256_1 where k2 >= 499999999999999999999999999999999999999999999999999999999999999999.9999999999;" + qt_decimal256_predicate_14 "select * from test_predicate_256_1 order by k1, k2;" +} \ No newline at end of file diff --git a/regression-test/suites/datatype_p0/decimalv3/test_predicate.groovy b/regression-test/suites/datatype_p0/decimalv3/test_predicate.groovy index a8e12dcb4e..65555c9217 100644 --- a/regression-test/suites/datatype_p0/decimalv3/test_predicate.groovy +++ b/regression-test/suites/datatype_p0/decimalv3/test_predicate.groovy @@ -39,6 +39,7 @@ suite("test_predicate") { (1.2,1.2,1.3), (1.5,1.2,1.3) """ + sql "sync" qt_select1 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ CAST((CASE WHEN (TRUE IS NOT NULL) THEN '1.2' ELSE '1.2' END) AS FLOAT) = CAST(1.2 AS decimal(2,1))" qt_select2 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ 1 FROM ${table1} WHERE CAST((CASE WHEN (TRUE IS NOT NULL) THEN '1.2' ELSE '1.2' END) AS FLOAT) = CAST(1.2 AS decimal(2,1));" @@ -51,49 +52,4 @@ suite("test_predicate") { qt_select5 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ 1 FROM ${table1} WHERE CAST((CASE WHEN (TRUE IS NOT NULL) THEN '1.2' ELSE '1.2' END) AS FLOAT) = CAST(1.2 AS decimal(76,1));" qt_select6 "SELECT * FROM ${table1} WHERE k1 != cast(1.1 as decimalv3(76, 1)) ORDER BY k1" sql "drop table if exists ${table1}" - - qt_select256_1 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10)) > cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" - qt_select256_2 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10)) > cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" - qt_select256_3 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10)) >= cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" - qt_select256_4 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999997 as decimalv3(76,10)) >= cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" - - qt_select256_5 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10)) < cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10))" - qt_select256_6 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10)) < cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" - qt_select256_7 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10)) <= cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" - qt_select256_8 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10)) <= cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" - - qt_select256_9 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10)) = cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10))" - qt_select256_10 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10)) = cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" - - qt_select256_11 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10)) != cast(999999999999999999999999999999999999999999999999999999999999999999.9999999998 as decimalv3(76,10))" - qt_select256_12 "SELECT /*+ SET_VAR(enable_fold_constant_by_be = false) */ cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10)) != cast(999999999999999999999999999999999999999999999999999999999999999999.9999999999 as decimalv3(76,10))" - - - sql "DROP TABLE IF EXISTS `test_predicate_128_1`"; - sql """ - CREATE TABLE IF NOT EXISTS `test_predicate_128_1` ( - `k1` decimalv3(38, 6) NULL COMMENT "", - `k2` decimalv3(38, 6) NULL COMMENT "", - `k3` decimalv3(38, 6) NULL COMMENT "" - ) ENGINE=OLAP - COMMENT "OLAP" - DISTRIBUTED BY HASH(`k1`, `k2`, `k3`) BUCKETS 8 - PROPERTIES ( - "replication_allocation" = "tag.location.default: 1" - ); - """ - sql """insert into test_predicate_128_1 values(1, 99999999999999999999999999999999.999999, 99999999999999999999999999999999.999999), - (2, 49999999999999999999999999999999.999999, 49999999999999999999999999999999.999999), - (3, 33333333333333333333333333333333.333333, 33333333333333333333333333333333.333333), - (4.444444, 2.222222, 3.333333);""" - qt_decimal256_select_all "select * from test_predicate_128_1 order by k1, k2;" - qt_decimal256_predicate_0 "select * from test_predicate_128_1 where cast(k2 as decimalv3(76, 6)) > (cast(33333333333333333333333333333333.333333 as decimalv3(76,7))) order by k1, k2;" - qt_decimal256_predicate_1 "select * from test_predicate_128_1 where cast(k2 as decimalv3(76, 6)) >= (cast(999999999999999999999999999999990.999999 as decimalv3(76,6)) / 10)order by k1, k2;" - - qt_decimal256_predicate_2 "select * from test_predicate_128_1 where cast(k2 as decimalv3(76, 6)) < (cast(49999999999999999999999999999999.999999 as decimalv3(76,7))) order by k1, k2;" - qt_decimal256_predicate_3 "select * from test_predicate_128_1 where cast(k2 as decimalv3(76, 6)) <= (cast(33333333333333333333333333333333.333333 as decimalv3(76,7))) order by k1, k2;" - - qt_decimal256_predicate_4 "select * from test_predicate_128_1 where cast(k2 as decimalv3(76, 6)) = (cast(99999999999999999999999999999999.999999 as decimalv3(76,7))) order by k1, k2;" - qt_decimal256_predicate_5 "select * from test_predicate_128_1 where cast(k2 as decimalv3(76, 6)) != (cast(99999999999999999999999999999999.999999 as decimalv3(76,7))) order by k1, k2;" - }